Paper: Code Llama: Open Foundation Models for Code


一句话概括

Code Llama从通用的Llama 2基座出发,通过大规模代码数据的持续预训练和创新的长上下文微调技术,构建了一系列性能强大的开源代码基础模型。

核心思想

Code Llama的核心策略是”通用基础加代码专精”:以预训练好的Llama 2作为起点,在500B token的代码数据上进行持续预训练以获得代码能力。一个特别重要的创新是长上下文微调(LCFT):先用标准的4096上下文长度训练模型,再通过修改RoPE位置编码的基频参数在长序列上进行微调,成功将有效上下文窗口从4K扩展到100K。还提供了Python语言特化版本和指令遵循版本。

关键创新

1) 从通用LLM出发进行代码领域专精化的高效范式,在获得强大代码能力的同时保留了通用理解能力;2) LCFT方法高效地将上下文从4K扩展到100K,成本极低;3) 使用自指令生成技术构建代码指令微调数据。

深远影响

Code Llama成为衡量开源代码模型性能的重要基准线。它充分证明了从通用预训练模型出发进行领域适配比从零开始训练领域模型更加高效,这一”基础模型加持续预训练”的范式成为了业界的标准做法。

启发与思考

Code Llama”站在巨人肩膀上”的策略值得深思:与其从零开始耗费巨大资源训练领域模型,不如在已有的强大通用模型基础上进行领域适配。这种迁移学习的思路大幅降低了开发专业模型的成本和技术门槛。