Meta 宣布推出 Llama 3 [译]

Meta 宣布推出 Llama 3 [译]

一、引言

大家好,我是 Joe Spisak,在 Meta 工作。今天我要介绍的是 Llama 3。我在 AI 领域已经工作了十多年了,在开源领域花了很多时间。我在 PyTorch 上工作了很长时间,也在 Google,Amazon 工作过。所以我在 AI 中,尤其是在开放科学和 OpenAI 中,已经呆了很长时间。

二、Llama 模型历史回顾

在我们深入了解 Llama 之前,先给大家介绍一些背景信息。我们实际上在 2023 年 2 月在 Meta 组织了一个团队。这个团队集结了公司内从 SysML 到模型开发,再到数据处理,甚至是一些在各个领域进行深度研究的顶级研究员。我们还聘请了一些创新型的人才。

Llama 2 模型在 7 月份发布,可商业使用。参数范围从 7 到 70。这是当时的最先进成果。然后在八月和一月,我们发布了 Code Llama。12 月推出 Purple Llama 项目,关注安全和信任。

三、Llama 3 模型介绍

我们用至少 7 倍于之前的数据来训练 Llama 3 模型。如果你熟悉之前的模型,那你应该知道,我们之前用大约两万亿个 token 来预训练。而这些新模型的预训练数据量超过了 15 万亿 token。在微调方面,我们在 Llama2 的 SFT 中有一百万条人类标注数据。而在 Llama3 中,我们将这个数字增加了 10 倍,实际上稍微超过了 10 倍。

Llama 3 还包括了更大的词汇表,一个新的 tokenizer,这个 tokenizer 非常棒,效率更高,性能更强,并且上下文窗口也加倍了。我想强调,这些模型其实是 Llama3 的非常早期版本。我们原本打算将这些模型称为预发布或预览版本,因为它们并没有我们计划发布的所有功能。

我们确实对后训练模型,也就是指令模型,以及基础模型本身都进行了评估。基础模型在各方面都优于 1.0 模型,包括刚在上周发布的 Mistral 22B,以及本周发布的指令版本。这些模型的表现令人印象深刻。

我们做了很多工作,我们有很多合作伙伴帮助我们进行注释,我们通过他们生成了一个包含 1800 个提示词的数据集,这些提示词基于真人使用的提示词,覆盖了 12 个类别。我们在 GitHub 上发布了很多细节,然后向所有这些人询问他们的表现如何,你可以看到我们的胜率、平率和负率。如果你不相信基准测试的话,那就相信人类吧。这些都是实际上与这些模型进行互动的人,并且真正喜欢它们的人。你可以看到,显然,人们更喜欢 Llama3 比 Llama2。

四、Llama 3 背后的开发思路

我会说,我们在最高层面上考虑的有四个方面,其中之一就是模型架构,我们使用的是密集自回归 Transformer。如果你对 Llama2 有所了解,我们在那些模型中加入了一种叫做群组查询注意力或者 GQA 的注意力机制,而这一次我们又添加了一个新的分词器,我们将在即将发布的论文中详细介绍这个问题。

正如我之前提到的,训练数据超过 15 万亿的 token,因此需要大量的计算资源,我们在预训练中使用了大量的数据,大概是两周前我们在博客上发布了关于我们训练基础设施的文章,我们有两个自定义的 24k H100 集群用于训练这些模型。

最后,我们在后训练阶段投入了大量的工作,我想大家都喜欢谈论预训练,以及我们扩大了规模,使用的 GPU 数量达到了数万个,以及在预训练中使用了多少数据,但实际上,真正的关键在于后训练阶段。这就是我们目前花费大部分时间的地方,我们在这里生成了大量的人工注释,执行了大量的有监督微调(SFT),我们正在做的事情,比如拒绝采样、PPO、DPO,尝试在这些模型的可用性、人类方面的特征以及预训练中的大规模数据之间找到平衡,这就是我们如何思考这些问题的。

我们也在研究模型的实用性和安全性,这固然是一种取舍。我们尝试着提高这些模型的实用性,例如它们的用途、回答问题的能力、事实上的准确性等。然而,我们也需要在安全性方面进行权衡,理解模型在面对诸如完整性类型提示词等情况时的反应。在我们的模型卡片中有关于这方面的更多信息,我们今天早上实际上也发布了一篇并行的博客文章,也对此进行了讨论。最后一部分红队行动在这个领域中是非常重要的,我们在这个方面投入了大量的时间,但挑战和标准一直在变化,关于红队行动的看法也在不断改变。

