The Llama 3 Herd of Models翻译

摘要

现代人工智能 (AI) 系统由基础模型驱动。本文提出了一组新的基础模型,称为 Llama 3。它是一组语言模型,原生支持多语言、编码、推理和工具使用。我们最大的模型是一个密集的 Transformer,具有 405B 参数和最多 128K 个token的上下文窗口。本文对 Llama 3 进行了广泛的实验评估。我们发现 Llama 3 在大量任务上提供与 GPT-4 等领先语言模型相当的质量。我们公开发布了 Llama 3,包括 405B 参数语言模型的预训练和后训练版本以及我们的 Llama Guard 3 模型,以确保输入和输出安全。本文还介绍了我们通过组合方法将图像、视频和语音功能集成到 Llama 3 中的实验结果。我们观察到这种方法在图像、视频和语音识别任务上的表现与最先进的方法不相上下。由于仍在开发中,因此最终模型尚未广泛发布。

1.介绍

在这里插入图片描述
  基础模型是语言、视觉、语音和/或其他模态的通用模型,旨在支持各种人工智能任务。它们构成了许多现代人工智能系统的基础。
  现代基础模型的开发包括两个主要阶段:(1)预训练阶段,其中使用简单的任务(例如下一个单词预测或释义对模型进行大规模训练;(2)后训练阶段,在此阶段对模型进行微调以遵循指令,符合人类偏好,并提高特定能力(例如,编码和推理)。
  在本文中,我们介绍了一组新的语言基础模型,称为 Llama 3。Llama 3 模型群本身支持多语言、编码、推理和工具使用。我们最大的模型是密集的 Transformer,具有 405B 个参数,可在最多 128K 个token的上下文窗口中处理信息。表 1 列出了Llama 3中的每个成员。本文中介绍的所有结果都是针对 Llama 3.1 模型的,为简便起见,我们将通篇将其称为 Llama 3。
  我们认为,开发高质量基础模型有三个关键杠杆:数据、规模和管理复杂性。我们力求在开发过程中优化这三个杠杆:

  • Data。与之前的 Llama 版本相比,我们提高了用于预训练和后训练的数据的数量和质量。这些改进包括为预训练数据开发更仔细的预处理和管理流程,以及为后训练数据开发更严格的质量保证和过滤方法。我们在大约 15T 多语言token的语料库上对 Llama 3 进行了预训练,而 Llama 2 的语料库只有 1.8T。
  • Scale。我们训练的模型规模远大于之前的 Llama 模型:我们的旗舰语言模型使用 3.8 × 1 0 25 3.8 × 10^{25} 3.8×1025 FLOP 进行预训练,几乎比 Llama 2 的最大版本多 50 倍。具体来说,我们在 15.6T 文本token上预训练了一个具有 405B 可训练参数的旗舰模型。正如基础模型的缩放定律所预期的那样,我们的旗舰模型优于使用相同程序训练的较小模型。虽然我们的缩放定律表明我们的旗舰模型对于我们的训练预算来说大约是计算最优的规模,但我们训练较小模型的时间也比计算最优的时间长得多。在相同的推理预算下,所得到的模型比计算最优模型表现更好。我们使用旗舰模型在训练后进一步提高这些较小模型的质量。
  • Managing complexity。我们在设计时会尽量提高模型开发流程的可扩展性。例如,我们选择标准密集 Transformer 模型架构,并进行了一些小的调整,而不是混合专家模型,以最大限度地提高训练稳定性。同样,我们采用基于有监督微调 (SFT)、拒绝采样 (RS) 和直接偏好优化 (DPO) 的相对简单的训练后程序,而不是更复杂的强化学习算法,因为这些算法往往不太稳定,也更难扩展。

在这里插入图片描述
  我们的工作成果是 Llama 3:一组具有 8B、70B 和 405B 个参数的三个多语言语言模型。我们在大量基准数据集上评估了 Llama 3 的性能,这些数据集涵盖了广泛的语言理解任务。此外,我们还进行了广泛的人工评估,将 Llama 3 与竞争模型进行比较。表 2 概述了旗舰 Llama 3 模型在关键基准上的性能。我们的实验评估表明,我们的旗舰模型在各种任务中的表现与 GPT-4 等领先的语言模型相当,并且接近最先进的水平。我们的小型模型是同类中最好的,优于具有相似数量参数的替代模型。Llama 3 还在有用性和无害性之间实现了比其前身更好的平衡。我们在第 5.4 节中对 Llama 3 的安全性进行了详细分析。
  我们将根据更新版的 Llama 3 社区许可证公开发布所有三个 Llama 3 模型;请参阅 https://llama.meta.com。这包括我们 405B 参数语言模型的预训练和后训练版本,以及用于输入和输出安全的新版 Llama Guard 模型。我们希望旗舰模型的公开发布将激发研究界的创新浪潮,并加速走向负责任的通用人工智能 (AGI) 发展之路。
  作为 Llama 3 开发过程的一部分,我们还开发了模型的多模态扩展,从而实现了图像识别、视频识别和语音理解功能。这些模型仍在积极开发中,尚未准备好发布。除了我们的语言建模结果外,本文还介绍了我们对这些多模态模型的初步实验结果。

2.General Overview

在这里插入图片描述
  Llama 3 的模型架构如图 1 所示。我们的 Llama 3 语言模型的开发包括两个主要阶段:

  • Language model pre-training。我们首先将大型多语言文本语料库转换为离散token,然后使用生成的数据预训练大型语言模型 (LLM) 以执行下一个token预测。在语言模型预训练阶段,该模型学习语言结构并从它正在“阅读”的文本中获取大量有关世界的知识。为了有效地做到这一点,预训练是大规模进行的:我们使用 8K 个token的上下文窗口在 15.6T 个token上预训练了一个具有 405B 参数的模型。这个标准预训练阶段之后是继续预训练阶段,将支持的上下文窗口增加到 128K 个token。有关详细信息,请参阅第 3 节。
  • Language model post-training。预训练语言模型对语言有丰富的理解,但它还不能遵循指令或按照我们期望的方式行事。我们通过几轮迭代以将模型与人类反馈对齐,每轮都涉及对在指令微调数据上进行有监督微调和直接偏好优化。在此后训练阶段,我们还集成了新功能,例如工具使用,并观察到编码和推理等其他领域的显著改进。有关详细信息,请参见第 4 节。最后,安全缓解措施也在后训练阶段纳入模型中,其详细信息在第 5.4 节中描述。

由此产生的模型具有丰富的功能。它们可以用至少八种语言回答问题、编写高质量代码、解决复杂的推理问题,并以开箱即用或零样本方式使用工具。
  我们还进行了实验,使用组合方法为 Llama 3 添加图像、视频和语音功能。我们研究的方法包括图 28 所示的三个附加阶段:

  • Multi-modal encoder pre-training。我们为图像和语音训练单独的编码器。我们在大量图像文本对上训练图像编码器。这让模型了解视觉内容与自然语言中该内容描述之间的关系。我们的语音编码器使用自监督方法进行训练,该方法会屏蔽语音输入的部分并尝试通过离散token表示重建屏蔽的部分。因此,模型可以学习语音信号的结构。有关图像编码器的详细信息,请参阅第 7 节,有关语音编码器的详细信息,请参阅第 8 节。
  • Vision adapter training。我们训练一个适配器,将预训练的图像编码器集成到预训练的语言模型中。适配器由一系列交叉注意力层组成,这些层将图像编码器表示输入到语言模型中。适配器在文本-图像对上进行训练。这使图像表示与语言表示对齐。在适配器训练期间,我们还会更新图像编码器的参数,但我们有意不更新语言模型参数。我们还基于图像适配器,在成对的视频文本数据上训练视频适配器。这使模型能够跨帧聚合信息。有关详细信息,请参阅第 7 节。
  • Speech adapter training。最后,我们通过适配器将语音编码器集成到模型中,该适配器将语音编码转换为可以直接输入微调语言模型的离散token表示。适配器和编码器的参数在有监督微调阶段联合更新,以实现高质量的语音理解。我们在语音适配器训练期间不会更改语言模型。我们还集成了文本转语音系统。有关详细信息,请参阅第 8 节。

我们的多模态实验产生了能够识别图像和视频内容并支持通过语音界面进行交互的模型。这些模型仍在开发中,尚未准备好发布。

3.Pre-Training

语言模型预训练涉及:(1)大规模训练语料库的整理和筛选;(2)开发模型架构和确定模型大小的相应缩放规则;(3)开发大规模高效预训练技术;(4)开发预训练配方。我们将在下面分别介绍每个组件。

3.1 Pre-Training Data

我们从包含知识的各种数据源创建了用于语言模型预训练的数据集,直到 2023 年底。我们对每个数据源应用了多种重复数据删除方法和数据清理机制,以获得高质量的 token。我们删除了包含大量个人身份信息 (PII) 的域以及已知成人内容的域。

3.1.1 Web Data Curation

我们使用的大部分数据都是从网络获得的,我们在下面描述了我们的清理过程。
  PII and safety filtering。除其他缓解措施外,我们还实现了过滤器,旨在从可能包含不安全内容或大量 PII 的网站、根据各种元安全标准被评为有害的域名以及已知包含成人内容的域名中删除数据。
  Text extraction and cleaning。我们处理未截断的 Web 文档的原始 HTML 内容,以提取高质量的多样化文本。为此,我们构建了一个自定义解析器,用于提取 HTML 内容并优化模版删除和内容召回的精确度。我们通过人工评估来评估我们的解析器的质量,并将其与针对文章类内容进行优化的流行第三方 HTML 解析器进行比较,发现它表现良好。我们仔细处理包含数学和代码内容的 HTML 页面,以保留该内容的结构。我们保留图像 alt 属性文本,因为数学内容通常表示为预渲染图像,其中数学也在 alt 属性中提供。我们通过实验评估了不同的清理配置。我们发现与纯文本相比,markdown 会损害主要在 Web 数据上训练的模型的性能,因此我们删除了所有 markdown 标记
  De-duplication。我们在 URL、文档和行级别应用了若干轮重复数据删除:

  • URL-level de-duplication。我们对整个数据集执行 URL 级去重。我们保留每个 URL 对应页面的最新版本。
  • Document-level de-duplication。我们对整个数据集执行全局 MinHash 重复数据删除,以删除近似重复的文档。
  • Line-level de-duplication。我们执行类似于 ccNet 的行级去重。我们删除了 30M 文档一个存储桶中出现超过 6 次的行。虽然我们的手动定性分析表明,行级去重不仅可以删除各种网站的残留模版(例如导航菜单、cookie 警告),还会删除频繁出现的高质量文本,但我们的实证评估表明,效果显著改善。

Heuristic filtering。我们开发了启发式方法来删除额外的低质量文档、异常值和重复次数过多的文档。启发式方法的一些示例包括:

  • 我们使用重复的 n-gram 覆盖率来删除包含重复内容(例如日志或错误消息)的行。这些行可能很长且独一无二,因此无法通过 line-dedup 进行过滤。
  • 我们使用“脏话”计数来过滤掉域名阻止列表中未涵盖的成人网站。
  • 我们使用token分布 Kullback-Leibler 散度来过滤掉与训练语料库分布相比包含过多异常token的文档。

Model-based quality filtering。此外,我们尝试应用各种基于模型的质量分类器来对高质量token进行子选择。这些包括使用快速分类器(例如经过训练可识别给定文本是否会被 Wikipedia 引用的 fasttext),以及基于 Llama 2 预测进行训练的计算密集型 Roberta 分类器。为了训练基于 Llama 2 的质量分类器,我们创建了一组经过清理的 Web 文档训练集,描述了质量要求,并指示 Llama 2 的chat模型确定文档是否满足这些要求。出于效率原因,我们使用 DistilRoberta 为每个文档生成质量分数。我们通过实验评估了各种质量过滤配置的有效性。
  Code and reasoning data。与 DeepSeek-AI et al. (2024) 类似,我们构建了特定领域的管道来提取代码和与数学相关的网页。具体来说,代码和推理分类器都是使用 Llama 2 标注的网页数据训练的 DistilRoberta 模型。与上面提到的通用质量分类器不同,我们针对包含数学推理、STEM 领域推理和与自然语言交替的代码的目标网页进行快速微调。由于代码和数学的token分布与自然语言的token分布有很大不同,这些管道实现了特定领域的 HTML 提取、定制的文本特征和用于过滤的启发式方法。
  Multilingual data。与上面描述的英语处理流程类似,我们实现了过滤器来从可能包含 PII 或不安全内容的网站中删除数据。我们的多语言文本处理流程具有以下几个独特功能:

  • 我们使用基于 fasttext 的语言识别模型将文档分为 176 种语言。
  • 我们对每种语言的数据执行文档级和行级重复数据删除。
  • 我们应用特定语言的启发式方法和基于模型的过滤器来删除低质量的文档。

此外,我们使用基于多语言 Llama 2 的分类器对多语言文档进行质量排名,以确保优先考虑高质量内容。我们通过实验确定预训练中使用的多语言token数量,平衡英语和多语言基准上的模型性能。

3.1.2 Determining the Data Mix

为了获得高质量的语言模型,必须仔细确定预训练数据中组合不同数据源的比例。我们确定这种数据组合的主要工具是知识分类和缩放定律实验。
  Knowledge classification。我们开发了一个分类器来对网络数据中所包含的信息类型进行分类,以便更有效地确定数据组合。我们使用此分类器对网络上过度表示的数据类别进行下采样,例如艺术和娱乐。
  Scaling laws for data mix。为了确定最佳数据组合,我们进行了缩放定律实验,在实验中,我们在一个数据组合上训练几个小模型,并用它来预测一个大模型在该数据组合上的表现(见第 3.2.1 节)。我们对不同的数据组合重复此过程多次,以选择一个新的数据组合候选。随后,我们在这个候选数据组合上训练一个更大的模型,并在几个关键基准上评估该模型的表现。
  Data mix summary。我们的最终数据组合包含大约 50% 的对应于常识的token、25% 的数学和推理token、17% 的代码token和 8% 的多语言token。

3.1.3 Annealing Data

从经验上看,我们发现对少量高质量代码和数学数据进行退火(参见第 3.4.3 节)可以提高预训练模型在关键基准上的性能。与 Li et al. (2024b) 类似,我们使用数据混合进行退火,该数据混合对选定领域中的高质量数据进行上采样。我们的退火数据中不包括任何常用基准的训练集。这使我们能够评估 Llama 3 真正的少样本学习能力和领域外泛化能力。
  按照 OpenAI (2023a) 的做法,我们评估了在 GSM8k 和 MATH 训练集上进行退火的效果。我们发现,退火分别将预训练的 Llama 3 8B 模型在 GSM8k 和 MATH 验证集上的性能提高了 24.0% 和 6.4%。然而,405B 模型的改进可以忽略不计,这表明我们的旗舰模型具有强大的上下文学习和推理能力,并且不需要特定的领域内训练样本即可获得强大的性能。
  Using annealing to assess data quality。与 Blakeney et al. (2024) 类似,我们发现退火使我们能够判断小型领域特定数据集的价值。我们通过对 40B 个 token 进行线性退火,将 50% 训练过的 Llama 3 8B 模型的学习率线性退火至 0,来衡量此类数据集的价值。在这些实验中,我们将 30% 的权重分配给新数据集,将剩余 70% 的权重分配给默认数据组合。使用退火来评估新数据源比对每个小型数据集进行缩放定律实验更有效

3.2 Model Architecture

在这里插入图片描述
  Llama 3 采用标准的密集 Transformer 架构。在模型架构方面,它与 Llama 和 Llama 2 并无太大差异;性能提升主要得益于数据质量和多样性的提高以及训练规模的扩大。
  与 Llama 2 相比,我们做了一些小的修改:

  • 我们使用具有 8 个key-value头的分组查询注意力 (GQA) 来提高推理速度并减少解码期间key-value缓存的大小。
  • 我们使用注意力mask来防止同一序列中不同文档之间的自注意力。我们发现这种变化在标准预训练中影响有限,但在对非常长的序列进行持续预训练时,它很重要。
  • 我们使用包含 128K 个 token 的词表。我们的 token 词表将来自 tiktoken tokenizer 的 100K 个 token 与 28K 个额外的 token 相结合,以更好地支持非英语语言。与 Llama 2 tokenizer 相比,我们的新 tokenizer 将英语数据样本的压缩率从每 token 3.17 个字符提高到 3.94 个字符。这使得模型能够以相同的训练计算量“读取”更多文本。我们还发现,添加来自特定非英语语言的 28K 个 token 可以提高压缩率和下游性能,而不会影响英语 tokenization。
  • 我们将 RoPE 基频超参数增加到 500000。这使我们能够更好地支持更长的上下文;Xiong et al. (2023) 表明,此值对于长度高达 32,768 的上下文有效。

Llama 3 405B 采用 126 层架构,token 表示维度为 16,384,注意头为 128 个;详情见表 3。根据我们数据上的缩放定律,对于 3.8 × 1 0 25 3.8 × 10^{25} 3.8×1025 FLOPs 的训练预算,这导致模型大小近似于计算最优。

3.2.1 Scaling Laws

在这里插入图片描述
  我们制定了缩放定律,以确定旗舰模型在预训练计算预算下的最佳模型大小。除了确定最佳模型大小之外,一个主要挑战是预测旗舰模型在下游基准测试任务上的性能,这是由于以下几个问题:(1) 现有的缩放定律通常只预测下一个token预测损失,而不是特定的基准测试性能。(2) 缩放定律可能存在噪声且不可靠,因为它们是基于使用较小计算预算进行的预训练运行而制定的。
  为了应对这些挑战,我们实现了两阶段方法来制定能够准确预测下游基准性能的扩展定律:

  1. 我们首先建立计算优化模型对下游任务的负对数似然与训练 FLOP 之间的相关性。
  2. 接下来,我们将下游任务的负对数似然与任务准确率关联起来,同时利用缩放定律模型和使用更高计算 FLOP 训练的旧模型。在此步骤中,我们特别利用了 Llama 2 系列模型。

这种方法使我们能够在给定特定数量的训练 FLOP 的情况下预测下游任务的性能,以实现计算优化模型。我们使用类似的方法来选择预训练数据组合(参见第 3.4 节)。
  Scaling law experiments。。具体来说,我们使用 6 × 1 0 18 6 × 10^{18} 6×1018 FLOPs 和 1 0 22 10^{22} 1022 FLOPs 之间的计算预算对模型进行预训练,构建了我们的缩放定律。在每个计算预算下,我们使用每个计算预算下的模型大小子集,对大小在 40M 到 16B 参数之间的模型进行预训练。在这些训练运行中,我们使用余弦学习率,并对 2,000 个训练步骤进行线性预热。峰值学习率设置在 2 × 1 0 − 4 2 × 10^{−4} 2×104 4 × 1 0 − 4 4 × 10^{−4} 4×104 之间,具体取决于模型的大小。我们将余弦衰减设置为峰值的 0.1。每一步的权重衰减设置为该步骤学习率的 0.1 倍。我们对每个计算规模使用固定的batch size,范围在 250K 到 4M 之间。
  这些实验产生了图 2 中的 IsoFLOPs 曲线。这些曲线中的损失是在单独的验证集上测量的。我们使用二次多项式拟合测量的损失值,并确定每个抛物线的最小值。我们将抛物线的最小值称为相应训练前计算预算下的计算最优模型。
  我们使用通过这种方式确定的计算最优模型来预测特定计算预算的最佳训练token数量。为此,我们假设计算预算 C C C 与最佳训练token数量 N ∗ ( C ) N^*(C) N(C) 之间存在幂律关系:
N ∗ ( C ) = A C α N^*(C)=AC^{\alpha} N(C)=ACα
我们使用图 2 中的数据拟合 A A A α α α。我们发现 ( α , A ) = ( 0.53 , 0.29 ) (α, A) = (0.53, 0.29) (α,A)=(0.53,0.29);相应的拟合如图 3 所示。将得到的缩放定律外推到 3.8 × 1 0 25 3.8 × 10^{25} 3.8×1025 FLOPs 表明在 16.55 T 16.55T 16.55T token上训练 402B 参数模型。
  一个重要的观察结果是,随着计算预算的增加,IsoFLOPs 曲线在最小值附近变得更平坦。这意味着旗舰模型的性能对于模型大小和训练token之间的权衡中的微小变化相对稳健。基于这一观察,我们最终决定用 405B 参数训练旗舰模型。
  Predicting performance on downstream tasks。我们使用生成的计算最优模型来预测旗舰 Llama 3 模型在基准数据集上的性能。首先,我们将基准中正确答案的(归一化)负对数似然与训练 FLOP 线性相关。在此分析中,我们仅使用在上述数据组合上训练高达 1 0 22 10^{22} 1022 FLOP 的缩放定律模型。接下来,我们使用缩放定律模型和 Llama 2 模型建立对数似然和准确度之间的 S 形关系,这些模型是使用 Llama 2 数据组合和标记器进行训练的。我们在图 4 中展示了在 ARC Challenge 基准上进行的此实验的结果。我们发现这个两步缩放定律预测(外推超过四个数量级)非常准确:它仅略微低估了旗舰 Llama 3 模型的最终性能。
在这里插入图片描述

3.3 Infrastructure, Scaling, and Efficiency

我们描述了支持 Llama 3 405B 大规模预训练的硬件和基础设施,并讨论了几种可提高训练效率的优化方法。

3.3.1 Training Infrastructure

3.3.2 Parallelism for Model Scaling

3.3.3 Collective Communication

3.3.4 Reliability and Operational Challenges

3.4 Training Recipe

用于预训练 Llama 3 405B 的配方包括三个主要阶段:(1)初始预训练、(2)长上下文预训练和(3)退火。下面分别介绍这三个阶段。我们使用类似的配方来预训练 8B 和 70B 模型。

3.4.1 Initial Pre-Training

我们使用 AdamW 对 Llama 3 405B 进行预训练,峰值学习率为 8 × 1 0 − 5 8 × 10^{−5} 8×105,线性预热为 8,000
步,余弦学习率计划在 1,200,000 步内衰减至 8 × 1 0 − 7 8 × 10^{−7} 8×107。我们在训练初期使用较低的batch size来提高训练稳定性,随后增加batch size以提高效率。具体来说,我们使用 4M 个token和长度为 4,096 的序列作为初始batch size,在预训练 252M 个token后将这些值翻倍为 8M 个 8,192 个token序列的batch size。在对 2.87T 个token进行预训练后,我们再次将批量大小翻倍至 16M。我们发现这种训练方法非常稳定:我们观察到的损失峰很少,并且不需要干预来纠正模型训练发散。
  Adjusting the data mix。我们在训练过程中对预训练数据组合进行了一些调整,以提高模型在某些下游任务上的表现。具体来说,我们在预训练期间增加了非英语数据的百分比,以提高 Llama 3 的多语言性能。我们还对数学数据进行了上采样,以提高模型的数学推理性能,我们在预训练的后期阶段添加了更多最新的网络数据,以提高模型的知识截止值,并且我们对后来被确定为质量较低的预训练数据子集进行了下采样。

3.4.2 Long Context Pre-Training

在预训练的最后阶段,我们对长序列进行训练,以支持最多 128K 个token的上下文窗口。我们不会提前对长序列进行训练,因为自注意力层中的计算量会随着序列长度呈二次增长。我们逐步增加支持的上下文长度,进行预训练,直到模型成功适应增加的上下文长度。我们通过测量 (1) 模型在短上下文评估中的表现是否完全恢复,以及 (2) 模型是否完美解决了该长度以内的“大海捞针”任务来评估成功的适应性。在 Llama 3 405B 预训练中,我们分六个阶段逐渐增加上下文长度,从原始的 8K 上下文窗口开始,到最终的 128K 上下文窗口结束。这个长上下文预训练阶段使用大约 800B 个训练token执行。

3.4.3 Annealing

在对最后 40M 个 token 进行预训练时,我们将学习率线性退火至 0,保持上下文长度为 128K 个 token。在此退火阶段,我们还调整了数据组合以对质量极高的数据源进行上采样;请参阅第 3.1.3 节。最后,我们计算退火期间模型检查点的平均值以生成最终的预训练模型。

4.Post-Training

我们通过应用多轮后训练或在预训练检查点的基础上将模型与人工反馈对齐来生成对齐的 Llama 3 模型。每轮后训练都涉及有监督微调 (SFT),然后对通过人工标注收集或合成生成的示例进行直接偏好优化 (DPO)。我们的后训练建模和数据方法分别在第 4.1 节和第 4.2 节中描述。​​我们在第 4.3 节中进一步详细介绍了自定义数据管理策略,以改进推理、编码、事实性、多语言、工具使用、长上下文和精确指令遵循。

4.1 Modeling

在这里插入图片描述
  我们的后训练策略的支柱是奖赏模型和语言模型。我们首先使用人工标注的偏好数据在预训练检查点上训练奖赏模型(参见第 4.1.2 节)。然后,我们使用有监督微调(SFT;参见第 4.1.3 节)对预训练检查点进行微调,并使用直接偏好优化(DPO;参见第 4.1.4 节)进一步对齐检查点。此过程如图 7 所示。除非另有说明,否则我们的建模过程适用于 Llama 3 405B,为简单起见,我们将 Llama 3 405B 称为 Llama 3。

4.1.1 Chat Dialog Format

为了调整 LLM 以进行人机交互,我们需要为模型定义一个聊天对话协议,以便其理解人类指令并执行对话任务。与前代产品相比,Llama 3 具有一些新功能,例如工具使用(第 4.3.5 节),这可能需要在一个对话回合内生成多条消息并将它们发送到不同的位置(例如,user、ipython)。为了支持这一点,我们设计了一种新的多消息聊天协议,该协议使用各种特殊的开始和终止token。开始token用于指示对话中每条消息的来源和目的地。同样,终止token指示何时在人类和人工智能之间交替讲话。

4.1.2 Reward Modeling

我们在预训练检查点的基础上训练了一个涵盖不同功能的奖赏模型 (RM)。训练目标与 Llama 2 相同,只是我们删除了损失中的边际项,因为我们观察到数据缩放后的改进逐渐减少。按照 Llama 2,我们在过滤掉具有相似响应的样本后,使用所有偏好数据进行奖赏建模。除了标准的偏好对(chosen, rejected)响应之外,标注还为某些提示创建了第三个““edited response”,其中对中选择的响应会进一步编辑以进行改进(参见第 4.2.1 节)。因此,每个偏好排名样本都有两个或三个具有明确排名的响应(edited > chosen > rejected)。我们在训练期间将提示和多个响应拼接成一行,响应随机打乱。这是将响应放在单独的行中并计算分数的标准场景的近似值,但在我们的消融中,这种方法提高了训练效率,而不会降低准确性。

4.1.3 Supervised Finetuning

然后使用奖赏模型对我们的人工标注提示执行拒绝采样,其详细信息在第 4.2 节中描述。​​结合这些拒绝采样数据和其他数据源(包括合成数据),我们使用目标token上的标准交叉熵损失(同时对提示token使用mask损失)微调预训练语言模型。有关数据组合的更多详细信息,请参见第 4.2 节。我们将此阶段称为有监督微调 (SFT),即使许多训练目标都是由模型生成的。我们最大的模型在 8.5K 到 9K 步的过程中以 1 0 − 5 10^{−5} 105 的学习率进行微调。我们发现这些超参数设置在不同的轮次和数据组合中运行良好。

4.1.4 Direct Preference Optimization

我们进一步使用直接偏好优化 (DPO) 训练我们的 SFT 模型以实现人类偏好对齐。对于训练,我们主要使用使用前几轮对齐中表现最优的模型收集的最新批次偏好数据。因此,我们的训练数据更符合每轮优化的策略模型的分布。我们还探索了 PPO 等策略算法,但发现 DPO 对于大型模型所需的计算更少,并且表现更好,尤其是在遵循 IFEval 等基准的指令方面。对于 Llama 3,我们使用 1 0 − 5 10^{−5} 105 的学习率并将 β β β 超参数设置为 0.1 0.1 0.1。此外,我们对 DPO 应用了以下算法修改:

  • Masking out formatting tokens in DPO loss。我们从损失中的chosen和rejected的响应中屏蔽了特殊格式token,包括开始和终止token(如第 4.1.1 节中所述),以稳定 DPO 训练。我们观察到,这些token会导致损失,这可能会导致不良的模型行为,例如尾部重复或突然生成终止token。我们假设这是由于 DPO 损失的对比性质——选定和拒绝的响应中都存在常见token,这会导致学习目标相互冲突,因为模型需要同时增加和减少这些标记的似然。
  • Regularization with NLL loss。我们在所选序列上添加了一个额外的负对数似然 (NLL) 损失项,其缩放系数为 0.2,类似于 Pang et al. (2024)。这有助于进一步稳定 DPO 训练,通过保持所需的生成格式并防止所选响应的对数概率下降。

4.1.5 Model Averaging

最后,我们对在每个RM、SFT或DPO阶段使用不同版本的数据或超参数进行实验所获得的模型进行平均。

4.1.6 Iterative Rounds

继 Llama 2 之后,我们将上述方法应用了六轮。在每一轮中,我们都会收集新的偏好标注和 SFT 数据,并从最新模型中抽取合成数据。

4.2 Post-training Data

训练后数据组成对语言模型的实用性和行为起着至关重要的作用。在本节中,我们讨论我们的人工标注程序和偏好数据收集(第 4.2.1 节)、我们的 SFT 数据的组成(第 4.2.2 节)以及数据质量控制和清理方法(第 4.2.3 节)。

4.2.1 Preference Data

在这里插入图片描述
  我们的偏好数据标注过程与 Llama 2 类似。我们在每一轮之后部署多个模型进行标注,并针对每个用户提示从两个不同的模型中抽取两个响应。这些模型可以使用不同的数据组合和对齐配方进行训练,从而允许不同的能力强度(例如,代码专业知识)和增加数据多样性。我们要求标注者根据他们喜欢所选响应与被拒绝响应的程度,将其分为四个级别之一来评估他们的偏好强度:明显更好、更好、稍好或略好。我们还在偏好排名后加入了一个编辑步骤,以鼓励标注者进一步改进首选响应。标注者直接编辑所选响应或通过反馈提示模型改进其自己的响应。因此,我们的部分偏好数据有三个响应排名(edited > chosen > rejected)。
  在表 6 中,我们报告了用于 Llama 3 训练的偏好标注的统计数据。通用英语涵盖多个子类别,例如基于知识的问答或精确的指令遵循,这些子类别不在特定能力的范围内。与 Llama 2 相比,我们观察到提示和响应的平均长度有所增加,这表明我们在更复杂的任务上训练了 Llama 3。此外,我们实施了质量分析和人工评估流程,以严格评估收集的数据,使我们能够改进提示并向标注者提供系统的、可操作的反馈。例如,随着 Llama 3 在每一轮之后的改进,我们会相应地增加提示的复杂性以针对模型滞后的区域。
  在每一轮后期训练中,我们使用当时可用的所有偏好数据进行奖赏建模,而仅使用来自各种功能的最新batch进行 DPO 训练。对于奖赏建模和 DPO,我们使用token为所选响应明显优于或优于被拒绝响应的样本进行训练,并丢弃具有类似响应的样本。

4.2.2 SFT Data

在这里插入图片描述

4.2.3 Data Processing and Quality Control

4.3 Capabilities

5.Results

6.Inference

7.Vision Experiments

在这里插入图片描述
  我们进行了一系列实验,通过由两个主要阶段组成的组合方法将视觉识别功能整合到 Llama 3 中。首先,我们通过引入一组交叉注意力层,以在大量图像-文本对上训练组合一个预训练的图像编码器和预训练的语言模型。这导致了图 28 所示的模型。其次,我们引入时间聚合器层和额外的视频交叉注意力层,它们对大量视频-文本对进行操作,以学习模型识别和处理视频中的时间信息。
  采用组合式方法开发基础模型具有以下几个优点:(1)它使我们能够并行开发视觉和语言建模功能;(2)它避免了视觉和语言数据联合预训练的复杂性,这些复杂性源于视觉数据的token化、来自不同模态的token的背景困惑度差异以及模态之间的相互竞争;(3)它保证了纯文本任务上的模型性能不受引入视觉识别功能的影响;(4)交叉注意力架构确保我们不必花费大量计算将全分辨率图像传递到越来越多的 LLM 主干(具体而言,每个transformers层中的前馈网络),从而使推理过程更加高效。我们注意到,我们的多模态模型仍在开发中,尚未准备好发布。
  在第 7.6 和 7.7 节中展示我们的实验结果之前,我们先描述一下用于训练视觉识别能力的数据、视觉组件的模型架构、我们如何扩展这些组件的训练,以及我们的预训练和后训练方案。

7.1 Data

我们下面分别描述我们的图像和视频数据。

7.1.1 Image Data

我们的图像编码器和适配器基于图像-文本对进行训练。我们通过复杂的数据处理流程构建此数据集,该流程由四个主要阶段组成:(1) 质量过滤、(2) 感知去重、(3) 重采样和 (4) 光学字符识别。我们还应用了一系列安全缓解措施。

  • Quality filtering。我们实现了质量过滤器,通过启发式方法(例如 (Radford et al., 2021) 产生的低对齐分数)删除非英语释义和低质量释义。具体来说,我们删除低于特定 CLIP 分数的所有图像-文本对。
  • De-duplication。对大规模训练数据集进行重复数据删除有利于提高模型性能,因为它可以减少在冗余数据和记忆上花费的训练计算。因此,出于效率和隐私原因,我们对训练数据进行了重复数据删除。为此,我们使用SOTA的 SSCD 复制检测模型的内部版本来大规模删除图像重复数据。对于所有图像,我们首先使用 SSCD 模型计算 512 维表示。我们使用这些嵌入对数据集中的每个图像和其余所有图像执行最近邻 (NN) 搜索,其中使用余弦相似度度量。我们将相似度高于某个阈值的示例定义为重复项。我们使用连通分量算法对这些重复项进行分组,并且每个连通分量仅维护一个图像-文本对。我们通过以下方式提高重复数据删除流程的效率:(1) 使用 k-means 聚类对数据进行预聚类和 (2) 使用 FAISS 进行 NN 搜索和聚类。
  • Resampling。我们通过类似于 Xu et al. (2023); Mahajan et al. (2018); Mikolov et al. (2013) 的重采样来确保图像-文本对的多样性。首先,我们通过解析高质量文本源构建 n-gram 词表。接下来,我们计算数据集中每个词表 n-gram 的频率。然后,我们按如下方式重新采样数据:如果标题中的任何 n-gram 在词表中出现的次数少于 T 次,则我们保留相应的图像-文本对。否则,我们以概率 T / f i \sqrt{T/f_i} T/fi 对标题中的每个 n-gram n i n_i ni 进行独立采样,其中 f i f_i fi 表示 n-gram n i n_i ni 的频率;如果对任何 n-gram 进行了采样,我们保留图像-文本对。这种重采样有助于提高低频类别和细粒度识别任务的性能。
  • Optical character recognition。我们通过提取图像中书写的文本并将其与标题连接起来,进一步改进了图像文本数据。使用专有的光学字符识别 (OCR) 管道提取书面文本。我们观察到,将 OCR 数据添加到训练数据中可以大大改善需要 OCR 功能的任务,例如文档理解。

Transcribing documents。为了提高模型在文档理解任务上的表现,我们将文档中的页面渲染为图像,并将图像与相应的文本配对。文档文本可以直接从源获取,也可以通过文档解析管道获取。
  Safety。我们主要关注确保用于图像识别的预训练数据集不包含不安全内容,例如性虐待内容 (CSAM)。我们使用感知哈希方法(例如 PhotoDNA)以及内部专有分类器扫描所有训练图像以查找 CSAM。我们还使用专有的媒体风险检索管道来识别和删除我们认为不适合工作场所的图片文本对,例如,因为它们包含性或暴力内容。我们认为,在训练数据集中尽量减少此类材料的普遍性可以提高最终模型的安全性,而不会影响其实用性。最后,我们对训练集中的所有图像执行人脸模糊处理。我们根据引用附加图像的人为生成的提示来测试模型。
  Annealing data。我们通过使用 n-gram 将图像-标题对重采样为较小的约 350M 个样例,创建了一个退火数据集。由于 n-gram 重采样有利于更丰富的文本描述,因此这会选择更高质量的数据子集。我们用来自五个额外来源的约 150M 个示例扩充结果数据:

  • Visual grounding。我们将文本中的名词短语链接到图像中的边界框或蒙版。背景信息(边界框和蒙版)在图像-文本对中以两种方式指定。(1)我们在图像上用标记覆盖框或蒙版,并使用文本中的标记作为参考,类似于标记集。(2)我们将规范化的( x m i n x_{min} xmin y m i n y_{min} ymin x m a x x_{max} xmax y m a x y_{max} ymax)坐标直接插入文本中,并用特殊标记划定界限。
  • Screenshot parsing。我们从 HTML 代码渲染屏幕截图,并让模型预测屏幕截图中产生特定元素的代码,类似于 Lee et al. (2023)。屏幕截图中通过边界框指示感兴趣的元素。
  • Question-answer pairs。我们包括问答对,使我们能够使用大量无法用于模型微调的问答数据。
  • Synthetic captions。我们添加了由模型早期版本生成的带有合成释义的图像。与原始释义相比,我们发现合成释义比原始释义提供了更全面的图像描述。
  • Synthetically-generated structured images。我们还为各种领域(例如图表、表格、流程图、数学方程式和文本数据)提供了合成生成的图像。这些图像附带结构化表示,例如相应的 markdown 或 LaTeX 符号。除了提高模型对这些领域的识别能力外,我们发现这些数据还有助于通过文本模型生成问答对以进行微调。

7.1.2 Video Data

对于视频预训练,我们使用了一个包含视频-文本对的大型数据集。我们的数据集是通过多阶段过程整理出来的。我们使用基于规则的启发式方法过滤和清理相关文本,例如确保最小长度和修复大写字母。然后,我们运行语言识别模型来滤除非英语文本。我们运行 OCR 检测模型来滤除带有过多叠加文本的视频。为了确保视频-文本对之间的合理对齐,我们使用 CLIP 样式的图像-文本和视频-文本对比模型。我们首先使用视频中的单个帧计算图像-文本相似度并滤除相似度较低的对,然后滤除视频-文本对齐度较低的对。我们的一些数据包含静态或低运动视频;我们使用基于运动分数的过滤来滤除此类数据。我们不会对视频的视觉质量应用任何过滤器,例如美学分数或分辨率过滤。
  我们的数据集包含的视频平均时长为 21 秒,中值为 16 秒,超过 99% 的视频时长不到一分钟。320p 和 4K 视频的空间分辨率差异很大,超过 70% 的视频短边大于 720 像素。视频的宽高比各不相同,几乎所有视频的宽高比都在 1:2 和 2:1 之间,中值为 1:1。

7.2 Model Architecture

我们的视觉识别模型由三个主要组件组成:(1)图像编码器,(2)图像适配器,和(3)视频适配器。
  Image encoder。我们的图像编码器是一个标准视觉transformer (ViT),经过训练可以对齐图像和文本。我们使用图像编码器的 ViT-H/14 变体,它有 630M 个参数,这些参数是在 2.5B 图像-文本对上训练了五个epoch的。图像编码器在分辨率为 224 × 224 的图像上进行了预训练;图像被分成大小相等的 16 × 16 个块(即,块大小为 14x14 像素)。正如 ViP-Llava 等先前的工作所证明的那样,我们观察到通过对比文本对齐目标训练的图像编码器无法保留细粒度的定位信息。为了缓解这种情况,我们采用了多层特征提取,除了最后一层特征外,还提供第 4、8、16、24 和 31 层的特征。此外,我们在交叉注意力层预训练之前还插入了 8 个门控自注意力层(总共 40 个 Transformer 块),以学习特定于对齐的特征。因此,图像编码器最终在附加层上总共拥有 850M 个参数。借助多层特征,图像编码器为得到的 16 × 16 = 256 个patch中的每一个生成 7680 维表示。图像编码器的参数在后续训练阶段不会冻结,因为我们发现它可以提高性能,尤其是在文本识别等领域。
  Image adapter。我们在图像编码器生成的视觉token表示和语言模型生成的token表示之间引入了交叉注意力层。在核心语言模型中,每隔四个自注意力层应用一次交叉注意层。与语言模型本身一样,交叉注意力层使用group-query 注意力 (GQA) 来提高效率。交叉注意力层将大量额外的可训练参数引入模型:对于 Llama 3 405B,交叉注意层具有 ≈ 100B 个参数。我们分两个阶段对图像适配器进行预训练:(1) 初始预训练,然后 (2) 退火:

  • Initial pre-training。我们在上述约 6B 个图像-文本对的数据集上预训练了图像适配器。出于计算效率的原因,我们将所有图像的大小调整为最多 4 个 336 × 336 像素的图块,其中我们将图块排列为支持不同的宽高比,例如 672 × 672、672 × 336 和 1344 × 336。
  • Annealing。我们继续使用上述退火数据集中的 ∼500M 图像来训练图像适配器。在退火过程中,我们增加了每个图块的图像分辨率,以提高需要更高分辨率图像的任务(例如信息图表理解)的性能。

Video adapter。我们的模型最多接受 64 帧(从完整视频中均匀采样)作为输入,每帧均由图像编码器处理。我们通过两个组件对视频中的时间结构进行建模:(i)编码的视频帧由时间聚合器聚合,时间聚合器将 32 个连续帧合并为一个,(ii)在每四个图像交叉注意力层之前添加额外的视频交叉注意力层。时间聚合器实现为感知器重采样器。我们使用每段视频 16 帧(聚合为 1 帧)进行预训练,但在有监督微调期间将输入帧数增加到 64 帧。对于 Llama 3 7B 和 70B,视频聚合器和交叉注意力层分别具有 0.6B 和 4.6B 参数。

7.3 Model Scaling

在将视觉识别组件添加到 Llama 3 后,该模型包含自注意力层、交叉注意力层和 ViT 图像编码器。为了训练较小的 8B 和 70B 参数模型的适配器,我们发现数据和张量并行化的组合是最有效的。模型或流水线并行性不会提高这些规模的效率,因为模型参数的收集将主导计算。然而,在训练 405B 参数模型的适配器时,我们确实使用了流水线并行性(除了数据和张量并行性)。除了第 3.3 节中概述的挑战之外,这种规模的训练还带来了三个新挑战:模型异质性、数据异质性和数值不稳定性。
  Model heterogeneity。模型计算是异构的,因为某些 token 比其他 token 执行的计算更多。具体来说,图像 token 由图像编码器和交叉注意力层处理,而文本 token 仅由语言主干处理。这种异构性导致流水线并行调度出现瓶颈。我们通过确保每个pipline阶段包含五层来解决此问题:即语言主干中的四个自注意力层和一个交叉注意力层。(回想一下,我们在每四个自注意力层之后引入一个交叉注意力层。)此外,我们在所有pipline阶段复制图像编码器。因为我们在成对的图像文本数据上进行训练,这使我们能够在计算的图像和文本部分之间执行负载平衡。
  Data heterogeneity。数据是异构的,因为平均而言,图像比相关文本具有更多的token:图像有 2,308 个token,而相关文本平均只包含 192 个token。因此,交叉注意力层的计算需要比自注意力层的计算更多的时间和内存。我们通过在图像编码器中引入序列并行化来解决这个问题,这样每个 GPU 处理的token数量大致相同。由于平均文本大小相对较短,我们还使用了大得多的micro batch-size(8 而不是 1)。
  Numerical instabilities。在将图像编码器添加到模型后,我们发现在 bf16 中执行梯度累积会导致数值不稳定。对此最可能的解释是,图像token通过所有交叉注意力层引入语言主干。这意味着图像token表示中的数值偏差对整体计算产生巨大影响,因为错误是复合的。我们通过在 FP32 中执行梯度累积来解决这个问题。

7.4 Pre-training

Image。我们从预训练的文本模型和视觉编码器权重进行初始化。视觉编码器未冻结,而文本模型权重保持冻结,如上所述。首先,我们使用 6B 图像-文本对训练模型,其中每个图像的大小都调整为适合 336 × 336 像素的四个图块。我们使用global batch-size 16,384 和余弦学习率,初始学习率为 10 × 1 0 − 4 10 × 10^{−4} 10×104,权重衰减为 0.01。初始学习率是根据小规模实验确定的。然而,这些发现并不能很好地推广到非常长的训练计划,并且在训练过程中当损失值变得停滞时,学习率会降低几次。在基础预训练之后,我们进一步提高图像分辨率并继续在退火数据集上训练相同的权重。优化器通过warmup重新初始化为学习率为 2 × 1 0 − 5 2 × 10^{−5} 2×105,并再次遵循余弦学习率。
  Video。对于视频预训练,我们从上述图像预训练和退火权重开始。我们添加视频聚合器和交叉注意力层,如架构中所述,随机初始化。我们冻结模型中除视频特定参数(聚合器和视频交叉力注意)之外的所有参数,并在视频预训练数据上训练它们。我们使用与图像退火阶段相同的训练超参数,学习率略有不同。我们从整个视频中均匀采样 16 帧,并使用四个块表示每帧,每个块大小为 448×448 像素。我们在视频聚合器中使用聚合因子 16,从而获得一个有效帧,文本token会交叉关注该帧。我们在训练期间使用global-batch-size 4,096、序列长度 190 个token和学习率 1 0 − 4 10^{−4} 104

7.5 Post-Training

在本节中,我们将介绍视觉适配器的后训练配方。在预训练之后,我们会在精心挑选的多模态对话数据上对模型进行微调,以实现聊天功能。我们进一步实现直接偏好优化 (DPO) 来提高人工评估性能,并实现拒绝抽样来提高多模态推理能力。最后,我们添加了一个质量微调阶段,在此阶段,我们会继续在非常小的高质量对话数据集上对模型进行微调,从而进一步提高人工评估,同时保持跨基准的性能。下面提供了有关每个步骤的更多详细信息。

7.5.1 Supervised Finetuning Data

我们在下面分别描述针对图像和视频功能的有监督微调(SFT)数据。
  Image。我们利用混合的不同数据集进行有监督微调。

  • Academic datasets。我们使用模板或 LLM 重写将经过高度筛选的现有学术数据集转换为问答对。LLM 重写的目的是使用不同的指令扩充数据并提高答案的语言质量。
  • Human annotations。我们通过人工标注员收集多模态对话数据,用于各种任务(开放式问答、释义、实际用例等)和领域(例如,自然图像和结构化图像)。标注者会获得图像并被要求编写对话。为了确保多样性,我们对大规模数据集进行聚类,并在不同的聚类中均匀采样图像。此外,我们通过 KNN 扩展种子来获取一些特定领域的其他图像。标注者还会获得现有模型的中间检查点,以促进model-in-the-loop标注,这样标注者就可以将模型生成用作起点,然后提供额外的人工编辑。这是一个迭代过程,其中模型检查点会定期更新,使用最新数据训练出性能更好的版本。这增加了人工注释的数量和效率,同时也提高了其质量。
  • Synthetic data。我们探索了使用图像的文本表示和文本输入 LLM 生成合成多模态数据的不同方法。高级想法是利用文本输入 LLM 的推理能力在文本领域中生成问答对,并用其对应的图像替换文本表示以生成合成多模态数据。示例包括将问答数据集中的文本渲染为图像或将表格数据渲染为表格和图表的合成图像。此外,我们使用现有图像中的字幕和 OCR 提取来生成与图像相关的其他对话或问答数据。

Video。与图像适配器类似,我们使用带有预先存在的标注的学术数据集,并将其转换为适当的文本说明和目标响应。目标被转换为开放式响应或多项选择选项,以更合适的为准。我们要求人类用问题和相应的答案标注视频。标注者被要求关注无法基于单个帧回答的问题,以引导标注者转向需要时间理解的问题。

7.5.2 Supervised Finetuning Recipe

我们在下面分别描述了针对图像和视频功能的有监督微调 (SFT) 方案。
  Image。我们从预训练的图像适配器进行初始化,但将预训练的语言模型的权重与指令微调的语言模型的权重进行热交换。语言模型权重保持冻结以保持纯文本性能,即我们仅更新视觉编码器和图像适配器权重。
  我们对模型进行微调的方法与 Wortsman et al. (2022) 的方法类似。首先,我们使用多个随机数据子集、学习率和权重衰减值运行超参数扫描。接下来,我们根据模型的性能对它们进行排名。最后,我们对 top-K 个模型的权重取平均值以获得最终模型。K 的值是通过评估平均模型并选择性能最高的实例来确定的。我们观察到,与通过网格搜索找到的最佳单个模型相比,平均模型始终能产生更好的结果。此外,这种策略降低了对超参数的敏感性。
  Video。对于视频 SFT,我们使用预训练的权重初始化视频聚合器和交叉注意力层。模型中的其余参数(图像权重和 LLM)在微调阶段后从相应模型初始化。与视频预训练类似,我们随后仅微调视频 SFT 数据上的视频参数。在此阶段,我们将视频长度增加到 64 帧,并使用聚合因子 32 来获得两个有效帧。块的分辨率也增加了,以与相应的图像超参数保持一致。

7.5.3 Preference Data

我们构建了多模态成对偏好数据集,用于奖赏建模和直接偏好优化。

  • Human annotations。人工标注的偏好数据包括两个不同模型输出之间的比较,标记为“chosen”和“rejected”,具有 7 个等级的评分。用于生成响应的模型是从最近最好的模型池中即时采样的,每个模型都有不同的特征。我们每周更新模型池。除了偏好标签之外,我们还要求标注者提供可选的人工编辑,以纠正“chosen”响应中的不准确性,因为视觉任务对不准确性的容忍度很低。请注意,人工编辑是一个可选步骤,因为在实践中需要在数量和质量之间进行权衡。
  • Synthetic data。还可以通过使用纯文本 LLM 编辑并故意在有监督微调数据集中引入错误来生成合成偏好对。我们将对话数据作为输入,并使用 LLM 引入细微但有意义的错误(例如,更改对象、更改属性、在计算中添加错误等)。这些编辑后的响应用作负面“拒绝”样本,并与“选定”的原始有监督微调数据配对。
  • Rejection sampling。此外,为了创建更多符合策略的负样本,我们利用拒绝抽样的迭代过程来收集额外的偏好数据。我们将在以下章节中更详细地讨论拒绝抽样的用法。从高层次上讲,拒绝抽样用于从模型中迭代抽取高质量的生成结果。因此,作为副产品,所有未被选中的生成结果都可以用作负拒绝样本并用作额外的偏好数据对。

7.5.4 Reward Modeling

我们在视觉 SFT 模型和语言 RM 之上训练视觉奖赏模型 (RM)。视觉编码器和交叉注意力层从视觉 SFT 模型初始化并在训练期间解冻,而自注意力层从语言 RM 初始化并保持冻结。我们观察到冻结语言 RM 部分通常会提高准确性,尤其是在需要 RM 根据其知识或语言质量进行判断的任务上。我们采用与语言 RM 相同的训练目标,但在batch平均的奖赏logits的平方上添加加权重正则化项,以防止奖赏分数漂移。
  我们使用7.5.3 节中的人类偏好标注训练视觉 RM。我们遵循与语言偏好数据(第 4.2.1 节)相同的做法,创建两到三对具有明确排名(edited > chosen > rejected)的对。此外,我们还通过扰乱与图像中的信息(例如数字或视觉文本)相关的单词或短语来合成增强负面响应。这鼓励视觉 RM 根据实际图像内容做出判断。

7.5.5 Direct Preference Optimization

与语言模型(第 4.1.4 节)类似,我们使用第 7.5.3 节中描述的偏好数据,通过直接偏好优化 (DPO) 进一步训练视觉适配器。为了应对训练后轮次中的分布变化,我们仅保留最近一批人工偏好标注,同时删除足够偏离策略的批次(例如,如果基础预训练模型发生变化)。我们发现,每 k 步以指数移动平均 (EMA) 方式更新参考模型,而不是始终冻结参考模型,有助于模型从数据中学习更多,从而在人工评估中取得更好的表现。总体而言,我们观察到视觉 DPO 模型在每次微调迭代中的人工评估中始终比其 SFT 起点表现更好。

7.5.6 Rejection Sampling

大多数可用的问答对仅包含最终答案,缺乏训练模型所需的思路解释,而该模型对于推理任务具有良好的泛化能力。我们使用拒绝抽样来生成此类示例缺失的解释,并增强模型的推理能力。
  给定一个问答对,我们通过使用不同的系统提示或温度对微调模型进行采样来生成多个答案。接下来,我们通过启发式方法或 LLM 判断将生成的答案与基本事实进行比较。最后,我们通过将正确答案重新添加到微调数据组合中来重新训练模型。我们发现为每个问题保留多个正确答案很有用
  为了确保我们只将高质量的示例重新添加到训练中,我们实现了以下两个防护措施。首先,我们发现尽管最终答案是正确的,但有些示例包含不正确的解释。我们观察到,这种模式在只有一小部分生成的答案正确的问题中更常见。因此,我们会删除答案正确概率低于某个阈值的问题的答案。其次,评分者会因为语言或风格的差异而偏爱某些答案。我们使用奖赏模型来选择 top-K 个质量最高的答案并将其重新添加到训练中。

7.5.7 Quality Tuning

我们精心挑选了一个规模虽小但经过严格筛选的 SFT 数据集,其中所有样本均由人工或我们的最佳模型重写和验证,以满足我们的最高标准。我们使用这些数据训练 DPO 模型以提高响应质量,这个过程称为质量调整 (QT)。我们发现,当 QT 数据集涵盖广泛的任务并应用适当的早期停止时,QT 可以显著改善人工评估,而不会影响基准验证的泛化能力。我们在此阶段仅根据基准选择检查点,以确保保留或改进能力。

7.6 Image Recognition Results

在这里插入图片描述
  我们在一系列涵盖自然图像理解、文本理解、图表理解和多模态推理的任务中评估了 Llama 3 的图像理解能力的表现:

  • MMMU 是一个具有挑战性的多模态推理数据集,其中模型需要理解图像并解决涉及 30 个不同学科的大学水平问题。这包括多项选择题和开放式问题。我们在 900 张图像的验证集上对我们的模型进行了评估,与其他研究一致。
  • VQAv2 测试模型结合图像理解、语言理解和常识知识来回答有关自然图像的一般问题的能力。
  • AI2 Diagram 评估模型解析科学图表并回答有关科学图表的问题的能力。我们使用与 Gemini 和 x.ai 相同的评估协议,并使用透明边界框报告分数。
  • ChartQA 是一个具有挑战性的图表理解基准。这要求模型直观地理解不同类型的图表并回答有关图表的逻辑问题。
  • TextVQA 是一个流行的基准数据集,它要求模型读取和推理图像中的文本以回答有关它们的问题。这测试了模型对自然图像的 OCR 理解能力。
  • DocVQA 是一个专注于文档分析和识别的基准数据集。它包含各种文档的图像,用于评估模型执行 OCR 理解和推理文档内容以回答有关问题的能力。

表 29 展示了我们的实验结果。表中的结果表明,我们连接到 Llama 3 的视觉模块在不同模型尺寸的广泛图像识别基准测试中表现出色。使用生成的 Llama 3-V 405B 模型,我们在所有基准测试中的表现都优于 GPT-4V,但略逊于 Gemini 1.5 Pro 和 Claude 3.5 Sonnet。Llama 3 405B 在文档理解任务上表现出色。

7.7 Video Recognition Results

在这里插入图片描述

8.Speech Experiments

我们进行实验,研究将语音功能集成到 Llama 3 中的组合方法,类似于我们用于视觉识别的方法。在输入端,编码器和适配器被整合在一起来处理语音信号。我们利用系统提示(以文本形式)来启用 Llama 3 中的不同语音理解操作模式。如果没有提供系统提示,该模型将充当通用口语对话模型,可以以与 Llama 3 的纯文本版本一致的方式有效地响应用户语音。对话历史被引入为提示的前缀,以改善多轮对话体验。我们还试验了系统提示,使 Llama 3 能够用于自动语音识别 (ASR) 和自动语音翻译 (AST)。Llama 3 的语音界面支持多达 34 种语言。它还允许文本和语音的交叉输入,使模型能够解决高级音频理解任务。

8.1 Data

8.1.1 Speech Understanding

训练数据可分为两类。预训练数据包括大量未标注的语音,用于以自监督方式初始化语音编码器。有监督微调数据包括语音识别、语音翻译和口语对话数据;这些数据用于与大语言模型集成时解锁特定能力。
  Pre-training data。为了预训练语音编码器,我们整理了一个包含大量语言的约 1500 万小时语音记录的数据集。我们使用voice activity detection (VAD) 模型过滤音频数据,并选择 VAD 阈值高于 0.7 的音频样本进行预训练。在语音预训练数据中,我们还注重确保不存在 PII。我们使用 Presidio Analyzer 来识别此类 PII。
  Speech recognition and translation data。我们的 ASR 训练数据包含 23 万小时的手动转录语音记录,涵盖 34 种语言。我们的 AST 训练数据包含 9 万小时的双向翻译:从 33 种语言到英语,从英语到 33 种语言。此数据包含使用 NLLB 工具包生成的有监督数据和合成数据。使用合成 AST 数据使我们能够提高低资源语言的模型质量。我们数据中的语音片段最大长度为 60 秒。
  Spoken dialogue data。为了微调语音适配器以进行口语对话,我们通过要求语言模型响应这些提示的转录来合成语音提示的响应。我们以这种方式使用包含 60K 小时语音的 ASR 数据集子集生成合成数据。此外,我们通过在用于微调 Llama 3 的数据子集上运行 Voicebox TTS 系统来生成 25K 小时的合成数据。我们使用了几种启发式方法来选择与语音分布相匹配的微调数据子集。这些启发式方法包括关注结构简单且没有非文本符号的相对较短的提示。

8.1.2 Speech Generation

语音生成数据集主要包括用于训练文本规整 (TN) 模型和韵律模型 (PM) 的数据集。这两个训练数据都添加了 Llama 3 嵌入的额外输入特征,以提供上下文信息。
  Text normalization data。我们的 TN 训练数据集包含 55K 个样本,涵盖了需要进行规整的广泛符号类别(例如数字、日期、时间)。每个样本都是一对书面形式文本和相应的口语形式文本,以及执行规整的推断手工 TN 规则序列。
  Prosody model data。PM 训练数据包括从 50K 小时 TTS 数据集中提取的语言和韵律特征,这些数据集是专业配音演员在录音室环境中录制的配对文字记录和音频。
  Llama 3 embedding。Llama 3 嵌入被作为第 16 个解码器层的输出。我们专门使用 Llama 3 8B 模型,并提取给定文本的嵌入(即 TN 的书面形式输入文本或 PM 的音频记录),就好像它们是由 Llama 3 模型在空用户提示下生成的一样。在给定的样本中,Llama 3 token序列中的每个块都与 TN 或 PM 的原始输入序列中的相应块显示对齐,即分别与 TN 特定的文本token(按 unicode 类别划分)或电话速率特征对齐。这允许使用 Llama 3 token和嵌入的流式输入来训练 TN 和 PM 模块。

8.2 Model Architecture

8.2.1 Speech Understanding

在输入端,语音模块由两个连续的模块组成:语音编码器和适配器。语音模块的输出直接作为token表示输入到语言模型中,从而实现语音和文本token之间的直接交互。此外,我们加入了两个新的特殊token来包裹语音表示序列。语音模块与视觉模块(参见第 7 节)有很大不同,视觉模块通过交叉注意力层将多模态信息输入语言模型。相比之下,语音模块生成的嵌入可以与文本token无缝集成,从而使语音接口能够利用 Llama 3 语言模型的所有功能。
  Speech encoder。我们的语音编码器是一个具有 1B 参数的 Conformer 模型。该模型的输入由 80 维梅尔频谱图特征组成,这些特征首先由步长为 4 的堆叠层处理,然后进行线性投影以将帧长度缩短至 40 毫秒。生成的特征由具有 24 个 Conformer 层的编码器处理。每个 Conformer 层的潜在维度为 1536,由两个维度为 4096 的 Macron-net 样式前馈网络、一个核大小为 7 的卷积模块和一个具有 24 个注意头的旋转注意力模块组成。
  Speech adapter。语音适配器包含约 100M 参数。它由卷积层、旋转 Transformer 层和线性层组成。卷积层的核大小为 3,步幅为 2,旨在将语音帧长度缩短至 80ms。这使得模型可以为语言模型提供更粗粒度的特征。Transformer 层的潜在维度为 3072,前馈网络的维度为 4096,在卷积下采样后进一步处理带有上下文的语音信息。最后,线性层将输出维度映射到语言模型嵌入层的输出维度。

8.2.2 Speech Generation

我们在语音生成的两个关键组件中使用了 Llama 3 8B 嵌入:文本规整化和韵律建模。TN 模块通过将书面文本按上下文转换为口语形式来确保语义正确性。PM 模块通过使用这些嵌入来预测韵律特征,从而增强自然性和表现力。它们共同实现了准确而自然的语音生成。
  Text normalization。作为生成语音语义正确性的决定因素,文本规整化 (TN) 模块执行上下文感知转换,将书面文本转换为相应的口语形式,最终由下游组件口语表达。例如,根据语义上下文,书面文本 123 被读作基数(一百二十三)或逐位拼写(一二三)。TN 系统由基于流式 LSTM 的序列token模型组成,该模型可预测用于转换输入文本的手工 TN 规则序列。神经模型还通过交叉注意力接收 Llama 3 嵌入,以利用其中编码的上下文信息,从而实现最小文本标记前瞻和流式输入/输出。
  Prosody modeling。为了增强合成语音的自然度和表现力,我们集成了仅使用解码器的基于 Transformer 的韵律模型 (PM),该模型将 Llama 3 嵌入作为额外输入。此集成利用了 Llama 3 的语言能力,利用其文本输出和 token 速率的中间嵌入来增强韵律特征的预测,从而减少了模型所需的前瞻。
  PM 集成了多个输入组件,以生成全面的韵律预测:从上面详述的文本规整化前端派生的语言特征、token和嵌入。PM 预测三个关键的韵律特征:每个音素的对数持续时间、对数 F0(基频)平均值和音素持续时间的对数功率平均值。该模型由一个单向 Transformer 和六个注意力头组成。每个块包括交叉注意力层和双全连接层,隐藏维度为 864。PM 的一个显着特点是它的双交叉注意力机制,其中一个层专用于语言输入,另一个层专用于 Llama 嵌入。此设置可有效管理不同的输入速率,而无需显式对齐。

8.3 Training Recipe

8.3.1 Speech Understanding

语音模块的训练分为两个阶段。第一阶段是语音预训练,利用未标注的数据来训练语音编码器,该编码器在语言和声学条件下表现出强大的泛化能力。在第二阶段有监督微调中,适配器和预训练编码器与语言模型集成,并在 LLM 保持冻结的情况下与其联合训练。这使模型能够响应语音输入。此阶段使用与语音理解能力相对应的token数据。
  多语言 ASR 和 AST 建模经常会导致语言混淆/干扰,从而导致性能下降。缓解这种情况的一种常用方法是在源端和目标端都加入语言识别 (LID) 信息。这可以提高预定方向集的性能,但可能会丧失通用性。例如,如果翻译系统期望源端和目标端都有 LID,那么该模型就不太可能在训练中未见过的方向上表现出良好的零样本性能。因此,我们的挑战是设计一个系统,在一定程度上允许 LID 信息,但保持模型足够通用,以便我们可以让模型在未知的方向上进行语音翻译。为了解决这个问题,我们设计了仅包含要生成的文本(目标端)的 LID 的系统提示。这些提示中没有语音输入(源端)的 LID 信息,这也有可能使其能够处理代码转换语音。对于 ASR,我们使用以下系统提示:Repeat after me in {language},其中 {language} 来自 34 种语言之一(英语、法语等)。对于语音翻译,系统提示为:Translate the following sentence into {language}。事实证明,这种设计可以有效地提示语言模型以所需的语言做出响应。我们在训练和推理期间使用了相同的系统提示。
  Speech pre-training。我们使用自监督的 BEST-RQ 算法对语音编码器进行预训练。我们以 2.5% 的概率将 32 帧长度的掩码应用于输入的梅尔频谱图。如果语音长于 60 秒,我们将随机裁剪 6K 帧,相当于 60 秒的语音。我们通过堆叠 4 个连续帧、将 320 维向量投影到 16 维空间并在 8,192 个向量的码本中针对余弦相似度度量执行最近邻搜索来量化梅尔频谱图特征。为了稳定预训练,我们使用了 16 个不同的码本。投影矩阵和码本是随机初始化的,并且在整个模型训练过程中不会更新。出于效率原因,多 softmax 损失仅用于掩码帧。编码器的训练步数为 500K,全局批量大小为 2,048。
  Supervised finetuning。预训练语音编码器和随机初始化适配器均在有监督微调阶段与 Llama 3 进一步联合优化。在此过程中,语言模型保持不变。训练数据是 ASR、AST 和口语对话数据的混合。Llama 3 8B 的语音模型经过 650K 次更新训练,使用 512 的全局批量大小和 1 0 − 4 10^{-4} 104 的初始学习率。Llama 3 70B 的语音模型经过 600K 次更新训练,使用 768 的全局批量大小和 4 × 1 0 − 5 4 × 10^{-5} 4×105 的初始学习率。

8.3.2 Speech Generation

为了支持实时处理,韵律模型采用了一种lookahead机制,该机制考虑了固定数量的未来音素和可变数量的未来token。这确保了在处理传入文本时保持一致的前瞻,这对于低延迟语音合成应用至关重要。
  Training。我们开发了一种动态对齐策略,利用因果MASK来促进语音合成中的流式传输。该策略结合了用于固定数量的未来音素和可变数量的未来token的lookahead机制,与文本规整期间的分块过程保持一致(第 8.1.2 节)。对于每个音素,token lookahead包括由块大小定义的最大token数,从而导致 Llama 嵌入的前瞻可变,但音素的前瞻固定。
  Llama 3 嵌入来自 Llama 3 8B 模型,该模型在 Prosody 模型的训练期间保持冻结状态。输入音素速率特征包括语言和说话者/风格可控性元素。模型训练以 1,024 的批量大小进行,每个话语的最大长度为 500 个音素。我们使用 AdamW 优化器设定的学习率为 9 × 1 0 − 4 9×10^{−4} 9×104,按照余弦学习率对超过 100 万次更新进行训练,并对前 3,000 次更新进行学习率warm-up。
  Inference。在推理过程中,采用相同的lookahead机制和因果mask策略来确保训练和实时处理之间的一致性。PM 以流式方式处理传入的文本,逐个更新音素速率特征的输入,逐个更token速率特征的输入。只有当该块的第一个音素为当前时,才会更新新的块输入,从而保持与训练期间相同的对齐和前瞻。
  对于韵律目标预测,我们采用了延迟模式方法,这增强了模型捕捉和重现长距离韵律依赖关系的能力。这种方法有助于提高合成语音的自然性和表现力,确保低延迟和高质量的输出。

8.4 Speech Understanding Results

8.5 Speech Generation Results

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值