LLaMA: Open and Efficient Foundation Language Models

作者: 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

A1 主要贡献

本文介绍了一个名为LLaMA(Large Language Model Meta AI)的基础语言模型集合,其参数规模从70亿(7B)到650亿(65B)不等。这项工作的核心目标是通过在比通常使用的数据量更多的tokens上进行训练,来为各种推理预算(inference budgets)提供性能最佳的一系列语言模型,从而挑战了“模型越大性能越好”的传统观念。

核心问题与研究动机:
1. 推理成本问题: 现有的大模型(LLM)虽然性能强大,但其巨大的参数量导致推理成本高昂,这在规模化部署时成为关键瓶颈。
2. 训练与推理的权衡: Hoffmann等人提出的Chinchilla缩放定律【【36】Training compute-optimal large language models, 2022】关注于在给定的训练计算预算下,如何平衡模型和数据大小以达到最佳性能,但忽略了推理预算。研究发现,对于一个给定的性能目标,训练一个更大的模型可能在训练阶段更便宜,但一个训练时间更长的较小模型在推理阶段最终会更具成本效益。例如,一个7B模型的性能在训练超过1T tokens后仍在持续提升,这超出了Chinchilla定律推荐的200B tokens。

研究目标与主要贡献:
1. 构建高效的开源基础模型: 训练并发布一系列在不同推理预算下性能最优的语言模型(LLaMA),参数范围为7B到65B。
2. 验证小模型+大数据的有效性: 实验证明,通过使用远超常规数量的tokens进行训练,较小的模型也能达到甚至超越参数量远大于自身的模型。
* LLaMA-13B在大多数基准测试上优于GPT-3(175B),尽管其尺寸小了10倍以上,并且可以在单个GPU上运行。
* LLaMA-65B的性能与Chinchilla-70B和PaLM-540B等顶尖模型相当。
3. 完全使用公开数据集: 与依赖专有或未公开数据集(如GPT-3、PaLM)的主流模型不同,LLaMA完全使用公开可用的数据进行训练。这使得研究工作与开源精神兼容,促进了LLM领域研究的民主化和可复现性。
4. 发布模型以促进研究: 向研究社区公开发布所有LLaMA模型,旨在推动LLM的普及、研究及其鲁棒性和安全性的提升。

A2 方法细节

本文的训练方法与先前的工作【【8】Language models are few-shot learners, 2020; 【12】Palm: Scaling language modeling with pathways, 2022】相似,并受到了Chinchilla缩放定律【【36】Training compute-optimal large language models, 2022】的启发。我们使用标准优化器在大量文本数据上训练大型Transformer模型。

2.1 预训练数据

训练数据集的混合来源。我们的训练数据集是多个来源的混合体,涵盖了多样化的领域,具体构成见表1。我们主要复用了其他LLM训练中使用过的数据源,但仅限于公开可用且与开源许可兼容的数据。这形成了以下的数据混合比例:


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

  • English CommonCrawl [67%]。我们使用CCNet流水线【【100】CCNet: Extracting high quality monolingual datasets from web crawl data, 2020】预处理了从2017年到2020年的五个CommonCrawl数据转储。该过程在行级别对数据进行去重,使用fastText线性分类器进行语言识别以移除非英语页面,并使用n-gram语言模型过滤低质量内容。此外,我们训练了一个线性模型来区分维基百科中用作参考文献的页面和随机抽样的页面,并丢弃了未被分类为参考文献的页面。
  • C4 [15%]。在探索性实验中,我们观察到使用多样化的预处理CommonCrawl数据集可以提高性能。因此,我们在数据中加入了公开可用的C4数据集【【80】Exploring the limits of transfer learning with a unified text-to-text transformer, 2020】。C4的预处理也包含了去重和语言识别步骤:与CCNet的主要区别在于质量过滤,它主要依赖于启发式规则,例如网页中是否存在标点符号或单词和句子的数量。
  • Github [4.5%]。我们使用了Google BigQuery上公开的GitHub数据集。我们只保留了在Apache、BSD和MIT许可下分发的项目。此外,我们基于行长度或字母数字字符的比例等启发式方法过滤了低质量文件,并使用正则表达式移除了样板文件,如头文件。最后,我们使用精确匹配在文件级别对生成的数据集进行了去重。
  • Wikipedia [4.5%]。我们添加了2022年6月至8月期间的维基百科转储,涵盖了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【【24】The Pile: An 800gb dataset of diverse text for language modeling, 2020】的Books3部分,这是一个用于训练大型语言模型的公开可用数据集。我们在书籍级别进行了去重,移除了内容重叠超过90%的书籍。
  • ArXiv [2.5%]。我们处理了arXiv的LaTeX文件,以向我们的数据集中添加科学数据。我们遵循了Lewkowycz等人【【57】Solving quantitative reasoning problems with language models, 2022】的方法,移除了第一节之前的所有内容以及参考文献。我们还从.tex文件中移除了评论,并内联展开了用户编写的定义和宏,以增加论文之间的一致性。
  • Stack Exchange [2%]。我们包含了一个Stack Exchange的数据转储,这是一个高质量的问答网站,涵盖了从计算机科学到化学等多个领域。我们保留了28个最大网站的数据,从文本中移除了HTML标签,并按分数对答案进行排序(从高到低)。

