AIBetas消息,2023年8月24日,Meta发布全新的代码的大语言模型——Code Llama,它可以使用文本提示来生成代码。Code Llama 目前是是免费的,同时可以用于研究和商业用途。根据Meta官方说明,目前Code Llama在代码任务上超越了其他公开的可用的先进的语言模型。
Code Llama 基于 Llama 2 构建,有三种模型可供选择:
- Code Llama,基础代码模型;
- Codel Llama – Python,专门针对 Python
- Code Llama – Instruct,专门用于理解自然语言指令
Code Llama 是 Llama 2 的一个代码专用版本,它是通过在其代码特定的数据集上进一步训练 Llama 2,并从同一数据集中采样更多数据更长时间而创建的。本质上,Code Llama 具有增强的编码能力,建立在 Llama 2 的基础上。它可以从代码和自然语言提示(例如,“写一个输出斐波那契数列的函数。”)生成代码和关于代码的自然语言。它也可以用于代码补全和调试。它支持许多当今最流行的语言,包括 Python、C++、Java、PHP、Typescript(Javascript)、C# 和 Bash。
Meta将发布三种尺寸的 Code Llama,分别具有 70亿、130亿 和 340亿 参数。这些模型中的每一个都使用 500B 代码令牌和代码相关数据进行训练。 70亿和130亿基础和指令模型也经过了中间填充(FIM)功能的训练,允许它们将代码插入现有代码中,这意味着它们可以支持开箱即用的代码完成等任务。
这三种模型可满足不同的服务和延迟要求。例如,70亿型号可以在单个 GPU 上提供。340亿模型返回最佳结果并允许更好的编码帮助,但较小的 70亿和 130亿模型更快,更适合需要低延迟的任务,例如实时代码完成。
Code Llama 模型为稳定世代提供多达 100,000 个上下文令牌。所有模型都针对 16,000 个令牌的序列进行训练,并显示对多达 100,000 个令牌的输入的改进。
除了是生成较长程序的先决条件之外,具有较长的输入序列还可以解锁代码LLM令人兴奋的新用例。例如,用户可以从其代码库中为模型提供更多上下文,以使各代更具相关性。它还有助于调试大型代码库中的方案,在这些方案中,掌握与具体问题相关的所有代码对开发人员来说可能具有挑战性。当开发人员面临调试大量代码时,他们可以将代码的整个长度传递到模型中。
Code Llama – Python 是 Code Llama 的语言专用变体,在 Python 代码的 100B 令牌上进一步微调。因为Python是代码生成中基准最高的语言,而且Python和PyTorch在AI社区中发挥着重要作用,专门的模型提供了额外的效用。
Code Llama – Instruct是代码美洲驼的微调和对齐变体的指令。指令调整继续训练过程,但目标不同。该模型被馈送“自然语言指令”输入和预期输出。这使得它更好地理解人类对提示的期望。我们建议在使用代码骆驼生成代码时使用代码骆驼 – 指示变体,因为代码骆驼 – 指示已经过微调,以自然语言生成有用且安全的答案。
基准测试表明,Code Llama 的性能优于开源、特定于代码的 LLM,并且优于 Llama 2。例如,Code Llama 34B在HumanEval上的得分为53.7%,在MBPP上的得分为56.2%,与其他最先进的开放解决方案相比最高,与ChatGPT相当。
Code Llama地址
Code Llama Github地址:https://github.com/facebookresearch/codellama
Code Llama模型下载:https://ai.meta.com/resources/models-and-libraries/llama-downloads/
Code Llama研究论文:https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/
暂无评论内容