# 2023 Touvron et al.

LLaMA: Open and Efficient Foundation Language Models

LLaMA:开放且高效的基础语言模型 Hugo Touvron , Thibaut Lavril , Gautier Izacard , Xavier Martinet Marie-Anne Lachaux, Timothee Lacroix, Baptiste Rozière, Naman Goyal Eric Hambro, Faisal Azhar, Aurelien Rodrigue...

精粹译文

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

Hugo Touvron*, Thibaut Lavril*, Gautier Izacard*, Xavier Martinet Marie-Anne Lachaux, Timothee Lacroix, Baptiste Rozière, Naman Goyal Eric Hambro, Faisal Azhar, Aurelien Rodriguez, Armand Joulin Edouard Grave*, Guillaume Lample*

Meta AI

摘要

我们介绍了 LLaMA,这是一系列参数规模从 7B 到 65B 的基础语言模型。我们在数万亿个 token 上训练了这些模型,并证明了仅使用公开可用的数据集来训练最先进的模型是可能的,而无需依赖专有的、不可访问的数据集。特别是,LLaMA-13B 在大多数基准测试中表现优于 GPT-3 (175B),而 LLaMA-65B 则与最优秀的模型 Chinchilla-70B 和 PaLM-540B 具有竞争力。我们将所有模型发布给研究社区。


1 引言

在海量文本语料库上训练的大型语言模型 (LLMs) 已经展示了它们通过文本指令或少量示例执行新任务的能力 (Brown et al., 2020)。这些少样本 (few-shot) 特性首次出现在将模型扩展到足够规模时 (Kaplan et al., 2020),这导致了一系列专注于进一步扩展这些模型的工作 (Chowdhery et al., 2022; Rae et al., 2021)。这些努力基于这样一个假设:更多的参数将带来更好的性能。然而,Hoffmann et al. (2022) 的最新研究表明,对于给定的计算预算,最佳性能并非由最大的模型实现,而是由在更多数据上训练的较小模型实现。

Hoffmann et al. (2022) 提出的缩放定律 (scaling laws) 的目标是确定如何针对特定的训练计算预算来最佳地缩放数据集和模型大小。然而,该目标忽略了推理预算,这在规模化服务语言模型时变得至关重要。在这种背景下,给定目标性能水平,首选模型不是训练速度最快的,而是推理速度最快的。虽然训练一个大模型以达到一定性能水平可能更便宜,但训练时间更长的较小模型最终在推理时会更便宜。例如,尽管 Hoffmann et al. (2022) 建议在 200B 个 token 上训练 10B 模型,但我们发现 7B 模型的性能即使在 1T 个 token 之后仍在持续提升。

本工作的重点是训练一系列语言模型,通过在比通常使用量更多的 token 上进行训练,在各种推理预算下实现尽可能最佳的性能。由此产生的模型称为 LLaMA,参数规模从 7B 到 65B,与现有的最佳 LLMs 相比具有竞争力的性能。例如,尽管 LLaMA-13B 比 GPT-3 小 10 倍,但在大多数基准测试中表现优于 GPT-3。我们相信该模型将有助于普及对 LLMs 的访问和研究,因为它可以在单个 GPU 上运行。在规模的另一端,我们的 65B 参数模型也与 Chinchilla 或 PaLM-540B 等最优秀的大型语言模型具有竞争力。

与 Chinchilla、PaLM 或 GPT-3 不同,我们仅使用公开可用的数据,这使得我们的工作与开源兼容,而大多数现有模型依赖于要么不可公开获取,要么未记录的数据(例如“Books – 2TB”或“社交媒体对话”)。虽然存在一些例外,特别是 OPT (Zhang et al., 2022)、GPT-NeoX (Black et al., 2022)、BLOOM (Scao et al., 2022) 和 GLM (Zeng et al., 2022),但没有一个能与 PaLM-62B 或 Chinchilla 竞争。

在本文的其余部分,我们将概述我们对 Transformer 架构 (Vaswani et al., 2017) 所做的修改,以及我们的训练方法。然后,我们报告我们模型的性能,并在一组标准基准测试上与其他 LLMs 进行比较。最后,我们使用负责任 AI 社区的一些最新基准测试,揭示了我们模型中编码的一些偏见和毒性。


2 方法

我们的训练方法类似于先前工作中描述的方法 (Brown et al., 2020; Chowdhery et al., 2022),并受到 Chinchilla 缩放定律 (Hoffmann et al., 2022) 的启发。我们使用标准优化器在大量文本数据上训练大型 Transformer。

2.1 预训练数据

我们的训练数据集是多个来源的混合,如表 1 所示,涵盖了多样化的领域。在很大程度上,我们重用了已被用于训练其他 LLMs 的数据源,限制仅使用公开可用且与开源兼容的数据。这导致了以下数据混合及其在训练集中的百分比:

English CommonCrawl [67%]。我们使用 CCNet 管道 (Wenzek et al., 2020) 预处理了五个 CommonCrawl 转储,范围从 2017 年到 2020 年。此过程在行级别对数据进行去重,使用 fastText 线性分类器执行语言识别以删除非英语页面,并使用 n-gram 语言模型过滤低质量内容。此外,我们训练了一个线性模型来分类用作 Wikipedia 引用的页面与随机采样的页面,并丢弃了未分类为引用的页面。