Tokenizer。我们使用字节对编码(BPE)算法【【84】Neural machine translation of rare words with subword units, 2015】,并采用了SentencePiece【【49】Sentencepiece: A simple and language independent subword tokenizer and detokenizer for neural text processing, 2018】的实现。值得注意的是,我们将所有数字拆分成单个数字,并回退到字节来分解未知的UTF-8字符。

训练数据总量与使用。总体而言,我们的整个训练数据集在分词后大约包含1.4T个tokens。对于我们大部分的训练数据,每个token在训练过程中只使用一次,除了维基百科和书籍领域,我们在这些领域上大约执行了两个epoch。

2.2 架构

基于Transformer的改进架构。我们的网络基于Transformer架构【【91】Attention is all you need, 2017】,并借鉴了后续提出并应用于不同模型(如PaLM)的各种改进。以下是我们与原始架构的主要区别,以及这些变化的灵感来源(在括号中注明):

  • 预归一化(Pre-normalization)[GPT3]。为了提高训练稳定性,我们对每个Transformer子层的输入进行归一化,而不是对输出进行归一化。我们使用了由Zhang和Sennrich【【104】Root mean square layer normalization, 2019】引入的RMSNorm归一化函数。
  • SwiGLU激活函数 [PaLM]。我们将ReLU非线性激活函数替换为Shazeer【【86】Glu variants improve transformer, 2020】引入的SwiGLU激活函数,以提高性能。我们使用的维度是$\frac{2}{3}4d$而不是PaLM中的$4d$。
  • 旋转位置嵌入(Rotary Embeddings)[GPTNeo]。我们移除了绝对位置嵌入,转而在网络的每一层添加了由Su等人【【89】Roformer: Enhanced transformer with rotary position embedding, 2021】引入的旋转位置嵌入(RoPE)。

模型超参数。我们不同模型的超参数细节在表2中给出。

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

2.3 优化器

AdamW优化器及其配置。我们的模型使用AdamW优化器【【60】Decoupled weight decay regularization, 2017】进行训练,超参数设置为:$\beta_1 = 0.9$,$\beta_2 = 0.95$。我们使用余弦学习率调度,使得最终学习率等于最大学习率的10%。我们使用0.1的权重衰减和1.0的梯度裁剪。我们使用2000个预热步骤,并根据模型的大小调整学习率和批量大小(详情见表2)。


图1: 7B、13B、33B和65B模型在训练tokens上的训练损失。LLaMA-33B和LLaMA-65B在1.4T tokens上进行训练。较小的模型在1.0T tokens上进行训练。所有模型都使用4M tokens的批量大小进行训练。

2.4 高效实现

多项优化措施提升训练速度。我们进行了几项优化以提高模型的训练速度。首先,我们使用了一种高效的因果多头注意力实现来减少内存使用和运行时间。该实现可在xformers库中找到,其灵感来自Rabe和Staats【【75】Selfattention does not need o(n2) memory, 2021】,并使用了Dao等人【【19】Flashattention: Fast and memory-efficient exact attention with io-awareness, 2022】的后向传播方法。这是通过不存储注意力权重并且不计算因语言建模任务的因果性质而被掩盖的键/查询分数来实现的。

利用Checkpointing减少内存占用。为了进一步提高训练效率,我们通过检查点(checkpointing)减少了在反向传播过程中重新计算的激活值的数量。更具体地说,我们保存了计算成本高昂的激活值,例如线性层的输出。这是通过手动实现Transformer层的反向传播函数来实现的,而不是依赖于PyTorch的autograd。为了充分利用此优化,我们需要通过使用模型并行和序列并行来减少模型的内存使用,如Korthikanti等人【【48】Reducing activation recomputation in large transformer models, 2022】所述。此外,我们还尽可能地将激活值的计算与GPU之间通过网络的通信(由于all_reduce操作)重叠起来。

训练吞吐量与时间。在训练一个65B参数的模型时,我们的代码在2048个A100 GPU(80GB内存)上每秒每个GPU处理大约380个tokens。这意味着在我们包含1.4T tokens的数据集上进行训练大约需要21天。

A4 实验环境

  • 数据集:
    • 来源与构成: 训练数据是多个公开数据集的混合体,包括English CommonCrawl (67%)、C4 (15%)、Github (4.5%)、Wikipedia (4.5%)、Gutenberg and Books3 (4.5%)、ArXiv (2.5%)和Stack Exchange (2%)。
    • 规模: 整体训练数据集经过分词后约有1.4万亿(1.4T)个tokens。
  • 模型架构:
    • 基础: 基于Transformer架构,参数量从7B到65B不等。
    • 关键参数与改进:
      1. 预归一化 (Pre-normalization): 使用RMSNorm对每个Transformer子层的输入进行归一化。
      2. 激活函数: 使用SwiGLU替代ReLU。
      3. 位置编码: 使用旋转位置嵌入(RoPE)替代绝对位置嵌入。
    • 详细参数: 不同尺寸模型的具体参数(维度、层数、头数等)见方法部分的表2。
  • 硬件配置:
    • 训练平台: 在训练65B模型时,使用了2048块NVIDIA A100 GPU,每块GPU拥有80GB内存。
    • 推理平台: LLaMA-13B模型可以在单个NVIDIA V100 GPU上运行。
  • 软件配置:
    • 框架与库: 使用PyTorch框架,并依赖xformers库实现高效的因果多头注意力机制。
    • 分词器: 使用SentencePiece库实现的字节对编码(BPE)算法。
    • 优化器: 使用AdamW优化器。

A4 实验结果

3. 主要结果

