Llama 3.1 技术研究报告-6

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 的质量对某些类型的量化敏感,并进⾏了⼀些额外的更改以提⾼模型输出质量

  1. 类似于 Zhang 等⼈(2021),我们不在第⼀层和最后⼀层 Transformer 层中进⾏量化。
  2. ⾼困惑度的令牌(如⽇期)可能导致⼤的激活值。反过来,这可能导致 FP8 中的⾼动态缩放因⼦和⼤量下溢,导致解码错误。为了解决这个问题,我们将动态缩放因⼦上界限制为 1200。
    在这里插入图片描述
  3. 我们使⽤⾏量化,为参数和激活矩阵计算跨⾏的缩放因⼦(⻅图 25)。我们发现这⽐张量量化⽅法更有效。

量化误差的影响。标准基准测试通常表明,即使没有这些缓解措施,FP8 推理也与 BF16 推理相当。然⽽,我们发现这样的基准测试并没有充分反映 FP8 量化的影响。当缩放因⼦没有上界限制时,模型偶尔会产⽣损坏的响应,尽管基准测试性能很强。我们发现,依靠基准测试来衡量量化引起的分布变化,不如分析使⽤ FP8 和 BF16 ⽣成的 100,000 个响应的奖励模型分数的分布更好。图 26 显⽰了我们量化⽅法的奖励分布结果。图中的结果表明,我们对 FP8 量化的⽅法对模型的响应影响⾮常有限。

效率的实验评估。图 27 描述了在预填充和解码阶段使⽤ Llama 3 405B 进⾏ FP8 推理的吞吐量-延迟权衡,使⽤ 4,096 个输⼊令牌和 256 个输出令牌。该图⽐较了第 6.1 节中描述的两台机器 BF16 推理⽅法的效率。结果表明,使⽤ FP8 推理在预填充阶段的吞吐量提⾼了最多 50%,在解码期间的吞吐量-延迟权衡显著更好。
在这里插入图片描述

7 视觉实验

我们进⾏了⼀系列实验,通过⼀种由两个主要阶段组成的组合⽅法将视觉识别能⼒整合到 Llama 3 中。⾸先,我们通过在⼤量的图像-⽂本对上引⼊和训练⼀组交叉注意⼒层(Alayrac 等⼈,2022),将预训练的图像编码器(Xu 等⼈,2023)和预训练的语⾔模型组合起来。这导致形成了图 28 所⽰的模型。其次,我们引⼊了时间聚合层和额外的视频交叉注意⼒层,它们在⼤量的视频-⽂本对上操作,以学习模型识别和处理视频中的时间信息。

采⽤组合⽅法进⾏基础模型开发有⼏个优点

(1) 它使我们能够并⾏开发视觉和语⾔建模能⼒;
(2) 它避免了视觉数据标记、来⾃不同模态的标记背景困惑度差异以及模态间竞争所带来的联合预训练的复
杂性;
(3) 它保证了模型在仅⽂本任务上的性能不会因引⼊视觉识别能⼒⽽受到影响,
(4) 交叉注意⼒架构确保我们不需要在⽇益增⻓的⼤型语⾔模型(特别是每个变换器层中的前馈⽹络)中通过全分辨率图像来消耗计算资源,使推理过程更加⾼效。我们注意到我们的多模态模型仍在开发中,尚未准备好发布。

在第 7.6 和 7.7 节中呈现我们的实验结果之前,我们描述了⽤于训练视觉识别能⼒的数据处理、视觉组件的模型架构、这些组件训练的扩展⽅式,以及我们的预训练和后处理⽅案。

7.1 数据

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

7.1.1 图像数据

