Meta最近开源了Code Llama,这是一个基于Llama 2基础模型的代码生成LLM,并且采用了相同的社区许可。Code Llama在500 B个代码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创建用于研究和商业产品的新的创新工具。”
与GPT系列中的其他模型一样,Codex只能通过OpenAI的Web服务API获得。这促使了开放模型的开发,例如BigCode的StarCoder。StarCoder的优势还在于其是基于“容许许可”的代码进行训练,因此使用其输出内容不太可能导致许可证违规。尽管Llama 2及其派生模型,包括Code Llama,可以用于商业用途,但Code Llama许可证指出其输出“可能受第三方许可证的约束”。
除了在代码上进行微调之外,Meta还进行了长上下文微调(LCFT),从而增加了模型可处理的输入长度。虽然Llama 2在4k个token的序列上进行了训练,但Code Llama的LCFT包括长达16k个token的序列。Meta的目标是“解锁用于完成或合成的存储库级推理”,让模型能够访问整个项目的代码,而不仅仅是单个函数或源文件。Meta的实验显示,该模型对长达100k个token的序列表现出“稳定的行为”。
在关于该模型的Twitter(X)主题讨论中,Toros大学的助理教授Furkan Gözükara指出,GPT-4在HumanEval基准测试中仍然表现优于Code Llama。另一位用户回答说GPT-4“不是34B”,这意味着GPT-4是一个更大的模型。AI助手程序phind的开发者发布了Code Llama - Python的34B参数版本的经过微调的版本,并声称在HumanEval上取得了69.5%得分,超过了GPT-4的发布得分67%。其中一位开发者加入了Hacker News关于其发布的讨论,并表示:
“这个模型只是一个开始——这只是一个早期的实验,下周我们将进行改进。”
Code Llama的源代码可在GitHub上获取。在从Meta获得批准后,可以下载模型文件。