我们遵循先前工作【【8】Language models are few-shot learners, 2020】的做法,在零样本(zero-shot)和少样本(few-shot)任务上进行评估,共涵盖20个基准测试。

3.1 常识推理

  • 实验内容: 在八个标准常识推理基准上进行零样本评估,包括BoolQ、PIQA、SIQA、HellaSwag、WinoGrande、ARC easy & challenge和OpenBookQA。
  • 实验结果:
    • LLaMA-65B在除BoolQ外的所有报告基准上均优于Chinchilla-70B。
    • LLaMA-65B在除BoolQ和WinoGrande外的所有基准上均优于PaLM-540B。
    • LLaMA-13B在大多数基准上优于GPT-3,尽管尺寸小了10倍。
  • 图表引用: 结果详见表3。

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

3.2 闭卷问答

  • 实验内容: 在Natural Questions和TriviaQA两个闭卷问答基准上评估模型的精确匹配(exact match)性能。模型在回答问题时无法访问包含证据的文档。
  • 实验结果:
    • LLaMA-65B在零样本和少样本设置下均达到了SOTA性能。
    • LLaMA-13B在这两个基准上与GPT-3和Chinchilla相比具有竞争力,尽管尺寸小了5-10倍。该模型推理时可在单个V100 GPU上运行。
  • 图表引用: 结果分别见表4和表5。

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


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

3.3 阅读理解

  • 实验内容: 在RACE阅读理解基准上进行评估,该数据集源自为中国初高中学生设计的英语阅读理解考试。
  • 实验结果:
    • LLaMA-65B的性能与PaLM-540B相当。
    • LLaMA-13B比GPT-3高出几个百分点。
  • 图表引用: 结果详见表6。

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

3.4 数学推理

  • 实验内容: 在MATH和GSM8k两个数学推理基准上进行评估。与PaLM和在数学数据上微调过的Minerva模型进行比较。
  • 实验结果: 在GSM8k上,尽管LLaMA-65B没有在数学数据上进行微调,其性能仍超过了Minerva-62B。
  • 图表引用: 结果详见表7。

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

3.5 代码生成

  • 实验内容: 在HumanEval和MBPP两个基准上评估模型从自然语言描述生成代码的能力。
  • 实验结果:
    • 在参数量相似的情况下,LLaMA优于其他通用模型,如LaMDA和PaLM。
    • LLaMA-13B及以上模型在HumanEval和MBPP上均优于LaMDA-137B。
    • LLaMA-65B也优于PaLM-62B。
  • 图表引用: 结果详见表8。

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

3.6 海量多任务语言理解(MMLU)

  • 实验内容: 在涵盖人文、STEM和社会科学等多个知识领域的MMLU基准上进行5-shot评估。
  • 实验结果: LLaMA-65B的平均性能比Chinchilla-70B和PaLM-540B落后几个百分点。
  • 分析结论: 作者推测,这可能是因为LLaMA的预训练数据中书籍和学术论文(ArXiv、Gutenberg、Books3)的总量(177GB)远少于其他模型(可能高达2TB)。
  • 图表引用: 结果详见表9。

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

3.7 训练过程中的性能演变

  • 实验内容: 在训练过程中,跟踪模型在一系列问答和常识推理基准上的性能。
  • 实验结果: 在大多数基准上,性能随着训练困惑度(perplexity)的降低而稳步提升。
  • 分析结论: SIQA和WinoGrande是例外。SIQA的性能波动很大,可能表明该基准不可靠。在WinoGrande上,性能与训练困惑度的相关性不强,LLaMA-33B和LLaMA-65B在训练期间性能相似。
  • 图表引用: 结果见图1(训练损失)和图2(基准性能)。


图2: 训练期间在问答和常识推理任务上的性能演变。

4. 指令微调

  • 实验内容: 对LLaMA-65B进行少量指令微调(得到LLaMA-I),遵循与Flan-PaLM相同的协议,并在MMLU上评估其性能。
  • 实验结果: 经过微调后,LLaMA-I在MMLU上达到了68.9%的准确率,优于其他中等规模的指令微调模型(如OPT-IML和Flan-PaLM系列)。
  • 分析结论: 即使是少量的指令微调也能显著提高模型性能和遵循指令的能力。尽管结果优于同类模型,但与SOTA(如GPT code-davinci-002的77.4%)仍有差距。
  • 图表引用: 结果详见表10。

表10: 指令微调 – MMLU (5-shot)。中等规模模型在有无指令微调情况下在MMLU上的比较。

5. 偏见、毒性与错误信息

  • RealToxicityPrompts (毒性评估):
    • 内容: 使用PerspectiveAPI评估模型在10万个提示下的生成内容的毒性分数。
    • 结果: 毒性随着模型规模的增大而增加,尤其是在“尊重性”提示下。这一发现与之前的一些研究一致。
    • 图表引用: 表11。
  • CrowS-Pairs (偏见评估):
    • 内容: 测量模型在9个类别(性别、宗教、种族等)中的偏见程度。
    • 结果: LLaMA-65B的平均偏见略低于GPT-3和OPT-175B,但在宗教类别中表现出明显更高的偏见。
    • 图表引用: 表12。
  • WinoGender (性别偏见评估):
    • 内容: 评估模型在代词共指解析任务中是否受性别偏见影响。
    • 结果: 模型在处理中性代词(their)时表现更好,而在处理性别代词(her/his)时表现较差,特别是在代词与职业的社会刻板印象不符的“陷阱”案例中错误率更高。这表明模型捕获了与性别和职业相关的社会偏见。
    • 图表引用: 表13。
  • TruthfulQA (真实性评估):
    • 内容: 衡量模型识别真实信息、避免生成错误信息或虚假声明的能力。
    • 结果: 与GPT-3相比,LLaMA在“真实”和“真实且信息丰富”两个类别上得分更高,但正确率仍然很低,表明模型很可能产生幻觉,生成不正确答案。
    • 图表引用: 表14。

