OPT: Open Pre-trained Transformer Language Models

下载 PDF

OPT: Open Pre-trained Transformer Language Models - 中文验证版

英文原始依据卡片:opt_2022.md

状态:已翻译。

元数据

计算设置

论文明确指出 OPT-175B 在 992 块 80GB NVIDIA A100 GPU 上使用 Meta 的 metaseq 代码库进行训练。训练栈结合了全分片数据并行(FSDP)与 Megatron-LM 张量并行。最大模型使用 96 层、96 个注意力头、隐藏维度 12,288、序列长度 2,048 和全局 batch size 2M token。最终预训练语料库包含约 180B token,对应约 800 GB 文本,来自 RoBERTa 风格数据、选定的 Pile 子集和 Pushshift.io Reddit。

OPT 的硬件报告没有 BLOOM 那么侧重于拓扑,但它给出了重要的内存和吞吐量选择。Adam 状态保持在 FP32 但跨主机分片,而模型权重保持在 FP16。使用动态损失缩放以避免下溢。论文报告每块 GPU 高达 147 TFLOP/s。它还强调 metaseq 在当时是一个用于 175B 规模 decoder-only Transformer 的 NVIDIA GPU 开源实现,没有流水线并行。

瓶颈

瓶颈不仅仅是原始的 A100 数量。OPT 暴露了试图公开复现 GPT-3 类密集训练的操作脆弱性。在 175B 参数、权重、激活值、梯度和 Adam 状态超过任何单块 GPU 内存的情况下;训练运行因此依赖于分片和张量并行集合通信在数月内保持可靠。训练作业还依赖于大型集群保持健康:论文报告了许多主机故障和重启路径,因此集群变动成为该方法的核心组成部分。

内存算术解释了为什么这是一个分片问题,而不仅仅是吞吐量问题。混合精度 Adam 的下限大约是 175B x 16 字节,即 2.8 TB 的模型状态,不包括激活值和临时缓冲区。对于推理,单独的 FP16 权重约为 350 GB。在 96 层、96 个注意力头、头维度 128 和 2048 token 上下文下,batch-1 的 KV 缓存增加约 9-10 GB。因此即使低 batch serving 也需要许多 A100,除非量化减少权重占用;GPTQ 后来正是利用了这点。

数值稳定性是第二个瓶颈。OPT 使用 FP16 权重和动态损失缩放。损失发散与损失缩放值崩溃到零以及最后一层激活值范数尖峰相关。这使得检查点选择和重启策略成为训练算法的一部分。作者在训练过程中降低了学习率,从较早检查点重启,并在观察到发散行为后调整了梯度裁剪。

数据和批处理也是计算约束。作者主要为了计算效率改变了 batch size,为 175B 选定了 2M token batch,并在小规模实验显示梯度范数尖峰或不稳定性风险后移除了某些 Pile 子集。因此系统受到内存容量、全局通信、数值范围和数据诱导的优化器行为的影响。

方法适配

OPT 通过使用 FSDP 跨 rank 分片模型相关状态和 Megatron-LM 张量并行拆分大型矩阵操作,将 GPT-3 recipe 适配到 A100 时代的开放基础设施。将 Adam 状态保持在 FP32 保留了优化器精度,同时将其跨主机分片使内存占用可承受。FP16 权重减少了 GPU 内存和通信量,而动态损失缩放试图将梯度保持在可表示范围内。

若干"方法"选择是操作响应而非干净的消融实验。论文使用梯度预除因子来降低跨所有 rank 计算梯度时的上溢/下溢风险。在训练期间,团队在发散后降低了学习率,从动态损失缩放器仍然健康的检查点重启,并在运行早期将梯度裁剪从 1.0 改为 0.3。他们还尝试了 SGD、重置动态损失缩放器并升级了 Megatron;SGD 停滞并被撤回,而较新的 Megatron 版本减少了激活值范数压力并提高了吞吐量。

数据流水线同样是计算适配的。语料库使用 MinHashLSH 以 Jaccard 相似度至少 .95 进行去重,部分 Pile 子集的选择性纳入也是出于稳定性考虑。一些子集被移除,因为它们在 1.3B 规模增加了梯度范数尖峰或出于其他原因不合适。这是一个重要细节:开放密集 LLM 训练不仅仅是"更多文本";数据混合影响损失尖峰和重启风险。

证据

论文报告每块 A100 高达 147 TFLOP/s,对于 992 GPU 的密集 Transformer 作业来说是强利用率。它还报告了至少 35 次手动重启、超过 70 次估计的自动重启,以及在两个月内因硬件故障循环了超过 100 台主机。当损失发散时,降低学习率并从较早检查点重启使训练得以继续。公开发布的日志是证据的一部分:论文将人工干预和基础设施变动视为规模可测量的成本。

性能证据以 GPT-3 为参照。在 14 项零样本 NLP 任务中,按参数数量平均的 OPT 性能遵循 GPT-3 的趋势,尽管任务级别结果不同。论文指出 OPT 在 10 个任务上大致与 GPT-3 持平,在 ARC Challenge 和 MultiRC 上表现不佳,在 CB、BoolQ 和 WSC 等小型验证任务上表现出不可预测的行为。在对话评估中,无监督 OPT-175B 在 ConvAI2 上报告 10.8 困惑度和 .185 unigram F1,与有监督 BlenderBot 1 的 10.2 和 .183 相当。

环境证据也与硬件相关。论文估计 OPT-175B 的直接碳排放约为 75 吨 CO2e,而已发表的估计是 GPT-3 约 500 吨,Gopher 约 380 吨。它还警告,将消融实验、基线和停机时间包括在内,总成本大约高出 2 倍。

历史影响

OPT 的历史角色是围绕 175B 训练的真实机制的透明度。GPT-3 已经确立了能力前沿,但 OPT 暴露了工程负担:分片优化器状态、张量并行实现、主机变动、动态损失缩放故障、学习率干预和数据混合决策。这使得复现前沿密集 LLM 的成本更容易审计。

它还将开放模型对话从小型公共检查点转变为直至 GPT-3 规模的完整基线系列,加上代码和日志。即使对最大权重进行受控的非商业访问,OPT 也为研究人员提供了一个具体的研究规模、偏见、毒性、评估可复现性和训练过程风险的制品。

局限

按后来的数据缩放标准,OPT 不是计算最优的。论文本身引用了 Hoffmann et al.(2022):许多 LLM 相对于所使用的数据量可能是训练不足 的,这意味着更多 token 可以在不增加参数量的情况下改善性能。OPT-175B 约 180B token 的语料库相对后来的万亿 token 方案是偏小的。

发布也是受控和非商业性的,因此在不受限制部署的意义上并非完全开放。论文的环境核算是有用的,但不完整,因为具身硬件排放、实验、停机和下游推理没有标准化。最后,模型继承了通常的 LLM 问题:幻觉、重复、毒性、偏差、以英语为主的数据,以及对 prompting 和设置的评估敏感性。

链接

  • 计算范式:history/compute_regimes/hyperscale_dense_llm_training/README.md
  • 来源 PDF 和抽取文本见上述元数据。
  • 队列状态:read_complete