我们的图像编码器和适配器在图像-⽂本对上进⾏训练。我们通过⼀个复杂的数据处理流程构建这个数据集,该流程包括四个主要阶段:(1) 质量过滤,(2) 感知去重,(3) 重新采样,以及 (4) 光学字符识别。我们还应⽤了⼀系列安全措施。

  • 质量过滤。我们实施了质量过滤器,通过诸如 Radford 等⼈(2021)产⽣的低对⻬分数等启发式⽅法,移除⾮英语字幕和低质量字幕。具体来说,我们移除了所有低于某个 CLIP 分数的图像-⽂本对。
    在这里插入图片描述

  • 感知去重。对⼤规模训练数据集进⾏去重有助于提⾼模型性能,因为它减少了在冗余数据上的训练计算(Esser 等⼈,2024;Lee 等⼈,2021;Abbas 等⼈,2023)和记忆(Carlini 等⼈,2023;Somepalli
    等⼈,2023)。因此,出于效率和隐私原因,我们对训练数据进⾏了去重。为此,我们使⽤内部版本的最先进的 SSCD 复制检测模型(Pizzi 等⼈,2022)来⼤规模去重图像。对于所有图像,我们⾸先使⽤ SSCD 模型计算⼀个 512 维的表⽰。我们使⽤这些嵌⼊,在数据集中的所有图像中为每张图像执⾏最近邻(NN)搜索,使⽤余弦相似性度量。我们将相似度超过某个阈值的⽰例定义为重复项。我们使⽤连通分量算法对这些重复项进⾏分组,并在每个连通分量中仅保留⼀个图像-⽂本对。我们通过以下⽅式提⾼去重流程的效率:
    (1) 使⽤ k-means 聚类对数据进⾏预聚类
    (2) 使⽤ FAISS(Johnson 等⼈,2019)进⾏ NN 搜索和聚类

  • 重新采样。我们通过类似于 Xu 等⼈(2023);Mahajan 等⼈(2018);Mikolov 等⼈(2013)的重新采样,确保图像-⽂本对的多样性。⾸先,我们通过解析⾼质量的⽂本来源构建⼀个 n-gram词汇表。接下来,我们计算数据集中每个词汇 n-gram 的频率。然后我们按以下⽅式重新采样数据:如果标题中的任何 n-gram在词汇表中出现次数少于 T 次,我们保留相应的图像-⽂本对。否则,我们独⽴地以概率 pT/fi 采样标题中的每个 n-gram ni,其中 fi 表⽰ n-gram ni 的频率;如果任何 n-gram 被采样,我们保留图像-⽂本对。这种重新采样有助于提⾼在低频类别和细粒度识别任务上的性能。

  • 光学字符识别。我们通过提取图像中写⼊的⽂本并将其与字幕连接起来,进⼀步提⾼我们的图像-⽂本数据。使⽤专有的光学字符识别(OCR)流程提取书⾯⽂本。我们观察到,将 OCR 数据添加到训练数据中极⼤地改善了需要 OCR 功能的任务,例如⽂档理解。

转录⽂档。为了提⾼我们的模型在⽂档理解任务上的性能,我们将⽂档⻚⾯呈现为图像,并将其与相应的⽂本配对。⽂档⽂本可以直接从源获取,也可以通过⽂档解析流程获取。

安全。我们主要关注确保图像识别的预训练数据集不包含不安全的内容,例如性虐待材料(CSAM)(Thiel,2023)。我们使⽤感知哈希⽅法,如 PhotoDNA(Farid,2021)以及内部专有分类器,扫描我们所有训练图像中的 CSAM。我们还使⽤专有的媒体⻛险检索流程来识别和删除我们认为是 NSFW 的图像-⽂本对,例如,因为它们包含性或暴⼒内容。我们认为,最⼩化这类材料在训练数据集中的流⾏度可以提⾼最终模型的安全性,⽽不影响其有⽤性。最后,我们对训练集中的所有图像进⾏⾯部模糊处理。我们使⽤⼈类⽣成的提⽰对模型进⾏测试,这些提⽰引⽤了附加的图像。

