开源大模型Llama 3王者归来!最大底牌4000亿参数,性能直逼GPT-4
ChatGPT 拉开了大模型竞赛的序幕,Meta 似乎要后来居上了。
本周四,AI 领域迎来重大消息,Meta 正式发布了人们等待已久的开源大模型 Llama 3。
扎克伯格在 Facebook 上发帖:Big AI news today.
与此同时,扎克伯格宣布:基于最新的 Llama 3 模型,Meta 的 AI 助手现在已经覆盖 Instagram、WhatsApp、Facebook 等全系应用,并单独开启了网站。另外还有一个图像生成器,可根据自然语言提示词生成图片。
Meta AI 网址:https://www.meta.ai/
扎克伯格表示,Meta 提供的生成式 AI 能力在免费产品中性能是最强大的。
在 Facebook、Instagram、WhatsApp 和 Messenger 上,用户现在可以借助 Meta AI 进行搜索,无需在应用程序之间切换:
当你浏览信息流的时候,还可以直接从帖子中向 Meta AI 询问更多信息:
图像生成器带来的玩法更加有趣,Imagine 功能带来了从文本实时创建图像。这一功能的测试版从今天开始在美国的 WhatsApp 和 Meta AI 网络体验上推出。
开始打字时,你会看到一个图像出现,每多输入几个字母,图像都会发生变化:
Meta 表示,Llama 3 在多个关键的基准测试中性能优于业界先进同类模型,其在代码生成等任务上实现了全面领先,能够进行复杂的推理,可以更遵循指令,能够可视化想法并解决很多微妙的问题。
简而言之,Llama 3 的主要亮点包括:
- 基于超过 15T token 训练,相当于 Llama 2 数据集的 7 倍还多;
- 支持 8K 长文本,改进的 tokenizer 具有 128K token 的词汇量,可实现更好的性能;
- 在大量重要基准中均具有最先进性能;
- 新能力范畴,包括增强的推理和代码能力;
- 训练效率比 Llama 2 高 3 倍;
- 带有 Llama Guard 2、Code Shield 和 CyberSec Eval 2 的新版信任和安全工具。
刚刚发布的 8B 和 70B 版本 Llama 3 模型已用于 Meta AI 助手,同时也面向开发者进行了开源,包括预训练和微调版本:
下载链接:https://llama.meta.com/llama-downloads/
Github:https://github.com/meta-llama/
体量更大的多模态版本将在未来几个月内推出。Meta 称,目前正在开发的最大模型是 400B+ 参数。
Meta 研究科学家 Aston Zhang 在大模型发布后表示,在 Llama 3 的研发过程中,研究团队一起应对了预训练和人类数据、预训练扩展、长上下文、后训练和评估方面的诸多挑战。这是一段艰难而又激动人心的旅程。
更加激动人心的内容即将到来:Meta 的研究者现在准备推出系列视频,帮助人们深入了解 Llama 3 背后的技术。此外 Llama 3 的相关研究论文也将放出。
Llama 3,性能重回王座
最新发布的 8B 和 70B 参数的 Llama 3 模型可以说是 Llama 2 的重大飞跃,由于预训练和后训练(Post-training)的改进,本次发布的预训练和指令微调模型是当今 8B 和 70B 参数规模中的最佳模型。与此同时,后训练过程的改进大大降低了模型出错率,进一步改善了一致性,并增加了模型响应的多样性。
Llama 3 将数据和规模提升到新的高度。Meta 表示,Llama 3 是在两个定制的 24K GPU 集群上、基于超过 15T token 的数据上进行了训练 —— 相当于 Llama 2 数据集的 7 倍还多,代码数据相当于 Llama 2 的 4 倍。从而产生了迄今为止最强大的 Llama 模型,Llama 3 支持 8K 上下文长度,是 Llama 2 容量的两倍。
此外,Meta 还开发了一套新的高质量人类评估数据集。该评估集包含 1800 个提示,涵盖 12 个关键用例:寻求建议、头脑风暴、分类、封闭式问答、编码、创意写作、提取、塑造角色、开放式问答、推理、重写和总结。为了防止 Llama 3 在此评估集上出现过度拟合,Meta 表示他们自己的团队也无法访问该数据集。下图显示了针对 Claude Sonnet、Mistral Medium 和 GPT-3.5 对这些类别和提示进行人工评估的汇总结果。
下图是 Llama 3 预训练模型和其他同等规模模型的比较,前者表现出 SOTA 水平。
为了开发出出色的语言模型,Meta 认为创新、扩展和优化是非常重要的。因而在 Llama 3 的研发中 Meta 采用了这一设计理念,重点关注四个关键要素:模型架构、预训练数据、扩展预训练和指令微调。
模型架构
Llama 3 选择了相对标准的纯解码器 Transformer 架构。与 Llama 2 相比,Llama 3 做了几个关键的改进,包括:
- Llama 3 使用具有 128K token 词汇表的 tokenizer,可以更有效地对语言进行编码,从而显著提高模型性能;
- 为了提高 Llama 3 模型的推理效率,研究团队在 8B 和 70B 大小的模型上采用了分组查询注意力 (GQA);
- 在 8192 个 token 的序列上训练模型,使用掩码确保自注意力不会跨越文档边界。
训练数据
为了训练最好的语言模型,管理大型、高质量的训练数据集至关重要。Meta 在预训练数据上投入了大量成本。Llama 3 使用超过 15T 的 token 进行了预训练,这些 token 都是从公开来源收集的。总体上讲,Llama 3 的训练数据集是 Llama 2 使用的数据集的七倍多,并且包含四倍多的代码。为了为即将到来的多语言用例做好准备,超过 5% 的 Llama 3 预训练数据集由涵盖 30 多种语言的高质量非英语数据组成。但是,Llama 3 在这些语言上的性能水平预计不会与英语相同。
为了确保 Llama 3 接受最高质量数据的训练,研究团队开发了一系列数据过滤 pipeline,包括使用启发式过滤器(filter)、NSFW 过滤器、语义重复数据删除方法和文本分类器来预测数据质量。
研究团队发现前几代 Llama 非常擅长识别高质量数据,因此 Meta 使用 Llama 2 为给 Llama 3 提供支持的文本质量分类器生成训练数据。
研究团队还进行了广泛的实验,以评估出在最终预训练数据集中不同来源数据的最佳混合方式,最终确保 Llama 3 在各种用例(包括日常问题、STEM、编码、历史知识等)中表现良好。
扩展预训练
为了有效利用 Llama 3 模型的预训练数据,Meta 投入了大量精力来扩展预训练。
具体来说,Meta 为下游基准评估制定了一系列详细的扩展法则。这些扩展法则使 Meta 能够选择最佳的数据组合,并就如何最好地使用训练计算做出明智的决策。
重要的是,扩展法则使 Meta 能够在实际训练模型之前预测最大模型在关键任务上的性能(例如,在 HumanEval 基准上评估的代码生成性能)。这有助于确保最终模型在各种用例和功能上都具有强大的性能。
在 Llama 3 的开发过程中,Meta 对扩展行为进行了一些新的观察。例如,虽然 8B 参数模型的 Chinchilla 最佳训练计算量对应约 200B token,但 Meta 发现即使在模型接受了两个数量级以上的数据训练之后,模型性能仍在继续提高。
在对多达 15T token 进行训练后,8B 和 70B 参数的模型都继续以对数线性的方式提升性能。较大的模型可以用较少的训练计算来匹配较小模型的性能,但较小的模型通常是首选,因为它们在推理过程中效率更高。
Meta 透露,它们使用自定义训练库、Meta 的超级集群和生产集群预训练 Llama3。微调、注释和评估在第三方云计算上进行。
预训练是在 H100-80GB 类型的硬件(TDP 为 700W)上累计 770 万个 GPU 小时的计算。
为了训练最大的 Llama 3 模型,Meta 结合了三种类型的并行化:数据并行化、模型并行化和管道并行化。
当同时在 16K GPU 上进行训练时,Meta 最高可实现每个 GPU 超过 400 TFLOPS 的计算利用率。Llama3 是在两个定制的 24K GPU 集群上进行了训练。为了最大限度地延长 GPU 的正常运行时间,Meta 开发了一种先进的新训练堆栈,可以自动执行错误检测、处理和维护。Meta 还极大地改进了硬件可靠性和静默数据损坏检测机制,并且开发了新的可扩展存储系统,以减少检查点和回滚的开销。
这些改进使总体有效训练时间超过 95%。
综合起来,这些改进使 Llama 3 的训练效率比 Llama 2 提高了约三倍。
指令微调
为了充分释放预训练模型在聊天场景中的潜力,Meta 还对指令微调方法进行了创新。Llama 3 后训练方法用的是有监督微调(SFT)、拒绝采样、近端策略优化(PPO)和直接策略优化(DPO)的组合。SFT 中使用的 prompt 质量以及 PPO 和 DPO 中使用的偏好排序对模型对齐有着巨大的影响。
此次模型质量的最大改进,来自于仔细整理数据以及对人类注释者提供的注释进行多轮质量保证。
通过 PPO 和 DPO 从偏好排序中学习,也极大地提高了 Llama 3 在推理和编码任务上的性能。Meta 发现,如果你向模型提出一个它难以回答的推理问题,该模型有时会产生正确的推理轨迹:模型知道如何产生正确的答案,但不知道如何选择它。对偏好排序的训练使模型能够学习如何选择正确答案。
使用 Llama 3
在此版本中,Meta 提供了新的信任与安全工具,包括 Llama Guard 2 和 Cybersec Eval 2 的更新组件,并引入了 Code Shield—— 一种过滤大模型生成的不安全代码的防护栏。
Meta 还用 torchtune 开发了 Llama 3。torchtune 是新的 PyTorch 原生库,可以轻松地使用 LLM 进行创作、微调和实验。
torchtune 提供完全用 PyTorch 编写的内存高效且可破解的训练方法。该库与 Hugging Face、Weights & Biases 和 EleutherAI 等知名平台集成,甚至支持 Executorch,以便在各种移动和边缘设备上运行高效推理。
从快速工程到将 Llama 3 与 LangChain 结合使用,Meta 提供了全面的入门指南,指导开发者进行大规模部署。
安全改进
Meta 采用了一种新的、系统级的方法来负责任地开发和部署 Llama,将 Llama 模型视为更广泛系统的一部分,让开发者掌握主导权。Llama 模型将作为系统的基础部分,由开发人员根据其独特的最终目标进行设计。
指令微调在确保模型安全性方面也发挥了重要作用。经过内部和外部的共同努力,Meta 对经过指令微调的模型进行了安全红队(测试)。
「红队」方法利用人类专家和自动化方法生成对抗性提示,试图诱发有问题的反应。例如,采用综合测试来评估与化学、生物、网络安全和其他风险领域有关的滥用风险。所有这些工作都是反复进行的,并用于对发布的模型进行安全微调。
Llama Guard 模型旨在为及时响应安全奠定基础,并可根据应用需求轻松微调以创建新的分类标准。作为起点,新版 Llama Guard 2 采用了最近公布的 MLCommons 分类标准。此外,CyberSecEval 2 在其前身的基础上进行了扩展,增加了对 LLM 允许滥用其代码解释器的倾向、攻击性网络安全能力以及对提示注入攻击的易感性的测量。最后,Meta 将推出代码盾(Code Shield),它增加了对 LLM 生成的不安全代码进行推理时过滤的支持。这可以降低不安全代码建议、代码解释器滥用预防和安全命令执行方面的风险。
随着生成式人工智能领域的快速发展,开源将是将生态系统整合在一起并减少这些潜在危害的重要途径。
为此,Meta 持续更新《负责任使用指南》(RUG),该指南为负责任地使用 LLM 进行开发提供了全面指导。比如像指南中所概述的那样,所有输入和输出都应根据适合应用的内容指南进行检查和过滤。此外,许多云服务提供商都提供了用于负责任部署的内容审核 API 和其他工具,开发人员也被建议考虑使用这些选项。
大规模部署 Llama 3
Llama 3 即将在所有主要平台上推出,包括云提供商、模型 API 提供商等。
基准测试表明,tokenizer 提高了 token 化效率,与 Llama 2 相比,token 生成量最多可减少 15%。此外,组查询关注(GQA)现在也被添加到了 Llama 3 8B。
因此,尽管与 Llama 2 7B 相比,该模型多了 1B 个参数,但 tokenizer 效率和 GQA 的改进有助于保持与 Llama 2 7B 相当的推理效率。
在 Llama Recipes(https://github.com/meta-llama/llama-recipes)中,介绍了有关如何利用所有这些功能的示例,其中包含所有的开放源代码,可用于从微调、部署到模型评估的所有工作。
下一步是什么?
8B 和 70B 两个型号的模型,标志着 Llama 3 系列的开端,下一步还会有更多。
Meta 表示, 「最大的 Llama 3」参数超过 400B,虽然这些机型仍在训练中,但在接下来的几个月中也将陆续发布,新功能包括多模态、多语言对话能力、更长的上下文窗口以及更强的整体能力。
一旦完成 Llama 3 的训练,Meta 还将发表一篇详细的研究论文。
Llama 3 还未到来的 400B+ 版本会有多强?它一旦发布是不是意味着开源社区就将迎来 GPT-4 级大模型?
Jim Fan 整理的 Llama3 400B 与 GPT-4 等模型的比分。
也许只有 OpenAI 的 GPT-5 才能压下开源模型了。
参考内容:
https://llama.meta.com/llama3/
https://www.facebook.com/4/videos/377361005296904/
https://www.reuters.com/technology/meta-releases-early-versions-its-llama-3-ai-model-2024-04-18/
https://www.theverge.com/2024/4/18/24133808/meta-ai-assistant-llama-3-chatgpt-openai-rival