【代码大模型】Is Your Code Generated by ChatGPT Really Correct?论文阅读

Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation

key word: evaluation framework, LLM-synthesized code, benchmark

论文:https://arxiv.org/pdf/2305.01210.pdf

代码:https://github.com/evalplus/evalplus

【why】

现存的 LLM-for-code 的基准测试集的局限性:

(1)Insufficient testing

当前的编程基准程序通常只包含平均少于10个测试的每个编码问题。

此外,这些测试相对过于简单,无法充分发掘代码或角案例的功能。

(2)Imprecise problem description

代码生成的输入除了函数签名外,还包括自然语言。现有基准程序中的这些任务描述往往过于模糊,无法充分阐明预期的程序行为。

【what】
1.EvalPlus -- a code synthesis evaluation framework to rigorously benchmark the functional correctness of LLM-synthesized code

(1)Seed initialization via ChatGPT

ChatGPT作为一个自动生成引擎,生成少量但高质量种子

prompt 中包含的内容:

· 所要考察问题的真实解

· 一组作为示范的测试输入

· 激励ChatGPT提出输入的指令词
(2)Type-aware input mutation

inputs 的生成规则:

· 使用Chatgpt生成的种子初始化 seed pool 并引导 generation pipeline

· 每次从种子池中随机选择一个输入,将其突变为一个新的输入(即突变型)

· 在种子池中添加新的符合程序要求的输入,重复二三步
(3)Test-suite reduction

· code coverage

· mutant killings

· LLM sample killings
(4)Program input contracts

评估代码的最终目的是需要检查合成的代码是否符合期望的用户意图。

采用contracts编程思想,以断言的形式注释函数的前置条件。
2. Extend the test-cases of the popular HUMANEVAL benchmark by 80× to build HUMANEVAL+

【how】

评价指标:无偏版本的pass@k

1.结果

(1)在所有的LLMs,模型大小和k值中,使用HUMANEVAL +,几乎所有的pass @ k结果与使用基本HUMANEVAL相比一致下降。

(2)HUMANEVAL+更严格的评估可能会产生与HUMANEVAL不同或完全相反的相对结果。

(3) 在使用HUMANEVAL +前后,最佳temperature保持相当一致,说明具有稳健性。

(4) 精简后的测试集仅用47 ×的测试用例就可以达到与HUMANEVAL +几乎相同的pass @ 1⋆drop。

(5) HUMANEVAL和HUMANEVAL +之间的通过率差距表明,总体上HUMANEVAL +可以检测出HUMANEVAL错误识别的所有级别困难问题的解决方案。
2.实验细节:

(1)随机抽取200个programs,并且在 temperature{0.2, 0.4, 0.6, 0.8} 和greedy decoding with zero temperature 上重复实验

思考问题:

1.ChatGPT一般的输出包含很多无用词汇or符号,具有输出不稳定性,请问怎么保证每次输出稳定+正确的呢?

  1. temperature 是什么呢?

  2. 还是很迷惑,测试结果变差就代表本文提出的方法更好吗?

相关推荐
觉醒大王1 天前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
觉醒大王2 天前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
张较瘦_2 天前
[论文阅读] AI | 用机器学习给深度学习库“体检”:大幅提升测试效率的新思路
论文阅读·人工智能·机器学习
fanstuck2 天前
从0到提交,如何用 ChatGPT 全流程参与建模比赛的
大数据·数学建模·语言模型·chatgpt·数据挖掘
m0_650108242 天前
IntNet:面向协同自动驾驶的通信驱动多智能体强化学习框架
论文阅读·marl·多智能体系统·网联自动驾驶·意图共享·自适应通讯·端到端协同
m0_650108243 天前
Raw2Drive:基于对齐世界模型的端到端自动驾驶强化学习方案
论文阅读·机器人·强化学习·端到端自动驾驶·双流架构·引导机制·mbrl自动驾驶
有颜有货3 天前
GEO(生成引擎优化)是什么?GEO的工作流程详解
人工智能·chatgpt·geo
数研小生3 天前
用爬虫数据训练 ChatGPT 行业知识库:从数据采集到模型微调的实战指南
人工智能·爬虫·chatgpt
快降重科研小助手3 天前
前瞻与规范:AIGC降重API的技术演进与负责任使用
论文阅读·aigc·ai写作·降重·降ai·快降重
源于花海3 天前
IEEE TIE期刊论文学习——基于元学习与小样本重训练的锂离子电池健康状态估计方法
论文阅读·元学习·电池健康管理·并行网络·小样本重训练