LLaMA: Open and Efficient Foundation Language Models

下载 PDF

LLaMA: Open and Efficient Foundation Language Models - 中文验证版

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

状态:已翻译。

元数据

计算设置

论文明确命名了训练加速器类别:带有 NVLink 系统的 A100-80GB GPU。对于最大的训练运行,作者表示在训练 65B 模型时,他们的代码在 2048 个 A100 GPU(80 GB RAM)上处理约 380 tokens/sec/GPU,使 1.4T token 运行耗时约 21 天。碳排列表报告每个模型的 GPU 小时:LLaMA-7B 为 82,432,13B 为 135,168,33B 为 530,432,65B 为 1,022,362。同一部分估计整体模型开发使用了约 2048 个 A100-80GB GPU 持续约五个月,在他们假设下消耗约 2,638 MWh。

模型大小表给出了训练规模。LLaMA-7B 和 13B 在 1.0T tokens 上训练;LLaMA-33B 和 65B 在 1.4T tokens 上训练。全部使用 4M token batch。65B 模型有 80 层、维度 8,192、64 个 head,学习率 1.5e-4。数据集仅由公开来源构成,CommonCrawl 是最大组成部分,另有 C4、GitHub、Wikipedia、书籍、ArXiv 和 StackExchange 数据。

瓶颈

论文的计算瓶颈明确是推理预算,而不仅是训练 FLOPs。它论证计算最优的缩放定律确定了如何在固定训练预算下进行分配,但它们忽略了规模部署模型的成本。在给定目标质量水平的情况下,在更多 tokens 上训练的较小模型可能更优,因为它在推理时更便宜、更快,即使它不是训练到该点的最便宜模型。

这围绕内存占用、解码延迟和可部署性重塑了密集 LLM 缩放。一个 175B 模型可能难以摊销训练成本,如果每次查询需要大得多的参数读取和更多的多 GPU 推理。LLaMA 的 13B 结果是论文的实际核心:一个小到可以在单个 GPU 上推理的模型,在足够的 token 训练后,可以在许多任务上击败或匹敌大得多的旧模型。

实现瓶颈仍然是大规模 A100 训练。注意力内存、激活存储、all-reduce 通信和优化器状态在 batch 为 4M tokens 且 65B 模型在 2048 个 GPU 上分片时都变得昂贵。因此 LLaMA 需要高效内存注意力、选择性重计算、模型/序列并行和通信重叠,以使更小但更长的配方在实际时间内完成。

内存上限使推理论点更加尖锐。65B 模型在激活之前的混合精度 Adam 训练状态下限约为 1.04 TB(每个参数 16 字节),因此预训练仍是一个超大规模分片问题。对于推理,LLaMA-13B 在 KV 缓存和运行时工作空间之前使用约 26 GB BF16 权重;论文中"单 V100"的观点应被理解为受 batch 和上下文约束的推理包络,而非大的未使用内存余量。KV 缓存随上下文和 batch 增长,因此推理收益来自减少模型权重占用以便缓存和工作空间仍能容纳。

方法适配

LLaMA 在两个层面上适配密集 Transformer 配方。在缩放策略层面,它训练较小模型但比旧的参数密集型配方投入更多 tokens。作者指出 7B 模型在超过 1T tokens 后继续改进,尽管 Chinchilla 式指导会以训练计算最优性为目标,将 10B 模型训练约 200B tokens。这是为换取更低推理成本的刻意选择。

在架构和 kernel 层面,LLaMA 使用 RMSNorm 进行预归一化、SwiGLU 激活和旋转位置编码(RoPE)。这些选择保留了加速器友好的密集矩阵乘法结构,同时改善稳定性和质量。优化器为 AdamW,beta 值 0.9 和 0.95,余弦学习率衰减至峰值的 10%,weight decay 0.1,gradient clipping 1.0,以及 2,000 warmup 步。

高效实现部分直接由硬件塑造。xFormers 因果注意力实现通过不存储注意力权重和不计算被遮蔽的 key/query 分数来减少内存使用和运行时间。激活检查点是选择性的:该实现保存昂贵的激活(如线性层输出),并手动实现 Transformer 反向函数,而非完全依赖 PyTorch autograd。为充分受益,它使用模型和序列并行,并将激活计算与来自 all-reduce 操作的网络通信重叠。

证据

论文的核心证据是 LLaMA-13B 在大多数报告的基准测试上优于 GPT-3 175B,同时小 10 倍以上,并且 65B 模型与 Chinchilla-70B 和 PaLM-540B 竞争。作者明确指出 LLaMA-13B 在推理时可以在单个 V100 GPU 上运行,这是关键的计算效果声明:基准质量进入了一个便宜得多的推理包络。

具体的基准表格支持这一点。在常识推理上,LLaMA-13B 报告 BoolQ 78.1、PIQA 80.1、HellaSwag 79.2、WinoGrande 73.0 和 ARC-Challenge 52.7,相比之下 GPT-3 为 60.5、81.0、78.9、70.2 和 51.4。LLaMA-65B 报告 BoolQ 85.3 和 HellaSwag 84.2,超过所引 Chinchilla-70B 在除 BoolQ 外的所有列出常识任务上的值,并在除 BoolQ 和 WinoGrande 外的任务上超过 PaLM-540B。

在闭卷问答上,LLaMA-65B 在 TriviaQA 上达到 68.2 zero-shot 和 73.0 64-shot exact match,而 LLaMA-13B 达到 56.6 和 64.0。在 MMLU 上,LLaMA-13B 得分 46.9 平均,高于 GPT-3 的 43.9;LLaMA-65B 得分 63.4,落后于 Chinchilla-70B 的 67.5 和 PaLM-540B 的 69.3。在代码上,LLaMA-13B 在 HumanEval 上达到 15.8 pass@1,在 MBPP 上达到 22.0,在该表中优于 LaMDA-137B。

历史影响

LLaMA 使"更小但更多 tokens"的配方成为开源密集 LLM 开发的核心。它将 Chinchilla 时代的数据缩放与部署经济学联系起来:不是"我们能训练的最大模型是什么",而是"什么模型在人们实际可用的推理预算下达到质量目标"。这种转变解释了为什么 7B 和 13B 检查点变得如此具有历史重要性,尽管论文也训练了 33B 和 65B 模型。

论文还建立了一个仅使用公开数据的基线,可与闭源数据模型竞争。结合研究社区发布,这将 A100 训练的密集模型转变为微调、量化、检索增强、指令调优和本地推理工作的可复现平台。

局限

硬件报告在 A100 类别、GPU 小时和总体开发规模方面是精确的,但未提供与 BLOOM 的 Jean Zay 描述相当的完整集群拓扑。它还报告了约五个月的开发估算,而非每次消融实验、失败运行和最终训练任务的清晰分离。

模型是基础模型,不是完整的 RLHF/chat 系统。论文包含一个小型指令微调实验,但并非后来的完整 chat 对齐配方。它还报告了重要的弱点:毒性和偏见评估仍然有限,TruthfulQA 分数比 GPT-3 有所提高但绝对值仍低,MMLU 落后于 Chinchilla 和 PaLM,可能因为 LLaMA 使用了少得多的书籍/学术论文数据。最后,65B 模型仍需要超大规模 A100 训练;推理端的收益并未使预训练变得便宜。

链接

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