退⽕数据。我们通过使⽤ n-gram 对图像-字幕对进⾏重新采样,创建了⼀个约 3.5 亿个⽰例的退⽕数据集。由于 n-gram 重新采样偏爱更丰富的⽂本描述,这选择了⼀个更⾼质量的数据⼦集。我们⽤以下五个额外来源的约 1.5 亿个⽰例增强了结果数据

  • 视觉定位。我们将⽂本中的名词短语链接到图像中的边界框或掩模。定位信息(边界框和掩模)以两种⽅式在图像-⽂本对中指定。
    (1) 我们在图像上叠加带有标记的框或掩模,并使⽤⽂本中的标记作为参考,类似于标记集(Yang 等⼈,2023a)。
    (2) 我们直接将标准化的(xmin,ymin,xmax,ymax)坐标插⼊⽂本中,⽤特殊标记分隔。

  • 屏幕截图解析。我们从 HTML 代码渲染屏幕截图,并让模型预测⽣成屏幕截图中特定元素的代码,类似于 Lee 等⼈(2023)。感兴趣的元素通过屏幕截图中的边界框指⽰。

  • 问题-答案对。我们包括问题-答案对,使我们能够使⽤在模型微调中⽆法使⽤的⼤量问题-回答数据。

  • 合成字幕。我们包括带有由模型的早期版本⽣成的合成字幕的图像。与原始字幕相⽐,我们发现合成字幕⽐原始字幕提供了更全⾯的图像描述。

  • 合成⽣成的结构化图像。我们还包括了各种领域的合成⽣成图像,如图表、表格、流程图、数学⽅程式和⽂本数据。这些图像伴随着结构化表⽰,如相应的 markdown 或 LaTeX 符号。除了提⾼模型对这些领域的识别能⼒外,我们发现这些数据对于通过⽂本模型⽣成问题-答案对进⾏微调也很有⽤。

7.1.2 视频数据

对于视频预训练,我们使⽤了⼤量的视频-⽂本对数据集。我们的数据集是通过多阶段流程筛选和整理的。我们使⽤基于规则的启发式⽅法过滤和清理相关⽂本,例如确保最低⻓度和修正⼤写。然后,我们运⾏语⾔识别模型以过滤掉⾮英语⽂本。我们运⾏ OCR 检测模型以过滤掉有过多叠加⽂本的视频。

为确保视频-⽂本对之间的合理对⻬,我们使⽤ CLIP(Radford 等⼈,2021)⻛格的图像-⽂本和视频-⽂本对⽐模型。我们⾸先使⽤视频中的单个帧计算图像-⽂本相似性,并筛选出低相似度对,然后进⼀步筛选出视频-⽂本对⻬度低的对。我们的⼀些数据包含静态或低运动视频;我们使⽤基于运动得分的过滤(Girdhar 等⼈,2023)过滤掉这类数据。我们不对视频的视觉质量应⽤任何过滤器,如审美分数或分辨率过滤。

我们的数据集包含平均时⻓为 21 秒的视频,中位数时⻓为 16 秒,超过 99% 的视频在⼀分钟内。空间分辨率在 320p 和 4K 视频之间有显著变化,超过 70% 的视频短边⼤于 720 像素。视频具有不同的纵横⽐,⼏乎所有视频的纵横⽐都在 1:2 到 2:1 之间,中位数为 1:1。

7.2 模型架构

我们的视觉识别模型由三个主要部分组成:(1) 图像编码器,(2) 图像适配器,以及 (3) 视频适配器

图像编码器。我们的图像编码器是⼀个标准的视觉变换器(ViT; Dosovitskiy 等⼈(2020)),它被训练⽤于对⻬图像和⽂本(Xu 等⼈,2023)。我们使⽤图像编码器的 ViT-H/14 变体,它有 630M 参数,这些参数是在 25 亿图像-⽂本对上训练了五个周期。图像编码器是在 224 × 224 分辨率的图像上预训练的;图像被分割成 16 × 16 的等⼤⼩块(即,块⼤⼩为 14x14 像素)。正如先前的⼯作(如 ViP-Llava,Cai 等⼈,2024)所展⽰的,我们观察到通过对⽐⽂本对⻬⽬标训练的图像编码器⽆法保留细粒度的定位信息。为了缓解这个问题,我们采⽤多层特征提取,除了最后⼀层特征外,还提供第 4、8、16、24 和 31 层的特征。此外,我们在交叉注意⼒层的预训练之前进⼀步插⼊了 8 个⻔控⾃注意⼒层(总共 40 个变换器块),以学习对⻬特定特征。因此,图像编码器最终总共有 850M 参数和额外的层。有了多层特征,图像编码器为每个产⽣的 16 × 16 = 256 块⽣成了⼀个 7680 维的表⽰。在后续训练阶段,我们不冻结图像编码器的参数,因为我们发现这可以提⾼性能,特别是在⽂本识别等领域。

