本网站内容使用人工智能(AI)或机器翻译技术翻译,可能存在错误。

Skip to content
Artificial Intelligence
Programming Languages

SelfCodeAlign:代码生成的自对齐

Author

魏玉祥(伊利诺伊大学厄巴纳-香槟分校)、费德里科·卡萨诺(东北大学和Cursor AI)、刘家伟(伊利诺伊大学厄巴纳-香槟分校), 丁一峰(伊利诺伊大学厄巴纳-香槟分校)、纳曼·贾因(加州大学伯克利分校)、扎卡里·穆勒(Hugging Face)、哈姆·德·弗里斯(ServiceNow)、莱安德罗·冯·韦拉(Hugging Face)、阿琼·古哈(东北大学和Roblox)、张凌明(伊利诺伊大学厄巴纳-香槟分校)

Venue

NeurIPS 2024

Abstract

指令微调是一种监督式微调方法,可显著提升大型语言模型(LLMs)遵循人类指令的能力。 我们提出SelfCodeAlign,这是首个完全透明且灵活的管道,用于实现代码LLM的自我对齐,无需大量人工标注或知识蒸馏。SelfCodeAlign在整个数据生成过程中始终使用同一基础模型进行推理。它首先从高质量的种子代码片段中提取多样化的编码概念以生成新任务,随后针对每个任务采样多个响应,将每个响应与测试用例配对,并在沙箱环境中进行验证。 最后,筛选出通过验证的示例用于指令微调。在主要实验中,我们结合 SelfCodeAlign 与 CodeQwen1.5-7B 生成了包含 7.4 万组指令-响应对的数据集。基于该数据集进行微调后,模型在 HumanEval+ 上的 pass@1 达 67.1%,尽管其规模仅为 CodeLlama-70B-Instruct 的十分之一,却仍超越了后者。 在所有基准测试中,该微调模型始终优于使用OctoPack训练的原始版本——后者是此前无需人工标注或知识蒸馏的指令微调领域最先进的方法。此外,我们证明SelfCodeAlign在30亿到330亿词规模的各类大型语言模型(LLMs)上均表现有效,且基础模型通过与自身数据分布对齐能获得更大收益。 我们进一步验证了管道中各组件的有效性,结果表明 SelfCodeAlign 不仅优于直接从 GPT-4o 进行的蒸馏,也优于基于 GPT-3.5 的领先蒸馏方法(如 OSS-Instruct 和 Evol-Instruct)。 SelfCodeAlign 还催生了 StarCoder2-Instruct——首个完全透明、采用宽松许可协议且具备自我对齐能力的代码生成大语言模型,其编码性能达到了业界最先进水平。