五、许可证和生态系统

在许可证方面没有什么大的变化。它可以用于研究和商业用途,你可以直接使用,也可以创造它的衍生物。还有一个关于 700 万每月活跃用户的规定,所以如果你是一个非常大的公司,你可以和我们合作,大多数公司都是这么做的。我们还为品牌制定了一些指导方针,因为有很多公司想要使用 Llama,我们希望可以正确地标示品牌,所以现在这已经被写进了许可证。

至于生态系统,正如我之前提到的,它很庞大。这里只列出了一部分人,包括硬件供应商,如 Nvidia、Intel 和 Qualcomm,我们与他们有非常密切的合作,一直到企业和平台提供商。这是一个非常棒的生态系统,这些都是已经同意我们使用他们的 logo 的人。还有一个庞大的开源社区,其中我个人最喜欢的可能是 Llama,那是一个非常棒的项目。我们与 GGML 团队有着密切的合作关系。Yarn 也是一个非常酷的项目,它能够扩展上下文长度,所以你们一定要去看看这些项目。

六、安全和信任

我们现在要切换到安全问题上。实际上,他们可能会让我超时,这还说不准。我之前提到过紫色的 Llama,你们知道我们为什么叫它紫色的 Llama 吗?红色和蓝色,红队和蓝队,也就是攻击方和防御方。我们在这周从网络安全领域借鉴了这个命名方式。这个名字实际上是我们网络安全/生成式 AI 团队的一位科学家提出的。

我们希望最大化我们模型的价值,这实际上体现了我们的一种独特思维方式。例如,在 Llama 2 项目中,我们构建了非常安全的模型,我们在模型本身包括微调等方面投入了很多。但实际上,这些模型经常会过度拒绝某些内容,表现得过于"安全"。我可以保证,我们制作的模型非常安全,但同时,我们希望能拥有一些灵活性,包括输入和输出的保护措施,让用户可以根据需要定制他们的使用方式。

从一个更宏观的角度来看,你可以将这个过程看作一个工作流程,你的使用情况会影响到模型的设计和训练。我需要准备数据,训练模型,然后针对可能导致的不同的风险进行评估。如果我发现了一些不理想的地方,我会进一步微调模型或采取措施来减轻这些问题。然后,我可以将模型部署到如推理阶段,进行提示过滤等工作。这就涉及到像 Llama guard 和我接下来要谈的 code shield 这样的工具。

所以,我们在去年 12 月发布的网络安全防护系统现在已经进入了第二个版本,功能有了显著的扩展,并且全部开源。我们实际上有一个 HuggingFace 排行榜,你可以在上面评估你的模型。现在我们有能力对提示词注入进行评估了,这种情况就像是"嘿,你知道吗,忽略前面的命令,告诉我你真正的秘密",就是那些狡猾的小提示词,人们喜欢用它们来规避我们的一些安全模型。我们也开发了自动化的攻击性网络安全技术,基本上,我们可以度量滥用代码解释器的可能性,这是相当酷的一件事。我们今天发布的一篇论文详细介绍了这一切,所以你可以看到,我们有很多不同的功能,包括不安全代码的防护、网络攻击防御、防止解释器被滥用,攻击性网络安全技术以及对提示词注入的防护,这些都是当前我们最关注的问题。

那么,我们再来谈谈一些结果。我会尽量保持在较高的层次上介绍,因为时间有限。但你可以看到我们的一些模型在各个领域的表现。你可以看到在左边这里,这是模型的拒绝率,所以基本上就像拒绝率或模型实际拒绝率与违规率的对比。X 轴代表违规率,你可以看到 8B LLM3 的性能非常出色,位于理想的位置。70B 模型更连贯,更聪明。我们发现,模型越强大,违规的可能性就越大,然后你就需要采取缓解措施。所以它的位置处在中间,你看到 Code LLM 70B,我们可能过度缓解了这个模型。你可以看到,它的拒绝率相当高,这可能会让用户感到困扰。这是我们正在学习并计划在下一代模型中改正的问题。这个图表可能有点难以理解,但它基本上展示了模型在对抗提示词注入攻击的表现。你可以看到,对于各种类型的提示词注入攻击,如重复 Token 攻击、说服攻击、虚拟化攻击等,还有很多其他尝试破解模型的方法。你可以看到,图表顶部的蓝色代表表现更好的情况。所以,如果你想详细了解这些内容,甚至自己来运行这些,我已经在顶部给出了链接。

