Meta 开源代码生成大语言模型 Code Llama - InfoQ

www.infoq.com 2026-07-10T21:16:30.532707

Meta 近日开源了 Code Llama,这是一个基于 Llama 2 基础模型 的代码生成大语言模型(LLM),并采用相同的社区许可协议。Code Llama 在 500B 个代码 token 上进行了微调,提供三种模型规模,参数最多达 34B。在代码生成基准评估中,该模型表现优于所有其他开源模型,并与 ChatGPT 相当。

Meta 使用了 Llama 2 基础模型的三种规模——7B、13B 和 34B 参数——作为 Code Llama 的起点。这些模型在一个“近乎去重”的代码数据集以及与代码相关的自然语言(如问题和讨论)上进行了微调。除了基础版本外,Meta 还训练了每种模型规模的两种变体:Code Llama - Python,在 Python 代码上进一步微调;以及 Code Llama - Instruct,在自然语言指令上微调。所有九个模型版本均获得 商业使用许可。Meta 表示:

Code Llama 旨在支持所有领域的软件工程师——包括研究、工业、开源项目、非政府组织和企业。但还有更多用例超出了我们的基础模型和指令模型所能服务的范围……我们希望 Code Llama 能激励其他人利用 Llama 2 为研究和商业产品创造新的创新工具。

InfoQ 此前报道过其他代码生成 AI 模型,包括基于 GPT-3 并驱动 GitHub Copilot 的 OpenAI Codex。与 GPT 系列的其他模型一样,Codex 只能通过 OpenAI 的 Web 服务 API 获取。这推动了开放模型的发展,例如 BigCode 的 StarCoder。StarCoder 还有一个优势:它是在“宽松许可”(permissively-licensed)的代码上训练的,因此使用其输出不太可能导致许可证违规。虽然 Llama 2 及其衍生模型(包括 Code Llama)可商用,但 Code Llama 的许可证指出其输出“可能受第三方许可的约束”。

除了在代码上微调模型,Meta 还执行了长上下文微调(LCFT,long context fine-tuning),这增加了模型可处理的输入长度。Llama 2 的训练序列长度最多为 4k token(标记),而 Code Llama 的 LCFT 则包括长达 16k 的序列。Meta 对此的目标是“解锁仓库级别的完成或合成推理”,使模型能够访问整个项目的代码,而不仅仅是单个函数或源文件。Meta 的实验表明,对于长达 100k token 的序列,该模型表现出“稳定的行为”。

在一条关于该模型的 Twitter/X 帖子中,Toros University 助理教授 Furkan Gözükara 指出,GPT-4 在 HumanEval 基准测试上仍然优于 Code Llama。另一位用户回复说 GPT-4 “不是 34B”,这意味着 GPT-4 是一个大得多的模型。程序员 AI 助手 phind 的创建者发布了一个微调版本,该版本基于 34B 参数的 Code Llama - Python,他们声称在 HumanEval 上取得了 69.5% 的 pass@1 得分,超过了 GPT-4 公布的 67% 的得分。其中一位开发者加入了 Hacker News 的讨论关于他们的发布,并说道:

这个模型仅仅是一个开始——它是一次早期实验,我们下周会推出改进版本。

查看原文