Ellamind联合创始人、CEO Jan P. Harries解读了Llama 3.1论文有趣的看点。在此基础上,结合原论文,整理看点如下:
1. 模型参数为什么是405B?
2. 训练基础设施——H100集群的详细介绍
3. 大规模GPU集群训练中断了466次,报销了148台机器
4. 预训练数据的调整
5. 后训练
6. 数据质量评分
7.训练专家生成合成语言数据
8.如何提高数学与推理能力?
9. 长文本如何训练?
10. 工具使用
11. 如何解决幻觉?
12. 性能表现
13. FP8量化:效果非常有限
14. 理解多模态数据
15 视觉与声音理解表现
//
1. 模型参数为什么是405B?
Meta通过Scaling Law来确定旗舰模型的最佳大小,但存在两个挑战:一是现有的缩放法则通常只预测下一个词预测损失,而不是特定基准的性能;二是缩放法则可能会因为基于小计算预算进行的预训练运行而变得嘈杂和不可靠。
为了解决这些挑战,Meta 实施了两阶段方法来开发能够准确预测下游基准性能的缩放法则:首先建立计算最优模型在下游任务上的负对数似然与训练FLOPs之间的相关性;接下来,利用缩放法则模型和使用更高计算FLOPs训练的旧模型,将下游任务上的负对数似然与任务准确性相关联。
具体来说:通过在6 × 10^18 FLOPs到10^22 FLOPs之间的计算预算下预训练模型来构建缩放法则。在每个计算预算下,使用40M到16B参数的模型,每个计算预算下使用一系列模型大小。在这些训练运行中,使用余弦学习率计划,预热2,000个训练步骤。峰值学习率根据模型大小设置在2 × 10^-4到4 × 10^-4之间。将余弦衰减设置为峰值的0.1。每一步的权重衰减设置为该步骤学习率的0.1倍。Meta 为每个计算规模使用固定的批量大小,范围在250K到4M之间。
这些实验产生了图2中的IsoFLOPs曲线。这些曲线中的损失是在单独的验证集上测量的。Meta 使用二度多项式拟合测量的损失值,并确定每个抛物线的最小值,把抛物线的最小值称为相应预训练计算预算的计算最优模型。
Meta 使用这种方法确定的计算最优模型来预测特定计算预算下的最佳训练令牌数量。为此,假设计算预算C和最佳训练令牌数量N*(C)之间存在幂律关系:
N⋆(C) = ACα.
使用图2中的数据拟合A和α,发现(α, A) = (0.53, 0.29);相应的拟合如图3所示。将得到的缩放法则外推到3.8 × 10^25 FLOPs建议在16.55T令牌上训练402B参数模型。
一个重要的观察是,随着计算预算的增加,IsoFLOPs曲线在最小值附近变得平坦。这意味着旗舰模型的性能对于模型大小和训练令牌之间权衡的小变化相对稳健。基于这一观察,Meta 最终决定训练一个具有405B参数的旗舰模型。
2. 训练基础设施——H100集群的详细介绍
Llama 1 和 2 模型是在 Meta 的 AI 研究超级集群上训练的。随着进一步扩展,Llama 3 的训练转移到了 Meta 的生产集群。这个设置优化了生产级别的可靠性,这是扩展训练所必需的。
计算:Llama 3 405B 在多达 16K 个 H100 GPU 上进行训练,每个 GPU 运行在 700W TDP 下,配备 80GB HBM3,使用 Meta 的 Grand Teton AI 服务器平台。每个服务器配备八个 GPU 和两个 CPU。在服务器内部,八个 GPU 通过 NVLink 连接。训练作业使用 MAST调度,MAST 是 Meta 的全球规模训练调度器。
存储:Tectonic,Meta 的通用分布式文件系统,被用来构建 Llama 3 预训练的存储网络。它提供了 240PB 的存储空间,由配备 SSD 的 7,500 台服务器支持,并支持持续吞吐量 2TB/s 和峰值吞吐量 7TB/s。一个主要挑战是支持高度突发的检查点写入,这些写入在短时间内饱和存储网络。检查点保存每个 GPU 的模型状态,范围从 1MB 到每个 GPU 的 4GB,用于恢复和调试。目标是最小化检查点期间的 GPU 暂停时间,并增加检查点频率,以减少恢复后丢失的工作量。
网络:Llama 3 405B 使用基于 Arista 7800 和 Minipack2 开放计算项目(OCP)机架交换机的 RDMA over Converged Ethernet (RoCE) 网络结构。Llama 3 家族中较小的模型是使用 Nvidia Quantum2 InfiniBand 网络结构训练的。尽管这些集群的底层网络技术不同,但 Meta 调整了它们,以便为这些大型训练工作负载提供等效的性能。Meta 完全自主设计了 RoCE 网络。
网络拓扑:基于 RoCE 的 AI 集群由 24K GPU 组成,通过三层 Clos 网络连接。在底层,每个机架托管 16 个 GPU,分布在两台服务器上,并通过一个 Minipack2 机架顶部(ToR)交换机连接。在中层,192 个这样的机架通过集群交换机连接,形成一个拥有 3,072 个 GPU 的 pod,具有完整的双向带宽,确保没有过订阅。在顶层,同一数据中心大楼内的八个这样的 pod 通过聚合交换机连接,形成一个 24K GPU 的集群。然而,聚合层的网络连接没有保持完整的双向带宽,而是有一个 1:7 的过订阅比率。模型并行方法和训练作业调度程序都针对网络拓扑进行了优化,目标是最小化跨 pod 的网络通信。
负载均衡:LLM 训练产生大量的网络流量,这些流量很难使用传统方法(如 Equal-Cost Multi-Path,ECMP 路由)在所有可用网络路径上进行负载均衡。为解决这一挑战,采用了两种技术。首先,集合库在两个 GPU 之间创建 16 个网络流量,而不是仅仅一个,从而减少每个流量的流量,并提供更多的流量进行负载均衡。其次,Enhanced-ECMP(E-ECMP)协议通过在 RoCE 数据包头中散列额外的字段,有效地在不同的网络路径上平衡这 16 个流量。
拥塞控制:使用深缓冲交换机在脊柱上进行部署,以适应由于集合通信模式引起的瞬态拥塞和缓冲。这种设置有助于限制由于慢服务器引起的持续拥塞和网络背压的影响,这在训练中很常见。最后,通过 E-ECMP 实现更好的负载均衡显著降低了拥塞的可能性。通过这些优化,成功地运行了一个 24K GPU 集群,而无需使用传统的拥塞控制方法,如数据中心量化拥塞通知(DCQCN)。
3. 大规模GPU集群训练中断了466次,报销148台
16K GPU训练的复杂性和潜在故障场景超过了之前运营的规模大得多的CPU集群。此外,训练的同步性质使其对故障的容忍度较低——单个GPU的故障可能需要整个作业重新启动。尽管存在这些挑战,对于Llama 3,实现了超过90%的有效训练时间,同时还支持自动化的集群维护,例如固件和Linux内核升级,这导致至少每天有一次训练中断。有效训练时间衡量的是在流逝时间中用于有用训练的时间。
在54天的预训练期间,总共经历了466次作业中断。其中,47次是计划内的中断,由于自动化维护操作,如固件升级或操作员启动的操作,如配置或数据集更新。其余419次是意外的中断。大约78%的意外中断归因于确认的硬件问题,如GPU或主机组件故障,或疑似与硬件相关的问题,如静默数据损坏和计划外的单个主机维护事件。GPU问题是最大部分,占所有意外问题的58.7%。尽管有大量的故障,但在整个期间,只有三次需要显著的手动干预,其余问题都由自动化处理。
一个有趣的观察是环境因素对大规模训练性能的影响。对于Llama 3 405B,基于一天中时间的1-2%的吞吐量变化。这种波动是由于更高的中午温度影响GPU动态电压和频率缩放。
在训练期间,成千上万的GPU可能同时增加或减少功耗,例如,由于所有GPU等待检查点完成或集体通信结束,或者整个训练作业的启动或关闭。当这种情况发生时,它可能导致数据中心电力消耗瞬间波动数十兆瓦,挑战电网的极限。随着为未来更大规模的Llama模型扩展训练,这仍然是一个持续的挑战。
4. 训练数据的调整
在预训练阶段,Meta 使用余弦学习率计划对 Llama 3 405B 进行预训练,峰值学习率为 8 × 10^-5,线性预热 8,000 步,然后在 1,200,000 训练步内衰减到 8 × 10^-7。在训练初期,使用较小的批量大小以提高训练稳定性,并随后增加批量大小以提高效率。
具体来说,最初使用 4M 令牌的批量大小和 4,096 的序列长度,然后在预训练了 252M 令牌后,将这些值加倍到 8M 令牌和 8,192 的序列长度。再次将批量大小加倍到 16M,这次是在预训练了 2.87T 令牌之后。Meta 发现这种训练配方非常稳定:损失尖峰很少,并且不需要干预来纠正模型训练发散的问题。
调整数据混合。在训练过程中,Meta 对预训练数据混合进行了几次调整,以提高模型在特定下游任务上的性能。特别是,增加了非英语数据的比例,以改善 Llama 3 的多语言性能。还上采样数学数据以提高模型的数学推理性能,在预训练的后期添加了更多的最新网络数据,以推进模型的知识截止日期,并且对后来被识别为质量较低的预训练数据子集进行了下采样。
5. 后训练
通过几轮后训练,或在预训练检查点上根据人类反馈对模型进行调整,以产生与人类反馈一致的Llama 3模型。每一轮后训练涉及在收集的人类注释或生成的合成数据上进行监督微调(SFT),然后进行直接偏好优化(DPO)。后训练建模和数据方法在4.1节和4.2节中分别描述,还在4.3节中详细说明了定制数据策划策略,以提高推理、编码、事实性、多语言、工具使用、长上下文和精确指令跟随等方面的性能。
6. 数据质量评分
Llama 3.1的大部分训练数据是由模型生成的,因此需要进行仔细的清洗和质量控制。
其中,在质量评分环节,Meta 使用奖励模型和基于Llama的信号为每个样本获得质量分数。对于基于RM的分数,考虑RM分数在顶部四分位数的数据为高质量。对于基于Llama的分数,提示Llama 3检查点对每个样本在三点量表上进行一般英语数据评分(准确性、指令跟随和语调/呈现),并考虑获得最高分数的样本为高质量。
与 NeMo 论文(奖励模型> LLM-as-a-judge)相比,他们发现两种方法之间存在很高的分歧率。最终,选择被RM或基于Llama的过滤器标记为高质量的示例。
7.训练专家生成合成数据
Llama 3如何提升多语言能力?其中包括训练一个在更多多语言数据上专业化的专家,为德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语等语言收集和生成高质量的多语言指令调整数据,并解决多语言语言指导方面的特定挑战,以提高模型的整体性能。
专家训练。Llama 3的预训练数据混合中包含的英语令牌显著多于非英语令牌。为了收集非英语语言的更高质量人类注释,通过从预训练运行中分支并在主要由90%的多语言令牌组成的数据混合上继续预训练,训练了一个多语言专家。然后对这个专家进行后训练。这个专家模型随后被用来在非英语语言中收集更高质量的注释,直到预训练完全完成。
翻译数据:尝试避免使用机器翻译的数据来微调模型,以防止翻译腔、可能的名称偏见、性别偏见或文化偏见。此外,旨在防止模型只接触到植根于英语文化背景的任务。Meta 对这一点做了一个例外,翻译了合成定量推理数据,以提高非英语语言中的定量推理性能。由于这些数学问题的语言简单,翻译的样本被发现几乎没有质量问题。通过添加翻译数据,在MGSM上取得了强劲的增益。
8.如何提高数学与推理能力?
解决提示不足的问题:从数学背景中获取相关的预训练数据,并将其转换为问答格式,然后用于监督微调。此外,确定了模型表现不佳的数学技能,并积极从人类那里获取提示来教会模型这些技能。为促进这一过程,创建了一个数学技能的分类,并要求人类根据此分类提供相关的提示或问题。
通过逐步推理追踪增强训练数据:使用Llama 3为一组提示生成逐步解决方案。对于每个提示,模型产生不同数量的生成。然后,根据正确答案过滤这些生成。还进行自我验证,其中Llama 3用于验证特定的逐步解决方案是否适用于给定问题。这个过程通过消除模型未产生有效推理追踪的实例,提高了微调数据的质量。
过滤错误的推理追踪:训练结果和逐步奖励模型来过滤训练数据,其中中间推理步骤是错误的。这些奖励模型用于消除带有无效逐步推理的数据,确保高质量的数据用于微调。对于更具挑战性的提示,使用带有学习到的逐步奖励模型的蒙特卡洛树搜索来生成有效的推理追踪,进一步提高了收集高质量推理数据的能力。
交错代码和文本推理:提示Llama 3通过结合文本推理和相关的Python代码来解决推理问题。代码执行被用作反馈信号,以消除推理链无效的情况,确保推理过程的正确性。
从反馈和错误中学习:为了模拟人类反馈,使用不正确的生成(即导致不正确推理追踪的生成)并通过提示Llama 3产生正确的生成来进行错误纠正。使用来自不正确尝试的反馈并纠正它们,有助于提高模型准确推理并从错误中学习的能力。
9. 长文本如何训练?
在最终的预训练阶段,将Llama 3的上下文长度从8K令牌扩展到128K令牌。与预训练类似,在微调期间必须仔细调整配方,以平衡短上下文和长上下文能力。
SFT和合成数据生成。简单地应用现有的SFT配方,仅使用短上下文数据,导致在长上下文能力上的显著退步,这突显了在SFT数据混合中纳入长上下文数据的必要性。然而,在实践中,让人类注释这样的例子很大程度上是不切实际的,因为阅读冗长的上下文是乏味和耗时的,因此主要依赖合成数据来填补这一空白。使用早期版本的Llama 3基于关键长上下文用例生成合成数据,包括(可能是多轮的)问答、长文档摘要和对代码库的推理,并在下面更详细地描述它们。
进一步根据序列长度(16K、32K、64K和128K)对这些合成生成的样本进行分类,以便更精细地针对输入长度。通过仔细的消融,将0.1%的合成生成的长上下文数据与原始短上下文数据混合,可以在短上下文和长上下文基准测试中优化性能。
DPO。只要SFT模型对长上下文任务表现良好,仅使用短上下文训练数据在DPO中进行训练就不会对长上下文性能产生负面影响。Meta 怀疑这是因为DPO配方的优化步骤少于SFT。鉴于这一发现,在长上下文SFT检查点上保持了标准短上下文配方的DPO。
10. 工具使用
教会大型语言模型(LLMs)使用工具,如搜索引擎或代码解释器,极大地扩展了它们能够解决的任务范围,将它们从纯粹的聊天模型转变为更通用的助手。训练Llama 3与以下工具进行交互:
搜索引擎:Llama 3被训练使用Brave Search来回答问题,这些答案超出了它的知识截止日期,或者需要从网络上检索特定信息。
Python解释器:Llama 3能够生成并执行代码,执行复杂计算,读取用户上传的文件,并基于这些文件解决任务,如问答、摘要、数据分析或可视化。
数学计算引擎:Llama 3可以使用Wolfram Alpha API来更准确地解决数学、科学问题,或从Wolfram的数据库中检索准确信息。
在数据收集阶段,Meta 依赖人类注释和偏好来教会Llama 3使用工具。与通常用于Llama 3的后训练管道相比,有两个主要区别:
对于工具,对话通常包含多个助手消息(例如,调用工具和推理工具输出)。因此,在消息级别进行注释以收集细粒度反馈:注释者在具有相同上下文的两个助手消息之间提供偏好,或者如果两个都存在重大问题,则编辑其中一个消息。选择或编辑的消息随后被添加到上下文,并继续对话。这为助手调用工具和推理工具输出的能力提供了人类反馈。注释者不能对工具输出进行排名或编辑。
不执行拒绝采样,因为没有观察到工具基准测试中的收益。
11. 如何解决幻觉?
Meta 遵循的原则是,后训练应该使模型“知道它知道什么”,而不是增加知识。主要方法涉及生成数据,使模型生成与预训练数据中的事实数据子集一致。为了实现这一点,开发了一种利用Llama 3上下文能力的知识探测技术。这个数据生成过程包括以下步骤:
1. 从预训练数据中提取数据片段。
2. 通过提示Llama 3生成关于这些片段(上下文)的事实问题。
3. 从Llama 3采样问题的回答。
4. 使用原始上下文作为参考,并以Llama 3作为评判,对生成的正确性进行评分。
5. 使用Llama 3作为评判,对生成的信息量进行评分。
6. 对于在所有生成中始终信息丰富但不正确的回答,生成拒绝。
使用从知识探测生成的数据,鼓励模型只回答它知道的问题,并拒绝回答它不确定的问题。此外,预训练数据并不总是事实一致或正确的。因此,还收集了有限的标记事实性数据,这些数据涉及存在事实矛盾或错误陈述的敏感主题。
12. 性能表现
对于一些阅读理解任务(SQuAD 和 RACE),Llama3 405B 实际上落后于 Mixtral 8x22B 🧐 (这是未微调的基础模型)。
在所有考试中都取得了令人印象深刻的成绩(学校考试会发生什么?🙈 ),Llama3 405B 在 AP 物理方面击败了竞争对手(92.9 vs. Claude 3.5 的 78.6 🤯) - ,并且在 GMAT Quant、LSAT、AP Env Sci 和......艺术史😁中也取得了最高分)
人类偏好数据显示,多语言和多轮编码性能较差,尤其是与 GPT-4o 相比;然而 GPT-4o 似乎针对人类偏好数据进行了非常优化(参见 LMSys 的结果),因此这并不一定会导致实际任务的性能下降……
13. FP8量化:效果非常有限
Meta 进行了实验,利用H100 GPU原生支持的FP8进行低精度推理。为了启用低精度推理,对模型中的大多数矩阵乘法应用了FP8量化。具体来说,Meta 量化了模型中前馈网络层的大部分参数和激活值,这些大约占到了推理计算时间的50%。没有量化模型自注意力层的参数。利用动态比例因子以获得更好的准确性,优化了CUDA内核以减少计算比例的开销。发现Llama 3 405B的质量对某些类型的量化很敏感,因此进行了一些额外的更改以提高模型输出的质量。
量化误差的影响。通常在标准基准测试中的评估表明,即使没有这些缓解措施,FP8推理的性能也与BF16推理相当。然而,这样的基准测试并不足以充分反映FP8量化的影响。如果不对比例因子进行上限限制,模型偶尔会产生损坏的响应,尽管基准性能很强。Meta 发现,与其依赖基准测试来衡量量化引起的分布变化,不如分析使用FP8和BF16产生的100,000个响应的奖励模型分数的分布。结果表明,对FP8量化的方法对模型的响应影响非常有限。
14. 理解多模态数据
图像编码器和适配器在图像-文本对上进行训练。通过一个复杂的数据处理流程构建这个数据集,该流程包括四个主要阶段:(1) 质量过滤,(2) 感知去重,(3) 重新采样,以及 (4) 光学字符识别(OCR)。还应用了一系列安全缓解措施。
对于视频预训练,使用了大量的视频-文本对数据集。通过多阶段流程策划此数据集。使用基于规则的启发式方法过滤和清理相关文本,例如确保最小长度和修正大写。然后,运行语言识别模型来过滤掉非英语文本。运行OCR检测模型来过滤掉有过多叠加文字的视频。为确保视频-文本对的合理对齐,使用CLIP风格的图像-文本和视频-文本对比模型。首先使用视频中的单帧计算图像-文本相似度,并过滤掉低相似度对,然后过滤掉视频-文本对齐度低的对。一些数据包含静态或低运动视频;使用基于运动分数的过滤来过滤掉这些数据。没有对视频的视觉质量应用任何过滤器,如美学分数或分辨率过滤。
15 视觉与声音理解表现
Llama 3-V 8b可与原始 GPT-4V 😀相媲美。
Llama3 也能比Whisper更好地理解语音,并在对话中无缝切换语言。
END.
延伸阅读