📖标题:Evaluating and Aligning CodeLLMs on Human Preference
🌐来源:arXiv, 2412.05210
🌟摘要
🔸代码大语言模型(codeLLM)在代码生成方面取得了重大进展。大多数与代码相关的基准测试,包括各种编程练习和相应的测试用例,都被用作评估代码LLM性能和能力的常用指标。然而,当前的代码LLM侧重于合成正确的代码片段,忽略了与人类偏好的一致性,其中查询应从实际应用场景中采样,模型生成的响应应满足人类偏好。
🔸为了弥合模型生成的响应和人类偏好之间的差距,我们提出了一个严格的人类策划的基准CodeArena,以模拟现实世界编码任务的复杂性和多样性,其中397个高质量样本跨越40个类别和44种编程语言,从用户查询中精心策划。此外,我们提出了一个多样化的合成指令语料库SynCodeInstruct(近20B个令牌),通过缩放网站上的指令来验证大规模合成指令微调的有效性,其中Qwen2.5-SynCoder完全在合成指令数据上训练,可以实现开源代码LLM的顶级性能。
🔸结果发现,基于执行的基准测试和CodeArena之间存在性能差异。我们在40多个LLM上对CodeArena进行的系统实验表明,开放SOTA代码LLM(如Qwen2.5-Coder)和专有LLM(例如OpenAI o1)之间存在显著的性能差距,突显了人类偏好对齐的重要性。详见https://codearenaeval.github.io/
🛎️文章简介
🔸研究问题:如何有效评估和调优代码生成模型以更好地符合人类偏好?
🔸主要贡献:论文提出了CodeArena基准测试和SynCode-Instruct合成指令语料库,用于评估和改进代码生成模型与人类偏好的对齐。
🧲相关工作
🔸代码大模型:专为编码任务设计的,应用在在代码生成、调试、 翻译和现代软件工程等,如DeepSeek-Coder和Qwen2.5-Coder等。
🔸代码基准:包括代码翻译、代码检索、代码完成、代码调试和结构化数据理解等。
📝重点思路
🔸提出了CodeArena基准测试,包含397个手动注释样本的综合代码评估基准,涵盖7个主要类别和40个子类别,用于评估模型生成响应与人类偏好的对齐。
🔸开发了SynCode-Instruct合成指令语料库,包含近20B的token,用于训练和评估代码生成模型。
🔸实施了严格的人工注释过程,包括4名全职员工和4名高级编程开发人员进行注释和质量检查,确保数据集的高质量和多样性。
🔸对Qwen2.5-Coder-32B模型进行了微调,并采用了Adam优化器和余弦衰减调度器。
🔸系统地评估了40多个LLM在CodeArena上的表现,并创建了一个动态更新的排行榜。
🔎分析总结
🔸CodeArena的有效性:CodeArena能够有效测量模型生成响应与人类偏好的对齐,尤其是在非算法问题上表现出色。
🔸模型性能差异:在CodeArena上,闭源模型(如o1和Claude系列)的表现优于开源模型(如Qwen-Coder),强调了与人类偏好对齐的重要性。
🔸合成数据的影响:使用SynCode-Instruct进行训练的模型(如Qwen2.5-SynCoder)在CodeArena上表现出色,验证了大规模合成数据对模型性能的提升。
🔸多样性评估:CodeArena的查询分布非常多样化,适合在现实场景中评估人类偏好,而传统的代码执行基准(如MultiPL-E)的查询分布较为狭窄。
💡个人观点
论文的核心是提出了基准测试和合成指令语料库,用于评估和改进代码生成模型。
🧩附录