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

秋萱君_5662

秋萱君_5662

2024-02-05

1012人浏览

转载

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

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

流量工程将代码生成的准确率提高一倍:由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/。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3208

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

5229

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3869

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

486

15

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2026.01.21

8725

27

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

2026.04.02

938

19

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

5510

6

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

2025.12.13

506

14

Figma AI自动化智能数据填充与交互生成实战
Figma AI自动化智能数据填充与交互生成实战

告别机械重复,详细演示如何用 AI 填充业务真实数据,并自动为页面添加交互连线,将静态设计稿快速转变为动态原型。

2026.05.13

345

17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WPS AI手册
WPS AI手册

共0课时 | 0人学习

豆包AI手册
豆包AI手册

共0课时 | 0人学习

OpenClaw
OpenClaw

共0课时 | 0人学习