优势
代码可以借助编译器、解释器和测试自动评估,是可验证奖励的常见任务来源。不过,通过有限测试不等于程序在所有输入上正确。纯文本代码生成通常仍是语言建模;结合界面图像、视频等输入时,才涉及额外模态。
挑战
- 仓库级上下文:真实开发要理解跨文件、跨模块的依赖,而不是单个函数。
- 工具链交互:编译器、测试框架、版本控制、终端等环境的调用。
- 一体化:把补全、修改、自我修复串成一个流程。
- 评测污染:公开评测题目容易混进训练数据,导致分数虚高。
代表工作
- Code Llama(2023):在 Llama 2 基础上继续训练得到的代码模型,支持长上下文与代码填充(infilling)。
- StarCoder2(2024):BigCode 项目的开放代码模型,基于 The Stack v2 数据集训练,强调负责任的数据开放。
- DeepSeek-Coder-V2(2024):在 DeepSeek-V2 的基础上做代码与数学方向的持续预训练,采用混合专家架构。
发展路线与评测
代码补全与解释 → 单文件修复 → 仓库级智能体。评测上重点关注 LiveCodeBench(持续收集新题、降低污染)与 SWE-bench(真实 GitHub 问题修复)。
参考资料
相关专题
- 工具使用与智能体设计:仓库级代码智能体。
- RLHF、RLAIF与RLVR:代码测试通过率是典型的可验证奖励。
- 持续预训练:代码模型常由通用模型持续预训练得到。
- 评测基准