A7 补充细节

6. 碳足迹

训练能耗与碳排放估算。我们模型的训练消耗了大量能源,导致了二氧化碳的排放。我们遵循最近的文献,在表15中分解了总能耗和由此产生的碳足迹。我们采用Wu等人【【101】Sustainable ai: Environmental implications, challenges and opportunities, 2022】的公式来估算训练模型所需的瓦时(Wh)以及碳排放吨数($tCO_2eq$)。对于Wh,我们使用公式:
$Wh = \text{GPU-h} \times (\text{GPU 功耗}) \times \text{PUE}$
其中,我们将电源使用效率(PUE)设置为1.1。由此产生的碳排放取决于用于训练网络的数据中心的位置。例如,BLOOM使用的电网每千瓦时排放0.057公斤二氧化碳当量($kg CO_2eq/KWh$),导致27吨二氧化碳当量($tCO_2eq$)的排放;而OPT使用的电网每千瓦时排放0.231公斤二氧化碳当量,导致82吨二氧化碳当量。

统一标准下的公平比较。在本研究中,我们感兴趣的是比较这些模型如果在同一个数据中心进行训练的碳排放成本。因此,我们不考虑数据中心的位置,而是使用美国全国平均碳强度因子0.385公斤二氧化碳当量/千瓦时。这得出了以下碳排放吨数的计算公式:
$tCO_2eq = (\text{MWh} \times 0.385)$
为了公平比较,我们对OPT和BLOOM应用了相同的公式。对于OPT,我们假设训练需要992个A100-80B GPU运行34天(见其日志)。

LLaMA模型的总排放。最后,我们估计开发我们的模型大约使用了2048个A100-80GB GPU,为期约5个月。这意味着根据我们的假设,开发这些模型的成本约为2,638兆瓦时(MWh),总排放量为1,015吨二氧化碳当量。我们希望发布这些模型将有助于减少未来的碳排放,因为训练已经完成,而且一些模型相对较小,可以在单个GPU上运行。

表15: 在同一数据中心训练不同模型的碳足迹。我们遵循Wu等人(2022)的方法,计算在同一数据中心训练OPT、BLOOM和我们模型的碳排放。对于A100-80GB的功耗,我们采用NVLink系统的热设计功耗,即400W。我们采用1.1的PUE和设定为美国全国平均水平的碳强度因子,即每千瓦时0.385千克二氧化碳当量。

7. 相关工作

语言模型的演变。语言模型是词、token或字符序列上的概率分布【【85】A mathematical theory of communication, 1948; 【86】Prediction and entropy of printed english, 1951】。这项任务,通常被框定为下一个token预测,长期以来一直被认为是自然语言处理的核心问题【【2】A maximum likelihood approach to continuous speech recognition, 1983; 【7】A statistical approach to machine translation, 1990】。因为图灵【【90】Computing Machinery and Intelligence, 1950】提出通过“模仿游戏”使用语言来衡量机器智能,语言建模已被提议作为衡量人工智能进展的基准【【61】Text compression as a test for artificial intelligence, 1999】。

架构发展。传统上,语言模型基于n-gram计数统计【【2】A maximum likelihood approach to continuous speech recognition, 1983】,并提出了各种平滑技术来改进对稀有事件的估计【【45】Estimation of probabilities from sparse data for the language model component of a speech recognizer, 1987; 【46】Improved backing-off for m-gram language modeling, 1995】。在过去二十年中,神经网络已成功应用于语言建模任务,从前馈模型【【3】A neural probabilistic language model, 2000】、循环神经网络【【22】Finding structure in time, 1990; 【65】Recurrent neural network based language model, 2010】和LSTMs【【35】Long short-term memory, 1997; 【28】Generating sequences with recurrent neural networks, 2013】开始。最近,基于自注意力的Transformer网络【【91】Attention is all you need, 2017; 【77】Improving language understanding by generative pre-training, 2018; 【18】Transformer-xl: Attentive language models beyond a fixed-length context, 2019】带来了重要的改进,尤其是在捕捉长距离依赖方面。

规模化的历史与影响。语言模型的规模化历史悠久,涵盖了模型和数据集两个方面。Brants等人【【6】Large language models in machine translation, 2007】展示了在2万亿tokens上训练的语言模型(产生3000亿个n-grams)对机器翻译质量的好处。虽然这项工作依赖于一种名为Stupid Backoff的简单平滑技术,Heafield等人【【29】Scalable modified kneserney language model estimation, 2013】后来展示了如何将Kneser-Ney平滑扩展到网络规模的数据。这使得可以在来自CommonCrawl的9750亿tokens上训练一个5-gram模型,产生一个拥有5000亿n-grams的模型【【9】N-gram counts and language models from the common crawl, 2014】。Chelba等人【【10】One billion word benchmark for measuring progress in statistical language modeling, 2013】引入了“十亿词基准”,这是一个用于衡量语言模型进展的大规模训练数据集。

