挑战前人未达之地:暴露代码生成评估中的偏见和不足
内容提要
该文综述大语言模型代码生成评测研究,提出MBXP、StudentEval、EvalPlus、ML-Bench等基准,覆盖多语言、类级代码、真实库使用与心理健康等场景;发现模型类级生成较弱、性能随规模对数线性提升,并存在提示偏见与代码偏差,提出缓解策略。
延伸解读
多语言与类级代码:评测盲区被逐一暴露
文章梳理的基准显示,早期评测多集中在单语言函数级任务,而MBXP将测试扩展到多语言环境,类级基准则专门考察更复杂的类级代码生成。结果发现现有模型在类级任务上表现较差,GPT-4和GPT-3.5相对突出,其他模型更适合逐方法生成。这说明评测维度变化会直接改变模型排名,读者需留意基准覆盖范围是否与真实开发场景匹配。
提示偏见与代码偏差:正确性之外的隐性风险
文章指出代码生成模型存在特定提示结构和关键字偏见,并可能将偏见泄漏到生成代码中。另一项评估发现,所测模型中31.45%到79.93%的代码函数存在偏差,其中9.68%到37.37%的偏差直接影响代码功能,带来无意且可能有害的软件行为风险。作者提出三种缓解策略,可将偏差代码比例降至0.4%到4.57%,表明偏见问题可被量化并部分控制。
真实库使用与教学场景:评测正走向落地
ML-Bench和ML-Agent关注模型利用开源库完成机器学习任务的能力,把评测从孤立题目推向真实编程。StudentEval则使用非专家受试者编写的问题提示,对比五种Code LLM,发现学生提示技术存在显著变异,且LLM采样的不确定性可能误导学生。这些工作提示读者:模型在标准基准上的分数,未必能直接迁移到真实库调用或教学互动中。
规模与性能:对数线性提升不等于全面可靠
文章提到,在MBPP和MathQA-Python两个基准上,模型性能随规模增加呈对数线性关系。但同一研究也发现,即使最好的模型也无法完全预测某些程序的输出。这说明扩大模型规模能带来可预测的性能增益,却不足以消除程序语义理解上的根本局限。读者在评估模型能力时,应区分规模带来的平均提升与具体任务上的可靠性缺口。
Q&A
有哪些新的基准测试被提出来评估代码生成模型?
文章提出了多个新基准,包括MBXP、Multilingual HumanEval和MathQA-X用于多语言代码生成评估;StudentEval用于基于学生提示的Python程序评测;EvalPlus用于扩充现有基准测试集;ML-Bench用于评估LLM使用开源库完成机器学习任务;以及首个心理健康领域的全面基准。
大型语言模型在类级代码生成任务上表现如何?
研究发现现有LLM在类级代码生成上表现较差,但GPT-4和GPT-3.5表现卓越,而逐方法生成是其他模型更好的策略。
代码生成模型存在哪些偏见问题?
代码生成模型存在特定提示结构和关键字的偏见,可能导致生成代码带有偏差。评估发现31.45%到79.93%的代码函数存在偏差,其中9.68%到37.37%的偏差直接影响代码功能,带来无意和可能有害的软件行为风险。
如何缓解代码生成模型中的偏见?
文章提出了三种缓解策略,可以将偏差代码比例降低到非常低的水平,即0.4%到4.57%。
模型性能与规模之间有什么关系?
研究表明,大型语言模型在程序合成方面的性能随着其大小的增加而呈现对数线性关系。
StudentEval基准测试有什么特点和发现?
StudentEval是一个基于Python程序的新评测标准,使用非专家受试者编写的问题提示,对比评估了5种Code LLM模型。结果表明这种评测标准是更好的模型性能判别标准,同时发现学生提示技术的显著变异和LLM采样的不确定性可能会误导学生,对使用Code LLMs进行教学有影响。