今天,Meta正式发布了Code Llama 70B,作为Code Llama系列中规模最大,性能最强的版本,一举击败了GPT-4!
目前,模型共有三个版本,均可免费用于研究和商业目的:
CodeLlama - 70B:基础代码模型;
CodeLlama - 70B - Python:专门针对Python的 70B模型;
CodeLlama - 70B - Instruct:专门用于理解自然语言指令的模型。
算上8月份发布的Code Llama 7B、13B和34B,这个家也算是完整了。
论文地址:https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/
其实,Code Llama在发布时就已经展现了不俗的实力,在一众代码生成模型中处于领先位置。
不过GPT-4依然凭借着67.0的HumanEval(pass@1)得分数遥遥领先(Code Llama 34B为53.7)。
尽管后来又有Code Llama的微调版本获得了更好的成绩,却并没有进入Meta的这个官方表格。
但是!在寒窗苦读了5个月之后,Code Llama终于一鸣惊人,以最强的70B模型登顶全部三项测试的榜首。
其中,CodeLlama-70B-Instruct在HumanEval上更是直接拿下了67.8的高分,一举跻身当下最强开源模型的行列。
可以说,除了GPT-4外,其他同类模型几乎都难以望其项背。
对此,LeCun转发并宣传了自家的新模型:「新一代Code Llama依然开源,正如它的前辈们一样。」
而终于发现自家AI是块宝的小扎,也加大了宣传力度:
我们正式开源了一个全新且更加强大的Code Llama,包含一个庞大的700亿参数的模型。
在当今的AI域,编写和编辑代码已经成为了最关键的应用之一。同样,能够编程也对AI模型在其他领域进行更加严密和逻辑性的信息处理显得尤为重要。
我对我们在这方面取得的进展感到非常自豪,并且非常期待在未来的Llama 3及后续模型中加入这些先进的成果。
技术细节
Code Llama是一款能够通过文本提示生成代码的大语言模型。它不仅能提升现有开发者的工作效率,还能降低编程新手的学习门槛。
Meta希望将Code Llama打造成为一款既能提高生产力,又具有教育价值的工具,助力程序员创建更加稳定且文档齐全的软件。
Code Llama是基于Llama 2开发的,专门用于编程任务的版本。
通过在专为编码设计的数据集上进行更深入的训练,Code Llama能够理解和生成代码,帮助完成编程任务(如编写函数、代码补全和调试),
并支持包括Python、C++、Java、PHP、Typescript (Javascript)、C#和Bash等在内的多种流行编程语言。
到目前为止,Code Llama系列集齐了四种规模,分别拥有7B、13B、34B和70B的参数,
前三个模型采用500B token的代码和相关数据进行训练,而新发布的70B模型使用了1TB token。
另外,7B和13B基础模型和指令模型还经过中间填充(FIM)功能的训练,具备直接在现有代码中插入新代码的能力(代码补全)。
Code Llama系列模型针对不同的需求和性能要求进行了优化:
7B模型能在单个GPU上运行,适合快速响应的场景;而34B和70B模型则提供了更高级的编码辅助功能,但运行速度较慢。
Code Llama能够处理长达100000 token的上下文,这意味着模型可以理解和生成较长的程序代码。
这对于处理大型代码库中的调试任务特别有用,开发者可以提供大量代码上下文,以获得更准确的编码建议。
此外,Code Llama还推出了两个特别版本:Code Llama - Python 和 Code Llama - Instruct。
考虑到Python在AI社区的重要性,Code Llama - Python针对 Python代码进行了特别优化(使用100B token的Python代码数据进行微调),使其在生成Python代码时更加流畅和准确。
CodeLlama-70B-Python还可以处理一系列任务,例如网络抓取、数据分析、机器学习(ML)和Web开发。
而Code Llama - Instruct则通过接受自然语言指令和期望输出的方式进行训练,使其更擅长根据用户的需求生成代码或答案。
CodeLlama-70B-Instruct还可以用于处理排序、搜索、过滤和操作数据,以及实现算法(二进制搜索、斐波那契和阶乘等)。
官方建议在需要代码生成时优先考虑使用Code Llama - Instruct,以获得更安全、更有用的结果。
需要注意的是,主要用于编程问题的Code Llama和Code Llama - Python,并不适合处理一般的自然语言任务。
基准测试
下面看一下新的Code Llama在同类模型中的表现如何,这里采用业内广泛应用的编程基准测试:
HumanEval和Mostly Basic Python Programming (MBPP)。
HumanEval是一个包含164个编程问题的基准数据集,用于测试代码生成模型的功能正确性和逻辑性,而MBPP则测试模型依据具体描述编写代码的技巧。
我们可以看到前代的34B表现已经很好了,而参数量翻了一倍的Code Llama 70B老大哥直接霸榜,并且相比于34B性能显著提升。
其中,CodeLlama-70B-Instruct在HumanEval上得分高达67.8,超过了CodeGen-16B-Mono(29.3)和StarCoder(40.1)等开放模型之前的最佳成绩,并与GPT-4(68.2)和Gemini Pro(69.4)等闭源模型相当。
当然,为了更负责任地开发AI模型,Meta已经采取了多项安全措施,并对生成恶意代码的风险进行了量化评估。
结果显示,相比于ChatGPT(GPT3.5 Turbo),Code Llama给出的回答更为安全。
挑战GPT-4,coding模型卷起来了!
目前,通过各各类主流的平台和框架都可以访问和使用Code Llama 70B,例如Hugging Face、PyTorch、TensorFlow和Jupyter Notebook。
此外,Meta AI还提供了针对不同目的和语言,使用和微调模型的文档和教程。
而随着模型的发布,各大AI平台也纷纷加入了对Code Llama 70B的支持:
并且还可以直接开玩:
更有大佬把Code Llama 70B跑到了苹果的处理器上,只不过「有点热」。
然后这位索性把Code Llama 70B直接量化到了4 bit。