生成效率也有提升
CodeDPO:一种新型代码生成优化框架
北大李戈教授团队与字节跳动合作,提出了一种新型代码生成优化框架——CodeDPO,旨在解决现有监督微调(SFT)方法在代码生成过程中的局限性。该框架通过引入偏好学习,极大提升了代码生成的准确性和执行效率。
1. 背景与问题
尽管SFT方法提高了代码生成的质量,但它未能有效训练模型在正确与错误解决方案之间做出偏好选择,导致生成不理想输出的概率上升。为了解决这一问题,CodeDPO将偏好学习融入代码模型训练中,通过自验证机制提升模型的生成能力。
2. CodeDPO的关键步骤
CodeDPO的训练过程包含四个关键步骤:
- 数据种子构建:收集开源代码库中的数据种子,生成编程任务提示。
- 正确性优化与自验证评分:生成代码与测试,通过自验证机制评估并优化代码的正确性。
- 执行时间效率优化:在可信测试集上测量执行时间,构建效率优化数据集。
- 模型偏好训练:使用DPO方法训练模型,提升其对正确和高效代码的偏好。
3. 自验证机制与效率评估
CodeDPO通过自验证机制从真实代码库构建数据集,假设能够通过更多代码片段的测试用例更为可靠。每个代码片段和测试用例首先获得一个自验证分数,随后通过类PageRank算法进行迭代更新,以反映其正确性与效率。
4. 实验结果与提升效果
研究团队在HumanEval、MBPP和DS-1000数据集上进行了广泛的实验,结果表明CodeDPO在所有模型上均带来了显著提升。在DeepSeekCoder-6.7B模型上,配合SFT策略,最终在HumanEval上达到了83.5%的通过率。此外,生成代码的执行效率也得到了显著提升,平均加速1.25至1.45倍。
5. 结论与未来展望
CodeDPO框架展示了自生成、验证机制和偏好学习在代码生成领域的有效性,为未来更大规模的代码偏好优化奠定基础。该框架降低了对优质测试用例的依赖,有望在实际应用中帮助开发团队生成更优质的代码,提升软件的可靠性和交付质量。
联系作者
文章来源:量子位
作者微信:
作者简介:追踪人工智能新趋势,关注科技行业新突破
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...