llama3模型
现代⼈⼯智能(AI)系统由基础模型驱动。本⽂介绍了⼀组新的基础模型,称为Llama 3。它是⼀个语⾔模型群,原⽣⽀持多语⾔性、编码、推理和⼯具使⽤。我们最⼤的模型是⼀个密集变换器,有 405B个参数,上下⽂窗⼝多达 128K 个词组。本⽂对 Llama 3 进⾏了⼴泛的实证评估。我们发现,在⼤量任务中,Llama 3 的质量可与 GPT-4 等领先语⾔模型相媲美。我们公开发布了 Llama 3,包括405B 参数语⾔模型的预训练和后训练版本,以及⽤于输⼊和输出安全的 Llama Guard 3 模型。本⽂还介绍了我们通过组合⽅法将图像、视频和语⾳功能集成到 Llama 3 中的实验结果。我们观察到这种⽅法在图像、视频和语⾳识别任务上的表现与最先进的⽅法不相上下。由于模型仍在开发中,因此尚未⼴泛发布。
一、引⾔
基础模型是语⾔、视觉、语⾳和/或其他模式的通⽤模型,旨在⽀持各种⼈⼯智能任务。它们构成了许多现代⼈⼯智能系统的基础。
现代基础模型的开发包括两个主要阶段:
(1) 训练前阶段,在这⼀阶段中,利⽤下⼀个单词预测或字幕等简单任务对模型进⾏⼤规模训练;
(2) 训练后阶段,在这⼀阶段中,对模型进⾏调整,使其遵循指令、符合⼈类偏好并提⾼特定能⼒(例如编码和推理)。在本⽂中,我们提出了⼀套新的语⾔基础模型,称为 “Llama 3”。Llama 3 模型群原⽣⽀持多语⾔性、编码、推理和⼯具使⽤。我们最⼤的模型是拥有 405B 个参数的密集变换器(Transformer),可处理多达 128K 标记的上下⽂窗⼝中的信息。
表 1 列出了语群的每个成员。本⽂中介绍的所有结果都是针对 Llama 3.1模型的,为简洁起⻅,我们在全⽂中将其称为 Llama 3。
我们认为,在开发⾼质量基础模型的过程中有三个关键杠杆:数据、规模和复杂性管理。我们⼒求在开发过程中优化这三个杠杆:
• 数据:
与之前版本的 Llama(Touvron 等⼈,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)和直接偏好优化(DPO;Rafailov 等⼈,2023 年)的相对简单的后训
练程序,⽽不是更复杂的强化学习算法(欧阳等⼈,2022 年;Schulman 等⼈,2017 年),后者往往稳定性较差且难以扩展。
我们的⼯作成果是 Llama 3:由三个多语⾔1 语⾔模型组成,参数分别为 8B、70B 和 405B。
我们在⼤量基准数据集上评估了 Llama 3 的性能,这些数据集涵盖了⼴泛的语⾔理解任务。此外,我们还进⾏了⼴泛的⼈⼯评估,将 Llama 3 与竞争对⼿的模型进⾏了⽐较。表 2 列出了旗舰模型 Llama 3 在主要基准上的性能概览。我们的实验评估表明,我们的旗舰模型在各种任务中的表现与 GPT-4 (OpenAI,2023a)等领先语⾔模型相当,并接近最先进⽔平。我们的⼩型模型在同类产品中表现最佳,优于参数数量相似的其他模型(Bai 等⼈,2023;Jiang 等⼈,2023)。Llama 3 在有⽤性和⽆害
性之间的平衡也⽐其前⾝好得多(Touvron 等⼈,2023b)。我们将在第 5.4 节详细分析 Llama 3 的安全性。
我们将根据更新版的 Llama 3 社区许可证公开发布所有三个 Llama 3 模型;⻅
https://llama.meta.com。这包括我们的 405B 参数语⾔模型的预训练和后训练版本,以及⽤于输⼊和输出安全的新版 LlamaGuard 模型(Inan等,2023年)。我们希望旗舰模型的公开发布能推动研究界的创新浪潮,并加速⼈⼯通⽤智能(AGI)的发展。
作为 Llama 3 开发过程的⼀部分,我们还对模型进⾏了多模态扩展,实现了图像识别、视频识别和语⾳理解功能。这些模型仍在积极开发中,尚未准备好发布。除了语⾔建模结果,本⽂还介绍了我们对这些多模态模型的初步实验结果。
二、总体概述
Llama 3 的模型架构如图 1 所⽰。Llama 3 语⾔模型的开发主要分为两个阶段:
• 语⾔模型预训练。我们⾸先将⼀个⼤型多语⾔⽂本语料库转换为离散的标记,然后在由此产⽣的数据上预训练⼀个⼤型语⾔模型(LLM),以执⾏下⼀个标记的预测。在语⾔模型预训练阶段,模型会学习语⾔结构,并从“阅读”的⽂本中获取⼤量有关世界的知识。为了有效地做到这⼀点,我们进⾏了⼤规模的预训练:我们使⽤8K 标记的上下⽂窗⼝,在15.6T 标记上预训练了⼀个拥有405B 参数的模型。在这⼀标准预训练阶段之后,我们将继续进⾏预训练,将⽀持的上下⽂窗⼝增加到128Kkkens。详⻅第3 节。
• 语⾔模型后训练。预训练后的语⾔模型对语⾔有丰富的理解,但还不能按照我们期望的助⼿⽅式来执⾏指令或⾏为。我们将分⼏轮根据⼈类反馈调整模型,每⼀轮都包括在指令调整数据基础上进⾏监督微调(SFT)。(SFT)和直接偏好优化(DPO;Rafailov 等⼈,2024 年)。在训练后阶段,我们还整合了⼯具使⽤等新功能,并观察到在编码和推理等其他⽅⾯的显著改进。详⻅第 4 节。最后,在训练后阶段还将安全缓解措施纳⼊模型中,具体细节将在第 5.4 节中介绍。
由此产⽣的模型具有丰富的功能。它们⾄少能⽤⼋种语⾔回答问题、编写⾼质量的代码、解决复杂的推理问题,并能以开箱即⽤或 “零 ”使⽤的⽅式使⽤⼯具。
我们还进⾏了实验,采⽤组合⽅法为 Llama 3 添加图像、视频和语⾳功能。我们研究的⽅法包括图 28 所⽰的三个附加阶段:
• 多模态编码器预训练。我们为图像和语⾳分别训练编码器。我们在⼤量图像-⽂本对上训练图像编码器。这可以让模型了解视觉内容与⾃然语⾔描述之间的关系。我们的语⾳编码器采⽤⾃监督⽅法进⾏训练,这种⽅法会屏蔽掉语⾳输⼊的部分内容,并尝试通过离散标记表⽰法重建屏蔽掉的部分内容。因此,该模型可以学习语⾳信号的结构。有关图像编码器的详细信息,请参⻅第 7 节;有关语⾳编码器的详细信息,请参⻅第 8 节。
Llama 3 是⼀个经过训练的 Transformer 语⾔模型,⽤于预测⽂本序列的下⼀个标记。详⻅正⽂。
• 视觉适配器训练。我们会训练⼀个适配器,将预先训练好的图像编码器集成到预先训练好的语⾔模型中。适配器由⼀系列交叉注意层组成,可将图像编码器表征输⼊语⾔模型。适配器根据⽂本-图像对进⾏训练。这就使图像表征与语⾔表征保持⼀致。在适配器训练过程中,我们也会更新图像编码器的参数,但有意不更新语⾔模型参数。在图像适配器的基础上,我们还在成对的视频-⽂本数据上训练视频适配器。这使模型能够汇总各帧的信息。详⻅第 7 节。
• 语⾳适配器训练。最后,我们通过⼀个适配器将语⾳编码器集成到模型中,该适配器可将语⾳编码转换为标记表⽰,然后直接输⼊经过微调的语⾔模型。适配器和编码器的参数在有监督的微调阶段共同更新,以实现⾼质量的语⾳理解。在语⾳适配器训练过程中,我们不会改变语⾔模型。我们还集成了⽂本到语⾳系统。详⻅第 8 节。
通过多模态实验,我们建⽴了能够识别图像和视频内容并⽀持通过语⾳界⾯进⾏交互的模型。这些模型仍在开发中,尚未准备好发布。
三、预训练
语⾔模型的预训练包括:
(1)⼤规模训练语料的整理和筛选,
(2)模型结构的开发和确定模型⼤⼩的相应⽐例法则,
(3)⼤规模⾼效预训练技术的开发,以及
(4)预训练配⽅的开发。下⾯我们将分别介绍这些组成部分。
3.1预训练数据
我们从包含 2023 年底之前知识的各种数据源中创建了⽤于语⾔模型预训练的数据集。我们对每个数据源采⽤了多种去重⽅法和数据清理机制,以获得⾼质量的标记。我们删除了包含⼤量个⼈⾝份信息(PII)的域和已知有成⼈内容的域。
3.1.1⽹络数据整理
我们使⽤的⼤部分数据都来⾃⽹络,下⽂将介绍我们的清理过程。
PII 和安全过滤。除其他缓解措施外,我们还实施了过滤器,旨在从可能包含不安全内容或⼤量 PII 的⽹站、根据各种 Meta 安全标准被列为有害的域以及已知包含成⼈内容的域中删除数据。
⽂本提取和清理。我们对⾮截断⽹⻚⽂档的原始HTML 内容进⾏处理,以提取⾼质量的多样化⽂本。
为此,我们构建了⼀个⾃定义解析器,⽤于提取HTML 内容,并优化模板去除和内容召回的精度。我们在⼈⼯评估中评估了我们的解析器的质量,并将其与针对⽂章类内容进⾏优化的流⾏第三⽅HTML 解析器进⾏了⽐较,结果发现我们的解析器表现良好。我们对包含数学和代码内容的HTML ⻚⾯进⾏了仔细处理,以保留这些内容的结构。我们保留了图⽚的alt 属性⽂本,因为数学内容通常以预渲染图⽚的形式呈现,⽽数学内容也在alt 属性中提供。我们对不同的清理配置进⾏了实验性评估。与纯⽂本
相⽐,我们发现标记符对主要在⽹络数据上训练的模型的性能有害,因此我们删除了所有标记符。去重。我们在 URL、⽂档和⾏级应⽤了多轮重复数据删除:
• URL级重复数据删除。我们对整个数据集进⾏URL 级重复数据删除。我们保留每个URL 对应⻚⾯的最新版本。
• ⽂档级重复数据删除。我们对整个数据集进⾏全局 MinHash(Broder,1997 年)重复数据删除,以删除近乎重复的⽂档。
• ⾏级重复数据删除我们执⾏与ccNet(Wenzeket al.)我们删除了在每个 3000 万⽂档桶中出现 6 次以上的⾏。虽然我们的⼈⼯定性分析显⽰,⾏级重复数据删除不仅会删除各种⽹站上的残留模板(如导航菜单、cookie警告),还会删除频繁出现的⾼质量⽂本,但我们的实证评估结果表明,⾏级重复数据删除有很⼤的改进。
启发式过滤:我们开发了启发式⽅法来去除额外的低质量⽂档、异常值和重复过多的⽂档。启发式过滤的⼀些例⼦包括:
• 我们使⽤重复 n-gram 覆盖率(Rae 等⼈,2021 年)来删除由重复内容(如⽇志或错误信息)组成的⾏。这些⾏可能很⻓,⽽且是独⼀⽆⼆的,因此⽆法⽤⾏内删除法进⾏过滤。
• 我们使⽤ “脏字 ”计数(Raffel 等⼈,2020 年)来过滤域名封锁列表未覆盖的成⼈⽹站。
• 我们使⽤标记分布 Kullback-Leibler 发散来过滤掉与训练语料库分布相⽐含有过多离群标记的⽂档。
基于模型的质量筛选。此外,我们还尝试应⽤各种基于模型的质量分类器来分选⾼质量的标记。其中包括使⽤快速分类器,如 fasttext(Joulin 等⼈,2017 年),训练其识别给定⽂本是否会被维基百科引⽤(Touvron 等⼈,2023a),以及基于 Llama 2 预测训练的计算密集型 Roberta 分类器(Liu 等⼈,2019a)。为了训练基于 Llama 2 的质量分类器,我们创建了⼀个经过清理的⽹络⽂档训练集,描述了质量要求,并指⽰ Llama 2 的聊天模型确定⽂档是否符合这些要求。出于效率考虑,我们使⽤ DistilRoberta(Sanh 等⼈,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的真实少次学习能⼒和领域外泛化能⼒。按照OpenAI(2023a)的做法,我们在GSM8k(Cobbe等⼈,2021年)和MATH(Hendrycks等⼈,2021b)训练集上评估了退⽕的有效性。我们发现,退⽕将预训练的Llama 3 8B模型在GSM8k和MATH验证集上的性能分别提⾼了24.0%和6.4%。
然⽽,对于405B模型的改进是微不⾜道的,这表明我们的旗舰模型具有强⼤的上下⽂学习和推理能⼒,不需要特定的领域内训练样本就能获得强⼤的性能。
使⽤退火评估数据质量。与Blakeney等⼈(2024年)类似,我们发现退⽕使我们能够判断⼩的特定领域数据集的价值。我们通过将⼀个50%训练的Llama 3 8B模型的学习率在线性地退⽕到40B标记上的0来衡量这些数据集的价值。在这些实验中,我们将新数据集的权重分配为30%,其余70%的权重分配给默认数据混合。使⽤退⽕来评估新数据源⽐为每个⼩数据集执⾏规模定律实验更有效。
3.2 模型架构
Llama 3使⽤标准的密集Transformer架构(Vaswani等⼈,2017年)。与Llama和Llama 2(Touvron等⼈,2023a,b)在模型架构⽅⾯没有显著差异;我们的性能提升主要是由于数据质量和多样性的提⾼以及训练规模的增加。
与Llama 3相⽐,我们做了⼀些⼩的修改:
• 我们使⽤分组查询注意⼒(GQA;Ainslie等⼈,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)。
为了应对这些挑战,我们实施了两阶段的⽅法来制定能够准确预测下游基准性能的规模定律:
- 我们⾸先建⽴计算最优模型在下游任务上的负对数似然与训练FLOPs之间的相关性。
- 接下来,我们将下游任务上的负对数似然与任务准确性相关联,利⽤规模定律模型和⽤更⾼计算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之间(https://github.com/openai/tiktoken/tree/main)
我们使⽤0.95和0.537, A=0.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模型的最终性能。
注:上述文章内容来自于LLama3.1的技术报告,本文是翻译文章!!!