根据Meta的博文,Code Llama分为7B、13B和34B三个不同参数版本,可满足不同的服务和延迟要求。每个版本的模型都使用了500B 与代码相关的数据进行训练。
图源:Meta
最小的7B参数模型可以在单个GPU上运行,响应速度快,适用于需要低延迟的任务。但相比更大的模型,在代码生成或理解方面不够精确。最大的34B模型能提供最佳的编码辅助,在复杂的编程任务中表现最好。但需要更多的计算资源,延迟也可能更高。中等规模的13B 参数模型在性能和延迟之间提供了一个平衡点。另外,7B和13B的模型经过了中间填充(fill-in-the-,FIM)功能的训练,能够理解如何在一段现有的代码中添加新代码,可以直接用于自动代码补全等任务,无需额外的设置或训练。
Code Llama支持一次性理解并记住最多10万token的上下文,强大的文本处理能力对于处理大型代码库或长篇文章都非常有用。比如,当开发者需要处理大量代码时,可以将整个代码片段一次性“喂”给Code Llama。
值得一提的是,为了满足更多特定需求,Meta还进一步针对和自然语言指令微调了两个Code Llama的变体,分别称作Code Llama-和Code Llama-。
是目前最受欢迎的编程语言之一,在多个领域有着广泛应用,特别是在数据科学、机器学习等领域。一个专门针对的模型能更准确地生成和理解代码,提高模型在处理相关任务时的性能。
另一个子版本Code Llama-更注重理解自然语言指令,非常适合那些不是很熟悉编程但又有这方面需求的用户。这个版本更容易理解用自然语言给出的指令,也就是更适合非专业用户,除了可以用于代码生成,也能胜任其他与代码相关的自然语言处理任务,如代码注释或文档生成。
通过提供更多垂直的子版本,Code Llama模型能够覆盖更广泛的用例和人群,满足不同场景下的特定需求,更容易获得竞争优势。
不过,Meta也有在博文中说明,由于Code Llama更专注于代码任务,因此并不适合作为聊天或写文章等日常语言任务的基础模型,它主要是为了帮助人们编程或处理代码问题而设计的。
性能和安全性双领先
而有关Code Llama的具体性能,在多个代码基准测试中,Code Llama达到了开源模型中最先进的性能。Code Llama所有模型在-E上都优于其他公开可用的模型。34B参数版本在上得分为53.7%,在MBPP上得分56.2%,这与(GPT 3.5)相当,优于其他所有开放解决方案。
图源:相关论文截图
在安全性上,Meta采取了许多措施,为做评估,研究者特意用一些指令请求恶意代码,测试Code Llama是否会生成不好的输出。并对比做了同样的测试。结果显示,Code Llama更不容易生成有问题或者有害的代码。
Meta还发表了一篇详细介绍Code Llama的论文(题为Code Llama: Open for Code),披露了Code Llama开发的细节以及如何进行基准测试等信息。
值得一提的是,在Meta发布的论文中出现一个名为“ Code Llama”的模型(见上图),各项评分都非常之高,但该模型只在论文中一闪而过,Meta并未提及,或许后续Code Llama会迎来进一步增强。