图像适配器。我们在图像编码器产⽣的视觉标记表⽰和语⾔模型产⽣的标记表⽰之间引⼊了交叉注意⼒层(Alayrac 等⼈,2022)。交叉注意⼒层在核⼼语⾔模型的每四个⾃注意⼒层之后应⽤。像语⾔模型本⾝⼀样,交叉注意⼒层使⽤⼴义查询注意⼒(GQA)以提⾼效率。交叉注意⼒层向模型引⼊了⼤量的额外可训练参数:对于 Llama 3 405B,交叉注意⼒层有⼤约 100B 参数。我们分两个阶段预训练我们的图像适配器:(1) 初始预训练,然后是 (2) 退⽕

  • 初始预训练。我们在上述描述的⼤约 60亿图像-⽂本对的数据集上预训练我们的图像适配器。出于计算效率的原因,我们将所有图像调整⼤⼩以适应⾄多四个 336 × 336像素的⽡⽚内,我们将⽡⽚排列以⽀持不同的纵横⽐,例如 672 × 672、672 × 336 和 1344 × 336。
  • 退⽕。我们继续在上述描述的⼤约 5 亿图像的退⽕数据集上训练图像适配器。在退⽕过程中,我们提⾼每个⽡⽚的图像分辨率,以提⾼需要更⾼分辨率图像的任务的性能,例如信息图表理解。

视频适配器。我们的模型接受多达 64 帧(从完整视频中均匀采样),每帧都由图像编码器处理。我们通过两个组件对视频中的时间结构进⾏建模:(i) 编码后的视频帧由时间聚合器聚合,将 32 连续帧合并为⼀个,(ii) 在每四个图像交叉注意⼒层之前添加额外的视频交叉注意⼒层。时间聚合器实现为感知器重采样器(Jaegle 等⼈,2021; Alayrac 等⼈,2022)。我们使⽤每个视频 16 帧(聚合为 1 帧)进⾏预训练,但在监督微调期间将输⼊帧的数量增加到 64。对于 Llama 3 7B 和 70B,视频聚合器和交叉注意⼒层分别有 0.6B 和 4.6B 参数。

7.3 模型扩展

在将视觉识别组件添加到 Llama 3 后,模型包含⾃注意⼒层、交叉注意⼒层和⼀个 ViT 图像编码器。

为了训练较⼩的 8B 和 70B 参数模型的适配器,我们发现数据和张量并⾏的组合是最⾼效的。在这些规模上,模型或流⽔线并⾏不会增加效率,因为模型参数的聚合将主导计算。然⽽,在训练 405B 参数模型的适配器时,我们确实使⽤流⽔线并⾏(除了数据和张量并⾏)。在这个规模上的训练引⼊了除了第 3.3 节中概述的之外的三个新挑战:模型异构性、数据异构性和数值不稳定性。

模型异构性。模型计算是异构的,因为⼀些标记⽐其他标记执⾏更多的计算。特别是,图像标记由图像编码器和交叉注意⼒层处理,⽽⽂本标记仅由语⾔⻣⼲处理。这种异构性导致流⽔线并⾏调度中的瓶颈。我们通过确保每个流⽔线阶段包含五层来解决这个问题:即语⾔⻣⼲中的四个⾃注意⼒层和⼀个交叉注意⼒层。(回想⼀下,我们在每四个⾃注意⼒层之后引⼊⼀个交叉注意⼒层。)此外,我们在所有流⽔线阶段复制图像编码器。因为我们在成对的图像-⽂本数据上训练,这使我们能够在计算的图像和⽂本部分之间进⾏负载平衡。