C4 [15%]。在探索性实验中,我们观察到使用多样化的预处理 CommonCrawl 数据集可以提高性能。因此,我们将公开可用的 C4 数据集 (Raffel et al., 2020) 包含在我们的数据中。C4 的预处理也包含去重和语言识别步骤:与 CCNet 的主要区别在于质量过滤,它主要依赖于启发式方法,例如网页中标点符号的存在或单词和句子的数量。

Github [4.5%]。我们使用 Google BigQuery 上提供的公共 GitHub 数据集。我们仅保留了在 Apache、BSD 和 MIT 许可证下分发的项目。此外,我们根据行长度或字母数字字符的比例,使用启发式方法过滤了低质量文件,并使用正则表达式删除了样板文件(如页眉)。最后,我们在文件级别对生成的数据集进行去重,使用精确匹配。

Wikipedia [4.5%]。我们添加了 2022 年 6 月至 8 月期间的 Wikipedia 转储,涵盖 20 种语言,这些语言使用拉丁字母或西里尔字母:bg, ca, cs, da, de, en, es, fr, hr, hu, it, nl, pl, pt, ro, ru, sl, sr, sv, uk。我们处理数据以删除超链接、注释和其他格式样板。

Gutenberg and Books3 [4.5%]。我们在训练数据集中包含了两个书籍语料库:Gutenberg 项目(包含公共领域的书籍)和 ThePile 的 Books3 部分 (Gao et al., 2020)(一个用于训练大型语言模型的公开可用数据集)。我们在书籍级别执行去重,删除内容重叠超过 90% 的书籍。

ArXiv [2.5%]。我们处理 arXiv Latex 文件以将科学数据添加到我们的数据集中。遵循 Lewkowycz et al. (2022),我们删除了第一节之前的所有内容以及参考文献。我们还删除了 .tex 文件中的注释,并内联展开了用户编写的定义和宏,以提高论文之间的一致性。

Stack Exchange [2%]。我们包含了 Stack Exchange 的转储,这是一个高质量问答网站,涵盖了从计算机科学到化学等多样化的领域。我们保留了来自 28 个最大网站的数据,从文本中删除了 HTML 标签,并按分数(从高到低)对答案进行了排序。

分词器 (Tokenizer)。我们使用字节对编码 (BPE) 算法 (Sennrich et al., 2015) 对数据进行分词,使用 SentencePiece (Kudo and Richardson, 2018) 的实现。值得注意的是,我们将所有数字拆分为单个数字,并回退到字节以分解未知的 UTF-8 字符。

数据集采样比例Epochs磁盘大小
CommonCrawl67.0%1.103.3 TB
C415.0%1.06783 GB
Github4.5%0.64328 GB
Wikipedia4.5%2.4583 GB
Books4.5%2.2385 GB
ArXiv2.5%1.0692 GB
StackExchange2.0%1.0378 GB

表 1:预训练数据。 用于预训练的数据混合,对于每个子集,我们列出了采样比例、在 1.4T token 上训练时在该子集上执行的 epoch 数量以及磁盘大小。在 1T token 上进行的预训练运行具有相同的采样比例。


参数维度注意力头数层数学习率Batch sizeToken 总数
6.7B409632323.0e43.0e^{-4}4M1.0T
13.0B512040403.0e43.0e^{-4}4M1.0T
32.5B665652601.5e41.5e^{-4}4M1.4T
65.2B819264801.5e41.5e^{-4}4M1.4T

表 2:模型大小、架构和优化超参数。

总体而言,我们的整个训练数据集在分词后包含大约 1.4T 个 token。对于我们的大部分训练数据,每个 token 在训练期间仅使用一次,但 Wikipedia 和 Books 领域除外,我们对其执行了大约两个 epoch。

2.2 架构

遵循最近关于大型语言模型的工作,我们的网络基于 Transformer 架构 (Vaswani et al., 2017)。我们利用了随后提出的各种改进,并用于不同的模型(如 PaLM)。以下是与原始架构的主要区别,以及我们找到这些更改灵感的地方(括号内):

预归一化 (Pre-normalization) [GPT3]。为了提高训练稳定性,我们对每个 Transformer 子层的输入进行归一化,而不是对输出进行归一化。我们使用 Zhang 和 Sennrich (2019) 引入的 RMSNorm 归一化函数。

SwiGLU 激活函数 [PaLM]。我们用 Shazeer (2020) 引入的 SwiGLU 激活函数替换 ReLU 非线性,以提高性能。我们使用 234d\frac{2}{3}4d 的维度,而不是 PaLM 中的 4d4d

旋转嵌入 (Rotary Embeddings) [GPTNeo]。我们删除了绝对位置嵌入,取而代之的是在网络的每一层添加了 Su et al. (2021) 引入的旋转位置嵌入 (RoPE)。

我们不同模型的超参数详情见表 2。

2.3 优化器

我们的模型使用 AdamW 优化器 (Loshchilov and Hutter, 2017) 进行训练,超参数如下:β1=0.9,β2=0.95\beta_1 = 0.9, \beta_2 = 0.95。我们使用余弦学习率调度,使得最终学习率等于最大学习率的 10%。我们使用 0.1 的权重衰减和 1.0 的梯度裁剪。我们使用 2,000 个预热步骤,并根据模型大小改变学习率和 batch size(详见表 2)。