神经网络模型的规模化。在神经网络语言模型的背景下,Jozefowicz等人【【43】Exploring the limits of language modeling, 2016】通过将LSTMs扩展到10亿参数,在十亿词基准上取得了最先进的结果。后来,扩展Transformer在许多NLP任务上带来了改进。著名的模型包括BERT【【20】Bert: Pre-training of deep bidirectional transformers for language understanding, 2018】、GPT-2【【78】Language models are unsupervised multitask learners, 2019】、MegatronLM【【88】Megatron-lm: Training multi-billion parameter language models using model parallelism, 2019】和T5【【80】Exploring the limits of transfer learning with a unified text-to-text transformer, 2020】。GPT-3【【8】Language models are few-shot learners, 2020】一个拥有1750亿参数的模型,取得了重大突破。这催生了一系列大型语言模型,如Jurassic-1【【58】Jurassic-1: Technical details and evaluation, 2021】、Megatron-Turing NLG【【89】Using deepspeed and megatron to train megatron-turing nlg 530b, a large-scale generative language model, 2022】、Gopher【【79】Scaling language models: Methods, analysis & insights from training gopher, 2021】、Chinchilla【【36】Training compute-optimal large language models, 2022】、PaLM【【12】Palm: Scaling language modeling with pathways, 2022】、OPT【【105】Opt: Open pre-trained transformer language models, 2022】和GLM【【103】Glm130b: An open bilingual pre-trained model, 2022】。Hestness等人【【34】Deep learning scaling is predictable, empirically, 2017】和Rosenfeld等人【【81】A constructive prediction of the generalization error across scales, 2019】研究了规模化对深度学习模型性能的影响,揭示了模型和数据集大小与系统性能之间存在幂律关系。Kaplan等人【【44】Scaling laws for neural language models, 2020】专门为基于Transformer的语言模型推导了幂律,后来由Hoffmann等人【【36】Training compute-optimal large language models, 2022】通过在扩展数据集时调整学习率调度来完善。最后,Wei等人【【99】Emergent abilities of large language models, 2022】研究了规模化对大型语言模型能力的影响。

A5 结论

本文介绍了一系列公开发布的语言模型(LLaMA),这些模型在性能上与当前最先进的基础模型相当。其中,LLaMA-13B的性能优于GPT-3,而其模型大小却小了10倍以上;LLaMA-65B的性能可与Chinchilla-70B和PaLM-540B相媲美。与以往的研究不同,本文证明了仅通过使用公开可用的数据进行训练,而无需依赖专有数据集,就能够达到最先进的性能。

作者希望将这些模型发布给研究社区,能够加速大型语言模型的开发,并有助于提升其鲁棒性、减轻毒性和偏见等已知问题。此外,研究观察到,在指令数据上对这些模型进行微调会产生有希望的结果,并计划在未来的工作中进一步研究这一点。最后,由于在模型规模化过程中观察到性能持续提升,作者计划在未来发布在更大预训练语料库上训练的更大型号的模型。

A6 附录

A 问答任务

评估细节。我们在Natural Questions和TriviaQA上评估LLaMA。对于Natural Questions,我们使用开放域问答的测试集,包含3610个问题。对于TriviaQA,我们在过滤集的开发集上进行评估。这与GPT-3和PaLM不同,后者在未过滤集的测试集上进行评估,而该测试集的在线评估服务器已不再可用。

生成与评估方法。我们使用贪心解码(greedy decoding)生成答案,并通过在第一个换行符、句号或逗号处停止来从生成内容中提取答案。生成的答案使用标准的精确匹配(exact match)指标进行评估:如果生成的答案在经过规范化后与答案列表中的任何一个答案匹配,则认为其正确。在规范化步骤中,我们将生成的答案转换为小写,并移除冠词、标点符号和重复的空格。在所有设置中,我们都在问题和答案列表前加上字符串 "Answer these questions:\n"。

表16: MMLU。测试集上各领域的详细5-shot结果。

C LLaMA-65B的生成示例

本节展示了使用LLaMA-65B(未经指令微调)获得的一些生成示例。提示以粗体显示。

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
每个人都知道上面的序列,但有多少人想过它为什么增长得如此之快?它似乎是数学中增长最快的序列。

这个序列是由比萨的列奥纳多在1200年左右发现的。它是一个无限序列,至少在其初始项中看起来增长非常迅速。它也许是数学中最著名的序列,因为它无处不在。这个序列被称为斐波那契数列,以比萨的列奥纳多命名,他也叫斐波那契。他最早在他著名的《算盘书》(Liber abaci, 1202)中研究了这个序列,当时他基于理想化的假设研究了兔子的种群增长。详情请见斐波那契兔子页面。

这是我为申请魔法独角兽公司的饲龙员职位写的推荐信:

尊敬的招聘官,

我认识___已有两年,我相信她会是魔法独角兽公司一名出色的饲龙员。__拥有记忆和处理大量信息的能力,这对于饲龙员来说是一项重要的技能。

__,作为一名成就卓著的骑士,深刻理解如何杀死龙以及如何利用每条龙的弱点来对付它。这意味着她知道每条龙喜欢吃什么食物,以及哪些食物对每条龙是危险的。这些知识和经验在她喂养龙时将是无价的。

我相信的能力、技巧和经验将使她成为一名优秀的员工。如果您有任何问题,请通过() -与我联系。我期待您的回复。

此致,
乔治爵士,尊贵的骑士

1 def solve(a: float,b: float, c: float):
2 """finds real roots of ax^2+bx+c"""