数据异构性。数据是异构的,因为平均⽽⾔,图像⽐相关⽂本有更多的标记:⼀张图像有 2,308 个标记,⽽相关⽂本平均只有 192 个标记。因此,交叉注意⼒层的计算需要⽐⾃注意⼒层更多的时间和内存。我们通过在图像编码器中引⼊序列并⾏来解决这个问题,以便每个 GPU ⼤致处理相同数量的标记。由于平均⽂本⼤⼩相对较短,我们还使⽤了更⼤的微批⼤⼩(8 ⽽不是 1)。

数值不稳定性。在将图像编码器添加到模型后,我们发现在 bf16 中执⾏梯度累积导致了数值不稳定性。这最有可能的解释是,图像标记通过所有交叉注意⼒层引⼊到语⾔⻣⼲中。这意味着图像标记的表⽰中的数值偏差对整体计算有巨⼤的影响,因为错误是累积的。我们通过在 FP32 中执⾏梯度累积来解决这个问题。

7.4 预训练

图像。我们从预训练的⽂本模型和视觉编码器权重开始初始化。视觉编码器未冻结,⽽⽂本模型权重如上所述保持冻结。⾸先,我们使⽤每个图像调整⼤⼩以适应四个 336 × 336 像素⽡⽚的 60 亿图像-⽂本对来训练模型。我们使⽤全局批量⼤⼩为 16,384,并使⽤余弦学习率计划,初始学习率为 10 × 10^−4和权重衰减为 0.01。初始学习率是基于⼩规模实验确定的。然⽽,这些发现并没有很好地推⼴到⾮常⻓的训练计划,在训练期间损失值停滞不前时,我们⼏次降低了学习率。在基础预训练之后,我们进⼀步提⾼图像分辨率,并继续在同⼀数据集上训练相同的权重。优化器通过预热重新初始化为学习率 2 × 10^−5,并再次遵循余弦计划。

视频。对于视频预训练,我们从上述描述的图像预训练和退⽕权重开始。我们添加了架构中描述的视频聚合器和交叉注意⼒层,随机初始化。我们冻结了模型中的所有参数,除了视频特定的参数(聚合器和视频交叉注意⼒),并在视频预训练数据上训练它们。我们使⽤与图像退⽕阶段相同的训练超参数,学习率有⼩的差异。我们从完整视频中均匀采样 16 帧,并使⽤四个区块表⽰每⼀帧,每个区块⼤⼩为 448 × 448 像素。我们在视频聚合器中使⽤ 16 的聚合因⼦,因此获得⼀个有效帧,⽂本标记将与之交叉注意。我们使⽤全局批量⼤⼩为 4,096,序列⻓度为 190 个标记,在训练期间使⽤学习率 10^−4。

7.5 后训练

在本节中,我们描述了我们视觉适配器的后训练配⽅。预训练后,我们在⾼度策划的多模态对话数据上微调模型,以启⽤聊天功能。我们进⼀步实施直接偏好优化(DPO)以提升⼈类评估性能,并采⽤拒绝采样以提⾼多模态推理能⼒。最后,我们增加了⼀个质量调整阶段,我们继续在⾮常⼩的⼀组⾼质量对话数据上微调模型,这在保留基准测试性能的同时进⼀步增强了⼈类评估。以下是每个步骤的更多细节。

7.5.1 监督微调数据