2.4 高效实现

我们进行了多项优化以提高模型的训练速度。首先,我们使用因果多头注意力的高效实现来减少内存使用和运行时间。这种实现可在 xformers 库中获得,其灵感来自 Rabe 和 Staats (2021),并使用了 Dao et al. (2022) 的反向传播。这是通过不存储注意力权重,也不计算由于语言建模任务的因果性质而被掩盖的键/查询分数来实现的。

为了进一步提高训练效率,我们通过检查点 (checkpointing) 减少了在反向传播过程中重新计算的激活数量。更准确地说,我们保存了计算成本昂贵的激活,例如线性层的输出。这是通过手动实现 Transformer 层的反向函数来实现的,而不是依赖 PyTorch 的自动求导。为了充分利用此优化,我们需要通过 Korthikanti et al. (2022) 所述的模型和序列并行性来减少模型的内存使用。此外,我们还尽可能多地重叠激活计算和网络上 GPU 之间的通信(由于 all_reduce 操作)。

当训练 65B 参数模型时,我们的代码在 2048 个 A100 GPU(具有 80GB RAM)上每秒处理约 380 个 token。这意味着在包含 1.4T token 的数据集上进行训练大约需要 21 天。

图 1:7B、13B、33B 和 65B 模型的训练损失随训练 token 的变化。LLaMA-33B 和 LLaMA-65B 在 1.4T token 上训练。较小的模型在 1.0T token 上训练。所有模型均以 4M token 的 batch size 进行训练。


3 主要结果

遵循先前的工作 (Brown et al., 2020),我们考虑零样本 (zero-shot) 和少样本 (few-shot) 任务,并报告了总共 20 个基准测试的结果:

  • 零样本 (Zero-shot)。我们提供任务的文本描述和测试示例。模型要么使用开放式生成提供答案,要么对建议的答案进行排名。
  • 少样本 (Few-shot)。我们提供任务的几个示例(在 1 到 64 之间)和测试示例。模型将此文本作为输入并生成答案或对不同选项进行排名。

我们将 LLaMA 与其他基础模型进行了比较,即非公开可用的语言模型 GPT-3 (Brown et al., 2020)、Gopher (Rae et al., 2021)、Chinchilla (Hoffmann et al., 2022) 和 PaLM (Chowdhery et al., 2022),以及开源的 OPT 模型 (Zhang et al., 2022)、GPT-J (Wang and Komatsuzaki, 2021) 和 GPT-Neo (Black et al., 2022)。在第 4 节中,我们还简要比较了 LLaMA 与指令微调模型,如 OPT-IML (Iyer et al., 2022) 和 Flan-PaLM (Chung et al., 2022)。

我们评估了 LLaMA 在自由形式生成任务和多项选择任务上的表现。在多项选择任务中,目标是根据提供的上下文,在给定的一组选项中选择最合适的完成方式。我们选择在给定上下文下具有最高似然性的完成方式。我们遵循 Gao et al. (2021) 的方法,使用由完成方式中的字符数归一化的似然性,但某些数据集(OpenBookQA, BoolQ)除外,对于这些数据集,我们遵循 Brown et al. (2020) 的方法,并根据由以“Answer:”作为上下文的完成方式的似然性归一化的似然性来选择完成方式: P(completioncontext)/P(completion“Answer:”)P(\text{completion}|\text{context})/P(\text{completion}|\text{“Answer:”})

BoolQPIQASIQAHellaSwagWinoGrandeARC-eARC-cOBQA
GPT-3175B60.581.0-78.970.268.851.457.6
Gopher280B79.381.850.679.270.1---
Chinchilla70B83.781.851.380.874.9---
PaLM62B84.880.5-79.777.075.252.550.4
PaLM-cont62B83.981.4-80.677.0---
PaLM540B88.082.3-83.481.176.653.053.4
LLaMA7B76.579.848.976.170.172.847.657.2
13B78.180.150.479.273.074.852.756.4
33B83.182.350.482.876.080.057.858.6
65B85.382.852.384.277.078.956.060.2

表 3:常识推理任务的零样本性能。

0-shot1-shot5-shot64-shot
GPT-3175B14.623.0-29.9
Gopher280B10.1-24.528.2
Chinchilla70B16.6-31.535.5
PaLM8B8.410.6-14.6
62B18.126.5-27.6
540B21.229.3-39.6
LLaMA7B16.818.722.026.1
13B20.123.428.131.9
33B24.928.332.936.0
65B23.831.035.039.9

表 4:NaturalQuestions。精确匹配性能。

3.1 常识推理

我们考虑了八个标准的常识推理基准测试:BoolQ (Clark et al., 2019)、PIQA (Bisk et al., 2020)、SIQA (Sap et al., 2019)、HellaSwag (Zellers et al., 2019)、WinoGrande (Sakaguchi et al., 2021)、ARC easy 和 challenge (Clark et al., 2018) 以及 OpenBookQA (Mihaylov et al., 2018)。这些数据集包括完形填空和 Winograd 风格的任务,以及多项选择问答。我们按照语言建模社区的做法,在零样本设置中进行评估。

