Language Models are Few-Shot Learners

下载 PDF

Language Models are Few-Shot Learners - 中文验证版

英文原文卡片:gpt3_2020.md

状态:已翻译。

元数据

  • Slug: gpt3_2020
  • 年份: 2020
  • 会议: NeurIPS
  • 作者: Tom B. Brown et al.
  • 阅读状态: read complete
  • 计算范式: 超大规模密集 LLM 训练
  • 主要来源: PDF抽取文本

计算设置

论文列出 V100 GPU,位于微软提供的高带宽集群中的一部分。在抽取文本中未给出 GPU 数量,但说明最大模型需要在矩阵乘法内部和跨层进行模型并行,以避免内存不足。

175B 参数模型使用 96 层、宽度 12,288、96 个注意力头、头维度 128、上下文长度 2,048。所有模型在 300B token 上训练。175B 最终 batch size 为 3.2M token,根据模型大小从 32k token 在前 4-12B token 逐步增加。附录 D 估计 175B 运行在 3.64 * 10^3 PF-days,或 3.14 * 10^23 FLOPs。

内存和通信结构是核心。模型在深度和宽度上跨 GPU 分区,以减少节点间传输并使布局负载均衡。论文说明,精确的架构选择部分出于计算效率和 GPU 布局考虑,而非仅出于建模审美。

数据集也是一种计算产物:过滤后的 Common Crawl 贡献 410B token,占混合的 60%;WebText2 19B 占 22%;Books1 12B 占 8%;Books2 55B 占 8%;Wikipedia 3B 占 3%。

瓶颈

到 2020 年,瓶颈不再是 Transformer 能否在加速器上训练。瓶颈在于如何将数据中心规模的计算花在密集语言模型预训练上,同时控制好内存、通信和数据质量。

任务特定微调也成为工作流瓶颈。GPT-3 将部分适配从权重更新转移到推理时上下文。

训练瓶颈是 V100 内存限制下的密集模型规模。一个 175B 参数模型无法驻留在单块 GPU 上,甚至层内的张量操作也必须拆分。分区必须在适应权重和激活与每次前向/反向传播中的通信之间取得平衡。

推理瓶颈改变了形式。Few-shot learning 通过 2048-token 上下文的前向传播运行,该上下文可以容纳一条指令外加大约 10 到 100 个演示。这避免了微调任务,但为每个评估样本花费额外的推理 token 和注意力计算。

方法适配

GPT-3 以几种方式适配 V100 集群:

  • 使用 decoder-only Transformer,保留早期 Transformer 语言模型引入的密集矩阵乘结构。
  • 模型并行拆分模型,使 175B 参数和激活适配 GPU 内存。
  • 使用 gradient-noise-scale 推理选择大 token batch,提高大规模利用率。
  • 上下文窗口固定为 2,048 token,使 in-context learning 成为有界的推理阶段计算机制。
  • 数据集从 Common Crawl、WebText2、Books 和 Wikipedia 过滤并混合,使高容量预训练拥有足够的 token 多样性。

Few-shot 接口也是计算结构化的:适配通过花费额外前向传播中的上下文来完成,而非运行新的微调任务。对于多项选择任务,模型按似然评分候选项补全。对于自由形式补全,论文使用 beam search,宽度 4,长度惩罚 0.6。

训练过程针对长时密集运行调优。GPT-3 使用 Adam,beta1 0.9、beta2 0.95、全局梯度裁剪 1.0、余弦衰减至 260B token 时的 10%、375M-token 预热,以及权重衰减 0.1。较短文档打包为完整的 2048-token 序列,使用文本结束分隔符。

证据

  • 论文报告在许多任务上性能随模型大小平滑提升。
  • Few-shot 和 one-shot 性能随规模提升的幅度强于 zero-shot。
  • 最大模型有 175B 参数,并在 300B token 上训练。
  • 训练设置需要高带宽多 GPU 分区,而非单机实验。
  • 表 2.1 列出从 125M 参数到 175B 参数的模型阶梯;175B 模型使用 96 层、宽度 12,288、96 个 head、128 维 head、3.2M-token batch size 和学习率 0.6 * 10^-4
  • 论文在其能耗讨论中估计 GPT-3 175B 训练计算为 3,640 PF-days,对比 1.5B 的 GPT-2 规模模型为数十 PF-days。
  • 附录 D 给出相应的总 FLOPs 估计为 3.14 * 10^23,忽略注意力,因对所分析模型注意力通常小于总计算的 10%。
  • 过滤后的 Common Crawl 过滤前压缩后 45TB,过滤后 570GB。
  • GPT-3 在 TriviaQA 上达到 64.3% zero-shot、68.0% one-shot 和 71.2% few-shot 准确率;在 LAMBADA 上达到 86.4% few-shot 准确率,超论文中报告的前沿水平 18 个百分点以上。
  • 论文估计训练后的 175B 模型生成 100 页约需 0.4 kWh。

历史影响

GPT-3 使密集 LLM 缩放成为主流 AI 分支。它连接了三个早期计算趋势:

  • Transformer 架构适合加速器矩阵乘。
  • 缩放定律工作证明了花费远更多计算训练更大模型是合理的。
  • 数据中心 GPU 集群使模型并行语言训练可行。

历史上,本文也重构了语言模型的产品接口:prompt 成为分配推理计算到新任务而不改变权重的一种方式。

在计算主线中,GPT-3 是超大规模密集预训练的验证点。它将单机 P100 Transformer 模式扩展到高带宽集群 V100 训练,具有显式模型并行、大 token batch 和网络规模数据过滤。它还将部分适配成本从训练时梯度更新转移到推理时上下文长度。

局限

  • 论文的缩放仍使用密集 decoder-only 模型;它没有解决成本问题。
  • 训练数据是网络规模的,过滤不完美。
  • In-context learning 强大但不可靠,弱于后来的 instruction tuning 和 RLHF 式后训练。
  • 抽取文本未给出 GPU 数量或互连拓扑,因此集群规模无法进一步重建,仅能确定使用了微软高带宽集群上的 V100。
  • Few-shot prompting 增加了每样本推理成本,因为演示占据上下文和注意力计算。

链接