跳转到内容

LLaMA — 只使用公开数据的高效基础模型

发布日期: 2023-02-27
来源: arXiv 2302.13971
工程范式: 数据效率革命——用更多 token 训练更小模型,超越更大的模型。

LLaMA 是 Meta AI 的开源基础语言模型系列(7B 到 65B),其核心哲学颠覆了当时的常规认知:对于给定的推理预算,用更多 tokens 训练的更小模型,比少 tokens 训练的更大模型更高效。

关键洞察:LLaMA-13B 以 1/10 的参数量超越 GPT-3 (175B) 在大多数基准上。LLaMA-65B 与 Chinchilla-70B 和 PaLM-540B 竞争。

“LLaMA-13B outperforms GPT-3 (175B) on most benchmarks, and LLaMA-65B is competitive with the best models, Chinchilla-70B and PaLM-540B.”

另一核心决策:仅使用公开可用的数据集,不依赖任何专有数据,使得模型可以完全开源。

  • Pre-normalization(GPT-3 风格):RMSNorm 应用到每个子层输入
  • SwiGLU 激活函数(PaLM 风格):替换 ReLU,维度为 2/3 × 4d
  • Rotary Positional Embeddings (RoPE)(GPTNeo 风格):无需绝对位置编码
  • AdamW 优化器(β₁=0.9, β₂=0.95),cosine 学习率衰减
参数维度注意力头层数学习率训练 tokens
6.7B409632323.0e-41.0T
13.0B512040403.0e-41.0T
32.5B665652601.5e-41.4T
65.2B819264801.5e-41.4T
数据源采样比例tokens 占比
CommonCrawl67.0%主要部分
C415.0%补充
GitHub4.5%代码
Wikipedia4.5%知识
Gutenberg & Books34.5%书籍
ArXiv2.5%科学
StackExchange2.0%问答
  • 总 tokens:~1.4T(经 BPE/SentencePiece 分词后)
  • 从 7B 到 65B 四个规模版本
  • 使用 xformers 库实现高效因果多头注意力
  • 手动实现 Transformer 层的反向传播(检查点昂贵的激活函数)
  • 模型并行 + 序列并行,与 GPU 通信重叠
  • 训练吞吐:在 2048 A100-80GB 上约 380 tokens/sec/GPU
模型BoolQPIQAHellaSwagWinoGrandeARC-eARC-c
GPT-3 175B60.581.078.970.268.851.4
LLaMA-13B78.180.179.273.074.852.7
LLaMA-65B85.377.082.852.384.260.2

LLaMA-65B 在除 BoolQ 外的所有基准上超越 Chinchilla-70B,在大多数上超越 PaLM-540B。

模型GSM8K (8-shot)MATH (4-shot)
GPT-3 175B33.05.6
Chinchilla 70B41.7-
PaLM 540B56.58.8
LLaMA-65B63.310.6
维度LLaMAGPT-3ChinchillaPaLM
数据来源仅公开专有专有专有
参数量7B-65B175B70B540B
训练 tokens1.0-1.4T-1.4T780B
开源
运行门槛单 GPU (7B)多 GPU多 GPU多 GPU
  1. “小模型 + 更多数据”策略被证明有效——LLaMA-13B < 1/10 参数量超越 GPT-3 175B。
  2. 纯公开数据训练的模型可以达到顶尖水平——无需专有网页数据或内部知识库。
  3. RoPE + SwiGLU + RMSNorm 成为后续模型的标准配置——LLaMA 确立了这一架构范式。
  4. 从头训练的成本是可承担的——65B 模型在 2048 A100 上训练 21 天。
  5. 开源可以最大化影响力——LLaMA 开源引发了后续整个 Llama 生态的爆发。