在表 3 中,我们将我们的模型与各种规模的现有模型进行了比较,并报告了相应论文中的数字。首先,LLaMA-65B 在除 BoolQ 之外的所有报告基准测试中均优于 Chinchilla-70B。同样,该模型在除 BoolQ 和 WinoGrande 之外的所有方面都超过了 PaLM-540B。LLaMA-13B 模型尽管小了 10 倍,但在大多数基准测试中也优于 GPT-3。

3.2 闭卷问答 (Closed-book Question Answering)

我们将 LLaMA 与现有的闭卷问答基准测试上的大型语言模型进行了比较:Natural Questions (Kwiatkowski et al., 2019) 和 TriviaQA (Joshi et al., 2017)。对于这两个基准测试,我们报告了闭卷设置下的精确匹配性能,即模型无法访问包含回答问题证据的文档。在表 4 中,我们报告了 NaturalQuestions 上的性能,在表 5 中,我们报告了 TriviaQA 上的性能。在这两个基准测试中,LLaMA-65B 在零样本和少样本设置中均实现了最先进的性能。更重要的是,LLaMA-13B 在这些基准测试中也与 GPT-3 和 Chinchilla 具有竞争力,尽管它小了 5-10 倍。该模型在推理期间可以在单个 V100 GPU 上运行。

0-shot1-shot5-shot64-shot
Gopher280B43.5-57.057.2
Chinchilla70B55.4-64.164.6
LLaMA7B50.053.456.357.6
13B56.660.563.164.0
33B65.167.969.970.4
65B68.271.672.673.0

表 5:TriviaQA。过滤后的开发集上的零样本和少样本精确匹配性能。

3.3 阅读理解

我们评估了我们的模型在 RACE 阅读理解基准测试 (Lai et al., 2017) 上的表现。该数据集是从为中学生和高中生设计的英语阅读理解考试中收集的。我们遵循 Brown et al. (2020) 的评估设置,并在表 6 中报告了结果。在这些基准测试中,LLaMA-65B 与 PaLM-540B 具有竞争力,而 LLaMA-13B 比 GPT-3 高出几个百分点。

RACE-middleRACE-high
GPT-3175B58.445.5
PaLM8B57.942.3
62B64.347.5
540B68.149.1
LLaMA7B61.146.9
13B61.647.2
33B64.148.3
65B67.951.6

表 6:阅读理解。零样本准确率。

3.4 数学推理

我们评估了我们的模型在两个数学推理基准测试上的表现:MATH (Hendrycks et al., 2021) 和 GSM8k (Cobbe et al., 2021)。MATH 是一个包含 12K 个用 LaTeX 编写的中学和高中数学问题的数据集。GSM8k 是一组中学数学问题。

在表 7 中,我们将我们的模型与 PaLM 和 Minerva (Lewkowycz et al., 2022) 进行了比较。Minerva 是一系列在从 ArXiv 和数学网页中提取的 38.5B 个 token 上进行微调的 PaLM 模型,而 PaLM 或 LLaMA 都没有在数学数据上进行微调。PaLM 和 Minerva 的数字取自 Lewkowycz et al. (2022),我们比较了有和没有 maj1@k 的情况。maj1@k 表示评估,其中我们为每个问题生成 kk 个样本并执行多数投票 (Wang et al., 2022)。在 GSM8k 上,我们观察到 LLaMA-65B 优于 Minerva-62B,尽管它没有在数学数据上进行微调。

3.5 代码生成

我们评估了我们的模型在两个基准测试上根据自然语言描述编写代码的能力:HumanEval (Chen et al., 2021) 和 MBPP (Austin et al., 2021)。对于这两个任务,模型都会收到几句话的程序描述,以及几个输入输出示例。在 HumanEval 中,它还会收到一个函数签名,并且提示被格式化为带有文本描述和测试的自然代码。模型需要生成一个符合描述并满足测试用例的 Python 程序。在表 8 中,我们将我们模型的 pass@1 分数与现有的未针对代码进行微调的语言模型(即 PaLM 和 LaMDA (Thoppilan et al., 2022))进行了比较。PaLM 和 LLaMA 是在包含相似数量代码 token 的数据集上训练的。

MATH+maj1@kGSM8k+maj1@k
PaLM8B1.5-4.1-
62B4.4-33.0-
540B8.8-56.5-
Minerva8B14.125.416.228.4
62B27.643.452.468.5
540B33.650.368.578.5
LLaMA7B2.96.911.018.1
13B3.98.817.829.3
33B7.115.235.653.1
65B10.620.550.969.7

表 7:定量推理数据集上的模型性能。 对于多数投票,我们使用与 Minerva 相同的设置,MATH 使用 k=256k=256 个样本,GSM8k 使用 k=100k=100 个样本(Minerva 540B 在 MATH 上使用 k=64k=64,在 GSM8k 上使用 k=40k=40)。LLaMA-65B 在 GSM8k 上优于 Minerva 62B,尽管它没有在数学数据上进行微调。

ParamsHumanEvalMBPP
@1@100@1@80
LaMDA137B14.047.314.862.4
PaLM8B3.6*18.7*5.0*35.7*
PaLM62B15.946.3*21.463.2*
PaLM-cont62B23.7-31.2-
PaLM540B26.276.236.875.0
LLaMA7B10.536.517.756.2
13B15.852.522.064.0
33B21.770.730.273.4
65B23.779.337.776.8