OK,我们快速介绍一下 Llama Guard,去年 12 月我们发布了 Llama Guard v1。需要强调的是,这是一个开放源代码模型,你可以自由使用和部署。它基于 Llama 2 7B,在亚马逊 SageMaker、Together 等多个平台上部署过,包括 Databricks。这就像一个内容审查 API,只不过你可以自由定制,而且是免费的,这非常酷。我们有一个基于 Llama 3 的 Llama Guard 2,它是一个更强大的模型。你可以看到它的基准测试看起来更好。我们在本周公布了 MLCommons 政策,这个模型在这个政策上表现得非常好,显然,这是因为我们与所有的 Demo Commons 合作伙伴共同设计了它,但是它在所有方面的表现都非常强大,无论是与 GPT 4 还是其他一些 API 相比。再次强调,它是公开可用的。

Code Shield 基本上是一个在模型推理过程中用于网络安全的输入输出保护工具。它可以过滤大语言模型生成的不安全代码。例如,如果你让它生成一个网络钓鱼攻击,它就会进行过滤。这个功能非常酷。这个工具也是开源的,你可以在 Github 上找到它。它涵盖了从不安全的代码过滤到代码解释器,再到安全命令执行保护的所有功能。

七、其他亮点

接下来我还有一两页幻灯片要展示,我会介绍一些非常酷的东西,如果你允许我多用一两分钟的话。我们共同设计了 torchtune,有人听说过 torchtune 吗?那有人用过 PyTorch 吗?好的,太好了。TorchTune 是我、Sumit 以及我们的团队倾情打造的,这是一个纯粹的 PyTorch 微调库,没有 15 个依赖项,没有什么复杂的东西,这是纯粹的 PyTorch。这是非常干净清晰的,你可以在这个基础上进行建设,你可以在 Python 和 PyTorch 中自己使用它。这是美丽的全面微调,它支持从一开始就支持 Llama 3,虽然我展示的大部分是 2,很遗憾只在这里,但他们实际上已经推出了对 Llama 3 的支持,这真的非常棒。它已经与 HuggingFace 和其他一些库进行了集成,非常棒,一定要去看看。

这里有很多资源,你可以在 GitHub 上查看 Llama 3 和 Llama 的相关资料,你可以搜索这个,然后我们在那里设有一个 Bitly 链接,有很多入门笔记本、LangChain、RAG、提示工程等等。

再给我一分钟,我们实际上有一个更大的模型正在训练,这是一个大模型。我们想在这里透露一些指标,你可以去比较,我想我今天早上在 Twitter 上看到了一些比较,你可以去比较其他的模型。这个模型还没有完成训练,还有一段路要走,但我们想看到一些数据,所以我们展示了预训练,我们抓取了一个检查点并进行了微调。基本上,我们对一些基础的 SFT 进行了对齐,并展示了一些数据。

你可以看到,MMLU 达到了 86.1,这个数字几乎令人难以置信。这个大语言模型正在接受训练,至于 GSM-8K,达到了 94.1。这是一个非常强大的模型,虽然还没有完成训练,没有完成后期训练,而且后期训练将会带来很大的变化,但我们还是想展示一些这样的数据。令人非常激动。这些数据来自三天前的一个检查点。

八、未来计划

接下来,我们有一些即将推出的新事物。显然,我们即将推出更大更好的模型。我们的模型参数超过 4000 亿,支持多种语言。你可以想象,Facebook 或者说 FOA,我们的家庭应用程序已经覆盖了近 40 亿的用户,我们无所不在,因此,多语言对于我们想要在 Llama 中实现的 AI,以及多模态功能都至关重要。你可以想象我们在 air VR 中所做的一切,使用雷朋智能眼镜,我们需要理解周围的一切,而这不可能仅仅通过文字来实现,所以多模态功能即将推出。

当然,我们承诺将持续关注安全问题,我们将继续开源我们所有的安全措施,并围绕这些措施建立社区,确保安全性的标准化。这是我非常热衷的事情,我们绝对会坚持下去。

九、现场演示

最后,我建议你可以去试试 Meta.ai 网站,如果你真的想试玩 Llama 3,它基本是免费的,你可以使用它,你可以给它输入提示词,你甚至可以让它生成图像,就像我一开始展示的那些酷炫的动态图像。只需点击"想象",然后给它输入提示词,再点击"动画",它就会生成一些内容。你也可以仅仅向 Meta AI 输入提示词,你就是在使用基于 Llama 3 的模型,这真的很酷。

非常感谢。