XYZNOT

论文 · arXiv 2302.13971

LLaMA:开源且高效的基础语言模型

LLaMA: Open and Efficient Foundation Language Models

发表于 cs.CL arXivPDF

用 XYZNOT 阅读(全文翻译与 AI 讲解)

三句话总结

  1. 🎯 大多数主流大语言模型依赖庞大的参数量或专有数据集,导致极高的服务成本和研究准入门槛。
  2. 🔧 仅使用开源数据、RMSNorm、SwiGLU 和 RoPE,在 1.0T 至 1.4T token 上训练紧凑的 Transformer 模型(7B 到 65B)。
  3. 📈 LLaMA-13B 在大多数基准上优于 GPT-3 (175B),而 LLaMA-65B 经简单指令微调后在 MMLU 上达到 68.9%。

摘要

我们介绍了 LLaMA,这是一个参数量从 7B 到 65B 的基础语言模型系列。我们在数万亿 token 上训练了这些模型,并证明完全可以使用公开可用的数据集来训练最先进的模型,而无需依赖专有和无法获取的数据集。特别是,LLaMA-13B 在大多数基准测试中优于 GPT-3 (175B),而 LLaMA-65B 则能与最顶尖的模型(Chinchilla-70B 和 PaLM-540B)相媲美。我们将所有模型发布给研究社区。

英文原文摘要

We introduce LLaMA, a collection of foundation language models ranging from 7B to 65B parameters. We train our models on trillions of tokens, and show that it is possible to train state-of-the-art models using publicly available datasets exclusively, without resorting to proprietary and inaccessible datasets. In particular, LLaMA-13B outperforms GPT-3 (175B) on most benchmarks, and LLaMA-65B is competitive with the best models, Chinchilla-70B and PaLM-540B. We release all our models to the research community.

论文解读

问题与动机

标准的缩放定律(如 Chinchilla)是在固定的训练计算预算下,计算参数规模与数据集大小之间的最佳权衡。然而,这种框架忽略了推理预算,而推理预算往往占据了提供语言模型服务的整个生命周期运营成本的主导地位。出于服务效率的考虑,在显著超过计算最优准则建议的数据量上训练更小的模型更为可取,因为它们的托管和运行成本要低得多。

此外,最顶尖的业界模型(如 GPT-3、Chinchilla 和 PaLM)依赖于专有、不可复现的数据集或过大的架构。LLaMA 证明了仅基于公开可用的数据也可以训练出具有竞争力的基础模型,从而能够面向研究人员进行开源分发。

核心思想

  • 以推理为中心的训练:LLaMA 并未在计算最优的数据集规模(例如 10B 模型约需 200B token)处停止训练,而是在 1.0T token 上训练 7B 和 13B 模型,在 1.4T token 上训练 33B 和 65B 模型。
  • 仅使用公开数据集:所有预训练数据均来自公开来源:CommonCrawl (67%)、C4 (15%)、GitHub (4.5%)、Wikipedia (4.5%)、Books (4.5%)、ArXiv (2.5%) 以及 Stack Exchange (2%)。
  • 现代化的 Transformer 架构:结合了用于提高稳定性的 RMSNorm 预归一化(pre-normalization)、SwiGLU 激活函数,以及旋转位置编码(RoPE)以取代绝对位置编码。
  • 工程效率:采用内存高效的注意力机制(通过 xformers)、定制的激活检查点(activation checkpointing)以及序列/模型并行技术。

方法

LLaMA 使用自回归 Transformer 解码器,并进行了以下改进:

  1. 预归一化(Pre-normalization):在每个子层之前使用 RMSNorm 进行输入归一化:
  2. SwiGLU 激活函数:用 SwiGLU 替代标准的 ReLU/GELU 激活,并将中间维度设为 而非 。
  3. 旋转位置编码(RoPE):应用于每一层以编码相对位置信息,无需绝对位置编码。
  4. 优化设置:采用 AdamW,参数设为 、权重衰减为 、梯度裁剪为 、 步预热,以及余弦学习率调度(衰减至最大学习率的 10%)。所有模型规模的 batch size 均为 4M token。

训练过程中的能耗与碳足迹估算如下:

结果

  • 常识推理:LLaMA-13B 在多个基准上击败了 GPT-3 (175B)(例如 BoolQ 上 78.1% vs 60.5%;WinoGrande 上 73.0% vs 70.2%)。LLaMA-65B 在 PIQA(82.8% vs 82.3%)和 HellaSwag(84.2% vs 83.4%)上达到或超过了 PaLM-540B。
  • 闭卷问答:在 TriviaQA(0-shot)上,LLaMA-65B 达到 68.2%,LLaMA-13B 达到 56.6%(性能超越 GPT-3,且仅需单张 V100 GPU 即可运行)。
  • 代码生成:在 HumanEval (pass@1) 上,LLaMA-65B 取得 23.7%,优于 PaLM-62B (15.9%),并持平 PaLM-cont 62B (23.7%)。
  • MMLU 与指令微调:基础版 LLaMA-65B 在 MMLU 上的 5-shot 准确率达到 63.4%(略落后于 PaLM-540B 的 69.3%,可能是由于预训练图书语料较少所致)。然而,在基础提示上进行指令微调后(LLaMA-I 65B),性能提升至 68.9%。

局限性与开放问题

  • 幻觉与真实性:在 TruthfulQA 上的得分依然一般(LLaMA-65B 在 Truthful 上得分为 0.57,在 Truthful*Informative 上得分为 0.53),表明模型仍存在产生幻觉的倾向。
  • 毒性扩展问题:在 RealToxicityPrompts 测试中,毒性随模型规模增加而上升,尤其是在带有尊重语气提示(respectful prompts)的情况下(65B 为 0.141,而 7B 为 0.081)。
  • 学术知识差距:在 MMLU 上的表现落后于 Chinchilla-70B 和 PaLM-540B,作者推测这是因为训练数据中仅包含约 177GB 的书籍和学术论文,而专有数据集中约为 2TB。

关键术语

LLaMA
一个基础语言模型系列,参数量从 7B 到 65B 不等,仅使用公开数据集在多达 1.4 万亿 token 上训练完成。
Inference Budget (推理预算)
提供已训练模型服务时产生的计算成本和延迟,通过在更多 token 上训练更小的模型来对其进行优先优化。
RMSNorm
均方根层归一化(Root Mean Square Layer Normalization),用于归一化 Transformer 子层的输入以提升训练稳定性。
SwiGLU
一种使用 Swish 激活函数的门控线性单元变体,隐藏层维度设置为 2/3 * 4d。
Rotary Positional Embeddings (RoPE) (旋转位置编码)
一种通过旋转 query 和 key 表示,将相对位置信息注入 Transformer 注意力层的技术。
xformers
一个开源库,提供高效的因果多头注意力实现,避免存储庞大的注意力权重矩阵。
LLaMA-I
LLaMA-65B 的指令微调版本,遵循 Flan 方案进行训练,旨在提高指令遵循能力和 MMLU 评测性能。
TruthfulQA
一个用于衡量大语言模型在对抗性事实问题中模仿人类错误表述和幻觉倾向的基准测试。

常见问题

预训练 LLaMA 使用了哪些数据集?

预训练仅使用公开数据:英文 CommonCrawl (67%)、C4 (15%)、GitHub (4.5%)、覆盖20种语言的 Wikipedia (4.5%)、Gutenberg 和 Books3 (4.5%)、ArXiv (2.5%) 以及 Stack Exchange (2%)。

LLaMA-13B 与 GPT-3 (175B) 相比表现如何?

LLaMA-13B 在大多数标准基准(包括 BoolQ、PIQA 和 WinoGrande)上均优于 GPT-3,尽管其参数量小了 10 倍以上,且可以在单张消费级或数据中心级 GPU 上进行推理。

训练 LLaMA-65B 花了多长时间?

在 1.4 万亿 token 上训练 LLaMA-65B 时,使用 2,048 张 80GB A100 GPU,处理速度约为每张 GPU 380 token/秒,历时约 21 天完成。

相比原始 Transformer,LLaMA 做了哪些架构上的改进?

LLaMA 在子层输入上应用了 RMSNorm 预归一化,用 SwiGLU 激活函数(维度为 2/3 * 4d)替代了 ReLU,并用旋转位置编码(RoPE)替代了绝对位置编码。

本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。

用 XYZNOT 阅读(全文翻译与 AI 讲解)