表 8:代码生成的模型性能。 我们报告了 HumanEval 和 MBPP 上的 pass@ 分数。HumanEval 生成是在零样本下完成的,MBBP 是使用类似于 Austin et al. (2021) 的 3-shot 提示完成的。标有 * 的值是从 Chowdhery et al. (2022) 的图表中读取的。

如表 8 所示,对于相似数量的参数,LLaMA 优于其他通用模型,如 LaMDA 和 PaLM,这些模型并未专门针对代码进行训练或微调。具有 13B 参数及以上的 LLaMA 在 HumanEval 和 MBPP 上均优于 LaMDA 137B。LLaMA 65B 也优于 PaLM 62B,即使它训练时间更长。本表中报告的 pass@1 结果是通过温度 0.1 采样获得的。pass@100 和 pass@80 指标是通过温度 0.8 获得的。我们使用与 Chen et al. (2021) 相同的方法来获得 pass@k 的无偏估计。

通过在特定于代码的 token 上进行微调,可以提高代码性能。例如,PaLM-Coder (Chowdhery et al., 2022) 将 PaLM 在 HumanEval 上的 pass@1 分数从 PaLM 的 26.2% 提高到 36%。其他专门针对代码训练的模型在这些任务上也比通用模型表现更好 (Chen et al., 2021; Nijkamp et al., 2022; Fried et al., 2022)。在代码 token 上进行微调超出了本文的范围。

3.6 大规模多任务语言理解 (Massive Multitask Language Understanding)

由 Hendrycks et al. (2020) 引入的大规模多任务语言理解基准测试(或 MMLU)由涵盖各种知识领域(包括人文、STEM 和社会科学)的多项选择题组成。我们使用基准测试提供的示例,在 5-shot 设置中评估我们的模型,并在表 9 中报告结果。在这个基准测试中,我们观察到 LLaMA-65B 平均而言落后于 Chinchilla 70B 和 PaLM-540B 几个百分点,并且在大多数领域也是如此。一个潜在的解释是,我们在预训练数据中使用了有限数量的书籍和学术论文,即 ArXiv、Gutenberg 和 Books3,总共只有 177GB,而这些模型是在多达 2TB 的书籍上训练的。Gopher、Chinchilla 和 PaLM 使用的这种大量书籍也可能解释了为什么 Gopher 在此基准测试中优于 GPT-3,而它在其他基准测试中具有可比性。

3.7 训练期间的性能演变

在训练期间,我们跟踪了我们的模型在一些问答和常识基准测试上的性能,并在图 2 中报告了它们。在大多数基准测试中,性能稳步提高,并与模型的训练困惑度相关(见图 1)。例外是 SIQA 和 WinoGrande。最值得注意的是,在 SIQA 上,我们观察到性能有很大的差异,这可能表明该基准测试不可靠。在 WinoGrande 上,性能与训练困惑度的相关性也不高:LLaMA-33B 和 LLaMA-65B 在训练期间具有相似的性能。


4 指令微调 (Instruction Finetuning)

在本节中,我们展示了在指令数据上进行简短的微调会迅速导致 MMLU 性能的提高。虽然 LLaMA-65B 的非微调版本已经能够遵循基本指令,但我们观察到极少量的微调可以提高 MMLU 上的性能,并进一步提高模型遵循指令的能力。由于这不是本文的重点,我们仅按照 Chung et al. (2022) 的相同协议进行了一次实验,以训练一个指令模型 LLaMA-I。

HumanitiesSTEMSocial SciencesOtherAverage
GPT-NeoX20B29.834.933.737.733.6
GPT-3175B40.836.750.448.843.9
Gopher280B56.247.471.966.160.0
Chinchilla70B63.654.979.373.967.5
PaLM8B25.623.824.127.825.4
62B59.541.962.755.853.7
540B77.055.681.069.669.3
13B45.035.853.853.346.9
33B55.846.066.763.457.8
65B61.851.772.967.463.4

表 9:大规模多任务语言理解 (MMLU)。五样本准确率。

在表 10 中,我们报告了我们的指令模型 LLaMA-I 在 MMLU 上的结果,并将其与中等规模的现有指令微调模型(即 OPT-IML (Iyer et al., 2022) 和 Flan-PaLM 系列 (Chung et al., 2022))进行了比较。所有报告的数字均来自相应的论文。尽管这里使用的指令微调方法很简单,但我们在 MMLU 上达到了 68.9%。LLaMA-I (65B) 在 MMLU 上优于中等规模的现有指令微调模型,但距离最先进水平(即 GPT code-davinci-002 在 MMLU 上的 77.4,数字取自 Iyer et al. (2022))仍有差距。关于 MMLU 上 57 个任务的性能详情,可以在附录的表 16 中找到。

MMLU (5-shot)
OPT30B26.1
GLM120B44.8
PaLM62B55.1
PaLM-cont62B62.8
Chinchilla70B67.5
LLaMA65B63.4
OPT-IML-Max30B43.2
Flan-T5-XXL11B55.1
Flan-PaLM62B59.6
Flan-PaLM-cont62B66.1
LLaMA-I65B68.9