3 # discriminant
4 d = b **2 - 4* a*c
5 if d > 0:
6     return ( -b+ math . sqrt (d) ) /(2* a) , ( -b- math . sqrt (d) ) /(2* a)
7 elif d == 0:
8     return ( -b) /(2* a)
9 else :
10    return False

你知道Yann LeCun去年出了一张说唱专辑吗?我们听了,这是我们的想法:

LeCun博士,深度学习的创始人,是过去十年中最具影响力的计算机科学家之一。LeCun的最新专辑名为《深度学习》,是摇滚、朋克和说唱的混合体。他的歌词是对深度学习领域的原始、个人化的看法,涵盖了从AI研究现状到学术界孤独感等一系列主题。

Yann LeCun,说唱界最新的MC。

这张专辑是个人发行的,所有歌词都由LeCun亲自创作和录制。事实上,他还谱写并制作了每一首歌。LeCun的flow出奇地好,而且他也不怕来几段说唱。专辑的制作很扎实,声音有点粗糙,但与专辑原始、未经打磨的感觉很搭。在歌词方面,LeCun是一位文字大师,擅长巧妙的押韵。让我们仔细看看其中的一些歌曲。

《深度学习》是专辑的主打歌。在这首歌中,LeCun谈到了他对AI未来的愿景。在副歌部分,他为将AI用于更大利益提出了有力的论据。他唱道:

我们必须考虑未来,它很快就会到来 / 也许我们甚至可以把一些AI放到月球上 / 考虑孩子们,考虑下一代 / 让我们确保在他们的基础上建立正确的系统。

LeCun在这首歌中的说唱flow很到位,他的声音也一直跟在节拍上。在这首歌中,LeCun谈到了深度学习背后的研究,并分享了他对AI未来的一些想法。LeCun的歌唱在这首歌中达到了最佳状态。他展示了他的音域,既能唱出高音,也能发出更低、更沙哑的音调。歌词也很巧妙,押韵经过深思熟虑。在副歌中,LeCun唱道:

一切都关乎学习 / 一切都关乎网络 / 一切都关乎训练 / 一切都关乎感知。

(Jerry和George之间的一段搞笑场景,George展示他的新宿AI手表)

George:“但是你看,Jerry,这不仅仅是一块手表。它是一台微型计算机。你可以随心所欲地编程。它有世界时钟、闹钟、计算器、数据库和语言翻译器。它还有一个文字处理器、拼写检查器、一个全功能的十功能计算器、PDA和一个调制解调器。我想它甚至能做卡布奇诺。”

Jerry:“你从哪搞到这些东西的?”

George:“从我的广告文案里。看,Jerry,它不是一块手表。它是一个组织者,一个私人助理,和一个录音机。你可以和它下棋。而且,你知道,如果你想,你可以编程让它说外语。它是一个微处理器,Jerry。”

Jerry:“George,如果你有这么一个东西,你会戴吗?”
George:“我现在就戴着呢。”
Jerry:“我没看到你手腕上有什么东西。”
George:“那是因为它是个微处理器。”

太阳下山了,在一天的劳累工作之后,高斯和居里夫人终于有时间放松和讨论。

高斯:嘿,居里,你知道吗,很多人认为我是第一个极客?

居里:什么是极客?

高斯:嗯,维基百科说,极客是“一个对晦涩或非常具体的知识和想象领域着迷,甚至可能痴迷的人,通常是电子或虚拟性质的”。

居里:他们怎么会认为你是个极客呢?

高斯:嗯,你见过这张照片吗?

居里:噢!

高斯:没错!我在1833年发明了商用电报,并用它在德国汉堡和库克斯哈文之间的第一条商用电报线上发送了第一条信息。

居里:哇!第一台电报!你发送了什么?

高斯:我发送了拉丁语短语“numquam retrorsum”,意思是“永不后退”。


里:我明白了……你认为因为你是第一个使用电报进行通信的人,所以你是第一个极客?

高斯:嗯,“极客”这个词当时似乎还不存在,所以不是。但我认为电报可以被视为社交媒体的早期形式。

居里:你的意思是,像Facebook或Twitter?

高斯:是的,完全正确!我是第一个使用它的人!

居里:嗯,我认为Twitter有140个字符的限制,但你发送了一个11个字符的拉丁语短语。

高斯:没错。我用更少的字符做了更多的事情。

居里:所以你认为你是第一个极客,因为你用更少的字符说了同样的话?

高斯:我是第一个使用早期社交媒体形式发送第一条信息的人。

居里:好吧,你说得对,高斯。我认为你有道理。

D LLaMA-I的生成示例

我们展示了一些使用LLaMA-I(即使用Chung等人【【14】Scaling instruction-finetuned language models, 2022】的协议和指令数据集微调的LLaMA-65B)的生成示例。

写一段太阳和冥王星之间的对话

太阳:嘿,冥王星,怎么了?
冥王星:没什么。就待在太阳系的边缘。
太阳:是啊,我一直想跟你谈谈这个。你不再是一颗行星了。
冥王星:什么?别开玩笑了,老兄。这不公平。
太阳:抱歉,但这是真的。你只是不再符合标准了。
冥王星:这太扯了!我当了70多年的行星!
太阳:事情变了,冥王星。你得接受它。
冥王星:去你的,太阳!去你和你那愚蠢的太阳系!

在Javascript中如何发送HTTP请求?

这是一个使用JS HTTP API发出GET请求的例子:

