本文是LLM系列文章,针对《Code Llama: Open Foundation Models for Code》的翻译。
Code Llama:代码的开放基础模型
摘要 1 引言 2 Code Llama:专业化Llama2用于代码 3 结果 4 负责任的人工智能与安全 5 相关工作 6 讨论摘要
我们发布了Code Llama,这是一个基于Llama 2的大型代码语言模型系列,提供了开放模型中最先进的性能、填充功能、对大型输入上下文的支持,以及编程任务的零样本指令跟随能力。我们提供多种风格以涵盖广泛的应用程序:基础模型(Code-Lama)、Python专业化(Code-LAMA-Python),以及分别具有7B、13B和34B参数的指令遵循模型(CodeLlama-Directive)。所有模型都是在16k个token的序列上训练的,并在高达10万个token的输入上显示出改进。7B和13B代码Llama和代码Llama-指令变体支持基于周围内容的填充。Code Llama在几个代码基准测试中达到了开放模型中最先进的性能,在HumanEval和MBPP上的得分分别高达53%和55%。值得注意的是,Code Llama-Python 7B在HumanEval和MBPP上的性能优于Llama 2 70B,我们所有的模型在MultiPL-E上的性能都优于其他所有公开可用的模型。我们在允许研究和商业使用的许可证下发布Code Llama。
1 引言
2 Code Llama:专业化Llama2用于代码
3 结果
4 负责任的人工智能与安全
5 相关工作
6 讨论
我们发布了一系列代码专用的Llama 2模型,称为code-Lama,其中有三个主要变体,我们发布了三种大小(7B、13B和34B参数):code-Lama、code-Lama-Python和code-Lama-Directive。考虑到现实世界的应用,我们训练了7B和13B模型来支持填充,并训练了所有模型来利用大型上下文。我们测试了它们在高达10万个token的推理中的稳定性(图4a)。大型上下文微调和填充是以标准基准从左到右的代码生成基准为代价的(表10),这些基准都是基于短序列(即函数级别)。尽管如此,我们的30B模型在标准python完成基准测试的公共模型中是最先进的,与参数数量相似的模型相比,我们的其他模型具有竞争力。在多语言基准测试中,即使是我们最小的模型(Code Llama 7B)也优于其他所有公共模型。
Code Llama-instruction模型经过训练,可为Code Llama提供零样本指令能力。在这次进一步的微调中,我们在一定程度上提炼了Llama 2-Chat,我们不仅专注于更直接的帮助(图5c),还试图提供一个更安全的模型来使用和部署(第4节)。如图14所示,遵循指令和过于安全可能会在评估中花费一些分数(例如,表2中34B模型的HumanEval)。LLM需要进一步的工作来理解其指令中的上下文和细微差别。