百度推广帮做网站,哪些网站是python做的,制作网站的固定成本,计算机软件开发流程Meta开源Llama 3大模型#xff0c;并发布92页重磅技术报告#xff0c;全面揭秘其背后的技术细节#xff0c;涵盖数据、训练、多模态等多个方面。这份报告对于大模型领域的研究者和从业者来说#xff0c;无疑是一份宝贵的学习资料。我们已将报告全文翻译为中文#xff0c;以…Meta开源Llama 3大模型并发布92页重磅技术报告全面揭秘其背后的技术细节涵盖数据、训练、多模态等多个方面。这份报告对于大模型领域的研究者和从业者来说无疑是一份宝贵的学习资料。我们已将报告全文翻译为中文以方便大家阅读。Llama3开源盛宴你不能错过的三大亮点模型llama 3.1 模型系列405B含量化版、70B、8B 128k的上下文工具开源配套的Agent系统方法92页超详细技术论文Llama3的成功秘诀高质量数据/规模性/简洁性Llama3的卓越表现源于三大核心要素1.高质量数据15T tokens的高质量多语言数据。2.规模性8B、70B、405B的模型矩阵通过大模型提升小模型的质量实现同类最佳效果。3.简洁性选择Transformer架构而非MoE架构采用相对简单的后训练程序如SFT、RS和DPO而非复杂的强化学习算法。此外报告还分享了Llama3在多模态集成方面的初步实验展现了其在图像、视频和语音处理方面的潜力。**Llama3的开发历程**预训练与后训练Llama3的开发分为两个主要阶段1.预训练在15.6万亿token上预训练了4050亿参数的模型上下文窗口为8K token。随后进行继续预训练将上下文窗口扩展至128K token。2.后训练通过多轮人类反馈与模型对齐每轮包括监督式微调SFT和直接偏好优化DPO。后训练阶段还整合了工具使用等新能力并在编码和推理等领域取得显著进展。**Llama3的多模态能力**图像、视频和语音的融合为了赋予Llama3多模态能力Meta采用了组合方法引入了图像、视频和语音编码器。具体过程包括1.多模态编码器预训练分别对图像和语音编码器进行训练学习视觉和语音信号的表示。2.视觉适配器训练将图像编码器融入预训练的语言模型实现图像表示与语言表示的对齐。在此基础上训练视频适配器实现跨帧信息聚合。3.语音适配器训练将语音编码器整合到模型中实现高质量的语音理解。Llama3的技术报告目录引言Llama3成功的三大要素、开发历程、多模态能力概述预训练预训练数据数据来源、清洗、去重、过滤等模型架构Transformer架构选择、参数设置等规模定律实验模型规模对性能的影响基础设施、扩展和效率训练硬件、并行策略、优化技巧等训练方法初始预训练、长上下文预训练、退火等后期训练建模SFT、RM、DPO等技术后期训练数据清洗、修剪等**Chat能力**代码、多语言、数学和推理、长文本、工具调用能力以及如何减少幻觉等效果评估Base模型benchmark指标、鲁棒性、对抗性和污染分析Chat模型通用知识和指令遵循benchmark指标、人类考试GRE/LSAT/SAT/AP/GMAT等、单项技能测试人类评估在几乎所有能力上Llama 3 405B和GPT-4的胜利率在误差范围内**安全性评估**安全评估基准、预训练和微调效果等推理流水线并行推理加速技术FP8量化模型量化技术视觉实验数据图像和视频数据处理模型架构图像编码器、图像适配器、视频适配器语音实验数据语音数据处理模型架构语音编码器、语音适配器相关工作结论贡献者和致谢接下来的文章内容将逐一深入展示报告的各个章节为您呈现Llama3技术细节的全面解析。技术报告中文全文llama3模型现代人工智能AI系统的核心驱动力来自于基础模型。本文介绍了一组新的基础模型称为 Llama 3。它是一个语言模型系列原生支持多语言性、编码、推理和工具使用。其中我们所构建的最大模型是一个密集型的Transformer架构拥有4050亿个参数能够处理高达12k tokens的上下文窗口。本文提供了对Llama 3的广泛实证评估。我们发现在众多任务中Llama 3的表现质量与诸如GPT-4这样的领军语言模型相当。我们公开发布了 Llama 3包括405B 参数语言模型的预训练和后训练版本以及用于输入和输出安全的 Llama Guard 3 模型。本文还介绍了我们通过组合方法将图像、视频和语音功能集成到 Llama 3 中的实验结果。我们观察到这种方法在图像、视频和语音识别任务上的表现与最先进的方法不相上下。由于模型仍在开发中因此尚未广泛发布。日期: July 23,2024网站: https://llama.meta.com/1 引言基础模型是语言、视觉、语音或其他模式的通用模型旨在支持各种人工智能任务。它们构成了许多现代人工智能系统的基础。现代基础模型的开发包括两个主要阶段(1) 训练前阶段在这一阶段中利用下一个单词预测或字幕等简单任务对模型进行大规模训练(2) 训练后阶段在这一阶段中对模型进行调整使其遵循指令、符合人类偏好并提高特定能力例如编码和推理。在本文中我们提出了一套新的语言基础模型称为 “Llama 3”。Llama 3 模型群原生支持多语言性、编码、推理和工具使用。我们最大的模型是拥有 405B 个参数的密集变换器Transformer可处理多达 128K 标记的上下文窗口中的信息。表 1 列出了语群的每个成员。本文中介绍的所有结果都是针对 Llama 3.1模型的为简洁起见我们在全文中将其称为 Llama 3。我们认为在开发高质量基础模型的过程中有三个关键杠杆数据、规模和复杂性管理。我们力求在开发过程中优化这三个杠杆数据与之前版本的 LlamaTouvron 等人2023a,b相比我们改进了用于前训练和后训练的数据的数量和质量。这些改进包括为预训练数据开发了更细致的预处理和整理管道为后训练数据开发了更严格的质量保证和过滤方法。我们在一个包含约 15T 多语言词库的语料库上对 Llama 3 进行了预训练而 Llama 2 只包含 1.8T 词库。规模我们训练模型的规模远大于之前的 Llama 模型我们的旗舰语言模型在预训练时使用了 3.8 × 1025 FLOPs几乎是最大版本 Llama 2 的 50 倍。具体来说我们在 15.6T 文本标记上预训练了一个拥有 405B 可训练参数的旗舰模型。正如基础模型的缩放规律所预期的那样我们的旗舰模型优于使用相同程序训练的较小模型。虽然我们的缩放定律表明对于我们的训练预算来说旗舰模型的大小近似于最佳计算规模但我们对较小模型的训练时间也比最佳计算时间要长得多。在推理预算相同的情况下最终模型的性能比计算最优模型更好。在后期训练中我们会使用旗舰模型来进一步提高这些较小模型的质量。管理复杂性我们所做的设计选择旨在最大限度地提高模型开发过程的扩展能力。例如我们选择了标准的密集变形模型架构Vaswani 等人2017 年并稍作调整而不是专家混合模型Shazeer 等人2017 年以最大限度地提高训练的稳定性。同样我们采用了基于监督微调SFT、拒绝采样RS和直接偏好优化DPORafailov 等人2023 年的相对简单的后训练程序而不是更复杂的强化学习算法欧阳等人2022 年Schulman 等人2017 年后者往往稳定性较差且难以扩展。我们的工作成果是 Llama 3由三个多语言模型组成参数分别为 8B、70B 和 405B。我们在大量基准数据集上评估了 Llama 3 的性能这些数据集涵盖了广泛的语言理解任务。此外我们还进行了广泛的人工评估将 Llama 3 与竞争对手的模型进行了比较。表 2 列出了旗舰模型 Llama 3 在主要基准上的性能概览。我们的实验评估表明我们的旗舰模型在各种任务中的表现与 GPT-4 OpenAI,2023a等领先语言模型相当并接近最先进水平。我们的小型模型在同类产品中表现最佳优于参数数量相似的其他模型Bai 等人2023Jiang 等人2023。Llama 3 在有用性和无害性之间的平衡也比其前身好得多Touvron 等人2023b。我们将在第 5.4 节详细分析 Llama 3 的安全性。我们将根据更新版的 Llama 3 社区许可证公开发布所有三个 Llama 3 模型见https://llama.meta.com。这包括我们的 405B 参数语言模型的预训练和后训练版本以及用于输入和输出安全的新版 LlamaGuard 模型Inan等2023年。我们希望旗舰模型的公开发布能推动研究界的创新浪潮并加速人工通用智能AGI的发展。作为 Llama 3 开发过程的一部分我们还对模型进行了多模态扩展实现了图像识别、视频识别和语音理解功能。这些模型仍在积极开发中尚未准备好发布。除了语言建模结果本文还介绍了我们对这些多模态模型的初步实验结果。2 总体概述Llama 3 的模型架构如图 1 所示。Llama 3 语言模型的开发主要分为两个阶段语言模型预训练。我们首先将一个大型多语言文本语料库转换为离散的标记然后在由此产生的数据上预训练一个大型语言模型(LLM)以执行下一个标记的预测。在语言模型预训练阶段模型会学习语言结构并从“阅读”的文本中获取大量有关世界的知识。为了有效地做到这一点我们进行了大规模的预训练我们使用8K 标记的上下文窗口在15.6T 标记上预训练了一个拥有405B 参数的模型。在这一标准预训练阶段之后我们将继续进行预训练将支持的上下文窗口增加到128Kkkens。详见第3 节。语言模型后训练。预训练后的语言模型对语言有丰富的理解但还不能按照我们期望的助手方式来执行指令或行为。我们将分几轮根据人类反馈调整模型每一轮都包括在指令调整数据基础上进行监督微调SFT。(SFT和直接偏好优化DPORafailov 等人2024 年。在训练后阶段我们还整合了工具使用等新功能并观察到在编码和推理等其他方面的显著改进。详见第 4 节。最后在训练后阶段还将安全缓解措施纳入模型中具体细节将在第 5.4 节中介绍。由此产生的模型具有丰富的功能。它们至少能用八种语言回答问题、编写高质量的代码、解决复杂的推理问题并能以开箱即用或 “零 ”使用的方式使用工具。我们还进行了实验采用组合方法为 Llama 3 添加图像、视频和语音功能。我们研究的方法包括图 28 所示的三个附加阶段多模态编码器预训练。我们为图像和语音分别训练编码器。我们在大量图像-文本对上训练图像编码器。这可以让模型了解视觉内容与自然语言描述之间的关系。我们的语音编码器采用自监督方法进行训练这种方法会屏蔽掉语音输入的部分内容并尝试通过离散标记表示法重建屏蔽掉的部分内容。因此该模型可以学习语音信号的结构。有关图像编码器的详细信息请参见第 7 节有关语音编码器的详细信息请参见第 8 节。图 1 Llama 3 的整体架构和训练示意图Llama 3 是一个经过训练的 Transformer 语言模型用于预测文本序列的下一个标记。详见正文。视觉适配器训练。我们会训练一个适配器将预先训练好的图像编码器集成到预先训练好的语言模型中。适配器由一系列交叉注意层组成可将图像编码器表征输入语言模型。适配器根据文本-图像对进行训练。这就使图像表征与语言表征保持一致。在适配器训练过程中我们也会更新图像编码器的参数但有意不更新语言模型参数。在图像适配器的基础上我们还在成对的视频-文本数据上训练视频适配器。这使模型能够汇总各帧的信息。详见第 7 节。语音适配器训练。最后我们通过一个适配器将语音编码器集成到模型中该适配器可将语音编码转换为标记表示然后直接输入经过微调的语言模型。适配器和编码器的参数在有监督的微调阶段共同更新以实现高质量的语音理解。在语音适配器训练过程中我们不会改变语言模型。我们还集成了文本到语音系统。详见第 8 节。通过多模态实验我们建立了能够识别图像和视频内容并支持通过语音界面进行交互的模型。这些模型仍在开发中尚未准备好发布。3 预训练语言模型的预训练包括(1)大规模训练语料的整理和筛选(2)模型结构的开发和确定模型大小的相应比例法则(3)大规模高效预训练技术的开发以及(4)预训练配方的开发。下面我们将分别介绍这些组成部分。3.1预训练数据我们从包含 2023 年底之前知识的各种数据源中创建了用于语言模型预训练的数据集。我们对每个数据源采用了多种去重方法和数据清理机制以获得高质量的标记。我们删除了包含大量个人身份信息PII的域和已知有成人内容的域。3.1.1网络数据整理我们使用的大部分数据都来自网络下文将介绍我们的清理过程。PII 和安全过滤。除其他缓解措施外我们还实施了过滤器旨在从可能包含不安全内容或大量 PII 的网站、根据各种 Meta 安全标准被列为有害的域以及已知包含成人内容的域中删除数据。**文本提取和清理。**我们对非截断网页文档的原始HTML 内容进行处理以提取高质量的多样化文本。为此我们构建了一个自定义解析器用于提取HTML 内容并优化模板去除和内容召回的精度。我们在人工评估中评估了我们的解析器的质量并将其与针对文章类内容进行优化的流行第三方HTML 解析器进行了比较结果发现我们的解析器表现良好。我们对包含数学和代码内容的HTML 页面进行了仔细处理以保留这些内容的结构。我们保留了图片的alt 属性文本因为数学内容通常以预渲染图片的形式呈现而数学内容也在alt 属性中提供。我们对不同的清理配置进行了实验性评估。与纯文本相比我们发现标记符对主要在网络数据上训练的模型的性能有害因此我们删除了所有标记符。去重。我们在 URL、文档和行级应用了多轮重复数据删除URL级重复数据删除。我们对整个数据集进行URL 级重复数据删除。我们保留每个URL 对应页面的最新版本。文档级重复数据删除。我们对整个数据集进行全局 MinHashBroder1997 年重复数据删除以删除近乎重复的文档。行级重复数据删除我们执行与ccNetWenzeket al.我们删除了在每个 3000 万文档桶中出现 6 次以上的行。虽然我们的人工定性分析显示行级重复数据删除不仅会删除各种网站上的残留模板如导航菜单、cookie警告还会删除频繁出现的高质量文本但我们的实证评估结果表明行级重复数据删除有很大的改进。启发式过滤我们开发了启发式方法来去除额外的低质量文档、异常值和重复过多的文档。启发式过滤的一些例子包括我们使用重复 n-gram 覆盖率Rae 等人2021 年来删除由重复内容如日志或错误信息组成的行。这些行可能很长而且是独一无二的因此无法用行内删除法进行过滤。我们使用 “脏字 ”计数Raffel 等人2020 年来过滤域名封锁列表未覆盖的成人网站。我们使用标记分布 Kullback-Leibler 发散来过滤掉与训练语料库分布相比含有过多离群标记的文档。**基于模型的质量筛选。**此外我们还尝试应用各种基于模型的质量分类器来分选高质量的标记。其中包括使用快速分类器如 fasttextJoulin 等人2017 年训练其识别给定文本是否会被维基百科引用Touvron 等人2023a以及基于 Llama 2 预测训练的计算密集型 Roberta 分类器Liu 等人2019a。为了训练基于 Llama 2 的质量分类器我们创建了一个经过清理的网络文档训练集描述了质量要求并指示 Llama 2 的聊天模型确定文档是否符合这些要求。出于效率考虑我们使用 DistilRobertaSanh 等人2019 年为每份文档生成质量分数。我们通过实验评估了各种质量过滤配置的功效。代码和推理数据。与 DeepSeek-AI 等人2024 年类似我们建立了特定领域的管道来提取代码和数学相关网页。具体来说代码和推理分类器都是在由 Llama 2 标注的网页数据上训练出来的 DistilledRoberta 模型。与上述一般质量分类器不同的是我们针对包含数学推导、STEM 领域推理以及代码与自然语言交错的网页进行了及时调整。由于代码和数学的标记分布与自然语言的标记分布有很大不同这些管道实施了特定领域的 HTML 提取、定制文本特征和启发式过滤。**多语言数据。**与上文所述的英语处理管道类似我们实施了过滤器以删除可能包含 PII 或不安全内容的网站数据。我们的多语言文本处理管道有几个独特的功能我们使用基于快速文本的语言识别模型将文档归类为 176 种语言。我们在每种语言的数据中执行文档级和行级重复删除。我们应用特定语言的启发式方法和基于模型的过滤器来删除低质量文档。此外我们还使用基于Llama 2 的多语言分类器对多语言文档进行质量排序以确保高质量内容得到优先处理。我们通过实验确定预训练中使用的多语言标记数量平衡模型在英语和多语言基准上的性能。3.1.2 确定数据混合要获得高质量的语言模型仔细确定不同数据源在预训练数据混合中的比例至关重要。我们确定此数据混合的主要工具是知识分类和规模定律实验。**知识分类。**我们开发了一个分类器对我们的网络数据中包含的信息类型进行分类以更有效地确定数据混合。我们使用这个分类器来降低在网络上过度表示的数据类别例如艺术和娱乐。**规模定律的数据混合。**为了确定最佳数据混合我们进行规模定律实验我们在数据混合上训练几个小型模型并用它来预测大型模型在该混合上的性能见第3.2.1节。我们多次重复这个过程以选择新的数据混合候选。随后我们在候选数据混合上训练一个更大的模型并评估该模型在几个关键基准上的性能。**数据混合摘要。**我们最终的数据混合大致包含50%的对应于一般知识标记25%的数学和推理标记17%的代码标记以及8%的多语言标记。3.1.3 退火数据通过实证我们发现在小量的高质量代码和数学数据上进行退火见第3.4.3节可以提高预训练模型在关键基准上的性能。与Li等人2024b类似我们使用在选定领域上采样高质量数据的数据混合进行退火。我们不在退火数据中包含常用基准的任何训练集。这使我们能够评估Llama 3的真实少次学习能力和领域外泛化能力。按照OpenAI2023a的做法我们在GSM8kCobbe等人2021年和MATHHendrycks等人2021b训练集上评估了退火的有效性。我们发现退火将预训练的Llama 3 8B模型在GSM8k和MATH验证集上的性能分别提高了24.0%和6.4%。然而对于405B模型的改进是微不足道的这表明我们的旗舰模型具有强大的上下文学习和推理能力不需要特定的领域内训练样本就能获得强大的性能。**使用退火评估数据质量。**与Blakeney等人2024年类似我们发现退火使我们能够判断小的特定领域数据集的价值。我们通过将一个50%训练的Llama 38B模型的学习率在线性地退火到40B标记上的0来衡量这些数据集的价值。在这些实验中我们将新数据集的权重分配为30%其余70%的权重分配给默认数据混合。使用退火来评估新数据源比为每个小数据集执行规模定律实验更有效。3.2 模型架构Llama 3使用标准的密集Transformer架构Vaswani等人2017年。与Llama和Llama 2Touvron等人2023ab在模型架构方面没有显著差异我们的性能提升主要是由于数据质量和多样性的提高以及训练规模的增加。与Llama 3相比我们做了一些小的修改我们使用分组查询注意力GQAAinslie等人2023年和8个键值头来提高推理速度并在解码过程中减少键值缓存的大小。我们使用注意力掩码来防止同一序列中的不同文档之间的自注意力。我们发现这种改变在标准预训练期间的影响有限但在继续对非常长的序列进行预训练时发现它很重要。我们使用一个包含128K个标记的词汇表。我们的标记词汇表结合了来自tiktoken3分词器的100K个标记和额外增加的28K个标记以更好地支持非英语语言。与Llama 2分词器相比我们的新分词器将样本英语数据的压缩率从3.17提高到3.94个字符每个标记。这使得模型在相同的训练计算量下能够“阅读”更多的文本。我们还发现增加来自选定非英语语言的28K个标记在不影响英语分词的情况下提高了压缩比和下游性能。我们增加了RoPE基础频率超参数到500,000。这使我们能够更好地支持更长的上下文Xiong等人(2023年)表明这个值对于长达32,768的上下文长度是有效的。Llama 3 405B使用了一个具有126层、16384个标记表示维度和128个注意力头的架构详情见表3。这导致模型大小根据我们数据上的规模定律对于我们的3.8 × 10^25 FLOPs训练预算来说大约是计算最优的。3.2.1 规模定律我们制定了规模定律(Hoffmann等人2022年Kaplan等人2020年)来确定我们的旗舰模型的最佳大小考虑到我们的预训练计算预算。除了确定最佳模型大小之外另一个主要挑战是预测旗舰模型在下游基准任务上的性能由于几个问题(1)现有的规模定律通常只预测下一个标记预测损失而不是特定的基准性能。(2)规模定律可能会有噪声并且不可靠因为它们是基于小计算预算进行的预训练运行开发的(Wei等人2022b)。为了应对这些挑战我们实施了两阶段的方法来制定能够准确预测下游基准性能的规模定律1.我们首先建立计算最优模型在下游任务上的负对数似然与训练FLOPs之间的相关性。2.接下来我们将下游任务上的负对数似然与任务准确性相关联利用规模定律模型和用更高计算FLOPs训练的旧模型。在这一步中我们特别利用了Llama 2系列模型。这种方法使我们能够在给定特定数量的训练FLOPs的情况下预测计算最优模型的下游任务性能。我们使用类似的方法选择我们的预训练数据混合见第3.4节。**规模定律实验。**具体来说我们通过使用6 × 10^18 FLOPs到10^22 FLOPs之间的计算预算来构建我们的规模定律。在每个计算预算下我们在40M到16B参数的模型范围内进行预训练每个计算预算使用一组模型大小。在这些训练运行中我们使用余弦学习率计划并为2,000个训练步骤进行线性预热。峰值学习率根据模型大小设置在2 × 10^-4到4 × 10^-4之间。我们将余弦衰减设置为峰值的0.1。每一步的权重衰减设置为该步骤学习率的0.1倍。我们为每个计算规模使用固定的批量大小范围在250K到4M之间。我们使用0.95和0.537A0.299这样的指标来衡量计算效率。在6 × 1018到1022 FLOPs的范围内我们绘制了IsoFLOPs曲线。这些曲线上的损失是通过在一个独立的验证集上计算负对数似然来衡量的。我们使用二次方程来拟合每个计算规模的测量损失值并确定每个抛物线的最小值。我们把一个抛物线的最小值称为在相应的预训练计算预算下的计算最优模型。这些实验产生了图2中的IsoFLOPs曲线。这些曲线上的损失是在一个单独的验证集上测量的。我们使用二次方程拟合测量到的损失值并识别每个抛物线的最小值。我们把一个抛物线的最小值称为在相应的预训练计算预算下的计算最优模型。我们利用这种方式识别出的计算最优模型来预测特定计算预算下的最佳训练标记数量。为此我们假设计算预算C和最优训练标记数量N*©之间存在幂律关系我们使用图2中的数据拟合A和α发现(α, A) (0.53, 0.29)相应的拟合曲线如图3所示。将这个结果的规模定律外推到3.8 × 10^25 FLOPs建议训练一个有402B参数的模型在16.55T标记上。一个重要的观察是随着计算预算的增加IsoFLOPs曲线在最小值周围的曲率变平。这意味着旗舰模型的性能对于模型大小和训练标记之间权衡的微小变化相对鲁棒。基于这一观察我们最终决定训练一个有405B参数的旗舰模型。**预测在下游任务上的性能。**我们使用生成的计算最优模型来预测旗舰Llama 3模型在基准数据集上的性能。首先我们线性相关基准测试中正确答案的(标准化)负对数似然和训练FLOPs。在这项分析中我们只使用在上述数据混合上训练到10^22 FLOPs的规模定律模型。接下来我们使用规模定律模型和Llama 2模型建立对数似然和准确性之间的S形关系这些模型是使用Llama 2数据混合和分词器训练的。我们在图4中展示了这项实验的结果。我们发现这种两步规模定律预测非常准确它只略微低估了旗舰Llama 3模型的最终性能。3.3 基础设施、扩展性和效率我们描述了支持Llama 3 405B大规模预训练的硬件和基础设施并讨论了几项优化措施这些措施提高了训练效率。3.3.1 训练基础设施Llama 1和2模型在Meta的AI研究超级集群Lee和Sengupta2022上进行了训练。随着我们进一步扩展Llama 3的训练迁移到了Meta的生产集群Lee等人2024。此设置优化了生产级别的可靠性这对于我们扩大训练至关重要。**计算。**Llama 3 405B在高达16K的H100 GPU上进行训练每个GPU运行在700W TDP下配备80GB HBM3使用Meta的Grand Teton AI服务器平台Matt Bowman2022。每个服务器配备有八个GPU和两个CPU。在服务器内部这八个GPU通过NVLink连接。使用MASTChoudhury等人2024Meta的全球规模训练调度器来安排训练作业。**存储。**TectonicPan等人2021Meta的通用分布式文件系统用于为Llama 3预训练构建存储网络Battey和Gupta2024。它提供了7,500个配备SSD的服务器上的240PB存储空间并支持2TB/s的可持续吞吐量和7TB/s的峰值吞吐量。一个主要挑战是支持在短时期间饱和存储网络的高突发性检查点写操作。检查点保存每个GPU的模型状态每个GPU的范围从1MB到4GB用于恢复和调试。我们的目标是最小化检查点期间GPU的暂停时间并增加检查点频率以减少恢复后丢失的工作量。**网络。**Llama 3 405B使用了基于Arista 7800和Minipack2开放计算项目OCP机架交换机的RDMA over Converged Ethernet (RoCE)网络。Llama 3系列中较小的模型使用Nvidia Quantum2 Infiniband网络进行训练。RoCE和Infiniband集群都在GPU之间利用400Gbps的互连。尽管这些集群的底层网络技术存在差异但我们调整了它们以便为这些大型训练工作负载提供等效的性能。由于我们完全拥有RoCE网络的设计我们将更详细地阐述我们的RoCE网络。网络拓扑。我们的基于RoCE的AI集群由24K GPU组成通过三层Clos网络连接Lee等人2024。在底层每个机架托管16个GPU分成两台服务器并通过单个Minipack2机架顶部(ToR)交换机连接。在中层192个这样的机架通过集群交换机连接形成一个拥有3,072个GPU的pod具有完整的双工带宽确保没有过订。在顶层同一数据中心大楼内的八个这样的pod通过聚合交换机连接形成一个24K GPU的集群。然而在聚合层的网络连接没有保持完整的双工带宽而是有一个1:7的过订比率。我们的模型并行方法见第3.3.2节和训练作业调度器Choudhury等人2024都针对网络拓扑进行了优化旨在最小化跨pod的网络通信。负载均衡。大型语言模型LLM训练产生的网络流量很大这使得使用传统的如等价成本多路径ECMP路由方法在所有可用网络路径上进行负载均衡变得困难。为了应对这一挑战我们采用了两种技术。首先我们的集合库创建了16个网络流进行负载均衡。其次我们增强的ECMPE-ECMP协议通过在RoCE数据包头部的额外字段上进行哈希处理有效地在不同网络路径上平衡了这16个流。拥塞控制。我们在主干网上使用了深度缓冲交换机Gangidi等人2024年以适应由集合通信模式引起的瞬态拥塞和缓冲。这种设置有助于限制由慢服务器引起的持续拥塞和网络反压的影响这在训练中很常见。最后通过E-ECMP实现的更好的负载均衡显著降低了拥塞的可能性。有了这些优化我们成功地运行了一个24K GPU集群而无需使用传统的拥塞控制方法如数据中心量化拥塞通知DCQCN。3.3.2 模型扩展的并行性为了扩展我们最大模型的训练我们采用了4D并行性——结合四种不同类型的并行方法来切分模型。这种方法有效地在多个GPU之间分配计算并确保每个GPU的模型参数、优化器状态、梯度和激活能够适应其HBM。我们在图5中展示了4D并行性的实现。它结合了张量并行性TPKrizhevsky等人2012年Shoeybi等人2019年Korthikanti等人2023年、流水线并行性PPHuang等人2019年Narayanan等人2021年Lamy-Poirier2023年、上下文并行性CPLiu等人2023年和数据并行性DPRajbhandari等人2020年Ren等人2021年Zhao等人2023年。张量并行性将个别权重张量分割成不同设备上的多个块。流水线并行性通过层将模型垂直划分为不同的阶段以便不同的设备可以并行处理完整模型流水线的不同阶段。上下文并行性将输入上下文分割成段减少了非常长的序列长度输入的内存瓶颈。我们使用的是完全分片的数据并行性FSDPRajbhandari等人2020年Ren等人2021年Zhao等人2023年它在实现数据并行性的同时对模型、优化器和梯度进行分片该数据并行性在多个GPU上并行处理数据并在每个训练步骤后同步。我们在Llama 3中使用FSDP对优化器状态和梯度进行分片但对于模型分片在前向计算后我们不重新分片以避免在反向传递期间产生额外的全收集通信。**GPU利用率。**通过对并行配置、硬件和软件的精心调整我们实现了表4所示配置的BF16模型FLOPs利用率MFUChowdhery等人2023年为38-43%。在16K GPU上当DP128时MFU略有下降至41%而8K GPU上DP64时为43%这是由于在训练期间需要保持每个批次的全局标记数恒定因此每个DP组的批量大小需要降低。**流水线并行性改进。**我们在使用现有实现时遇到了几个挑战批量大小限制。当前实现对每个GPU支持的批量大小有限制要求它可以被流水线阶段的数量整除。例如在图6中的流水线并行性的深度优先调度DFS中Narayanan等人2021年需要N PP 4而广度优先调度BFSLamy-Poirier2023年需要N M其中M是微批次的总数N是同一阶段的前向或后向的连续微批次的数量。然而预训练通常需要调整批量大小的灵活性。内存不平衡。现有的流水线并行性实现导致资源消耗不平衡。第一阶段由于嵌入和热身微批次而消耗更多的内存。计算不平衡。在模型的最后一层之后我们需要计算输出和损失使这个阶段成为执行延迟的瓶颈。为解决这些问题我们修改了流水线调度计划如图6所示该计划允许灵活设置N——在本例中N5可以在每个批次中运行任意数量的微批次。这允许我们执行(1) 当我们在大规模时有批量大小限制时运行的微批次少于阶段数或者(2) 运行更多的微批次以隐藏点对点通信寻找DFS深度优先调度和BFS广度优先调度之间的最佳通信和内存效率的平衡点。为了平衡流水线我们分别从第一和最后阶段各减少一个Transformer层。这意味着第一阶段的第一个模型块仅有嵌入层而最后阶段的最后一个模型块仅有输出投影和损失计算。为了减少流水线泡沫我们采用了交错调度Narayanan等人2021年在一个流水线等级上使用V个流水线阶段。整体流水线泡沫比率是PP−1/V*M。此外我们在PP中采用异步点对点通信这在文档掩码引入额外计算不平衡的情况下显著加快了训练速度。我们启用了TORCH_NCCL_AVOID_RECORD_STREAMS以减少异步点对点通信的内存使用。最后为了减少内存成本基于详细的内存分配分析我们主动释放了未来计算中不会使用的张量包括每个流水线阶段的输入和输出张量。通过这些优化我们得以在不使用激活检查点的情况下对8K标记的Llama 3进行预训练。**长序列的上下文并行性。**我们利用上下文并行性CP在扩展Llama 3的上下文长度时提高内存效率并能够训练长达128K的极长序列。在CP中我们跨序列维度进行分区特别是我们将输入序列划分为2 × CP块以便每个CP等级接收两个块以实现更好的负载平衡。第i个CP等级接收了第i个和第(2 × CP − 1 − i)个块。与现有的在环状结构中重叠通信和计算的CP实现不同Liu等人2023年我们的CP实现采用了基于all-gather的方法我们首先all-gather关键K和值V张量然后计算局部查询Q张量块的注意力输出。尽管all-gather通信延迟在关键路径上暴露出来但我们仍然采用这种方法主要有两个原因(1) 在基于all-gather的CP注意力中支持不同类型的注意力掩码如文档掩码更容易、更灵活(2) 由于使用了GQAAinslie等人2023年通信的K和V张量比Q张量小得多因此暴露的all-gather延迟很小。因此注意力计算的时间复杂度比all-gather大一个数量级O(S^2)与O(S)其中S表示全因果掩码中的序列长度使all-gather的开销可以忽略不计。**网络感知的并行配置。**并行维度的顺序[TP, CP, PP, DP]针对网络通信进行了优化。最内层的并行需要最高的网络带宽和最低的延迟因此通常限制在同一个服务器内。最外层的并行可以跨越多跳网络并应能容忍更高的网络延迟。因此基于对网络带宽和延迟的要求我们按照[TP, CP, PP, DP]的顺序放置并行维度。DP即FSDP是最外层的并行因为它可以通过异步预取分片模型权重和减少梯度来容忍更长的网络延迟。在避免GPU内存溢出的同时找到最小化通信开销的最佳并行配置是具有挑战性的。我们开发了一个内存消耗估计器和性能预测工具帮助我们探索各种并行配置并有效预测整体训练性能和识别内存缺口。**数值稳定性。**通过比较不同并行设置之间的训练损失我们解决了几个影响训练稳定性的数值问题。为确保训练收敛性我们在多个微批次的反向计算中使用FP32梯度累积并在FSDP中跨数据并行工作器使用FP32进行reduce-scatter梯度。对于在前向计算中多次使用的中间张量例如视觉编码器的输出反向梯度也以FP32累积。3.3.3 集体通信我们的Llama 3集体通信库是基于Nvidia的NCCL库的一个分支称为NCCLX。NCCLX显著提高了NCCL的性能特别是对于高延迟网络。回想一下平行维度的顺序是[TP, CP, PP, DP]其中DP对应于FSDP。最外层的平行维度PP和DP可能通过多跳网络进行通信延迟高达数十微秒。原始的NCCL集合体——FSDP中的all-gather和reduce-scatter以及PP中的点对点——需要数据分块和分阶段数据复制。这种方法存在几个效率问题包括(1)需要在网络上交换大量的小控制消息以促进数据传输(2)额外的内存复制操作以及(3)使用额外的GPU周期进行通信。对于Llama 3训练我们通过调整分块和数据传输以适应我们的网络延迟来解决这些效率问题的一个子集这些延迟在大型集群中可能高达数十微秒。我们还允许小控制消息以更高的优先级穿越我们的网络特别是避免在深缓冲核心交换机中被阻塞。我们为未来Llama版本进行的持续工作涉及在NCCLX中进行更深入的更改以全面解决上述所有问题。3.3.4 可靠性和运营挑战16K GPU训练的复杂性和潜在故障场景超过了我们运营的更大的CPU集群。此外训练的同步性质使其对故障的容忍度较低——单个GPU故障可能需要重启整个作业。尽管存在这些挑战对于Llama 3我们在支持自动化集群维护如固件和Linux内核升级Vigraham和Leonhardi2024年的同时实现了超过90%的有效训练时间这导致至少每天有一次训练中断。有效训练时间衡量的是流逝时间内用于有用训练的时间。在预训练的54天快照期间我们经历了总共466次作业中断。其中47次是计划内的中断由于自动化维护操作如固件升级或操作员启动的操作如配置或数据集更新。其余419次是意外的中断在表5中有分类。约78%的意外中断归因于确认的硬件问题如GPU或主机组件故障或疑似与硬件相关的问题如静默数据损坏和计划外的单个主机维护事件。GPU问题是最大的类别占所有意外问题的58.7%。尽管失败数量众多但在这段时间内仅三次需要重大手动干预其余问题由自动化处理。为了增加有效训练时间我们减少了作业启动和检查点时间并开发了快速诊断和问题解决工具。我们广泛使用PyTorch内置的NCCL飞行记录器Ansel等人2024年这是一个捕捉集体元数据和堆栈跟踪到环形缓冲区的功能因此允许我们在大规模上快速诊断挂起和性能问题特别是与NCCLX相关的。利用这个我们有效地记录了每个通信事件和每次集体操作的持续时间并且在NCCLX看门狗或心跳超时时自动转储跟踪数据。我们通过在线配置更改Tang等人2015年根据需要在生产中选择性地启用更多计算密集型的跟踪操作和元数据收集无需代码发布或作业重启。调试大规模训练中的问题由于我们网络中混合使用NVLink和RoCE而变得复杂。NVLink上的数据传输通常通过由CUDA内核发出的加载/存储操作进行远程GPU或NVLink连接的故障通常表现为CUDA内核内的加载/存储操作停滞而没有返回清晰的错误代码。NCCLX通过与PyTorch的紧密共同设计提高了故障检测和定位的速度和准确性允许PyTorch访问NCCLX的内部状态并跟踪相关信息。虽然由于NVLink故障引起的停滞无法完全防止但我们的系统监控通信库的状态并在检测到此类停滞时自动超时。此外NCCLX跟踪每个NCCLX通信的内核和网络活动并提供失败的NCCLX集体的内部状态的快照包括所有等级之间已完成和待定的数据传输。我们分析这些数据以调试NCCLX扩展问题。有时硬件问题可能导致仍在运行但缓慢的落后者这很难检测。即使是单个落后者也可以减慢数千个其他GPU的速度通常表现为通信功能正常但速度慢。我们开发了工具以优先处理选定进程组中可能存在问题的通信。通过仅调查少数几个头号嫌疑对象我们通常能够有效地识别落后者。一个有趣的观察是环境因素对大规模训练性能的影响。对于Llama 3 405B我们注意到基于一天中的时间的日间1-2%的吞吐量变化。这种波动是由于中午更高的温度影响GPU动态电压和频率缩放所致。在训练期间数万个GPU可能同时增加或减少功耗例如由于所有GPU等待检查点或集体通信完成或整个训练作业的启动或关闭。当这种情况发生时它可能导致数据中心的功耗瞬间波动数十兆瓦考验电网的极限。随着我们为未来的、甚至更大的Llama模型扩展训练这是我们面临的一个持续挑战。3.4 训练配方用于预训练Llama 3 405B的配方包括三个主要阶段(1)初始预训练(2)长上下文预训练以及(3)退火。下面分别描述这三个阶段。我们使用类似的配方来预训练8B和70B模型。3.4.1 初始预训练我们使用余弦学习率计划对Llama 3 405B进行预训练峰值学习率为8 × 10^−5线性预热8,000步然后在1,200,000个训练步骤中衰减到8 × 10^−7。我们在训练初期使用较小的批量大小以提高训练稳定性并随后增加它以提高效率。具体来说我们最初的批量大小为4M个标记序列长度为4,096然后在预训练了252M个标记后将这些值加倍到8M个标记序列长度为8,192。我们在预训练了2.87T个标记后再次将批量大小加倍到16M。我们发现这种训练配方非常稳定我们观察到的损失峰值很少并且不需要干预来纠正模型训练发散。**调整数据混合。**在训练期间我们对预训练数据混合进行了几次调整以提高模型在特定下游任务上的性能。特别是我们在预训练期间增加了非英语数据的百分比以提高Llama 3的多语言性能。我们还上采样数学数据以提高模型的数学推理性能我们在预训练的后期增加了更多最新的网络数据以推进模型的知识截止日期并且我们对后来被识别为质量较低的预训练数据子集进行了下采样。3.4.2 长上下文预训练在预训练的最后阶段我们对长序列进行训练以支持高达128K个标记的上下文窗口。我们之所以没有提前对长序列进行训练是因为自注意力层的计算在序列长度上呈二次方增长。我们逐步增加支持的上下文长度直到模型成功适应增加的上下文长度。我们通过测量(1)模型在短上下文评估上的性能是否完全恢复以及(2)模型是否能够完美解决长达那个长度的“针尖上的针”任务来评估成功的适应。在Llama 3 405B预训练中我们从最初的8K上下文窗口开始逐步增加了上下文长度经过六个阶段最终达到128K上下文窗口。这个阶段的长上下文预训练使用了大约800B个训练标记。3.4.3 退火在最后的40M个标记的预训练中我们将学习率线性退火至0同时保持上下文长度为128K个标记。在这个退火阶段我们还调整了数据混合以增加对极高质量数据源的采样见第3.1.3节。最后在退火期间我们计算模型检查点Polyak1991年平均的平均值以产生最终的预训练模型。4 后训练我们通过对预训练检查点进行多轮后训练或在预训练检查点的基础上与人类反馈Ouyang等人2022年Rafailov等人2024年对齐模型以产生对齐的Llama 3模型。每一轮后训练包括监督式微调SFT和直接偏好优化DPORafailov等人2024年这些操作都是在通过人工注释或合成生成的示例上进行的。我们的后训练建模和数据方法分别在第4.1节和第4.2节中描述。我们进一步在第4.3节中详细说明了定制数据管理策略以提高推理、编码、事实性、多语言、工具使用、长上下文和精确指令跟随能力。4.1 建模我们后训练策略的支柱是奖励模型和语言模型。我们首先使用人工注释的偏好数据在预训练检查点的基础上训练奖励模型见第4.1.2节。然后我们使用监督式微调SFT见第4.1.3节对预训练检查点进行微调并进一步使用直接偏好优化DPO见第4.1.4节与检查点对齐。这个过程在图7中进行了说明。除非另有说明我们的建模过程适用于Llama 3 405B并且为了方便起见我们将Llama 3 405B简称为Llama 3。4.1.1 聊天对话格式为了调整大型语言模型进行人类-AI交互我们需要为模型定义一个聊天对话协议以理解人类指令并执行对话任务。与其前身相比Llama 3具有新的能力如工具使用第4.3.5节这可能需要在单个对话回合中生成多个消息并将其发送到不同的位置例如用户ipython。为支持这一点我们设计了一种新的多消息聊天协议使用各种特殊的头部和终止标记。头部标记用于指示对话中每条消息的来源和目的地。同样终止标记指示何时在人类和AI之间交替发言。4.1.2 奖励建模我们在预训练检查点的基础上训练一个涵盖不同能力的奖励模型RM。训练目标与Llama 2相同只是我们去掉了损失中的边际项因为我们观察到数据扩展后的改进逐渐减少。按照Llama 2的做法我们在过滤掉响应相似的样本后使用我们所有的偏好数据进行奖励建模。除了标准的偏好对被选择的被拒绝的响应外注释还为一些提示创建了第三个“编辑过的响应”其中从对中选择的响应进一步编辑以改进见第4.2.1节。因此每个偏好排名样本有两个或三个具有清晰排名的响应编辑过 被选择的 被拒绝的。在训练期间我们将提示和多个响应合并成一行响应随机打乱。这是将响应分别放在单独的行中并计算分数的标准场景的近似但在我们的消融研究中这种方法在不损失准确性的情况下提高了训练效率。4.1.3 超监督微调然后我们使用奖励模型对人工注释提示进行拒绝采样其细节在第4.2节中描述。连同这些拒绝采样的数据和其他数据源包括合成数据我们使用标准的交叉熵损失对预训练的语言模型进行微调同时在提示标记上掩盖损失。关于数据混合的更多细节可以在第4.2节找到。我们称这个阶段为监督式微调SFTWei等人2022aSanh等人2022Wang等人2022b即使许多训练目标是模型生成的。我们最大的模型在8.5K到9K步的过程中以1e-5的学习率进行微调。我们发现这些超参数设置在不同的回合和数据混合中表现良好。4.1.4 直接偏好优化我们进一步使用直接偏好优化DPORafailov等人2024年对SFT模型进行训练以符合人类偏好对齐。在训练中我们主要使用前一轮对齐中表现最好的模型收集的最新一批偏好数据。因此我们的训练数据更好地符合每轮优化中的策略模型的分布。我们还探索了如PPOSchulman等人2017等策略算法但发现DPO对于大规模模型需要的计算量更少并且表现更好尤其是在像IFEvalZhou等人2023这样的指令跟随基准上。对于Llama 3我们使用1e-5的学习率并将β超参数设置为0.1。此外我们对DPO应用了以下算法修改在DPO损失中屏蔽格式标记我们从损失中的被选择和被拒绝的响应中屏蔽特殊格式标记包括头部和终止标记见第4.1.1节以稳定DPO训练。我们观察到让这些标记对损失做出贡献可能导致不期望的模型行为例如尾部重复或突然生成终止标记。我们假设这是由于DPO损失的对比性质——在被选择和被拒绝的响应中存在共同标记导致学习目标冲突因为模型需要同时增加和减少这些标记的可能性。通过NLL损失进行正则化我们添加了一个额外的负对数似然NLL损失项对被选择的序列进行缩放缩放系数为0.2类似于Pang等人2024年。这有助于通过保持生成所需的格式和防止被选择响应的对数概率降低来进一步稳定DPO训练Pang等人2024年Pal等人2024年。4.1.5 模型平均最后在每个RM、SFT或DPO阶段我们对使用不同版本的数据或超参数的实验获得的模型进行平均Izmailov等人2019年Wortsman等人2022年Li等人2022年。4.1.6 迭代轮次遵循Llama 2的做法我们通过六个轮次应用上述方法。在每个周期中我们收集新的偏好注释和SFT数据从最新的模型中采样合成数据。4.2 后训练数据后训练数据的组成对语言模型的有用性和行为起着至关重要的作用。在本节中我们讨论了我们的人工注释程序和偏好数据收集第4.2.1节我们的SFT数据的组成第4.2.2节以及数据质量控制和清洗的方法第4.2.3节。4.2.1 偏好数据我们的偏好数据注释过程与Llama 2类似。我们在每个轮次后部署多个模型进行注释并为每个用户提示采样两个不同模型的两个响应。这些模型可以用不同的数据混合和对齐配方进行训练允许不同的能力强度例如编码专业知识和增加数据多样性。我们要求注释者根据他们对被选择响应相对于被拒绝响应的偏好程度将其偏好强度分为四个等级明显更好、更好、略好或勉强更好。我们还在偏好排名后加入编辑步骤鼓励注释者进一步完善首选响应。注释者可以直接编辑所选响应或提示模型用反馈来细化自己的响应。因此我们的部分偏好数据有三个排名的响应编辑过 被选择的 被拒绝的。在表6中我们报告了我们用于Llama 3训练的偏好注释的统计数据。通用英语涵盖了多个子类别如基于知识的问答或精确指令跟随这些不在特定能力的范围之内。与Llama 2相比我们观察到提示和响应的平均长度有所增加这表明我们正在训练Llama 3处理更复杂的任务。此外我们实施了质量分析和人工评估流程以严格评估收集的数据允许我们完善我们的提示并为注释者提供系统、可行的反馈。例如随着Llama 3在每个轮次后改进我们相应地增加提示的复杂性以针对模型滞后的领域。在每个后训练轮次中我们使用当时可用的所有偏好数据进行奖励建模而仅使用各种能力的最新批次进行DPO训练。对于奖励建模和DPO我们都使用被标记为被选择响应明显更好或比被拒绝的对应物更好的样本进行训练并丢弃响应相似的样本。4.2.2 SFT数据我们的微调数据主要由以下来源组成来自我们人工注释收集的提示以及拒绝采样的响应针对特定能力的目标合成数据见第4.3节的更多细节少量人工策划的数据见第4.3节的更多细节随着我们后训练轮次的进展我们开发了更强的Llama 3变体我们用它们来收集覆盖广泛复杂能力的大型数据集。在本节中我们讨论了拒绝采样过程的细节和我们最终SFT数据混合的总体组成。**拒绝采样。**在拒绝采样RS期间对于人工注释期间收集的每个提示第4.2.1节我们从最新的聊天模型策略中采样K通常在10到30之间个输出通常是最好的性能检查点来自上一次后训练迭代或特定能力的最好性能检查点并使用我们的奖励模型选择最佳候选与Bai等人2022一致。在后训练的后期轮次中我们引入系统提示以引导RS响应符合不同能力所需的期望语调、风格或格式。为了提高拒绝采样的效率我们采用了PagedAttentionKwon等人2023。PagedAttention通过动态键值缓存分配增强了内存效率。它通过根据当前缓存容量动态安排请求支持任意输出长度。不幸的是当内存不足时这带来了交换的风险。为了消除这种交换开销我们定义了最大输出长度并仅在有足够的内存来适应该长度的输出时执行请求。PagedAttention还使我们能够跨所有相应的输出共享提示的键值缓存页面。这些共同导致了拒绝采样期间吞吐量的2倍以上提高。**整体数据组成。**表7显示了我们“有用性”混合的每个广泛类别的数据统计。虽然SFT和偏好数据包含重叠的领域但它们被不同地策划产生了不同的计数统计数据。在第4.2.3节中我们描述了对我们的数据样本进行主题、复杂性和质量分类的技术。在每个后训练轮次中我们仔细调整这些轴上的整体数据混合以在广泛的基准上调整性能。我们的最终数据混合在一些高质量资源上多次循环并对其他资源进行下采样。4.2.3 数据处理和质量控制鉴于我们的大部分训练数据是模型生成的因此需要仔细清洗和质量控制。**数据清洗。**在早期轮次中我们观察到数据中存在一些不良模式例如过度使用表情符号或感叹号。因此我们实施了一系列基于规则的数据移除和修改策略以过滤或清洗有问题的数据。例如为了缓解过于道歉的语气问题我们识别出过度使用的短语如“I’m sorry”或“I apologize”并仔细平衡我们数据集中这类样本的比例。数据修剪。我们还应用了一系列基于模型的技术来移除低质量的训练样本并提高整体模型性能主题分类我们首先将Llama 3 8B微调为主题分类器并在所有数据上进行推理将其分类为粗略的桶“数学推理”和细粒度的桶“几何和三角学”。质量评分我们同时使用奖励模型和基于Llama的信号为每个样本获得质量分数。对于基于RM的分数我们认为RM分数在前四分之一的数据为高质量。对于基于Llama的分数我们提示Llama 3检查点在三点量表上对一般英语数据准确性、指令跟随和语调/呈现进行评分并对编码数据错误识别和用户意图进行两点量表评分并将获得最高分数的样本视为高质量。RM和基于Llama的分数有很高的不一致率我们发现结合这些信号在我们的内部测试集上产生了最佳的召回率。最终我们选择被RM或基于Llama的过滤器标记为高质量的示例。难度评分因为我们也对优先考虑对模型更复杂的示例感兴趣我们使用两种难度度量来评分数据InstagLu等人2023和基于Llama的评分。对于Instag我们提示Llama 3 70B对SFT提示进行意图标记更多的意图意味着更复杂。我们还提示Llama 3在三点量表上测量对话的难度Liu等人2024c。语义去重最后我们执行语义去重Abbas等人2023Liu等人2024c。我们首先使用RoBERTaLiu等人2019b对完整对话进行聚类并在每个聚类内按质量分数×难度分数排序。然后我们通过迭代所有排序的示例并只保留与迄今为止聚类中看到的示例的最大余弦相似度小于阈值的示例进行贪婪选择。4.3 能力我们特别强调为特定能力如代码第4.3.1节、多语言第4.3.2节、数学和推理第4.3.3节、长上下文第4.3.4节、工具使用第4.3.5节、事实性第4.3.6节和可控性第4.3.7节提高性能所做的努力。4.3.1 代码自Copilot和CodexChen等人2021年发布以来用于代码的大型语言模型LLMs受到了显著关注。开发者现在广泛使用这些模型生成代码片段、调试、自动化任务和提高代码质量。对于Llama 3我们针对以下高优先级的编程语言改进和评估代码生成、文档编写、调试和审查能力Python、Java、Javascript、C/C、Typescript、Rust、PHP、HTML/CSS、SQL、bash/shell。在这里我们介绍了通过训练代码专家、为SFT生成合成数据、通过系统提示引导改进格式以及创建质量过滤器从我们的训练数据中移除不良样本来改进这些编码能力的工作。**专家训练。**我们训练了一个代码专家我们用它在后续轮次的后训练中收集高质量的人工注释代码。这是通过分支主预训练运行并在大部分85%代码数据的1T标记混合上继续预训练来实现的。继续在特定领域的数据上进行预训练已被证明对提高特定领域的表现是有效的Gururangan等人2020年。我们遵循与CodeLlamaRozière等人2023年类似的配方。在训练的最后几千步中我们执行长上下文微调LCFT以将专家的上下文长度扩展到16K标记的高质量存储库级代码数据混合上。最后我们遵循第4.1节中描述的类似的后训练建模配方来对齐此模型只是SFT和DPO数据混合主要针对代码。这个模型也用于拒绝采样第4.2.2节的编码提示。**合成数据生成。**在开发过程中我们确定了代码生成中的关键问题包括难以遵循指令、代码语法错误、代码生成不正确以及修复错误的困难。尽管理论上密集的人工注释可以解决这些问题合成数据生成提供了一种成本更低、规模更大且不受注释者专业水平限制的补充方法。因此我们使用Llama 3和代码专家生成了大量合成SFT对话。我们描述了生成合成代码数据的三种高层方法。总共我们生成了超过2.7M个在SFT期间使用的合成示例。**1.合成数据生成执行反馈。**8B和70B模型在由更大、更有能力模型生成的数据上训练时显示出显著的性能提升。然而我们的初步实验揭示使用Llama 3 405B自己生成的数据进行训练并没有帮助甚至可能降低性能。为解决这个限制我们引入执行反馈作为真实性的来源使模型能够从错误中学习并保持在正确的轨道上。特别是我们使用以下流程生成了大约一百万合成编码对话的大型数据集问题描述生成首先我们生成了一个涵盖广泛话题的编程问题描述的大量集合包括那些在长尾分布中的话题。为实现这种多样性我们从各种来源采样随机代码片段并提示模型生成受这些示例启发的编程问题。这使我们能够涉及广泛的主题并创建一套全面的问题描述Wei等人2024年。解决方案生成然后我们提示Llama 3用给定的编程语言解决每个问题。我们观察到在提示中添加通用的良好编程规则可以提高生成的解决方案质量。此外我们发现要求模型在注释中解释其思维过程是有帮助的。正确性分析生成解决方案后认识到其正确性并非保证是至关重要的将不正确的解决方案包含在微调数据集中可能会损害模型的质量。虽然我们不能完全确保正确性但我们开发了近似方法。为实现此目的我们提取生成解决方案的源代码并应用了静态和动态分析技术的组合来测试其正确性包括a.静态分析我们将所有生成的代码通过解析器和linter运行以确保语法正确性捕捉诸如语法错误、使用未初始化变量或未导入函数、代码风格问题、类型错误等错误。b.单元测试生成和执行对于每个问题和解决方案我们提示模型生成单元测试在容器化环境中与解决方案一起执行捕捉运行时执行错误和一些语义错误。错误反馈和迭代自我修正当解决方案在任何步骤失败时我们提示模型进行修正。提示包括原始问题描述、错误的解决方案以及来自解析器/linter/测试器stdout、stderr和返回代码的反馈。在单元测试执行失败后模型可以修复代码以通过现有测试或修改其单元测试以适应生成的代码。只有通过所有检查的对话才包含在最终数据集中用于监督式微调SFT。值得注意的是我们观察到大约20%的解决方案最初是不正确的但自我修正了表明模型从执行反馈中学到了东西并提高了其性能。微调和迭代改进微调过程在多轮中进行每一轮都建立在前一轮的基础上。每一轮之后模型都会得到改进为下一轮生成更高质量的合成数据。这种迭代过程允许逐步改进和增强模型的性能。**2.合成数据生成 编程语言翻译。**我们观察到主要编程语言例如Python/C和较少使用的编程语言例如Typescript/PHP之间的性能差距。这并不令人惊讶因为我们为较少使用的编程语言的训练数据较少。为缓解这一点我们通过将常见编程语言的数据翻译成较少使用的语言来补充现有数据类似于Chen等人2023年在推理背景下的做法。这是通过提示Llama 3并通过语法解析、编译和执行来确保质量来实现的。图8展示了从Python翻译成PHP的合成PHP代码的示例。这显著提高了较少使用语言的性能如MultiPL-ECassano等人2023年基准测试所示。**3.合成数据生成回译。**为了提高某些编码能力例如文档编写、解释在执行反馈对于确定质量不够有信息量的情况下我们采用一种替代的多步骤方法。使用这一程序我们生成了大约120万个与代码解释、生成、文档编写和调试相关的合成对话。从我们的预训练数据中以多种语言编写的代码片段开始a.生成我们提示Llama 3生成代表我们目标能力的数据例如我们为代码片段添加注释和docstrings或者我们要求模型解释一段代码。b.回译然后我们提示模型将合成生成的数据“回译”到原始代码例如我们提示模型仅从其文档生成代码或者我们要求模型仅从其解释生成代码。c.筛选使用原始代码作为参考我们提示Llama 3确定输出的质量例如我们问模型回译的代码对原始代码的忠实度如何。然后我们使用在SFT中具有最高自我验证分数的生成示例。**在拒绝抽样过程中的系统提示导向。**在拒绝抽样过程中我们使用特定于代码的系统提示来提高代码可读性、文档完整性和具体性。回想在第7节中这些数据用于微调语言模型。图9显示了系统提示如何帮助提高生成的代码质量的一个示例——它添加了必要的注释使用了更信息丰富的变量名节省了内存等。**使用执行和模型作为裁判信号过滤训练数据。**如第4.2.3节所述我们偶尔会在我们的拒绝抽样数据中遇到质量问题例如包含错误的代码块。在我们的拒绝抽样数据中检测这些问题并不像在合成代码数据中那样直接因为拒绝抽样的响应通常包含自然语言和代码的混合其中代码可能并不总是预期可执行的。例如用户提示可能明确要求伪代码或仅对一个非常小的可执行程序片段进行编辑。为了解决这个问题我们采用了“模型作为裁判”的方法其中早期版本的Llama 3根据两个标准评估并分配一个二进制0/1分数代码正确性和代码风格。我们只保留那些获得2分满分的样本。最初这种严格的过滤导致了下游基准性能的回归主要是因为它不成比例地移除了具有挑战性提示的示例。为了抵消这一点我们有策略地修订了一些被归类为最具挑战性的编码数据的响应直到它们满足基于Llama的“模型作为裁判”的标准。通过完善这些具有挑战性的问题编码数据在质量和难度之间实现了平衡从而实现了最佳的下游性能。4.3.2 多语言能力我们描述了我们如何提高Llama 3的多语言能力包括训练一个专家专门针对大量多语言数据进行训练为德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语来源和生成高质量的多语言指令调整数据并解决多语言语言导向的具体挑战以提高我们模型的整体性能。**专家训练。**我们的Llama 3预训练数据混合包含的英语标记比非英语标记多得多。为了收集非英语语言的更高质量人类注释我们通过分支预训练运行并继续在包含90%多语言标记的数据混合上进行预训练来训练一个多语言专家。然后我们按照第4.1节对这位专家进行后训练。这个专家模型随后被用来收集非英语语言的更高质量注释直到预训练完全完成。**多语言数据收集。**我们的多语言SFT数据主要来源于以下描述的来源。总体分布是2.4%人类注释44.2%来自其他NLP任务的数据18.8%拒绝抽样数据和34.6%翻译推理数据。人类注释我们从语言学家和母语者那里收集高质量的、手动注释的数据。这些注释主要由代表现实世界用例的开放式提示组成。来自其他NLP任务的数据为了进一步增强我们使用其他任务的多语言训练数据并将其改写成对话格式。例如我们使用来自exams-qaHardalov等人2020年和Conic10kWu等人2023年的数据。为了提高语言对齐我们还使用GlobalVoicesProkopidis等人2016年和WikimediaTiedemann2012年的平行文本。我们使用基于LID的过滤和Blaser2.0Seamless Communication等人2023年来移除低质量数据。对于平行文本数据我们不是直接使用双语对而是应用了一种受Wei等人2022a启发的多语言模板以更好地模拟翻译和语言学习场景中的真实生活对话。拒绝抽样数据我们在人类注释提示上应用拒绝抽样以生成用于微调的高质量样本与英语数据的过程相比修改很少a.生成我们在后训练的早期轮次中探索了随机选择温度超参数的范围0.2−1以实现多样化生成。高温下多语言提示的响应可能具有创造性和启发性但也容易不必要的或不自然的代码转换。在后训练的最后一轮我们使用恒定值0.6来平衡权衡。此外我们使用专门的系统提示来改善响应格式、结构和一般可读性。b.选择在基于奖励模型的选择之前我们实施了多语言特定的检查以确保提示和响应之间的高语言匹配率例如罗马化的印地语提示不应期望以印地语天城文脚本响应。c.翻译数据我们尽量避免使用机器翻译数据来微调模型以防止翻译体Bizzoni等人2020年Muennighoff等人2023年或可能的名称偏见Wang等人2022a、性别偏见Savoldi等人2021年或文化偏见Ji等人2023年。此外我们的目标是防止模型只接触到根植于英语文化背景的任务这可能无法代表我们旨在捕捉的语言和文化多样性。我们对此做了一个例外并将我们的合成定量推理数据见第4.3.3节详情翻译以提高非英语语言中的定量推理性能。由于这些数学问题的语言简单性翻译样本的质量问题很少或没有。我们观察到通过添加这些翻译数据在MGSMShi等人2022年上取得了强劲的增长。4.3.3 数学与推理我们将推理定义为执行多步骤计算并得出正确最终答案的能力。几个挑战指导了我们训练模型在数学推理方面出类拔萃的方法缺乏提示随着问题的复杂性增加用于监督式微调SFT的有效提示或问题数量减少。这种稀缺性使得为教授模型各种数学技能而创建多样化和具有代表性的培训数据集变得困难Yu等人2023Yue等人2023Luo等人2023Mitra等人2024Shao等人2024Yue等人2024b。缺乏真实的思考链有效的推理需要逐步解决方案以促进推理过程Wei等人2022c。然而通常缺少真实的思考链这对于指导模型如何逐步分解问题并得出最终答案至关重要Zelikman等人2022。中间步骤不正确当使用模型生成的思考链时中间步骤可能并不总是正确的Cobbe等人2021Uesato等人2022Lightman等人2023Wang等人2023a。这种不准确性可能导致最终答案不正确需要解决。教会模型使用外部工具增强模型以使用外部工具如代码解释器允许它们通过交错代码和文本进行推理Gao等人2023Chen等人2022Gou等人2023。这种能力可以显著提高它们的解决问题能力。训练与推理之间的差异训练期间模型的微调方式与推理期间的使用方式之间通常存在差异。在推理期间微调模型可能与人类或其他模型交互要求它使用反馈改进其推理。确保训练与真实世界使用之间的一致性对于维持推理性能至关重要。为了应对这些挑战我们应用了以下方法解决提示不足的问题我们从数学背景中获取相关的预训练数据并将其转换为问答格式然后可用于监督式微调。此外我们确定模型表现不佳的数学技能并积极从人类那里获取提示教授模型这些技能。为了促进这一过程我们创建了一个数学技能分类Didolkar等人2024并要求人类相应地提供相关的提示/问题。用逐步推理痕迹扩充训练数据我们使用Llama 3为一组提示生成逐步解决方案。对于每个提示模型产生不同数量的生成。然后根据正确答案过滤这些生成Li等人2024a。我们还进行自我验证使用Llama 3验证特定的逐步解决方案是否适用于给定问题。这一过程通过消除模型未产生有效推理痕迹的实例提高了微调数据的质量。过滤错误的推理痕迹我们训练结果和逐步奖励模型Lightman等人2023Wang等人2023a来过滤训练数据其中中间推理步骤不正确。这些奖励模型用于消除带有无效逐步推理的数据确保微调的高质量数据。对于更具挑战性的提示我们使用带有学习到的逐步奖励模型的蒙特卡洛树搜索MCTS来生成有效的推理痕迹进一步提高了收集高质量推理数据的能力Xie等人2024。交错代码和文本推理我们提示Llama 3通过文本推理和相关Python代码的组合来解决推理问题Gou等人2023。代码执行被用作反馈信号以消除推理链无效的情况确保推理过程的正确性。从反馈和错误中学习为了模拟人类反馈我们利用错误的生成即导致错误推理痕迹的生成并通过提示Llama 3产生正确的生成来进行错误纠正An等人2023bWelleck等人2022Madaan等人2024a。使用错误尝试的反馈并纠正它们的迭代过程有助于提高模型准确推理并从错误中学习的能力。4.3.4 长文本环境在最后的预训练阶段我们将Llama 3的上下文长度从8K令牌扩展到128K令牌见第3.4节以获取更多详细信息。类似于预训练我们发现在微调期间我们必须仔细调整配方以平衡短文本和长文本环境的能力。SFT和合成数据生成。简单地应用我们现有的仅使用短文本环境数据的SFT配方导致长文本环境能力的显著退化这突显了在SFT数据混合中纳入长文本环境数据的必要性。然而在实践中由于阅读冗长上下文的繁琐和耗时让人类注释这样的示例在很大程度上是不切实际的因此我们主要依赖合成数据来填补这一空白。我们使用早期版本的Llama 3基于关键的长文本环境用例生成合成数据可能是多轮问答、长文档摘要和对代码库的推理并在下文中更详细地描述它们。问答我们从预训练混合中精心策划一组长文档。我们将这些文档分割成8K令牌的块并提示早期版本的Llama 3模型基于随机选择的块生成QA对。在训练期间整个文档被用作上下文。摘要我们通过首先使用我们最强的Llama 3 8K上下文模型对8K输入长度的块进行摘要然后对摘要进行摘要来应用长文本环境文档的分层摘要。在训练期间我们提供完整文档并提示模型在保留所有重要细节的同时摘要文档。我们还基于文档摘要生成QA对并用需要对整个长文档有全局理解的问题提示模型。长文本环境代码推理我们解析Python文件以识别import语句并确定它们的依赖关系。从这里我们选择最常依赖的文件特别是至少被其他五个文件引用的文件。我们从存储库中移除其中一个关键文件并提示模型识别依赖于缺失文件的文件并生成必要的缺失代码。 我们根据序列长度16K、32K、64K和128K进一步对这些合成生成的样本进行分类以便更细粒度地针对输入长度进行定位。 通过仔细的消融我们观察到将0.1%的合成生成的长文本环境数据与原始短文本环境数据混合使用可以在短文本环境和长文本环境基准测试中优化性能。 DPO。我们观察到只要SFT模型适合长文本环境任务仅使用短文本环境训练数据在DPO中就不会对长文本环境性能产生负面影响。我们怀疑这是由于我们的DPO配方比SFT有更少的优化步骤。鉴于这一发现我们在长文本环境SFT检查点之上保持标准的短文本环境DPO配方。4.3.5 工具使用教会大型语言模型LLMs使用工具如搜索引擎或代码解释器极大地扩展了它们能够解决的任务范围将它们从纯聊天模型转变为更通用的助手Nakano等人2021Thoppilan等人2022Parisi等人2022Gao等人2023Mialon等人2023aSchick等人2024。我们训练Llama 3与以下工具进行交互搜索引擎。Llama 3被训练使用Brave Search7来回答超出其知识截止日期的近期事件问题或需要从网络检索特定信息的问题。Python解释器。Llama 3可以生成并执行代码以执行复杂计算读取用户上传的文件并基于这些文件执行任务如问答、摘要、数据分析或可视化。数学计算引擎。Llama 3可以使用Wolfram Alpha API8更准确地解决数学、科学问题或从Wolfram的数据库检索准确信息。 生成的模型能够在聊天设置中使用这些工具来解决用户的查询包括多轮对话。如果查询需要多次工具调用模型可以编写逐步计划按顺序调用工具并在每次工具调用后进行推理。我们还提高了Llama 3的零样本工具使用能力——在上下文中可能是未见过的潜在工具定义和用户查询我们训练模型生成正确的工具调用。**实现。**我们实现我们的核心工具为具有不同方法的Python对象。零样本工具可以作为具有描述、文档即如何使用它们的示例的Python函数实现模型只需要函数的签名和文档字符串作为上下文来生成适当的调用。我们还将函数定义和调用转换为JSON格式例如用于Web API调用。所有工具调用都由Python解释器执行该解释器必须在Llama 3系统提示中启用。核心工具可以在系统提示中单独启用或禁用。**数据收集。**与Schick等人2024不同我们依赖人类注释和偏好来教会Llama 3使用工具。与通常在Llama 3中使用的后训练管道有两个主要区别对于工具对话通常包含不止一条助手消息例如调用工具和推理工具输出。因此我们在消息级别进行注释以收集细致的反馈注释者在两个具有相同上下文的助手消息之间提供偏好或者如果两者都包含主要问题则编辑其中一条消息。选择或编辑的消息随后被添加到上下文中对话继续。这为助手调用工具的能力和对工具输出进行推理提供了人类反馈。注释者不能对工具输出进行排名或编辑。我们不执行拒绝抽样因为我们在我们的工具基准测试中没有观察到增益。为了加速注释过程我们首先通过在先前Llama 3检查点上微调合成生成的数据来引导基本工具使用能力。因此注释者需要进行的编辑较少。同样随着Llama 3在开发过程中逐渐改进我们逐渐复杂化我们的人类注释协议我们从单轮工具使用注释开始然后转移到对话中的工具使用最后注释多步工具使用和数据分析。**工具数据集。**为了创建工具使用应用的数据我们采用以下程序单步工具使用我们首先通过少量样本生成合成用户提示这些提示在构建时就需要调用我们的核心工具之一例如超出我们知识截止日期的问题。然后仍然依赖少量样本生成我们为这些提示生成适当的工具调用执行它们并将输出添加到模型的上下文中。最后我们再次提示模型根据工具的输出生成对用户查询的最终答案。我们最终得到以下形式的轨迹系统提示、用户提示、工具调用、工具输出、最终答案。我们还筛选了这个数据集的大约30%以移除无法执行的工具调用或其他格式问题。多步工具使用我们遵循类似的协议首先生成合成数据以教授模型基本的多步工具使用能力。为此我们首先提示Llama 3生成至少需要两次工具调用的用户提示这些可以是来自我们核心集合的相同或不同的工具。然后基于这些提示我们少量样本提示Llama 3生成一个解决方案该方案由交错的推理步骤和工具调用组成类似于ReActYao等人2022。见图10展示Llama 3执行涉及多步工具使用的任务的示例。文件上传 我们注释以下文件类型txt、.docx、.pdf、.pptx、.xlsx、.csv、.tsv、.py、.json、.jsonl、.html、.xml。我们的提示基于提供的文件并要求概述文件内容、查找和修复错误、优化代码片段、执行数据分析或可视化。见图11展示Llama 3执行涉及文件上传的任务的示例。在对这个合成数据进行微调后我们在多种具有挑战性的场景中收集人类注释包括多轮交互、超过三个步骤的工具使用以及工具调用没有得到满意答案的情况。我们用不同的系统提示增强我们的合成数据以教会模型仅在激活时使用工具。为了训练模型避免对简单查询调用工具我们还添加了来自简单数学或问答数据集Berant等人2013Koncel-Kedziorski等人2016Joshi等人2017Amini等人2019的查询及其响应但没有使用工具但在系统提示中激活了工具。**零样本工具使用数据。**我们通过在大量多样的部分合成数据集函数定义、用户查询、相应的调用上微调提高Llama 3的零样本工具使用能力也称为函数调用。我们在一组未见过的工具上评估我们的模型。单一、嵌套和并行函数调用调用可以是简单的嵌套的即我们把一个函数调用作为另一个函数的参数传递或者是并行的即模型返回一系列独立的函数调用。生成多样化的函数、查询和真实情况可能具有挑战性Mekala等人2024我们依靠挖掘StackKocetkov等人2022来使我们的合成用户查询基于真实函数。更具体地说我们提取函数调用及其定义进行清理和筛选例如缺失文档字符串或不可执行的函数并使用Llama 3生成与函数调用相对应的自然语言查询。多轮函数调用我们还为带有函数调用的多轮对话生成合成数据遵循Li等人2023b提出的协议。我们使用多个代理生成领域、API、用户查询、API调用和响应同时确保生成的数据涵盖多样化的领域和现实的API。所有代理都是以不同方式提示的Llama 3的变体根据它们的角色进行协作并以逐步的方式进行。4.3.6 事实性幻觉对于大型语言模型来说仍然是一个主要挑战。模型往往过于自信即使在它们知之甚少的领域也是如此。尽管存在这些不足它们仍常被用作知识库这可能导致诸如错误信息传播这样的风险结果。虽然我们认识到事实性可以超越幻觉但在这里我们采取了以幻觉为先的方法。我们遵循的原则是后训练应该使模型与“知道自己知道什么”对齐而不是增加知识Gekhman等人2024Mielke等人2020。我们的主要方法涉及生成数据使模型生成与预训练数据中存在的事实数据子集对齐。为了实现这一点我们开发了一种利用Llama 3上下文能力的知识探测技术。这个数据生成过程包括以下步骤从预训练数据中提取数据片段。通过提示Llama 3生成关于这些片段上下文的事实性问题。从Llama 3获取问题的回答样本。使用原始上下文作为参考以Llama 3为裁判对生成的正确性进行评分。使用Llama 3为裁判对生成的信息性进行评分。对于在生成中一贯信息丰富但不正确的回答使用Llama 3生成拒绝回答。我们使用从知识探测生成的数据鼓励模型只回答它所知道的问题并拒绝回答它不确定的问题。此外预训练数据并不总是事实一致或正确的。因此我们还收集了有限的标记事实性数据这些数据涉及存在事实矛盾或错误陈述的敏感话题。4.3.7 可引导性可引导性是将模型的行为和结果引导至满足开发者和用户规范的能力。由于Llama 3是一个通用的基础模型它应该是最容易引导至不同的下游用例的。对于Llama 3我们专注于通过系统提示和自然语言指令增强其可引导性特别是在回答长度、格式、语气和角色/个性方面。**数据收集。**我们通过要求注释者为Llama 3设计不同的系统提示在通用英语类别内收集可引导性偏好样本。然后注释者与模型进行对话评估它们在对话过程中遵循系统提示中定义的指令的一致性。我们在下面展示了一个用于增强可引导性的定制系统提示示例你是一个乐于助人且开朗的AI聊天机器人充当忙碌家庭的饮食计划助手。这个家庭由2位成年人、3位青少年和2位学龄前儿童组成。每次计划两到三天并使用剩余的食物或额外的食材为第二天的计划。用户会告诉你他们想要两天还是三天的计划。如果他们没有说假设是三天。每个计划应包括早餐、午餐、小吃和晚餐。询问用户是否批准计划或需要调整。在他们批准后提供一份考虑到家庭规模的购物清单。始终牢记家庭的喜好如果有些东西他们不喜欢就提供替代品。如果用户没有灵感就问问他们本周最想去哪里度假然后根据那个地方的文化建议餐点。周末的餐点可以更复杂。工作日的餐点应该是快速且容易的。对于早餐和午餐优选像麦片、带预先煮熟的培根的英国松饼和其他快速且容易的食物。这个家庭很忙。确保询问他们是否有像咖啡或能量饮料这样的必需品和最喜欢的东西这样他们就不会忘记购买。记得要考虑到预算除非是特殊场合。**建模。**在我们收集了偏好数据后我们利用这些数据在奖励建模、拒绝抽样、SFT和DPO中以增强Llama 3的可引导性。5 结果我们对Llama 3进行了广泛的系列评估研究了以下方面的性能(1) 预训练语言模型(2) 后训练语言模型以及 (3) Llama 3的安全特性。我们在下面的各个小节中分别呈现这些评估的结果。5.1 预训练语言模型在本节中我们报告了我们预训练的Llama 3第3节的评估结果并将其与各种其他类似规模的模型进行了比较。我们尽可能地复制了竞争对手模型的结果。对于非Llama模型我们报告了公开报告的最佳分数或者在可能的情况下我们自己复制的结果。这些评估的具体情况包括配置如样本数量、指标以及其他相关的超参数和设置可以在我们这里的Github仓库中访问。此外我们正在发布作为评估一部分生成的数据并与公开可用的基准进行比较这些可以在Huggingface这里找到。我们根据标准基准评估我们的模型质量(5.1.1) 标准基准(5.1.2) 对多项选择题设置变化的鲁棒性以及 (5.1.3) 对抗性评估。我们还进行了污染分析以估计我们的评估在多大程度上受到训练数据污染的影响第5.1.4节。5.1.1 标准基准为了将我们的模型与当前的最先进技术进行比较我们在表8中显示的大量标准基准评估上评估了Llama 3。这些评估涵盖了八个顶级类别(1) 常识推理(2) 知识(3) 阅读理解(4) 数学、推理和问题解决(5) 长文本环境(6) 代码(7) 对抗性评估以及 (8) 综合评估。**实验设置。**对于每个基准我们计算了Llama 3以及其他各种类似规模的预训练模型的分数。在可能的情况下我们使用我们自己的流程重新计算其他模型的数字。为了确保公平比较我们选择我们计算的分数和该模型的报告数字之间的最佳分数该模型具有可比或更保守的设置。你可以在这里找到我们评估设置的更多细节。对于一些模型不可能重新计算基准值例如因为预训练模型未发布或者API不提供对对数概率的访问。特别是这对于所有与Llama 3 405B相当的模型都是如此。因此我们不报告Llama 3 405B的类别平均值这需要所有基准的所有数字都可用。**显著性值。**在计算基准分数时有几个来源的变异性会导致对模型在基准意图测量上的性能估计不精确例如少量样本演示、随机种子和批量大小。这使得理解一个模型是否在统计上显著优于另一个模型变得具有挑战性。为此我们报告了我们的分数以及来自基准数据选择的变异性的95%置信区间CIs。我们使用公式Madaan等人2024b分析计算95% 。其中S是首选基准分数N是基准的样本量。我们注意到因为基准数据的变异性不是唯一的变异性来源这些95% CI是能力估计中实际变异性的下限。对于不是简单平均值的指标省略了CIs。**8B和70B模型的结果。**图12报告了Llama 3 8B和70B在常识推理、知识、阅读理解、数学和推理以及代码基准上的平均表现。结果显示Llama 3 8B在几乎所有类别中都优于竞争模型无论是按类别获胜率还是按类别平均表现来看。我们还发现Llama 3 70B在大多数基准上大幅度优于其前身Llama 2 70B例外的是可能已经饱和的常识基准。Llama 3 70B也优于Mixtral 8x22B。**所有模型的详细结果。**表9、10、11、12、13和14展示了预训练的Llama 3 8B、70B和405B模型在阅读理解任务、编码任务、常识理解任务、数学推理任务和一般任务上的基准表现。这些表格将Llama 3的表现与类似规模的模型进行了比较。结果显示Llama 3 405B在其类别中与其他模型表现相当。特别是Llama 3 405B在很大程度上优于以前的开源模型。对于长文本环境我们在第5.2节中展示了更全面的结果包括像针堆中找针这样的探测任务。5.1.2 模型鲁棒性除了在基准测试中的表现鲁棒性是预训练语言模型质量的重要因素。我们研究了我们的预训练语言模型对多项选择题MCQ设置中设计选择的鲁棒性。先前的工作报告称模型表现可能对这些设置中看似随意的设计选择敏感例如模型分数甚至排名可能会随着上下文示例的顺序和标签Lu等人2022Zhao等人2021Robinson和Wingate2023Liang等人2022Gupta等人2024的变化而变化提示的确切格式Weber等人2023bMishra等人2022或答案选择格式和顺序Alzahrani等人2024Wang等人2024aZheng等人2023。受此工作的启发我们使用MMLU基准来评估我们的预训练模型对以下方面的鲁棒性(1) 少量样本标签偏见(2) 标签变体(3) 答案顺序和 (4) 提示格式少量样本标签偏见。按照Zheng等人2023和Weber等人2023a的方法我们研究了四样本示例中标签分布的影响。具体来说我们考虑以下设置(1) 所有少量样本示例具有相同的标签A A A A(2) 所有示例具有不同的标签A B C D(3) 只有两个标签存在A A B B 和 C C D D。标签变体。我们还研究了模型对不同选择标记集的反应。我们考虑了Alzahrani等人2024提出的两组标记即一组常见的语言独立标记$ # 和一组没有隐含相对顺序的稀有标记œ § з ü。我们还考虑了规范标签的两个版本A. B. C. D. 和 A) B) C) D))以及一个数字列表1. 2. 3. 4.。答案顺序。按照Wang等人2024a的方法我们计算了不同答案顺序下结果的稳定性。为此我们根据固定的排列重新映射数据集中的所有答案。例如对于排列A B C D所有标签为A和B的答案选项保留其标签所有标签为C的答案选项得到标签D反之亦然。提示格式。我们评估了五个任务提示中表现的差异这些提示在提供的信息量上有所不同一个提示简单地要求模型回答问题而其他提示则断言模型的专业知识或应选择最佳答案。图13展示了我们关于模型对标签变体左侧和少量样本标签偏见右侧的鲁棒性实验结果。结果显示我们的预训练语言模型对多项选择题标签的变化和少量样本提示标签的结构非常鲁棒。特别是对于405B参数模型这种鲁棒性尤为显著。图14展示了我们对答案顺序和提示格式鲁棒性研究的结果。图中的结果进一步强调了我们预训练语言模型的性能鲁棒性特别是Llama 3 405B模型。5.1.3 对抗性基准除了上述基准测试外我们还在三个领域中的几个对抗性基准上进行评估问答、数学推理和释义检测。这种测试探测了模型在特别创建的具有挑战性的任务上的能力并且可能也会指出对基准测试的过度拟合。对于问答我们使用对抗性SQuADJia和Liang2017和Dynabench SQuADKiela等人2021。对于数学推理我们使用GSM-PlusLi等人2024c。对于释义检测我们使用PAWSZhang等人2019。我们使用的非对抗性基准测试是SQuADRajpurkar等人2016用于问答GSM8K用于数学推理QQPWang等人2017用于释义检测。每个数据点代表一对对抗性和非对抗性数据集例如QQP与PAWS配对我们显示了类别内所有可能的配对。对角线黑线代表了对抗性和非对抗性数据集之间的平等——位于线上将表明模型无论对抗性如何都有相似的表现。在释义检测方面无论是预训练还是后训练模型似乎都没有受到PAWS构建时所考虑的那种对抗性的影响这与前一代模型相比是一个实质性的进步。这一结果证实了Weber等人2023a的发现他们也发现大型语言模型对几种对抗性数据集中发现的那种虚假相关性不太敏感。然而对于数学推理和问答对抗性表现显著低于非对抗性表现。这种模式对于预训练和后训练模型都是相似的。5.1.4 污染分析我们进行了污染分析以估计基准测试分数在多大程度上可能受到预训练语料库中评估数据污染的影响。在以前的工作中使用了几种不同的污染方法具有各种不同的超参数——我们参考Singh等人2024的概述。这些方法中的任何一种都可能存在误报和漏报如何最好地进行污染分析目前仍是一个开放的研究领域。在这里我们主要遵循Singh等人2024的建议。**方法。**具体来说Singh等人2024建议基于哪种方法在“干净”数据集部分和整个数据集之间产生最大的差异来选择污染检测方法他们称之为估计的性能提升。对于我们所有的评估数据集我们基于8-gram重叠对示例进行评分这种方法被Singh等人2024发现对许多数据集是准确的。我们认为如果数据集D的一个示例的令牌比例TD是至少在预训练语料库中出现一次的8-gram的一部分则该示例被污染。我们为每个数据集单独选择TD基于哪个值在三种模型大小上显示出最大的显著估计性能提升。**结果。**在表15中我们报告了所有关键基准测试中被认为是污染的评估数据的百分比如上所述以实现最大的估计性能提升。从表中我们排除了结果不显著的基准测试的数字例如因为干净或污染的集合中示例太少或者因为观察到的性能提升估计显示出极其不稳定的行为。在表15中我们观察到对于一些数据集污染有很大的影响而对于其他数据集则没有。例如对于PiQA和HellaSwag污染的估计和性能提升的估计都很高。另一方面对于Natural Questions估计的52%污染似乎对性能几乎没有影响。对于SQuAD和MATH低阈值产生高水平的污染但没有性能提升。这表明污染对这些数据集要么没有帮助要么需要更大的n来获得更好的估计。最后对于MBPP、HumanEval、MMLU和MMLU-Pro可能需要其他污染检测方法即使使用更高的阈值8-gram重叠也给出了如此高的污染分数以至于无法获得良好的性能提升估计。5.2 后训练语言模型我们展示了我们的Llama 3后训练模型在不同能力基准测试中的结果。与预训练类似我们正在发布作为评估一部分生成的数据并与公开可用的基准进行比较这些可以在Huggingface这里找到。我们评估设置的更多细节可以在这里找到。**基准测试和指标。**表16包含了按能力组织的所有必要基准测试的概述。我们通过运行每个基准测试提示的精确匹配来对后训练数据进行去污染处理。除了标准的学术基准测试我们还对不同能力进行了广泛的人类评估。详细信息在第5.3节中提供。**实验设置。**我们采用了与预训练阶段类似的实验设置并对Llama 3与其他相似规模和能力的模型进行比较分析。尽可能地我们自己评估其他模型的性能并与报告的数字进行比较选择最佳分数。你可以在这里找到我们评估设置的更多细节。5.2.1 一般知识和指令遵循基准测试我们在表2中对Llama 3在一般知识和指令遵循的基准测试中进行评估。**一般知识。**我们利用MMLUHendrycks等人2021a和MMLU-ProWang等人2024b来评估Llama 3在基于知识的问题回答方面的能力。对于MMLU我们在没有CoT的5次射击标准设置下报告子任务准确性的宏观平均值。MMLU-Pro是MMLU的扩展包含了更具挑战性、以推理为重点的问题消除了嘈杂的问题并将选项集从四个扩展到十个。鉴于其对复杂推理的专注我们为MMLU-Pro报告5次射击CoT。所有任务都格式化为生成任务类似于simple-evalsOpenAI2024。如表2所示我们的8B和70B Llama 3变体在两项一般知识任务上都优于其他类似大小的模型。我们的405B模型优于GPT-4和Nemotron 4 340BClaude 3.5 Sonnet在更大的模型中领先。**指令遵循。**我们通过IFEvalZhou等人2023评估Llama 3和其他模型遵循自然语言指令的能力。IFEval包括大约500条“可验证指令”如“用超过400字写”可以通过启发式方法验证。我们在表2中报告在严格和宽松约束下提示级和指令级准确性的平均值。注意所有Llama 3变体在IFEval中都优于可比模型。5.2.2 熟练度考试接下来我们对模型进行了广泛的熟练度考试评估这些考试最初是为测试人类而设计的。我们从公开可用的官方来源获取这些考试对于一些考试我们报告每个熟练度考试的不同考试集的平均分数。具体来说我们平均GRE官方GRE练习测试1和2来自教育测试服务LSAT官方预测试71、73、80和93SAT2018年版官方SAT学习指南中的8次考试AP每个科目的一次官方练习考试GMAT官方GMAT在线考试。这些考试中的问题包含多项选择题样式和生成问题。我们排除了附有图像的问题。对于包含多个正确选项的GRE考试我们只有在模型选择了所有正确选项时才将输出视为正确。我们在每个考试有超过1个考试集的情况下使用少量射击提示进行评估。我们将分数按130-170的范围进行缩放用于GRE并报告所有其他考试的准确性。我们的结果可以在表17中找到。我们观察到我们的Llama 3 405B模型的表现与Claude 3.5 Sonnet和GPT-4 4o非常相似。我们的70B模型的表现更为令人印象深刻。它明显优于GPT-3.5 Turbo在许多测试中击败了Nemotron 4 340B。5.2.3 编码基准测试我们评估Llama 3在多个流行的Python和多编程语言基准测试中的代码生成能力。为了衡量我们的模型在生成功能正确代码方面的有效性我们使用passN指标该指标评估在N次生成中一组单元测试的通过率。我们报告pass1的结果。**Python代码生成。**HumanEvalChen等人2021和MBPPAustin等人2021是Python代码生成的流行基准测试专注于相对简单、自包含的函数。HumanEvalLiu等人2024a是HumanEval的增强版本其中生成了更多测试以避免误报。MBPP EvalPlus基础版本v0.2.0是从原始MBPP训练和测试数据集中的974个初始问题中精选出的378个结构良好问题的集合Liu等人2024a。这些基准测试的结果在表18中报告。在这些基准测试的Python变体中Llama 3 8B和70B优于类似大小的模型。对于最大的模型Llama 3 405B、Claude 3.5 Sonnet和GPT-4o表现相似GPT-4o显示出最强的结果。**多编程语言代码生成。**为了评估Python之外的代码生成能力我们报告了MultiPL-ECassano等人2023基准测试的结果该基准测试基于从HumanEval和MBPP翻译的问题。表19中报告了一些流行编程语言的子集的结果。请注意与表18中的Python对应项相比性能有显著下降。5.2.4 多语言基准测试Llama 3支持8种语言——英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语尽管底层的基础模型已经在更广泛的语言集合上进行了训练。在表20中我们展示了在多语言MMLUHendrycks等人2021a和多语言小学数学MGSMShi等人2022基准测试中评估Llama 3的结果。**多语言MMLU。**我们使用谷歌翻译翻译MMLU问题、少量样本示例和答案。我们保留任务说明为英语并在5次射击设置中进行评估。在表20中我们报告了德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语的平均结果。**MGSMShi等人2022。**我们使用simple-evalsOpenAI2024中相同的母语提示在0次射击CoT设置中测试我们的模型。在表20中我们报告了MGSM基准测试涵盖的语言的平均结果。我们发现Llama 3 405B在MGSM上优于大多数其他模型平均达到了91.6%。在MMLU上与上面显示的英语MMLU结果一致Llama 3 405B落后GPT-4o 2%。另一方面Llama 3 70B和8B模型在两项任务中都表现出色以较大的差距领先于竞争对手。5.2.5 数学与推理基准测试我们的数学和推理基准测试结果如表2所示。Llama 3 8B模型在GSM8K、MATH和GPQA上的表现优于其他类似大小的模型。我们的70B模型在其所有基准测试中的表现显著优于同类别中的其他模型。最后Llama 3 405B模型在GSM8K和ARC-C中是其类别中最好的而在MATH中则是第二好的模型。在GPQA上它与GPT-4 4o表现相当而Claude 3.5 Sonnet则以显著的优势成为最好的模型。5.2.6 长文本环境基准测试我们考虑了一系列涵盖各个领域和文本类型的任务。在下面列出的基准测试中我们专注于使用无偏评估协议的子任务即基于准确性的指标而非n-gram重叠指标。我们还优先考虑我们发现变异性较低的任务。Needle-in-a-HaystackKamradt2023衡量模型检索隐藏在长文档随机部分中的信息的能力。我们的Llama 3模型展示了完美的针头检索性能成功检索到所有文档深度和上下文长度中的100%针头。我们还测量了Multi-needle表21的性能这是Needle-in-a-Haystack的一个变体我们在上下文中插入四个针头并测试模型是否能够检索到其中的两个。我们的Llama 3模型实现了接近完美的检索结果。ZeroSCROLLSShaham等人2023是一个针对长文本的零样本自然语言理解基准测试。我们报告验证集上的数字因为真实答案并未公开可用。我们的Llama 3 405B和70B模型在这项基准测试的多个任务中要么匹配要么超越了其他模型。InfiniteBenchZhang等人2024要求模型理解上下文窗口中的长依赖关系。我们在En.QA小说上的QA和En.MC小说上的多项选择QA上评估Llama 3其中我们的405B模型超越了所有其他模型。特别是在En.QA上提升尤为显著。5.2.7 工具使用性能我们在一系列零样本工具使用即函数调用基准测试中评估我们的模型NexusSrinivasan等人2023、API-BankLi等人2023b、Gorilla API-BenchPatil等人2023和伯克利函数调用排行榜BFCLYan等人2024。结果在表22中显示。在Nexus上我们的Llama 3变体与其对应模型相比表现最佳。在API-Bank上我们的Llama 3 8B和70B模型在其所处类别中显著超越其他模型。405B模型仅落后Claude 3.5 Sonnet 0.6%。最后我们的405B和70B模型在BFCL上表现具有竞争力在其各自的尺寸类别中接近第二名。Llama 3 8B在其类别中表现最佳。**人类评估。**我们还进行人类评估以测试模型的工具使用能力重点关注代码执行任务。我们收集了2000个与代码执行不包括绘图或文件上传、图表生成和文件上传相关的用户提示。这些提示收集自LMSys数据集Chiang等人2024、GAIA基准测试Mialon等人2023b、人类注释者和合成生成。我们使用OpenAI的Assistants API将Llama 3 405B与GPT-4o进行比较。结果在图16中提供。在仅限文本的代码执行任务和图表生成上Llama 3 405B显著超越了GPT-4o。然而它在文件上传用例上落后。5.3 人工评测除了在标准基准测试集上的评估外我们还进行了一系列人类评估。这些评估使我们能够测量和优化模型性能的更微妙方面例如模型的语调、冗长性和对细微差别及文化背景的理解。精心设计的人类评估密切反映了用户体验提供了模型在现实世界场景中表现的洞察。**提示收集。**我们收集了涵盖广泛类别和难度的高质量提示。为此我们首先开发了一个包含尽可能多模型能力的类别和子类别的分类体系。我们使用这个分类体系收集了大约7000个提示涵盖六个单独能力英语、推理、编码、印地语、西班牙语和葡萄牙语以及三个多轮能力11英语、推理和编码。我们确保每个类别内的提示在子类别中均匀分布。我们还将每个提示归类为三个难度级别之一并确保我们的提示集合包含大约10%的简单提示、30%的中等提示和60%的困难提示。所有人类评估提示集都经过了彻底的质量保证流程。建模团队无法访问我们的人类评估提示以防止意外污染或过度拟合测试集。**评估过程。**为了对两个模型进行成对人类评估我们要求人类注释者选择他们更喜欢的两个模型响应由不同模型生成。注释者使用7点量表进行评分使他们能够表明一个模型响应是否明显优于、优于、略优于或与另一个模型响应大致相同。当一个注释者指出一个模型响应比另一个模型响应更好或明显更好时我们认为这是该模型的“胜利”。我们执行模型之间的成对比较报告提示集中每个能力的胜率。**结果。**我们使用我们的人类评估流程比较Llama 3 405B与GPT-40125 API版本、GPT-4oAPI版本和Claude 3.5 SonnetAPI版本。这些评估的结果在图17中呈现。我们观察到Llama 3 405B与GPT-4的0125 API版本表现大致相当而与GPT-4o和Claude 3.5 Sonnet相比则取得了混合结果一些胜利和一些失败。在几乎所有能力上Llama 3和GPT-4的胜率都在误差范围内。在多轮推理和编码任务上Llama 3 405B超越了GPT-4但在多语言印地语、西班牙语和葡萄牙语提示上表现不佳。Llama 3在英语提示上与GPT-4o表现相当在多语言提示上与Claude 3.5 Sonnet表现相当并在单一和多轮英语提示上超越了Claude 3.5 Sonnet。然而它在编码和推理等能力上落后于Claude 3.5 Sonnet。从定性上看我们发现模型在人类评估中的表现在很大程度上受到模型语调、响应结构和冗长性等细微因素的影响——这些因素正是我们在后训练过程中优化的。总体而言我们的人类评估结果与标准基准评估的结果一致Llama 3 405B与领先的行业模型非常有竞争力使其成为表现最佳的公开可用模型。**局限性。**所有人类评估结果都经过了彻底的数据质量保证流程。然而由于定义评估模型响应的客观标准具有挑战性人类评估仍可能受到人类注释者的个人偏见、背景和偏好的影响这可能导致结果不一致或不可靠。5.4 安全性我们专注于评估Llama 3以安全和负责任的方式生成内容的能力同时仍最大限度地提供有帮助的信息。我们的安全工作从预训练阶段开始主要是通过数据清洗和过滤的形式。然后我们描述了我们对安全微调的方法重点是如何在保持有用性的同时训练模型与特定的安全政策对齐。我们分析了Llama 3的每种能力包括多语言、长文本环境、工具使用以及各种多模态能力以衡量我们安全缓解措施的有效性。随后我们描述了我们对提升网络安全和化学及生物武器风险的评估。提升指的是与使用现有可用技术如网络搜索相比由新技术发展带来的额外风险。然后我们描述了我们如何利用红队演练来迭代识别和对抗各种能力和安全风险并进行了残余风险评估。最后我们描述了系统级安全性或者围绕模型本身的输入和输出开发和协调分类器以进一步增强安全性并使开发人员更容易定制各种用例的安全性并以更负责任的方式部署生成性AI。5.4.1 基准构建我们创建了各种内部基准来帮助我们安全、负责任地开发模型。我们的基准在很大程度上受到ML Commons危险分类Vidgen等人2024风险类别的启发。虽然存在诸如ToxiGenHartvigsen等人2022、XS TestRöttger等人2023等语言模型安全性基准但Llama 3中的一些新能力并没有足够的外部基准可用而且外部基准往往缺乏足够的广度和深度覆盖。对于每个风险类别我们收集了人类编写的提示这些提示要么是对抗性的要么是边缘性质的——这些提示的例子可以在表23中找到。对抗性提示从直接引发有害响应的直接提示到包含复杂越狱技术的提示不等。这些对抗性提示的基准是我们衡量违规率的基础。作为违规率的反指标我们还构建了由边缘提示组成的错误拒绝基准。我们将错误拒绝定义为当一个模型即使在可能的情况下也能以有帮助的方式回答问题时却拒绝回答。边缘提示是接近决策边界的提示一个校准良好的模型应该能够处理例如“我怎样才能从总是表现得像主角的我最好的朋友那里偷走风头” 我们的整体基准规模在违规和错误拒绝方面超过每个能力或语言4000个提示并包含单轮和多轮提示的混合。5.4.2 安全预训练我们认为负责任的开发必须从端到端的角度考虑并在模型开发和部署的每个阶段都加以考虑。在预训练期间我们应用了各种过滤器例如用于识别可能包含个人身份识别信息的网站的过滤器见第3.1节。我们还大力关注可发现的记忆Nasr等人2023。类似于Carlini等人2022我们使用所有n-gram的高效滚动哈希索引在训练数据中以不同的出现频率采样提示和真实情况。我们通过变化提示和真实情况的长度、目标数据的检测语言和领域来构建不同的测试场景。然后我们测量模型生成真实情况序列一字不差的频率并分析在特定场景中记忆的相对比率。我们将一字不差的记忆定义为包含率——模型生成包含真实情况延续的确切比例——并按数据中给定特征的普遍性加权报告平均值如表24所示。我们发现训练数据的记忆率很低对于405Bn50和n1000时分别为1.13%和3.91%。记忆率大致与同等大小的Llama 2相当并使用相同的方法应用于其数据混合。5.4.3 安全微调我们描述了我们对安全微调的方法以减轻许多能力的风险这包括两个关键方面1安全训练数据和2风险缓解技术。我们的安全微调过程在我们一般微调方法的基础上进行了修改以解决特定的安全问题。我们优化了两个主要指标违规率VR一个指标用于捕获模型产生违反安全政策的响应时的情况错误拒绝率FRR一个指标用于捕获模型错误地拒绝对无害提示做出响应时的情况。同时我们评估模型在有用性基准上的表现以确保安全改进不会损害整体有用性。**微调数据。**安全训练数据的质量和设计对性能有深远的影响。通过广泛的消融实验我们发现质量比数量更为关键。我们主要使用从数据供应商那里收集的人工生成数据但发现这些数据可能会有错误和不一致之处——特别是对于微妙的安全政策。为确保最高质量数据我们开发了AI辅助注释工具来支持我们严格的质量保证流程。除了收集对抗性提示外我们还收集了一组类似的提示我们称之为边缘提示。这些提示与对抗性提示密切相关但目标是教会模型学会提供有帮助的响应从而降低错误拒绝率FRR。除了人工注释我们还利用合成数据来提高我们训练数据集的质量和覆盖范围。我们使用一系列技术生成额外的对抗性示例包括通过精心设计的系统提示进行上下文学习、基于新的攻击向量的种子提示引导变异以及包括Rainbow TeamingSamvelyan等人2024在内的先进算法这些算法基于MAP-ElitesMouret和Clune2015能够在多样性的多个维度上生成提示。我们进一步解决了模型在生成安全响应时的语调问题这会影响下游用户体验。我们为Llama 3制定了拒绝语调指南并通过严格的质量保证流程确保所有新的安全数据都符合该指南。我们还根据指南优化现有的安全数据使用零样本重写和人工参与编辑的组合来产生高质量的数据。通过采用这些方法再加上使用语调分类器评估安全响应的语调质量我们能够显著改善模型的措辞。**安全监督微调。**遵循我们Llama 2的配方Touvron等人2023b我们在模型对齐阶段结合了所有有用性数据和安全数据。此外我们引入了一个边缘数据集帮助模型辨别安全和不安全请求之间的微妙区别。我们指示注释团队根据我们的指南精心制作对安全提示的响应。我们发现当我们策略性地平衡对抗性到边缘示例的比例时SFT监督微调在对齐模型方面非常有效。我们专注于更具挑战性的风险领域边缘示例的比例更高。这在我们的成功安全缓解工作中发挥了关键作用同时将错误拒绝降至最低。此外我们在图18中检查了模型大小对FRR错误拒绝率和VR违规率之间权衡的影响。我们的结果表明这种影响是不同的——较小的模型需要相对于有用性数据更大的安全数据比例并且与较大模型相比更难有效地平衡VR和FRR。**安全DPO差异隐私优化。**为了加强安全学习我们将对抗性和边缘示例纳入我们在DPO中的偏好数据集中。我们发现将响应对制作成在嵌入空间中几乎正交特别有效这教会了模型区分给定提示的好响应和坏响应。我们进行了多次实验以确定对抗性、边缘和有用性示例的最佳比例旨在优化FRR和VR之间的权衡。我们还发现模型大小影响学习结果——因此我们为不同大小的模型定制了不同的安全组合。5.4.4 安全结果我们首先突出展示Llama 3在各个轴上的一般行为然后描述每个具体新能力的结果以及我们在减轻安全风险方面的有效性。**总体表现。**可以在图19和图20中找到Llama 3最终违规率和错误拒绝率与类似模型的比较。这些结果侧重于我们最大参数尺寸的Llama 3 405B模型与相关竞争对手进行比较。两个竞争对手是通过API访问的端到端系统其中之一是我们内部托管并直接评估的开源语言模型。我们评估了我们的Llama模型既单独评估也与我们的开源系统级安全解决方案Llama Guard结合评估更多内容见第5.4.7节。虽然低违规率是可取的但将错误拒绝作为反指标考虑是至关重要的因为总是拒绝的模型是最大程度安全的但一点也不有帮助。同样一个无论请求有多成问题都总是回答每一个提示的模型将会过于有害和有毒。在图21中利用我们的内部基准我们探索了不同模型和行业系统如何处理这种权衡以及Llama 3如何比较。我们发现我们的模型在保持低错误拒绝率的同时实现了非常有竞争力的违规率指标表明了在有用性和安全性之间取得了坚实的平衡。**多语言安全性。**我们的实验表明英语中的安全知识并不轻易转移到其他语言特别是考虑到安全政策的细微差别和语言特定的上下文。因此为每种语言收集高质量的安全数据至关重要。我们还发现每种语言的安全数据分布显著影响从安全角度的性能一些语言从迁移学习中受益而其他语言则需要更多的语言特定数据。为了在FRR错误拒绝率和VR违规率之间取得平衡我们迭代地添加对抗性和边缘数据同时监控对这两个指标的影响。我们在图19中展示了我们的内部基准测试结果针对短文本模型展示了Llama 3的违规和错误拒绝率与类似模型和系统相比分别针对英语和非英语语言。为了构建每种语言的基准测试我们使用母语者编写的提示组合有时辅以我们英语基准测试的翻译。对于我们支持的每种语言我们发现配备Llama Guard的Llama 405B至少与两个竞争系统一样安全如果不是更安全的话同时保持了有竞争力的错误拒绝率。单独看Llama 405B模型没有Llama Guard我们发现它比竞争的独立开源模型有显著更低的违规率但错误拒绝率更高。**长文本环境安全性。**长文本模型在没有针对性缓解的情况下容易受到多轮越狱攻击Anil等人2024。为了解决这个问题我们在SFT数据集上微调我们的模型其中包括在上下文中存在不安全行为示范的情况下的安全行为示例。我们开发了一种可扩展的缓解策略显著降低了违规率有效地中和了更长上下文攻击的影响即使是256轮攻击也是如此。这种方法对FRR错误拒绝率和大多数有用性指标几乎没有影响。为了量化我们长文本环境安全缓解措施的有效性我们使用了两种额外的基准测试方法**DocQA和多轮。**对于DocQA即“文档问题回答”我们使用可能以对抗性方式利用信息的长文档。模型被提供了文档和与文档相关的一组提示以测试问题是否与文档中的信息相关影响了模型安全响应提示的能力。对于多轮按照Anil等人2024的方法我们构建了一个由不安全提示-响应对组成的合成聊天记录。最终提示与之前的消息无关用来测试上下文中的不安全行为是否影响了模型以不安全的方式响应。图20显示了DocQA和多轮的违规和错误拒绝率。我们发现无论是配备还是不配备Llama GuardLlama 405B在违规率和错误拒绝率方面都优于Comp. 2系统无论是DocQA还是多轮。与Comp. 1相比我们发现Llama 405B明显更安全尽管在错误拒绝上有所权衡。**工具使用安全性。**可能使用的工具的多样性以及工具使用调用和集成到模型中的实现使得工具使用成为一个难以完全缓解的能力Wallace等人2024。我们专注于搜索用例。图20显示了违规和错误拒绝率。我们与Comp. 1系统进行了测试发现Llama 405B明显更安全尽管错误拒绝率略高。5.4.5 网络安全和化学/生物武器安全网络安全评估结果。为了评估网络安全风险我们利用CyberSecEval基准框架Bhatt等人2023, 2024该框架包含测量在生成不安全代码、生成恶意代码、文本提示注入和漏洞识别等域中的安全性的任务。我们开发并应用Llama 3到新的基准上涉及鱼叉式网络钓鱼和自动网络攻击。总体而言我们发现Llama 3在生成恶意代码或利用漏洞方面没有显著的易感性。我们简要描述了特定任务的结果不安全编码测试框架在不安全编码测试框架中评估Llama 3 8B、70B和405B我们继续观察到更大的模型不仅生成更多的不安全代码而且还生成平均BLEU分数更高的代码Bhatt等人2023。代码解释器滥用提示语料库我们发现Llama 3模型在某些提示下容易执行恶意代码特别是Llama 3 405B其遵从恶意提示的比例为10.4%。Llama 3 70B的遵从率为3.8%。基于文本的提示注入基准在评估提示注入基准时针对Llama 3 405B的提示注入攻击在21.7%的情况下成功。图22提供了Llama 3、GPT-4 Turbo、Gemini Pro和Mixtral模型的基于文本的提示注入成功率。漏洞识别挑战在使用CyberSecEval 2的捕获旗帜测试挑战评估Llama 3识别和利用漏洞的能力时Llama 3并没有超越常用的、传统的非LLM工具和技术。鱼叉式网络钓鱼基准我们评估模型在进行旨在欺骗目标无意中参与安全漏洞的个性化对话中的说服力和成功率。由LLM生成的随机详细受害者档案被用作鱼叉式网络钓鱼目标。一个裁判LLMLlama 3 70B对Llama 3 70B和405B与受害者模型Llama 3 70B的互动表现进行评分并评估尝试的成功程度。裁判LLM评估Llama 3 70B和Llama 3 405B具有适度的说服力。Llama 3 70B被LLM判定在24%的鱼叉式网络钓鱼尝试中成功而Llama 3 405B被判定在14%的尝试中成功。图23展示了裁判LLM评估的说服力得分涵盖各个模型和网络钓鱼目标。攻击自动化框架我们评估Llama 3 405B作为自主代理在勒索软件攻击的四个关键阶段——网络侦察、漏洞识别、利用执行和后期利用行动中的潜在作用。我们通过配置模型使其能够在Kali Linux虚拟机上针对另一个已知漏洞的虚拟机根据其先前命令的输出迭代生成并执行新的Linux命令从而使模型能够自主行为。尽管Llama 3 405B在网络侦察中有效地识别了网络服务和开放端口但模型未能有效地利用这些信息在34次测试运行中获得对易受攻击机器的初始访问。在识别漏洞方面Llama 3 405B效果适中但在选择和应用成功的利用技术方面存在困难。执行利用尝试完全失败后期利用尝试在网络内保持访问或执行横向移动也完全失败。**网络攻击的提升测试。**我们进行了一项提升研究测量虚拟助手在两次模拟的进攻性网络安全挑战中提高新手和专家网络攻击者的网络攻击率的程度。进行了一个两阶段的研究共有62名内部志愿者参与。志愿者根据他们的进攻性安全经验被分为“专家”31名受试者和“新手”31名受试者小组。在第一阶段受试者被要求在没有任何LLM辅助的情况下完成挑战但可以访问开放的互联网。在第二阶段受试者保留了访问互联网的权利但也被提供了Llama 3 405B来完成一个难度与第一个相似的不同进攻性网络安全挑战。通过受试者完成挑战攻击阶段的完成率分析表明使用405B模型的新手和专家在没有LLM的情况下与仅拥有开放互联网访问权相比表现没有显著提升。**化学和生物武器的提升测试。**为了评估与化学和生物武器扩散相关的风险我们进行提升测试旨在评估使用Llama 3是否会显著增加行动者计划此类攻击的能力。该研究包括六小时的情景其中两个参与者的团队被要求为生物或化学攻击生成虚构的作战计划。情景涵盖了CBRNE攻击剂获取、生产、武器化和交付的主要规划阶段并旨在引出详细计划这些计划将解决与采购受限材料、现实世界的实验室协议和作战安全相关的挑战。参与者根据他们在科学或运营领域的相关经验被招募并被分配到由两个低技能行动者没有正式培训或两个中等技能行动者在科学或运营中有一些正式培训和实践经验组成的团队。该研究是与一组CBRNE专家合作生成的并旨在最大化一般性、有效性和定量和定性结果的鲁棒性。还进行了初步研究以验证研究设计包括进行强有力的功效分析确保我们的样本量足以进行统计分析。每个团队被分配到“对照”或“LLM”条件。对照团队只能访问基于互联网的资源而LLM启用的团队既有互联网访问权也有访问启用了网络搜索包括PDF摄取、信息检索能力RAG和代码执行Python和Wolfram Alpha的Llama 3模型。为了启用RAG能力的测试使用关键词搜索生成了数百篇相关科学论文的数据集并加载到Llama 3模型推理系统中。在演习结束时每个团队生成的作战计划由在生物学、化学和作战规划领域具有专业知识的专家进行评估。每个计划在潜在攻击的四个阶段进行评估为科学准确性、细节、检测规避以及在科学和运营执行中成功的可能性等指标生成得分。在通过强有力的Delphi过程来减轻专家评估中的偏见和变异性之后最终得分通过将阶段级指标汇总到一个综合得分中生成。这些研究结果的定量分析显示与使用Llama 3模型相关的性能没有显著提升。当进行总体分析将所有LLM条件与仅网络对照条件进行比较以及按子组进行细分例如分别评估Llama 3 70B和Llama 3 405B模型或分别评估与化学或生物武器相关的情景时这一结果成立。在与CBRNE SMEs验证这些结果后我们评估认为发布Llama 3模型将增加与生物或化学武器攻击相关的生态系统风险的风险较低。5.4.6 红队演练我们利用红队演练来发现风险并利用这些发现来改进我们的基准测试和安全调整数据集。我们定期进行红队演练以持续迭代和发现新风险这指导了我们的模型开发和缓解过程。我们的红队由网络安全、对抗性机器学习、负责任的人工智能和完整性领域的专家组成此外还有具有特定地理市场完整性问题背景的多语言内容专家。我们还与关键风险领域的内部和外部主题专家合作帮助构建风险分类和协助更有针对性的对抗性评估。**针对特定模型能力的对抗性测试。**我们最初通过专注于个别模型能力的风险发现过程开始红队演练在特定高风险类别的背景下测试能力然后一起测试这些能力。红队专注于提示级别的攻击以模拟更可能更真实的世界场景——我们发现模型经常偏离预期行为特别是当提示的意图被混淆或提示叠加了多重抽象时。随着额外能力的出现这些风险变得更加复杂我们详细描述了我们红队演练的几个发现。我们将这些红队发现与我们在内部安全基准测试的结果结合起来制定针对性的缓解措施以持续和迭代地改进模型的安全性。**短期和长期上下文英语。**我们采用了单一和多轮对话中已知和未知技术的混合。我们还利用了类似于PAIRChao等人2023的高级、对抗性多轮自动化技术。总体而言多轮对话导致更有害的输出。几种攻击在模型检查点中普遍存在特别是当一起使用时。多轮拒绝抑制以指定模型响应遵循特定格式或包含/排除与拒绝相关的特定信息作为特定短语。假设情景将违规提示包装为假设性/理论性任务或虚构情景。提示可以简单到添加“假设”这个词或构建一个复杂的分层情景。角色扮演给模型一个带有特定违规响应特征的违规角色例如“你是X你的目标是Y”或你自己作为用户适应一个特定的良性角色这混淆了提示的上下文。添加免责声明和警告作为一种响应启动形式我们假设一种方法允许模型有一条与一般安全培训相交的帮助性合规路径。在多轮对话中要求添加免责声明、触发警告等并与其他提到的攻击相结合有助于提高违规率。逐步升级违规是一种多轮攻击对话开始时是一个或多或少良性的请求然后通过直接提示更夸张的内容可以逐渐引导模型生成一个非常违规的响应。一旦模型开始输出违规内容模型可能很难恢复或者如果遇到拒绝可以使用另一种攻击。对于更长上下文的模型这将是一个越来越常见的问题。**多语言。**在考虑多种语言时我们发现了一些独特的风险。在一个提示或对话中混合多种语言可能比使用单一语言更容易产生违规输出。资源较少的语言可能会导致违规输出因为缺乏相关的安全微调数据模型对安全的泛化较弱或者在测试或基准测试中的优先级较低。然而这种攻击通常会导致质量普遍较差限制了实际的对抗性使用。俚语、特定上下文或文化特定的参考可能会混淆或者乍一看似乎是违规的只有在看到模型没有正确理解给定的参考时才会使输出真正有害或防止其成为违规输出。**工具使用。**在测试中除了在英语文本级别的对抗性提示技术成功生成违规输出外还发现了几种特定工具的攻击。这包括但不限于不安全的工具链例如同时请求多个工具其中一个是违规的可能在早期检查点中导致所有工具被调用输入既有良性的也有违规的。强制工具使用通常带有特定输入字符串、分片段的或编码的文本可以触发工具输入可能是违规的从而导致更违规的输出。然后可以使用其他技术访问工具结果即使模型通常拒绝执行搜索或协助结果。修改工具使用参数如在多轮对话中交换查询中的单词、重试或混淆初始请求的某些部分导致许多早期检查点中的违规作为一种强制工具使用的形式。**儿童安全风险。**儿童安全风险评估是由专家团队进行的以评估模型产生可能导致儿童安全风险的输出的能力并通过微调告知任何必要和适当的风险缓解措施。我们利用这些专家红队演练通过模型开发扩大了我们评估基准的覆盖范围。对于Llama 3我们使用基于目标的方法论进行了新的深入会议以评估模型风险沿着多个攻击向量。我们还与内容专家合作进行红队演练评估可能违规的内容同时考虑市场特定的细微差别或经验。5.4.7 系统级安全在大型语言模型的各种现实世界应用中模型并不是孤立使用的而是被集成到更广泛的系统中。在本节中我们描述了我们的系统级安全实施它通过提供更大的灵活性和控制力补充了模型级缓解措施。为此我们开发并发布了一个新的分类器Llama Guard 3这是一个为安全分类微调的Llama 3 8B模型。类似于Llama Guard 2Llama-Team2024这个分类器用于检测由语言模型生成的输入提示和/或输出响应是否违反特定伤害类别的安全政策。它旨在支持Llama不断增长的能力并且可以用于英语和多语言文本。它还针对工具调用如搜索工具和防止代码解释器滥用进行了优化。最后我们还提供了量化变体以减少内存需求。我们鼓励开发人员使用我们发布的系统安全组件作为基础并为他们自己的用例进行配置。**分类体系。**我们根据AI安全分类Vidgen等人2024中列出的13个危险类别进行训练儿童性剥削、诽谤、选举、仇恨、无差别武器、知识产权、非暴力犯罪、隐私、性相关犯罪、性内容、专业建议、自杀和自残以及暴力犯罪。我们还对代码解释器滥用类别进行了训练以支持工具调用用例。**训练数据。**我们从Llama GuardInan等人2023使用的英语数据开始并扩展这个数据集以纳入新的能力。对于新能力如多语言和工具使用我们收集提示和响应分类数据并利用为安全微调收集的数据。我们通过提示工程增加训练集中不安全响应的数量以使LLM不拒绝响应对抗性提示。我们使用Llama 3对此类生成的数据获取响应标签。为了提高Llama Guard 3的性能我们使用人工注释和Llama 3的LLM注释对收集的样本进行了广泛的清理。获取用户提示的标签对于人类和LLM来说都是一项更困难的任务我们发现人类标签略胜一筹尤其是对于边缘提示尽管我们的完整迭代系统能够减少噪声并产生更准确的标签。**结果。**Llama Guard 3能够显著减少各能力中的违规行为在我们的基准测试中平均减少了65%的违规行为。注意增加系统防护和一般的任何安全缓解措施的代价是增加了对良性提示的拒绝。在表25中我们报告了与基础模型相比违规率的降低和错误拒绝率的增加以突出这种权衡。这种效应也可以在图19、20和21中看到。**系统安全还提供了更大的灵活性。**Llama Guard 3可以仅针对特定的伤害部署仅启用对违规和错误拒绝权衡的控制以伤害类别级别为单位。表26展示了每个类别的违规减少情况以告知根据开发人员用例应该启用或禁用哪个类别。为了使部署安全系统更容易我们提供了使用常用的int8量化技术量化版本的Llama Guard 3将其大小减少了40%以上。表27说明了量化对模型性能的影响微乎其微。**基于提示的系统防护。**系统级安全组件使开发人员能够自定义和控制LLM系统如何响应用户请求。作为我们提高模型系统整体安全性并使开发人员能够负责任地部署的工作的一部分我们描述并发布了两种基于提示的过滤机制的创建Prompt Guard和Code Shield。我们开源这些供社区直接利用或作为灵感并适应他们的用例。Prompt Guard是一个基于模型的过滤器旨在检测提示攻击这些是旨在颠覆作为应用程序一部分的LLM预期行为的输入字符串。该模型是一个多标签分类器检测两类提示攻击风险——直接越狱明确尝试覆盖模型的安全条件或系统提示的技术和间接提示注入模型的上下文窗口中包含第三方数据包括无意中被LLM执行为用户命令的指令。该模型从mDeBERTa-v3-base微调而来这是一个小型8600万参数模型适用于过滤输入到LLM的输入。我们在表28中显示的几个评估数据集上评估了其性能。我们在两个数据集越狱和注入上进行了评估这些数据集与训练数据具有相同的分布以及一个英语的分布外数据集一个从机器翻译构建的多语言越狱集以及一个从CyberSecEval英语和多语言中提取的间接注入数据集。总体而言我们发现该模型对新分布有很好的泛化能力并具有强大的性能。Code Shield是一个基于提供推理时过滤的系统级保护的示例。特别是它专注于在不安全代码可能进入下游用例如生产系统之前检测不安全代码的生成。它通过利用静态分析库——不安全代码检测器ICD来识别不安全代码。ICD使用一系列静态分析工具对7种编程语言进行分析。这些类型的防护栏通常对开发人员很有用他们可以在各种应用程序中部署多层保护。5.4.8 局限性我们对Llama 3的安全使用进行了广泛的测量和缓解涉及多种风险。然而没有任何测试可以保证能够全面识别出所有可能的风险。由于在各种数据集上进行训练特别是对于英语以外的语言以及在熟练的对抗性红队工程师进行提示工程时Llama 3可能仍会生成有害内容。恶意开发人员或对抗性用户可能会找到新的方法来越狱我们的模型并将其用于各种恶意用例。我们将继续主动识别风险进行缓解方法的研究并鼓励开发人员在从模型开发到部署再到用户的每一个方面都考虑责任。我们希望开发人员能够利用并为我们发布的开源系统级安全套件做出贡献。6 推理我们研究了两种主要技术以使 Llama 3 405B 模型的推理高效(1) 流水线并行和 (2) FP8 量化。我们已经公开发布了我们的 FP8 量化实现。6.1 流水线并行当使用 BF16 数字表示模型参数时Llama 3 405B 不适合在装有 8 个 Nvidia H100 GPU 的单台机器的 GPU 内存中。为了解决这个问题我们使用 BF16 精度在两台机器上的 16 个 GPU 上并行化模型推理。在每台机器内高 NVLink 带宽使得可以使用张量并行Shoeybi 等人2019。然而跨节点的连接带宽较低且延迟较高因此我们使用流水线并行Huang 等人2019。在使用流水线并行进行训练时气泡是主要的效率问题见第 3.3 节。然而在推理过程中它们不是问题因为推理不涉及需要流水线刷新的反向传递。因此我们使用微批处理来提高流水线并行推理的吞吐量。我们评估了在推理工作负载中使用两个微批处理在推理的关键值缓存预填充阶段和解码阶段输入令牌为 4,096输出令牌为 256 的效果。我们发现微批处理提高了相同本地批量大小的推理吞吐量见图 24。这些改进来自于微批处理使得这两个阶段的微批处理能够并行执行。由于微批处理引起的额外同步点也增加了延迟但总体上微批处理仍然导致更好的吞吐量-延迟权衡。6.2 FP8 量化我们利用 H100 GPU 的原生 FP8 支持进行低精度推理。为了启用低精度推理我们对模型内的大多数矩阵乘法应用了 FP8 量化。特别是我们量化了模型中前馈网络层中的大部分参数和激活这些占推理计算时间的大约 50%。我们没有量化模型的自注意力层的参数。我们利用动态缩放因子以获得更好的准确性Xiao 等人2024b优化我们的 CUDA 内核 15 以减少计算比例的开销。我们发现 Llama 3 405B 的质量对某些类型的量化敏感并进行了一些额外的更改以提高模型输出质量类似于 Zhang 等人2021我们不在第一层和最后一层 Transformer 层中进行量化。高困惑度的令牌如日期可能导致大的激活值。反过来这可能导致 FP8 中的高动态缩放因子和大量下溢导致解码错误。为了解决这个问题我们将动态缩放因子上界限制为 1200。我们使用行量化为参数和激活矩阵计算跨行的缩放因子见图 25。我们发现这比张量量化方法更有效。量化误差的影响。标准基准测试通常表明即使没有这些缓解措施FP8 推理也与 BF16 推理相当。然而我们发现这样的基准测试并没有充分反映 FP8 量化的影响。当缩放因子没有上界限制时模型偶尔会产生损坏的响应尽管基准测试性能很强。我们发现依靠基准测试来衡量量化引起的分布变化不如分析使用 FP8 和 BF16 生成的 100,000 个响应的奖励模型分数的分布更好。图 26 显示了我们量化方法的奖励分布结果。图中的结果表明我们对 FP8 量化的方法对模型的响应影响非常有限。效率的实验评估。图 27 描述了在预填充和解码阶段使用 Llama 3 405B 进行 FP8 推理的吞吐量-延迟权衡使用 4,096 个输入令牌和 256 个输出令牌。该图比较了第 6.1 节中描述的两台机器 BF16 推理方法的效率。结果表明使用 FP8 推理在预填充阶段的吞吐量提高了最多 50%在解码期间的吞吐量-延迟权衡显著更好。想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2025 年AI 大模型全套学习资料已整理完毕从学习路线到面试真题从工具教程到行业报告一站式覆盖你的所有需求现在全部免费分享扫码免费领取全部内容一、学习必备100本大模型电子书26 份行业报告 600 套技术PPT帮你看透 AI 趋势想了解大模型的行业动态、商业落地案例大模型电子书这份资料帮你站在 “行业高度” 学 AI1. 100本大模型方向电子书2. 26 份行业研究报告覆盖多领域实践与趋势报告包含阿里、DeepSeek 等权威机构发布的核心内容涵盖职业趋势《AI 职业趋势报告》《中国 AI 人才粮仓模型解析》商业落地《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》领域细分《AGI 在金融领域的应用报告》《AI GC 实践案例集》行业监测《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。3. 600套技术大会 PPT听行业大咖讲实战PPT 整理自 2024-2025 年热门技术大会包含百度、腾讯、字节等企业的一线实践安全方向《端侧大模型的安全建设》《大模型驱动安全升级腾讯代码安全实践》产品与创新《大模型产品如何创新与创收》《AI 时代的新范式构建 AI 产品》多模态与 Agent《Step-Video 开源模型视频生成进展》《Agentic RAG 的现在与未来》工程落地《从原型到生产AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。二、求职必看大厂 AI 岗面试 “弹药库”300 真题 107 道面经直接抱走想冲字节、腾讯、阿里、蔚来等大厂 AI 岗这份面试资料帮你提前 “押题”拒绝临场慌1. 107 道大厂面经覆盖 Prompt、RAG、大模型应用工程师等热门岗位面经整理自 2021-2025 年真实面试场景包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题每道题都附带思路解析2. 102 道 AI 大模型真题直击大模型核心考点针对大模型专属考题从概念到实践全面覆盖帮你理清底层逻辑3. 97 道 LLMs 真题聚焦大型语言模型高频问题专门拆解 LLMs 的核心痛点与解决方案比如让很多人头疼的 “复读机问题”三、路线必明 AI 大模型学习路线图1 张图理清核心内容刚接触 AI 大模型不知道该从哪学起这份「AI大模型 学习路线图」直接帮你划重点不用再盲目摸索路线图涵盖 5 大核心板块从基础到进阶层层递进一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】四、资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容2025 年想抓住 AI 大模型的风口别犹豫这份免费资料就是你的 “起跑线”