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.”
另一核心决策:仅使用公开可用的数据集,不依赖任何专有数据,使得模型可以完全开源。
关键架构决策
Section titled “关键架构决策”架构(Decoder-only Transformer)
Section titled “架构(Decoder-only Transformer)”- Pre-normalization(GPT-3 风格):RMSNorm 应用到每个子层输入
- SwiGLU 激活函数(PaLM 风格):替换 ReLU,维度为 2/3 × 4d
- Rotary Positional Embeddings (RoPE)(GPTNeo 风格):无需绝对位置编码
- AdamW 优化器(β₁=0.9, β₂=0.95),cosine 学习率衰减
| 参数 | 维度 | 注意力头 | 层数 | 学习率 | 训练 tokens |
|---|---|---|---|---|---|
| 6.7B | 4096 | 32 | 32 | 3.0e-4 | 1.0T |
| 13.0B | 5120 | 40 | 40 | 3.0e-4 | 1.0T |
| 32.5B | 6656 | 52 | 60 | 1.5e-4 | 1.4T |
| 65.2B | 8192 | 64 | 80 | 1.5e-4 | 1.4T |
| 数据源 | 采样比例 | tokens 占比 |
|---|---|---|
| CommonCrawl | 67.0% | 主要部分 |
| C4 | 15.0% | 补充 |
| GitHub | 4.5% | 代码 |
| Wikipedia | 4.5% | 知识 |
| Gutenberg & Books3 | 4.5% | 书籍 |
| ArXiv | 2.5% | 科学 |
| StackExchange | 2.0% | 问答 |
- 总 tokens:~1.4T(经 BPE/SentencePiece 分词后)
- 从 7B 到 65B 四个规模版本
- 使用 xformers 库实现高效因果多头注意力
- 手动实现 Transformer 层的反向传播(检查点昂贵的激活函数)
- 模型并行 + 序列并行,与 GPU 通信重叠
- 训练吞吐:在 2048 A100-80GB 上约 380 tokens/sec/GPU
常识推理(零样本)
Section titled “常识推理(零样本)”| 模型 | BoolQ | PIQA | HellaSwag | WinoGrande | ARC-e | ARC-c |
|---|---|---|---|---|---|---|
| GPT-3 175B | 60.5 | 81.0 | 78.9 | 70.2 | 68.8 | 51.4 |
| LLaMA-13B | 78.1 | 80.1 | 79.2 | 73.0 | 74.8 | 52.7 |
| LLaMA-65B | 85.3 | 77.0 | 82.8 | 52.3 | 84.2 | 60.2 |
LLaMA-65B 在除 BoolQ 外的所有基准上超越 Chinchilla-70B,在大多数上超越 PaLM-540B。
| 模型 | GSM8K (8-shot) | MATH (4-shot) |
|---|---|---|
| GPT-3 175B | 33.0 | 5.6 |
| Chinchilla 70B | 41.7 | - |
| PaLM 540B | 56.5 | 8.8 |
| LLaMA-65B | 63.3 | 10.6 |
| 维度 | LLaMA | GPT-3 | Chinchilla | PaLM |
|---|---|---|---|---|
| 数据来源 | 仅公开 | 专有 | 专有 | 专有 |
| 参数量 | 7B-65B | 175B | 70B | 540B |
| 训练 tokens | 1.0-1.4T | - | 1.4T | 780B |
| 开源 | ✅ | ❌ | ❌ | ❌ |
| 运行门槛 | 单 GPU (7B) | 多 GPU | 多 GPU | 多 GPU |
可复用的工程经验
Section titled “可复用的工程经验”- “小模型 + 更多数据”策略被证明有效——LLaMA-13B < 1/10 参数量超越 GPT-3 175B。
- 纯公开数据训练的模型可以达到顶尖水平——无需专有网页数据或内部知识库。
- RoPE + SwiGLU + RMSNorm 成为后续模型的标准配置——LLaMA 确立了这一架构范式。
- 从头训练的成本是可承担的——65B 模型在 2048 A100 上训练 21 天。
- 开源可以最大化影响力——LLaMA 开源引发了后续整个 Llama 生态的爆发。