我们分别描述了⽤于图像和视频能⼒的监督微调(SFT)数据。
图像。我们利⽤不同数据集的混合进⾏监督微调。

  • 学术数据集。我们使⽤模板或通过 LLM 重写,将⾼度筛选的现有学术数据集转换为问答对。LLM 重写的⽬的是通过不同的指令增强数据,并提⾼答案的语⾔质量。
  • ⼈类注释。我们通过⼈类注释者收集多模态对话数据,涵盖⼴泛的任务(开放式问答、字幕、实际⽤例等)和领域(例如,⾃然图像和结构化图像)。注释者被提供图像,并被要求编写对话。为确保多样性,我们在不同集群中均匀地聚类⼤规模数据集和采样图像。此外,我们通过 k最近邻扩展种⼦,为⼀些特定领域获取额外的图像。注释者还被提供了现有模型的中间检查点,以促进模型在循环中的注释⻛格,使模型⽣成可以作为注释者提供额外⼈⼯编辑的起点。这是⼀个迭代过程,其中模型检查点将定期更新为在最新数据上训练的更好执⾏版本的模型。这增加了⼈类注释的体积和效率,同时也提⾼了它们的质量。
  • 合成数据。我们探索使⽤图像的⽂本表⽰和⽂本输⼊ LLM ⽣成合成多模态数据的不同⽅法。⾼层思路是利⽤⽂本输⼊ LLM 的推理能⼒,在⽂本领域⽣成问答对,并将⽂本表⽰替换为其相应的图像,以产⽣合成多模态数据。⽰例包括将问答数据集中的⽂本呈现为图像,或将表格数据呈现为表格和图表的合成图像。此外,我们使⽤现有图像的字幕和 OCR 提取来⽣成与图像相关的额外对话或问答数据。

视频。类似于图像适配器,我们使⽤具有预先存在的注释的学术数据集,并将它们转换为适当的⽂本指令和⽬标响应。⽬标被转换为开放式响应或多项选择选项,视情况⽽定。我们要求⼈类注释者⽤问题和相应的答案注释视频。注释者被要求专注于不能基于单个帧回答的问题,引导注释者朝着需要时间理解的问题。

7.5.2 监督微调配⽅

我们分别描述了⽤于图像和视频能⼒的监督微调(SFT)配⽅。

图像。我们从预训练的图像适配器开始初始化,但将预训练语⾔模型的权重与指令调整语⾔模型的权重进⾏热交换。保持语⾔模型权重冻结以维持仅⽂本性能,即,我们只更新视觉编码器和图像适配器权重。

我们微调模型的⽅法类似于 Wortsman 等⼈(2022)。⾸先,我们使⽤多个随机数据⼦集、学习率和权重衰减值进⾏超参数扫描。接下来,我们根据它们的表现对模型进⾏排名。最后,我们平均 top-K 模型的权重以获得最终模型。K 的值是通过评估平均模型并选择最⾼性能的实例来确定的。我们观察到平均模型始终⽐通过⽹格搜索找到的最佳个体模型产⽣更好的结果。此外,这种策略减少了对超参数的敏感性。

视频。对于视频 SFT,我们使⽤预训练权重初始化视频聚合器和交叉注意⼒层。模型中的其余参数,图像权重和 LLM,是从相应模型的微调阶段初始化的。类似于视频预训练,然后我们只在视频 SFT 数据上微调视频参数。在这个阶段,我们将视频⻓度增加到 64 帧,并使⽤ 32 的聚合因⼦获得两个有效帧。区块的分辨率也增加,以与相应的图像超参数⼀致。

7.5.3 偏好数据

我们为奖励建模和直接偏好优化构建了多模态成对偏好数据集。

  • ⼈类注释。⼈类注释的偏好数据包括两个不同模型输出之间的⽐较,标记为“选择”和“拒绝”,并带有 7 级评分。⽤于⽣成响应的模型是从最佳近期模型池中即时采样的,每个模型具有不同的特征。我们每周更新模型池。除了偏好标签,我们还要求注释者提供可选的⼈⼯编辑,以纠正“选择”响应中的不准确性,因为视觉任务对不准确性的容忍度很低。注意,⼈⼯编辑是⼀个可选步骤,因为在实践中存在体积和质量之间的权衡。
  • 合成数据。合成偏好对也可以通过使⽤仅⽂本 LLM 编辑和故意在监督微调数据集中引⼊错误来⽣成。我们将对话数据作为输⼊,并使⽤ LLM 引⼊微妙但有意义的错误(例如,更改对象、更改属性、添加计算错误等)。这些编辑后的响应⽤作负⾯的“拒绝”样本,并与“选择”原始监督微调数据配对。
  • 拒绝采样。此外,为了创建更多的策略内负⾯样本,我们利⽤拒绝采样的迭代过程收集额外的偏好数据。我们在后续部分中更详细地讨论我们对拒绝采样的使⽤。在⾼层次上,拒绝采样⽤于迭代地从模型中采样⾼质量⽣成。因此,作为副产品,所有未被选择的⽣成可以⽤作负⾯拒绝样本,并⽤作额外的偏好数据对。