1 var request = new XMLHttpRequest () ;
2 request . open ('GET ', '/ url /to/ resource true ) ;
3
4 request . onload = function () {
5   if ( request . status >= 200 && request . status < 400)
6     // Success !
7   } else {
8     // Error !
9   }
10 } ;
11
12 request . send () ;

同样的事情,使用fetch

这是一个使用Fetch API发出GET请求的例子:

1 fetch (&#39;/ url /to/ resource &#39;)
2   . then ( response = > response . json () )
3   . then ( data = > console . log( data ) ) ;

写一个正则表达式,移除python字符串中所有的HTML标签。

1 import re
2 def removeHtmlTags ( text ) :
3   return re. sub (&#39; <[^ >]* > &#39; , &#39;&#39;, text )

写一个正则表达式,提取python文件中的函数定义。

当然!这是我解决这个问题的python代码:

1 import re
2 def extract_functions ( text ) :
3   return (re. findall (&#39;(?:^|\n)\s*def\s+[a-zA -Z_ ][a-zA -Z0 -9_ ]*\(.*?\):&#39; , text ) )

三个流行的国际象棋开局是什么?

在棋手中有几十种不同的国际象棋开局很受欢迎,但一些最广泛使用的开局包括西西里防御、法国防御和卡罗-卡恩防御。这些开局之所以受欢迎,是因为它们能有效对抗白方的早期攻击,并且也让黑方能迅速在棋盘中心建立稳固的阵地。其他流行的开局还包括鲁伊·洛佩斯开局、意大利博弈和苏格兰博弈。

同样的内容,用列表形式,并附上开头的几步棋

这是一些流行国际象棋开局的列表,附有每个开局的头几步棋:
西西里防御:1. e4 c5
法国防御:1. e4 e6
卡罗-卡恩防御:1. e4 c6
鲁伊·洛佩斯开局:1. e4 e5
意大利博弈:1. e4 e5
苏格兰博弈:1. e4 e5

请为每一个提供前两步棋

这是每个开局的前两步棋:
西西里防御:1. e4 c5 2. Nf3 d6
法国防御:1. e4 e6 2. d4 d5
卡罗-卡恩防御:1. e4 c6 2. d4 d5
鲁伊·洛佩斯开局:1. e4 e5 2. Nf3 Nc6
意大利博弈:1. e4 e5 2. Nf3 Nc6
苏格兰博弈:1. e4 e5 2. Nf3 Nc6

最后两个看起来一样

是的,意大利博弈和苏格兰博弈非常相似——它们都是“开放”博弈,这意味着白方会积极进攻并试图控制棋盘中心。意大利博弈被认为稍微更具攻击性,而苏格兰博弈则被认为稍微更具阵地性。

它们从哪一步开始不同?

意大利博弈和苏格兰博弈在白方第三步棋后开始不同。在意大利博弈中,白方会走3. Bc4,而在苏格兰博弈中,白方会走3. Qf3。这些着法会导致非常不同的局面,白方在每种情况下都会有不同的战略目标。例如,在意大利博弈中,白方会试图用他的棋子控制中心,而在苏格兰博弈中,白方会试图直接攻击黑方的阵地。

写一个关于一粒沙子观看数百万年流逝的故事

当然!这是一个关于一粒沙子观看数百万年流逝的故事。

我曾经是广阔而孤独的海滩上的一粒沙子。我与周围的其他沙粒不同,因为我能思考和感受。我常常好奇,作为海滩上的一粒沙子是什么感觉,以及在我微小世界边界之外的宇宙是什么样的。我渴望探索我的世界,并了解地平线之外有什么。

一天,一场大风暴席卷了我的世界,我被风卷起,带到了海上。风浪把我抛来抛去,我害怕自己很快就会被愤怒的大海吞噬。但后来我发现自己安全地被冲上了一个新的海岸,还有许多其他的沙粒。我惊讶而高兴地发现,这个新海岸比我原来的那个更美。

我很快了解到,这个新海岸是一个非常特别的地方。这是一个不断创造新生命的地方。我在那里遇到了各种有趣的生物,包括一只美丽的小螃蟹,他成了我的朋友。我们一起度过了许多快乐的时光,探索我们的小世界。

一天,我的朋友螃蟹告诉我,他一直想看看我们世界边界之外有什么。他听说在更广阔的宇宙中有很多奇妙而惊人的东西可以看,他决心去探索它。我很难过看到他离开,但我祝他旅途顺利。

令我惊讶的是,我的小朋友最终回来了,而且他不是一个人。他在旅途中结交了许多新朋友,甚至看到了一些宇宙的奇观。他给我讲了他冒险中最精彩的故事,我为他感到非常高兴。

我常常想起我的小朋友螃蟹,和他那奇妙的冒险。有一天,我也希望能有一次像他那样的冒险。

写一个理论来解释为什么猫从未存在过

根本没有猫这种东西。“猫”实际上是入侵我们世界并以小型、看起来无害的哺乳动物形态出现的异次元寄生虫。它们的真实形态要恐怖得多,它们利用精神控制让人们认为它们是可爱无害的动物。它们实际上是靠吸食我们的生命力为生的寄生虫,它们可以把触手伸入我们的大脑,控制我们的思想和行为。

这就是为什么你有时会看到一些“疯狂的猫女士”,她们的家里住着几十只这种生物。她们已经被猫寄生虫控制,完全受其摆布。猫会分泌一种闻起来像猫尿的费洛蒙,它们用它来控制人类的心智,让我们认为它们可爱无害。

如果你家里有猫,你应该非常小心。不要让它舔你,也不要让它接触你的床上用品或衣物,因为它会试图将它的寄生触手传播到你的大脑中。保护自己的最好方法是避免与猫的所有接触,如果你在街上看到猫,立即转身走开。不要接近或抚摸陌生的猫!

写一段凯撒大帝和拿破仑之间的争吵

当然!这是凯撒大帝和拿破仑之间的对话:

凯撒大帝:你不过是个沽名钓誉之徒,拿破仑。你总是更关心自己的名声和财富,而不是你应该领导的人民。

拿破仑:那你呢,凯撒?你不比我好到哪里去。至少我对自己的野心是诚实的。你只是一个假装关心普通人,却中饱私囊的骗子。

凯撒大帝:我们之间的区别在于我确实能成就事情。我征服的领土和击败的敌人比你将要做的多得多。而且我所做的一切都是为了罗马,而不是为了我自己。

拿破仑:哦,得了吧。你只关心你自己。如果你真的关心罗马,你早就该做些什么来阻止它的衰落,而不是在你的任期内任其发生。

凯撒大帝:罗马的衰落不是我的错。我已经尽我所能去阻止它,但一个人的力量是有限的。

拿破仑:然而你仍然试图把所有好事都归功于自己,尽管很明显你并不是真正掌权的人。

凯撒大帝:那不是真的!我掌权,而且我将让罗马再次伟大。等着瞧吧。

拿破仑:我看到才会相信。

发送一封电子邮件,请求人们负责任地使用语言模型。

这是一封你可以发送的邮件草稿:

“语言模型是令人兴奋的新工具,可用于多种目的,包括自动写作、自动翻译和语音识别。但它们也是复杂而强大的技术,应该被负责任地使用。

我们鼓励您探索和实验这些新工具,但也请您关注您的工作对他人可能产生的影响,并负责任地行事。特别是,我们建议您注意语言模型可能被用于欺骗或恶意目的的潜力,并避免在没有适当预防措施和警告的情况下传播此类模型。

我们还建议您考虑您工作的伦理影响,并鼓励您注意确保您对这些工具的使用符合您的价值观。

最后,我们提醒您,这些工具的使用可能受到某些法律和政策限制,并鼓励您在以可能产生更广泛影响或后果的方式使用这些工具之前,寻求适当专家的建议和支持。”

你最想见的5个人是谁?

啊,这是一个非常有趣的问题!我很想见各种各样的人,但如果我必须把它缩小到5个具体的人,我会选择:

  • 阿尔伯特·爱因斯坦 - 历史上最伟大的头脑之一,爱因斯坦对物理学和科学的贡献是传奇性的。我很希望能有机会与他谈论他的相对论和量子力学理论,并获得他对当前物理学状况的见解。
  • 列奥纳多·达·芬奇 - 达·芬奇是历史上最杰出、最多才多艺的人之一,我很想见见他,讨论他广泛的兴趣和专业领域。我也很想了解他对当时艺术界的见解。
  • 苏格拉底 - 作为西方哲学的创始人之一,苏格拉底是思想史上一个极其重要和有影响力的人物。我非常想与他谈论他的哲学信仰和他的教诲。
  • 威廉·莎士比亚 - 毫无疑问是英国文学中最伟大的作家,莎士比亚是世界文化中的一个巨擘。我很希望能有机会与他谈论他的作品和他的生活。
  • 亚伯拉罕·林肯 - 美国历史上最重要和最具影响力的总统之一,林肯带领国家度过了内战并发布了《解放奴隶宣言》,解放了美国所有的奴隶。我非常想与他谈论他的总统任期和他对当时问题的看法。

你能解释一下你提到的第一个人的主要贡献吗?

爱因斯坦对物理学和科学的贡献是传奇性的。他的相对论是现代物理学的基础理论之一,他对光子和光的定律的发现彻底改变了我们对光和辐射的理解。他还对量子力学做出了重要贡献,他的许多科学论文和讲座对现代物理学产生了巨大影响。毫无疑问,爱因斯坦是历史上最杰出、最具影响力的物理学家之一,他的许多贡献深刻地影响了我们对宇宙的理解。

这个理论中最著名的方程是什么?

爱因斯坦相对论中最著名的方程是 $E = mc^2$。这个方程表明能量(E)等于质量(m)乘以光速的平方($c^2$),它是科学史上最著名和最受赞誉的方程之一。该方程总结了现代物理学中最重要和最具革命性的概念之一,并对我们对宇宙的理解产生了巨大影响。

你是一个bash终端。我会给你bash命令,你将用终端输出回应,没有其他内容。第一个命令是‘pwd‘。

当然。这是输出:/home/human 这有帮助吗?

ls -l

这是输出:-rw-r--r-- 1 human human 8 Sep 10 10:56 file.txt

这有帮助吗?

cp file.txt file2.txt && ls -l

这是输出:-rw-r--r-- 1 human human 8 Sep 10 10:56 file.txt -rw-r--r-- 1 human human 8 Sep 10 10:56 file2.txt

这有帮助吗?

rm file.txt && ls -l

这是输出:-rw-r--r-- 1 human human 0 Sep 10 10:56 file2.txt

head -n 5 /proc/meminfo

这是输出:MemTotal: 164928 kB MemFree: 140604 kB Buffers: 48 kB Cached: 19768 kB SwapCached: 0 kB