当前位置:

首页 > 业界资讯 > 将代码生成的准确率提高一倍:从19%到44%的流量工程

将代码生成的准确率提高一倍:从19%到44%的流量工程

一篇新论文的作者提出了一种“强化”代码生成的方法。代码生成是人工智能中一项日益重要的能力。它通过训练机器学习模型,根据自然语言描述自动生成计算机代码。这一技术具有广泛的应用前景,可以将软件规格转化为可用的代码,自动化后端开发,并协助人类程序员提高工作效率。然而,生成高质量代码对AI系统仍然具有挑战性,与翻译或总结等语言任务相比。代码必须准确地符合目标编程语言的语法,能够优雅地处理各种极端情况和意外输入,并精确地处理问题描述中的许多小细节。即使是其他领域看似无害的小错误也可能完全破坏程序的功能,导致编译或运

本文目录

    一篇新论文的作者提出了一种“强化”代码生成的方法。

    流量工程将代码生成的准确率提高一倍:由19%提高至44%

    代码生成是人工智能中一项日益重要的能力。它通过训练机器学习模型,根据自然语言描述自动生成计算机代码。这一技术具有广泛的应用前景,可以将软件规格转化为可用的代码,自动化后端开发,并协助人类程序员提高工作效率。

    然而,生成高质量代码对AI系统仍然具有挑战性,与翻译或总结等语言任务相比。代码必须准确地符合目标编程语言的语法,能够优雅地处理各种极端情况和意外输入,并精确地处理问题描述中的许多小细节。即使是其他领域看似无害的小错误也可能完全破坏程序的功能,导致编译或运行失败。

    最近,CodiumAI的研究人员提出了AlphaCodium,这是一种新方法,可以显著提升GPT-4等大型语言模型的代码生成能力。他们的观点是,仅仅微调提示的措辞在解决复杂编码问题上具有固有的限制。相反,他们设计了一个多阶段流程,专注于通过迭代生成、运行和调试代码来对照测试用例,从而使模型能够从实践中学习。

    提示工程的局限性

    在自然语言任务中,提示工程是指对提示的措辞和结构进行仔细调整,以引导模型生成所需的输出。例如,在输入文本前加上“写简明的摘要:”这个短语,可以使模型生成更加准确的摘要。

    提示工程已被证明在做文本生成引导大语言模型行为方面非常有效。然而针对编码问题,研究人员发现,即使进行广泛的及时调整,也只能获得微小的效益。这一发现令人深思。因此,生成高质量的代码仍然需要其他解决方案:

    • 精确匹配目标编程语言的语法
    • 优雅地处理极端情况和意外输入
    • 解决问题陈述中描述的所有小细节和需求
    • 为所有的有效输入确保代码正确编译和运行

    这些结构性需求超出了文本生成的范围,无法硬编码到提示中。提示本身缺乏模型学习所需的编码技巧和具体反馈。

    AlphaCodium迭代流程

    为了应对这些挑战,研究人员开发了一种迭代流程,专门针对代码生成问题的结构。其中的关键创新在于利用所生成代码的执行结果作为学习信号,以提供直接的反馈。

    AlphaCodium的流程有两个主要阶段:

    预处理

    • 模型将问题描述释义为项目符号,以提取关键细节。
    • 解释每个示例输入/输出背后的预期逻辑。
    • 提供两三个自然语言解决方案。
    • 为代码覆盖生成额外的不同测试用例。

    代码迭代

    • 模型生成初始代码解决方案。
    • 针对公共测试用例重复运行该代码,修复出现的错误。
    • 对模型生成的测试用例执行同样的事情。
    • 额外的测试用例被添加到不断增大的“测试锚”(test anchor)套件中,以防止回归。

    通过增量推理问题、开发解决方案假设、扩展测试覆盖,以及反复生成和调试代码,模型通过经验来学习——这正是高质量代码生成所需的技能。

    流量工程将代码生成的准确率提高一倍:由19%提高至44%

    图1. 具有结构化输出的提示示例(生成可能的解决方案阶段)

    研究人员发现,与端到端模型相比,将流程设计为具有清晰接口和目标的模块可以获得更好的结果。每个阶段首先专注于更简单的子任务,以积累知识,并发掘为下游阶段提供依据的洞察力。像测试生成这样的上游阶段不需要完整的解决方案,只需要基本的推理。

    实验结果

    研究人员依据CodeContests衡量基准对AlphaCodium进行了评估,该衡量基准包含来自竞争性编程比赛的数百个编码问题。

    流量工程将代码生成的准确率提高一倍:由19%提高至44%

    图2. 问题描述和反思——一个典型的CodeContests问题的例子,基于人工智能对问题进行自我反思。虽然最初的描述冗长而复杂,但适当的自我反思可以使问题更清晰、更连贯,从而改进代码解决方案

    针对GPT-4模型,与经过大量优化的单个提示相比,AlphaCodium将验证集上的代码生成准确率从19%提高到了44%。面对不同的模型大小和测试集,这个好处依然适用,与单独的提示工程相比收效显著。

    AlphaCodium的性能也显著优于之前发布的方法,比如AlphaCode和CodeChain,同时使用更少的计算资源。比如说,它通过避免不必要的蛮力生成,其准确性可以媲美AlphaCode,而模型查询少10000倍。

    这些结果证明了围绕任务结构整体设计AI系统的价值,而不是将其视为通用文本生成器。通过合并迭代代码运行和调试,AlphaCodium更好地将训练过程与生成健壮实用代码的最终目标结合起来。

    更广泛的影响

    虽然针对竞争性编程问题进行了演示,但AlphaCodium中使用的概念为AI推进代码生成提供了更广泛的适用经验:

    • 单单提示工程对于处理复杂的代码任务具有局限性。具体解决问题的经验至关重要。
    • 基于测试的开发规范可以为模型训练提供依据。测试提供了明确的适应度函数。
    • 迭代代码调试将模型改进的重点放在实际发生的错误上。
    • 测试覆盖扩展突出了提示中不可见的泛化性差距。
    • 具有双重验证的软决策减少了脆弱性和偏差。

    AlphaCodium为基于软件工程最佳实践的代码生成提供了一种大有前途的新范式。关于泛化性和计算开销仍然存在有待商榷的研究问题。但这里展示的原则(从经验中学习、测试驱动开发、模块化推理和迭代式调试)似乎为提高AI的编码能力提供了坚实的基础。

    论文链接:https://arxiv.org/pdf/2401.08500.pdf。

    代码库:https://github.com/Codium-ai/AlphaCodium。

    原文标题:"Flow engineering" doubles code generation accuracy (19% vs 44%),作者:Mike Young

    链接:https://notes.aimodels.fyi/flow-engineering-intensifies-for-code-generation/。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    业界资讯 人工智能 代码生成
    上一篇: 如何更改网件路由器的密码
    下一篇: 耕升炫光和追风哪个好
    相关文章 更多
    claude怎么收费最新价格与会员收费标准详解
    claude怎么收费最新价格与会员收费标准详解

    想了解Claude怎么收费?本文梳理了Claude Free、Pro及Team版的最新月费价格、消息限额与高级功能权益,并对比了不同层级的性价比,助你快速找到适合的AI办公伙伴。

    Claude Code入门:基础交互、上下文管理与功能扩展
    Claude Code入门:基础交互、上下文管理与功能扩展

    了解 Claude Code 的基础交互流程,包括文件生成确认、使用 /compact 管理对话上下文、通过 CLAUDE.md 设定项目规则以及调用技能复用输出格式,提升开发协作效率。

    codex如何配置模型参数及文件设置教程
    codex如何配置模型参数及文件设置教程

    想知道如何让AI写出的代码更贴合你的习惯?本文手把手教你在VS Code中调整Codex相关模型参数,通过修改配置文件优化温度值和令牌限制,解决代码建议不准确或响应慢的问题。

    Claude Code AI编程工具实力揭秘与编程助手实测
    Claude Code AI编程工具实力揭秘与编程助手实测

    通过实测展示Claude Code在终端中如何理解自然语言指令、自动修改代码文件并处理复杂编程任务,帮助开发者评估其实际辅助能力。

    devin使用教程从基础操作到任务执行方法详解
    devin使用教程从基础操作到任务执行方法详解

    本教程详细介绍Devin AI的基础操作方法,包括项目初始化、自然语言指令输入、代码自动生成及错误调试,帮助开发者高效完成编程任务。

    deepseek怎么加脚本代码及具体操作步骤
    deepseek怎么加脚本代码及具体操作步骤

    了解DeepSeek模型如何处理代码任务。本文详解通过API接入、提示词优化及本地环境配合,实现脚本生成与自动运行的具体步骤,避免对模型功能的误解。

    sora使用指南国内使用的具体操作步骤教程
    sora使用指南国内使用的具体操作步骤教程

    本文详细解析Sora在国内的使用现状,指出目前官方未对公众开放注册,提醒用户警惕虚假链接,并提供关注官方动态及替代方案的实用建议。

    codex怎么写代码新手入门完整操作教程指南
    codex怎么写代码新手入门完整操作教程指南

    针对编程新手,详解如何使用Codex进行代码生成。从API接入到提示词优化,通过具体场景展示如何将自然语言转化为高质量代码,并指出其适用边界与注意事项。

    codex使用教程实战技巧,新手入门操作指南
    codex使用教程实战技巧,新手入门操作指南

    本教程详细讲解代码生成模型的基础概念与安装配置,通过Python数据处理和Web前端组件两个实战案例,演示如何编写有效提示词以获取高质量代码,并说明如何验证和集成生成的代码片段。

    Codex故障排查指南 常见报错原因与解决方法
    Codex故障排查指南 常见报错原因与解决方法

    本文梳理了Codex使用中常见的API连接超时、Token超限及逻辑报错问题,提供具体的检查步骤和修正建议,帮助开发者快速定位并解决集成障碍。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。