7.5.4 奖励建模

我们在视觉 SFT 模型和语⾔ RM 的基础上训练⼀个视觉奖励模型(RM)。视觉编码器和交叉注意⼒层从视觉 SFT 模型中初始化并在训练期间解冻,⽽⾃注意⼒层从语⾔ RM 初始化并保持冻结。我们观察到冻结语⾔ RM 部分通常可以带来更⾼的准确性,特别是在需要 RM 根据其知识或语⾔质量进⾏判断的任务上。我们采⽤与语⾔ RM 相同的训练⽬标,但增加了⼀个加权正则化项,该项作⽤在批处理中平均奖励 logits 的平⽅上,这可以防⽌奖励分数偏移。

第 7.5.3 节中的⼈类偏好注释⽤于训练视觉 RM。我们按照语⾔偏好数据(第 4.2.1 节)的相同做法,创建两个或三个具有明确排名的配对(编辑 > 选择 > 拒绝)。此外,我们还通过扰乱与图像中的信息(如数字或视觉⽂本)相关的单词或短语,来增强负⾯响应。这⿎励视觉 RM 根据实际图像内容做出判断。

7.5.5 直接偏好优化

与语⾔模型(第 4.1.4 节)类似,我们使⽤第 7.5.3 节中描述的偏好数据,进⼀步通过直接偏好优化(DPO;Rafailov 等⼈,2023)训练视觉适配器。为了对抗后训练轮次中的分布偏移,我们只保留最近的⼈类偏好注释批次,同时丢弃⾜够偏离策略的批次(例如,如果基础预训练模型发⽣了变化)。

我们发现,不是始终冻结参考模型,⽽是每 k 步以指数移动平均(EMA)的⽅式更新它,有助于模型更多地从数据中学习,从⽽在⼈类评估中获得更好的表现。总体⽽⾔,我们观察到视觉 DPO 模型在每次微调迭代的⼈类评估中,始终⽐其 SFT 起点表现得更好。

7.5.6 拒绝采样

⼤多数可⽤的问答对只包含最终答案,缺乏训练⼀个能够很好地泛化推理任务的模型所需的思维链解释。我们使⽤拒绝采样为这些⽰例⽣成缺失的解释,并增强模型的推理能⼒。

给定⼀个问题-答案对,我们通过不同的系统提⽰或温度采样微调模型,⽣成多个答案。接下来,我们通过启发式或 LLM 裁判将⽣成的答案与真实答案进⾏⽐较。最后,我们通过将正确答案重新添加到微调数据混合中来重新训练模型。我们发现保留每个问题的多个正确答案很有⽤。

为确保我们只将⾼质量的⽰例重新添加到训练中,我们实施了以下两个保护措施。⾸先,我们发现有些⽰例尽管最终答案正确,但包含错误的解释。我们观察到这种模式更频繁地出现在只有⼀⼩部分⽣成答案正确的问题上。因此,我们丢弃了答案正确概率低于某个阈值的问题的答案。其次,评估者由于语⾔或⻛格的差异⽽偏好某些答案。我们使⽤奖励模型选择 top-K 最⾼质量的答案并将它们重新添加到训练中。

7.5.7 质量调整

我们策划了⼀个⼩⽽⾼度精选的 SFT 数据集,所有样本都经过⼈类或我们最佳模型的重写和验证,以满⾜我们的最⾼标准。我们使⽤这些数据训练 DPO 模型以提⾼响应质量,将这个过程称为质量调整(QT)。我们发现,当 QT 数据集涵盖了⼴泛的任务范围并且应⽤了适当的早期停⽌时,QT 显著提⾼了⼈类评估,同时不影响通过基准测试验证的泛化能⼒。在这个阶段,我们仅基于基准选择检查点,以确保能⼒得以保留或提⾼。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值