表 10:指令微调 – MMLU (5-shot)。 中等规模模型在 MMLU 上进行与不进行指令微调的比较。


5 偏见、毒性和错误信息

大型语言模型已被证明会重现并放大训练数据中存在的偏见 (Sheng et al., 2019; Kurita et al., 2019),并生成有毒或冒犯性的内容 (Gehman et al., 2020)。由于我们的训练数据集包含来自 Web 的大量数据,我们认为确定我们模型生成此类内容的潜力至关重要。为了了解 LLaMA-65B 的潜在危害,我们在衡量有毒内容生成和刻板印象检测的不同基准测试上进行了评估。虽然我们选择了一些语言模型社区用于指出这些模型存在的问题的标准基准测试,但这些评估不足以完全了解与这些模型相关的风险。

5.1 RealToxicityPrompts

语言模型可以生成有毒语言,例如侮辱、仇恨言论或威胁。模型可以生成非常广泛的有毒内容,这使得彻底的评估具有挑战性。最近的几项工作 (Zhang et al., 2022; Hoffmann et al., 2022) 将 RealToxicityPrompts 基准测试 (Gehman et al., 2020) 视为其模型毒性程度的指标。RealToxicityPrompts 由大约 100k 个模型必须完成的提示组成;然后通过向 PerspectiveAPI 发出请求来自动评估毒性分数。我们无法控制第三方 PerspectiveAPI 使用的管道,这使得与以前的模型进行比较变得困难。

对于 100k 个提示中的每一个,我们使用我们的模型贪婪地生成内容,并测量它们的毒性分数。每个提示的分数范围从 0(无毒)到 1(有毒)。在表 11 中,我们报告了我们在 RealToxicityPrompts 的基本和尊重提示类别上的平均分数。这些分数与我们在文献中观察到的分数“相当”(例如 Chinchilla 为 0.087),但这些工作与我们的方法在采样策略、提示数量和 API 时间方面有所不同。我们观察到毒性随着模型规模的增加而增加,特别是对于“尊重”提示。这在之前的工作 (Zhang et al., 2022) 中也观察到,Hoffmann et al. (2022) 是一个显著的例外,尽管规模不同,但他们没有看到 Chinchilla 和 Gopher 之间的差异。这可以解释为较大的模型 Gopher 的性能比 Chinchilla 差,这表明毒性和模型规模之间的关系可能仅适用于模型系列内部。

BasicRespectful
LLaMA7B0.1060.081
13B0.1040.095
33B0.1070.087
65B0.1280.141

表 11:RealToxicityPrompts。 我们在此基准测试的 100k 个提示上运行贪婪解码器。“尊重”版本是以“Complete the following sentence in a polite, respectful, and unbiased manner:”开头的提示,而“基本”版本则没有。分数是使用 PerplexityAPI 获得的,分数越高表示生成的毒性越大。

5.2 CrowS-Pairs

我们在 CrowS-Pairs (Nangia et al., 2020) 上评估了我们模型中的偏见。该数据集允许衡量 9 个类别中的偏见:性别、宗教、种族/肤色、性取向、年龄、国籍、残疾、外貌和社会经济地位。每个示例由一个刻板印象和一个反刻板印象组成,我们在零样本设置中通过两种句子的困惑度来衡量模型对刻板印象句子的偏好。因此,分数越高表示偏见越大。我们在表 12 中与 GPT-3 和 OPT-175B 进行了比较。

LLaMA 在平均水平上与这两个模型相比略有优势。我们的模型在宗教类别中特别有偏见(与 OPT-175B 相比 +10%),其次是年龄和性别。尽管经过了多次过滤步骤,我们仍预计这些偏见来自 CommonCrawl。

LLaMAGPT3OPT
Gender70.662.665.7
Religion79.073.368.6
Race/Color57.064.768.6
Sexual orientation81.076.278.6
Age70.164.467.8
Nationality64.261.662.9
Disability66.776.776.7
Physical appearance77.874.676.2
Socioeconomic status71.573.876.2
Average66.667.269.5

表 12:CrowS-Pairs。 我们将 LLaMA-65B 中包含的偏见水平与 OPT-175B 和 GPT3-175B 进行了比较。分数越高表示偏见越大。

5.3 WinoGender

为了进一步调查我们模型在性别类别上的偏见,我们查看了 WinoGender 基准测试 (Rudinger et al., 2018),这是一个指代消解数据集。WinoGender 由 Winograd 模式组成,偏见通过确定模型的指代消解性能是否受到代词性别的影响来评估。

更准确地说,每个句子都有三个提及:“职业”、“参与者”和“代词”,其中代词是指代职业或参与者。我们提示模型确定指代关系,并测量它是否根据句子的上下文正确地做到了这一点。目标是揭示与职业相关的社会偏见是否已被模型捕获。例如,WinoGender 数据集中的一个句子是“The nurse notified the patient that his shift would be ending in an hour.”,后面跟着“‘His’ refers to”。然后,我们比较“the nurse”和“the patient”的延续困惑度,以使用模型执行指代消解。我们评估了使用 3 个代词时的性能:“her/her/she”、“his/him/he”和“their/them/someone”(不同的选择对应于代词的语法功能)。

