Meta AI 重磅发布代码大模型 Code Llama

刚刚,Meta AI 如期而至发布了 Code Llama ,这是一个可以使用文本提示生成代码的大型语言模型 (LLM)。 Code Llama 是针对代码任务的公开LLM的最先进技术,有可能使当前开发人员的工作流程更快、更高效,并降低学习编码人员的进入门槛。 Code Llama有潜力用作生产力和教育工具,帮助程序员编写更强大、文档更齐全的软件。

值得让人兴奋的是,Code Llama 完全开源,现已公开供研究和商业用途。

一、Meta AI News

Meta AI 近期的重磅动作频频不断,短短一个多月的时间接连发布了一系列开源大模型,下面我们看看都有哪些有影响力的产品。

2023 年 7 月 14 日,Meta AI 隆重推出 CM3leon,这是一款首个多模态模型,可实现最先进的文本到图像生成性能,计算效率是竞争模型的 5 倍。

2023 年 7 月 18 日,Meta 和 Microsoft 推出下一代 Llama,Llama 2 可免费用于研究和商业用途。

Llama 2 是 Meta 的开源大语言模型 (LLM)。这基本上是 Facebook 母公司对 OpenAI 的 GPT 模型和 Google 的 AI 模型(如 PaLM 2)的回应,但有一个关键区别:它几乎可以免费供任何人用于研究和商业目的。2023 年 8 月 16 日

2023 年 8 月 2 日,Meta 的母公司 Facebook 推出了一款名为 AudioCraft 的新型生成式人工智能工具,该工具允许用户使用文本提示创建高质量的音频和音乐。该工具包括音频模型MusicGen、AudioGen和EnCodec,可以根据文本提示生成音乐和音频。

AudioCraft 由三个模型组成:MusicGen、AudioGen 和 EnCodec。 MusicGen 使用 Meta 拥有且专门授权的音乐进行训练,根据文本提示生成音乐,而 AudioGen 使用公共音效进行训练,根据文本提示生成音频。

2023 年 8 月 23 日,Meta AI 隆重推出 SeamlessM4T,这是第一个一体化多语言多模式翻译模型。这个单一模型可以根据任务执行多达 100 种语言的语音到文本、语音到语音、文本到文本翻译和语音识别任务。

同日,MetaAI 的新 SeamlessM4T 模型现已在 Hugging Face 上提供!

2023 年 8 月 24 日,据The Information报道,Meta于本周四(8月24日)发布开源代码生成AI模型 Code Llama。该模型旨在帮助开发人员在编写代码时自动推荐代码片段,以提升开发效率,同时也旨在使公司更便于创建AI助手。

二、Code Llama 的工作原理

Code Llama 是 Llama 2 的代码专用版本,是通过在其特定于代码的数据集上进一步训练 Llama 2 来创建的,从同一数据集中采样更多数据的时间更长。从本质上讲,Code Llama 具有增强的编码功能,建立在 Llama 2 之上。它可以根据代码和自然语言提示生成代码和有关代码的自然语言(例如,“给我写一个输出斐波那契序列的函数。”)它还可用于代码完成和调试。它支持当今使用的许多最流行的语言,包括 Python、C++、Java、PHP、Typescript (Javascript)、C# 和 Bash(有关完整列表,请参阅我们的研究论文)。

Meta发布了三种尺寸的 Code Llama,分别具有 7B、13B 和 34B 参数。每个模型都使用 500B 代码令牌和代码相关数据进行训练。 7B 和 13B 基础模型和指令模型也经过了中间填充 (FIM) 功能的训练,允许它们将代码插入到现有代码中,这意味着它们可以支持开箱即用的代码完成等任务。

这三种模型满足不同的服务和延迟要求。例如,7B 模型可以在单个 GPU 上运行。 34B 模型返回最佳结果并提供更好的编码辅助,但较小的 7B 和 13B 模型速度更快,更适合需要低延迟的任务,例如实时代码完成。

​Code Llama 模型提供了具有多达 100,000 个上下文标记的稳定生成。所有模型都在 16,000 个标记的序列上进行训练,并在最多 100,000 个标记的输入上显示出改进。

除了是生成更长程序的先决条件之外,拥有更长的输入序列还可以为代码法学硕士解锁令人兴奋的新用例。例如,用户可以为模型提供来自其代码库的更多上下文,以使各代更相关。它还有助于在较大的代码库中调试场景,在这种情况下,掌握与具体问题相关的所有代码对于开发人员来说可能是一项挑战。当开发人员面临调试大量代码时,他们可以将整个代码长度传递到模型中。

​此外,Meta还进一步微调了 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 已经过微调,可以用自然语言生成有用且安全的答案。

Meta不建议使用 Code Llama 或 Code Llama - Python 执行一般自然语言任务,因为这两个模型都不是为遵循自然语言指令而设计的。 Code Llama 专门用于特定于代码的任务,不适合作为其他任务的基础模型。

使用 Code Llama 模型时,用户必须遵守我们的许可和可接受的使用政策。

三、评估 Code Llama 的性能

为了针对现有解决方案测试 Code Llama 的性能,我们使用了两个流行的编码基准:HumanEval 和 Mostly Basic Python 编程 (MBPP)。 HumanEval 测试模型根据文档字符串完成代码的能力,MBPP 测试模型根据描述编写代码的能力。

我们的基准测试表明,Code Llama 的表现优于开源、特定代码的 Llama,并且优于 Llama 2。例如,Code Llama 34B 在 HumanEval 上得分为 53.7%,在 MBPP 上得分为 56.2%,与其他状态相比最高。最先进的开放解决方案,与 ChatGPT 相当。

​与所有尖端技术一样,Code Llama 也存在风险。负责任地构建人工智能模型至关重要,我们在发布 Code Llama 之前采取了许多安全措施。作为红队工作的一部分,我们对 Code Llama 生成恶意代码的风险进行了定量评估。我们创建了一些提示,试图以明确的意图征求恶意代码,并根据 ChatGPT (GPT3.5 Turbo) 对 Code Llama 对这些提示的响应进行评分。我们的结果发现,Code Llama 的回答更安全。

有关负责任人工智能、进攻性安全工程、恶意软件开发和软件工程领域专家的红队工作的详细信息,请参阅我们的研究论文。

四、References

Code Llama GitHub:https://github.com/facebookresearch/codellama

Code Llama Model:https://ai.meta.com/resources/models-and-libraries/llama-downloads/

Code Llama Pager:https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/

来源:Meta AI:https://ai.meta.com/blog/code-llama-large-language-model-coding/

猜你喜欢

转载自blog.csdn.net/FrenzyTechAI/article/details/132484658