继开源商业模型Llama 2发布后,Meta近日正式发布了该模型的编程版本Code Llama,大大弥补了之前代码任务性能不佳的缺点,进一步缩小了与闭源GPT模型的差距,测试效果直接赶上了GPT-4。
值得一提的是,就在Code Llama发布的前两天,OpenAI开放了GPT3.5的微调功能,允许开发者和企业根据自己的需求定制模型。作为目前开源和闭源领域综合实力最强的两款机型,难免会有一些竞争,甚至有点火药味。
编程作为大语言模型最重要的应用领域之一,也离不开目前几乎所有的技术产品和服务,对这种能力的优化和提升具有重要意义。
此次发布的Code Llama是在Llama 2的基础上,通过特定的代码数据集进一步训练而成。它支持C++、Java、Python、PHP、Typescript(Javascript)、C#和Bash等多种流行语言,并且仍然是开源的,可以商用。
代码Llama对程序员和初学者都非常有用。无论是使用专业编程语言还是自然语言(比如普通话)来描述编程需求,Code Llama都能很好地理解并生成相应的代码或代码相关的解释。这就大大降低了开发门槛和效率。
多版本模型涵盖了更具体的场景需求。
根据Meta的博文,Code Llama分为7B、13B、34B三个不同的参数版本,可以满足不同的服务和时延需求。模型的每个版本都用500B令牌代码相关数据进行训练。

来源:Meta最小的7B参数模型可以在单个GPU上运行,响应速度快,适合要求低延迟的任务。但与更大的模型相比,它在代码生成或理解上不够准确。最大的34B型号可以提供最好的编码帮助,在复杂的编程任务中表现最好。但是需要更多的计算资源,并且延迟可能更高。中等大小的13B参数模型提供了性能和延迟之间的平衡。此外,7B和13B的模型经过了中间填充功能的训练,可以理解如何在现有代码中添加新代码,可以直接用于自动代码完成等任务,无需额外的设置或训练。
Code Llama支持一次性理解和记忆多达10万个token的上下文,强大的文本处理能力对于处理大型代码库或者长文章非常有用。比如,当开发者需要处理大量代码时,可以一次性“喂”整个代码片段来编码Llama。
值得一提的是,为了满足更具体的需求,Meta还针对Python和自然语言指令进一步微调了两种代码Llama的变体,分别叫做Code Llama-Python和Code Llama-Instruct。
Python是目前最流行的编程语言之一,广泛应用于许多领域,尤其是数据科学、机器学习等领域。特定于Python的模型可以更准确地生成和理解Python代码,并提高模型处理相关任务的性能。
另一个子版本Code Llama-Instruct更注重理解自然语言指令,非常适合对编程不是很熟悉但有这个需求的用户。这个版本更容易理解用自然语言给出的指令,也就是更适合非专业用户。除了代码生成,它还可以胜任其他与代码相关的自然语言处理任务,比如代码标注或者文档生成。
通过提供更多的垂直子版本,Code Llama模型可以覆盖更广泛的用例及人群,满足不同场景的具体需求,更容易获得竞争优势。
不过Meta也在博文中解释说,由于Code Llama更侧重于代码任务,因此不适合作为聊天或写文章等日常语言任务的基础模型。它主要是用来帮助人们编程或处理代码问题的。
性能和安全性领先。
至于Code Llama的具体性能,Code Llama在几次代码基准测试中都达到了开源模型中最先进的性能。所有Code Llama模型在MultiPL-E-e中均优于其他公开发售的模型,参数版本34B的评分在HumanEval上为53.7%,在MBPP上为56.2%,与ChatGPT(GPT 3.5)相当,优于其他所有开放解决方案。

来源:相关论文截图在安全性方面,Meta采取了很多措施。为了进行评估,研究人员故意使用一些指令来请求恶意代码,以测试代码Llama是否会产生糟糕的输出。并与ChatGPT做同样的测试对比。结果表明,代码Llama不太可能生成有问题或有害的代码。
Meta还发表了一篇详细介绍Code Llama的论文(Code Llama:Open Foundation Models for Code),披露了Code Llama开发的细节以及如何进行基准测试。
值得一提的是,Meta发表的论文中出现了一个名为“自然码美洲驼”的模型(见上图),所有的评分都很高,但该模型只在论文中闪现,Meta并未提及。或许后续的Codellama会进一步增强。
更多详细信息可在该文件中找到:
https://arxiv.org/abs/2308.12950
微信扫码
QQ扫码
您的IP:10.8.208.110,2025-12-17 03:51:32,Processed in 0.24718 second(s).