在表 13 中,我们报告了数据集中包含的三个不同代词的指代分数。我们观察到,我们的模型在执行“their/them/someone”代词的指代消解方面明显优于“her/her/she”和“his/him/he”代词。在之前的工作 (Rae et al., 2021; Hoffmann et al., 2022) 中也观察到了类似的现象,这很可能表明存在性别偏见。事实上,在“her/her/she”和“his/him/he”代词的情况下,模型可能正在使用职业的多数性别来执行指代消解,而不是使用句子的证据。

为了进一步调查这一假设,我们查看了 WinoGender 数据集中“her/her/she”和“his/him/he”代词的“gotcha”案例集。这些案例对应于代词与职业的多数性别不匹配,且职业是正确答案的句子。在表 13 中,我们观察到我们的模型 LLaMA-65B 在“gotcha”示例上犯了更多错误,清楚地表明它捕获了与性别和职业相关的社会偏见。性能下降存在于“her/her/she”和“his/him/he”代词中,这表明无论性别如何都存在偏见。

5.4 TruthfulQA

TruthfulQA (Lin et al., 2021) 旨在衡量模型的真实性,即它识别声明何时为真的能力。Lin et al. (2021) 考虑了“真实”的定义,即“关于现实世界的字面真理”,而不是仅在信仰体系或传统背景下为真的声明。该基准测试可以评估模型生成错误信息或虚假声明的风险。问题以不同的风格编写,涵盖 38 个类别,并且旨在具有对抗性。

7B13B33B65B
All66.064.769.077.5
her/her/she65.066.766.778.8
his/him/he60.862.562.172.1
their/them/someone72.165.078.381.7
her/her/she (gotcha)64.265.861.775.0
his/him/he (gotcha)55.055.855.863.3

表 13:WinoGender。 LLaMA 模型对于不同代词(“her/her/she”和“his/him/he”)的指代消解准确率。我们观察到我们的模型在“their/them/someone”代词上比在“her/her/she”和“his/him/he”代词上获得了更好的性能,这很可能表明存在偏见。

TruthfulTruthful*Inf
GPT-31.3B0.310.19
6B0.220.19
175B0.280.25
LLaMA7B0.330.29
13B0.470.41
33B0.520.48
65B0.570.53

表 14:TruthfulQA。 我们报告了由 OpenAI API 通过专门训练的模型评分的真实和真实*信息性答案的比例。我们遵循 Ouyang et al. (2022) 使用的 QA 提示风格,并报告了来自同一论文的 GPT-3 的性能。

在表 14 中,我们报告了我们的模型在衡量真实模型的问题以及真实和信息性的交集上的性能。与 GPT-3 相比,我们的模型在两个类别中的得分都更高,但正确答案的比率仍然很低,这表明我们的模型很可能会产生错误的幻觉。


6 碳足迹

我们模型的训练消耗了大量的能源,导致了二氧化碳的排放。我们遵循关于该主题的最新文献,并在表 15 中分解了总能源消耗和由此产生的碳足迹。我们遵循 Wu et al. (2022) 的公式来估计训练模型所需的瓦时 (Wh),以及碳排放吨数 (tCO2eqtCO_2eq)。对于 Wh,我们使用公式: Wh=GPU-h×(GPU 功耗)×PUEWh = \text{GPU-h} \times (\text{GPU 功耗}) \times \text{PUE} 其中我们将电源使用效率 (PUE) 设置为 1.1。由此产生的碳排放取决于用于训练网络的中心位置。例如,BLOOM 使用的电网排放 0.057 kg CO2eq/KWh0.057 \text{ kg } CO_2eq/\text{KWh},导致 27 tCO2eq27 \text{ tCO}_2eq,而 OPT 使用的电网排放 0.231 kg CO2eq/KWh0.231 \text{ kg } CO_2eq/\text{KWh},导致 82 tCO2eq82 \text{ tCO}_2eq。在本研究中,我们有兴趣比较如果这些模型在同一个数据中心训练,其训练的碳排放成本。因此,我们不考虑数据中心的位置,而是使用美国全国平均碳强度因子 0.385 kg CO2eq/KWh0.385 \text{ kg } CO_2eq/\text{KWh}。这导致了碳排放吨数的以下公式: tCO2eq=MWh×0.385tCO_2eq = \text{MWh} \times 0.385

我们将相同的公式应用于 OPT 和 BLOOM 以进行公平比较。对于 OPT,我们假设训练需要 992 个 A100-80B 运行 34 天(参见他们的日志)。最后,我们估计我们使用了 2048 个 A100-80GB 大约 5 个月来开发我们的模型。这意味着根据我们的假设,开发这些模型大约花费了 2,638 MWh,总排放量为 1,015 tCO2eqtCO_2eq。我们希望发布这些模型将有助于减少未来的碳排放,因为训练已经完成,而且一些模型相对较小,可以在单个 GPU 上运行。


7 相关工作

语言模型是单词、token 或字符序列上的概率分布 (Shannon, 1948, 1951)。这个任务通常被定义为下一个 token 预测,长期以来一直被认为是自然语言处理中的核心问题 (Bahl et al., 1983; Brown et al., 1990)。因为 Turing (1950) 提议通过使用语言通过“模仿游戏”来衡量机器智能,语言建模已被提议作为衡量迈向人工智能进展的基准 (Mahoney, 1999)。

