今天,我们发布了 Code Llama,这是一种大型语言模型 (LLM),可以使用文本提示来生成和讨论代码。Code Llama 是针对编码任务的公开法学硕士的最先进的。它有可能使开发人员的工作流程更快、更高效,并降低学习编码人员的进入门槛。Code Llama 有潜力用作生产力和教育工具,帮助程序员编写更强大、文档更齐全的软件。
我们相信,开放的人工智能方法最适合开发创新、安全和负责任的新人工智能工具,因此我们在与 Llama 2 相同的社区许可下发布 Code Llama 用于研究和商业用途。
Code Llama 是Llama 2的代码专用版本,是通过在其特定于代码的数据集上进一步训练 Llama 2 来创建的,从同一数据集中采样更多数据的时间更长。从本质上讲,Code Llama 具有增强的编码功能。它可以根据代码和自然语言提示生成代码和有关代码的自然语言(例如,“给我写一个输出斐波那契序列的函数”)。它还可用于代码完成和调试。它支持当今使用的许多最流行的编程语言,包括 Python、C++、Java、PHP、Typescript (Javascript)、C#、Bash 等。
我们将发布三种尺寸的 Code Llama,分别具有 7B、13B 和 34B 参数。每个模型都使用 500B 代码令牌和代码相关数据进行训练。7B 和 13B 基础模型和指令模型也经过了中间填充 (FIM) 功能的训练,允许它们将代码插入到现有代码中,这意味着它们可以支持开箱即用的代码完成等任务。
这三种模型满足不同的服务和延迟要求。例如,7B 模型可以在单个 GPU 上运行。34B 模型返回最佳结果并提供更好的编码辅助,但较小的 7B 和 13B 模型速度更快,更适合需要低延迟的任务,例如实时代码完成。
我们还进一步微调了 Code Llama 的两个附加变体:Code Llama – Python 和 Code Llama – Instruct。
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 旨在为所有领域的软件工程师提供支持,包括研究、工业、开源项目、非政府组织和企业。但仍有更多用例需要支持。我们希望 Code Llama 能够激励其他人利用 Llama 2 为研究和商业产品创建新的创新工具。
在我们的AI 博客上了解有关 Code Llama 的更多信息或下载Code Llama 模型。