Meta发布代码编写大语言模型,他们宣称是目前最强的代码模型
Meta今天正式发布了上周预告的 Code Llama,这是一个基于 Llama 2 构建的开源LLM,针对编码进行了微调。 Meta说经过他们的测试Code Llama 在代码任务上的表现优于最先进的公开可用的LLM(暗示GPT-4?),下面是一些关于模型的介绍:
Code Llama一共有三种型号
Code Llama,基础代码模型;Codel Llama - 专门针对 Python 的 模型;Code Llama - Instruct,它针对理解自然语言指令进行了微调。
Code Llama的工作原理
Code Llama 是 Llama 2 的一个专门针对编码的版本,它是通过在 Llama 2 的特定代码数据集上进一步训练,并从相同的数据集中更长时间地抽取更多数据来创建的。本质上,Code Llama 具有增强的编码能力,是基于 Llama 2 构建的。它可以从代码和自然语言提示生成代码和关于代码的自然语言(例如,“为我编写一个输出斐波那契序列的函数。”)。它还可以用于代码补全和调试。它支持当今许多最受欢迎的语言,包括 Python、C++、Java、PHP、Typescript(Javascript)、C# 和 Bash。
Code Llama大小
将发布三种大小的 Code Llama,分别具有 7B、13B 和 34B 参数。每个模型都使用 500B 代码token和代码相关数据进行训练。
这三种模型满足不同的服务和延迟要求。例如,7B 模型可以在单个 GPU 上运行。 34B 模型返回最佳结果并提供更好的编码辅助,但较小的 7B 和 13B 模型速度更快,更适合需要低延迟的任务,例如实时代码完成。
上下文
Code Llama 模型提供了具有 100K 个上下文的稳定生成。所有模型均在 16,000 个标记的序列上进行训练,并在最多 100,000 个标记的输入上显示出改进。
Code Llama 另外两个变体
Code Llama - Python 是 Code Llama 的语言专用变体,在 Python 代码的 100B 标记上进一步微调。因为 Python 是代码生成方面最具基准测试的语言,并且因为 Python 和 PyTorch 在 AI 社区中发挥着重要作用,所以相信专门的模型可以提供额外的实用性。
Code Llama - Instruct 是 Code Llama 的指令微调和对齐变体。指令调整继续训练过程,但目标不同。该模型接受“自然语言指令”输入和预期输出。这使得它能够更好地理解人们对提示的期望。建议在使用 Code Llama 进行代码生成时使用 Code Llama - Instruct 变体,因为 Code Llama - Instruct 已经过微调,可以用自然语言生成有用且安全的答案。
Code Llama 的性能
基准测试表明,Code Llama 的表现优于开源、特定代码的 Llama,并且优于 Llama 2。例如,Code Llama 34B 在 HumanEval 上得分为 53.7%,在 MBPP 上得分为 56.2%,与其他状态相比最高。最先进的开放解决方案,与 ChatGPT 相当。
立即使用Code Llama
Github代码:https://github.com/facebookresearch/codellama
模型下载:https://ai.meta.com/llama/unavailable/
论文:https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/