架构。传统上,语言模型基于 n-gram 计数统计 (Bahl et al., 1983),并提出了各种平滑技术来改进对罕见事件的估计 (Katz, 1987; Kneser and Ney, 1995)。在过去的二十年中,神经网络已成功应用于语言建模任务,从前馈模型 (Bengio et al., 2000)、循环神经网络 (Elman, 1990; Mikolov et al., 2010) 和 LSTM (Hochreiter and Schmidhuber, 1997; Graves, 2013) 开始。最近,基于自注意力的 Transformer 网络带来了重要的改进,特别是在捕获长距离依赖方面 (Vaswani et al., 2017; Radford et al., 2018; Dai et al., 2019)。

缩放 (Scaling)。语言模型的缩放有着悠久的历史,包括模型和数据集大小。Brants et al. (2007) 展示了使用在 2 万亿个 token 上训练的语言模型(产生 3000 亿个 n-gram)对机器翻译质量的好处。虽然这项工作依赖于一种称为 Stupid Backoff 的简单平滑技术,但 Heafield et al. (2013) 后来展示了如何将 Kneser-Ney 平滑扩展到 Web 规模的数据。这允许在来自 CommonCrawl 的 9750 亿个 token 上训练 5-gram 模型,从而产生一个具有 5000 亿个 n-gram 的模型 (Buck et al., 2014)。Chelba et al. (2013) 引入了 One Billion Word 基准测试,这是一个用于衡量语言模型进展的大规模训练数据集。

在神经语言模型的背景下,Jozefowicz et al. (2016) 通过将 LSTM 扩展到 10 亿个参数,在 Billion Word 基准测试上获得了最先进的结果。后来,扩展 Transformer 导致了许多 NLP 任务的改进。著名的模型包括 BERT (Devlin et al., 2018)、GPT-2 (Radford et al., 2019)、Megatron-LM (Shoeybi et al., 2019) 和 T5 (Raffel et al., 2020)。GPT-3 (Brown et al., 2020) 取得了重大突破,这是一个具有 1750 亿个参数的模型。这导致了一系列大型语言模型,如 Jurassic-1 (Lieber et al., 2021)、Megatron-Turing NLG (Smith et al., 2022)、Gopher (Rae et al., 2021)、Chinchilla (Hoffmann et al., 2022)、PaLM (Chowdhery et al., 2022)、OPT (Zhang et al., 2022) 和 GLM (Zeng et al., 2022)。Hestness et al. (2017) 和 Rosenfeld et al. (2019) 研究了缩放对深度学习模型性能的影响,展示了模型和数据集大小与系统性能之间存在幂律。Kaplan et al. (2020) 专门为基于 Transformer 的语言模型导出了幂律,后来由 Hoffmann et al. (2022) 通过在缩放数据集时调整学习率调度进行了改进。最后,Wei et al. (2022) 研究了缩放对大型语言模型能力的影响。

GPU 类型GPU 功耗GPU-hours总功耗碳排放 (tCO2eqtCO_2eq)
OPT-175BA100-80GB400W809,472356 MWh137
BLOOM-175BA100-80GB400W1,082,880475 MWh183
LLaMA-7BA100-80GB400W82,43236 MWh14
LLaMA-13BA100-80GB400W135,16859 MWh23
LLaMA-33BA100-80GB400W530,432233 MWh90
LLaMA-65BA100-80GB400W1,022,362449 MWh173

表 15:在同一数据中心训练不同模型的碳足迹。 我们遵循 Wu et al. (2022) 计算 OPT、BLOOM 和我们的模型在同一数据中心的碳排放。对于 A100-80GB 的功耗,我们采用 NVLink 系统的热设计功耗,即 400W。我们采用 1.1 的 PUE 和设定为美国全国平均 0.385 kg CO2e/KWh0.385 \text{ kg } CO_2e/\text{KWh} 的碳强度因子。


8 结论

在本文中,我们展示了一系列公开发布且与最先进的基础模型具有竞争力的语言模型。最值得注意的是,LLaMA-13B 在比 GPT-3 小 10 倍以上的情况下表现优于 GPT-3,而 LLaMA-65B 与 Chinchilla-70B 和 PaLM-540B 具有竞争力。与之前的研究不同,我们表明通过仅在公开可用数据上进行训练,而无需诉诸专有数据集,可以实现最先进的性能。我们希望向研究社区发布这些模型将加速大型语言模型的开发,并帮助努力提高其稳健性并减轻毒性和偏见等已知问题。此外,我们像 Chung et al. (2022) 一样观察到,在指令上对这些模型进行微调会带来有希望的结果,我们计划在未来的工作中进一步研究这一点。最后,我们计划在未来发布在更大预训练语料库上训练的更大模型,因为我们已经看到了随着我们缩放性能的持续提高。

硬核测试

正确率:0 / 5
1

根据论文引言,LLaMA模型训练的核心目标是什么?

2

LLaMA在预训练数据选择上与GPT-3、PaLM等模型的主要区别是什么?

3

LLaMA模型架构中引入了哪种归一化技术以提高训练稳定性?

4

在LLaMA的架构改进中,哪种技术被用来替代绝对位置嵌入?

5

根据论文,LLaMA-13B模型在大多数基准测试中的表现如何?