论文

LLaMA: Open and Efficient Foundation Language Models 2302.13971

LLaMA是一系列基础语言模型的集合,参数规模从70亿到650亿不等,它仅使用公开可用的数据集,在数万亿个标记上进行训练。

训练数据

  • 英文CommonCrawl(占比67%):使用CCNet管道对2017年至2020年的五个CommonCrawl数据转储进行预处理。这个过程会在文本行级别对数据进行去重,通过fastText线性分类器进行语言识别,以去除非英文页面,并使用ngram语言模型过滤掉低质量内容。此外,训练一个线性模型,将网页分类为维基百科中的参考文献和随机抽样的网页,未被归类为参考文献的网页将被丢弃。
  • C4(占比15%):在探索性实验中发现,使用经过不同预处理的CommonCrawl数据集可以提升性能。因此,公开可用的C4数据集被纳入训练数据。C4的预处理也包括去重和语言识别步骤:与CCNet的主要区别在于质量过滤,C4主要基于标点符号的存在、网页中的单词和句子数量等启发式方法进行过滤。
  • GitHub(占比4.5%):利用了Google BigQuery上公开的GitHub数据集。我们只保留了那些基于Apache、BSD和MIT许可证分发的项目。此外,基于行长度或字母数字字符比例的启发式方法被用于过滤掉低质量文件。我们还使用正则表达式去除了诸如页眉之类的样板内容。最后,通过精确匹配在文件级别对最终数据集进行去重。
  • 维基百科(占比4.5%):添加了2022年6月至8月期间的维基百科数据转储,涵盖了使用拉丁字母或西里尔字母的20种语言(保加利亚语、加泰罗尼亚语、捷克语、丹麦语、德语、英语、西班牙语、法语、克罗地亚语、匈牙利语、意大利语、荷兰语、波兰语、葡萄牙语、罗马尼亚语、俄语、斯洛文尼亚语、塞尔维亚语、瑞典语、乌克兰语)。然后对数据进行处理,去除超链接、注释和其他格式化样板内容。
  • 古登堡计划和Books3(占比4.5%):我们的训练数据集中包含两个书籍语料库:古登堡计划,其中包含公共领域的书籍;以及ThePile的Books3部分,这是一个用于训练大型语言模型的公开可用数据集。在书籍级别进行去重,去除内容重叠超过90%的书籍。
  • arXiv(占比2.5%):对arXiv的LaTeX文件进行处理,将科学数据纳入数据集中。去除第一节之前的所有内容以及参考文献。我们还会删除.tex文件中的注释,并对用户编写的定义和宏进行内联展开,以提高论文之间的一致性。
  • Stack Exchange(占比2%)

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

预训练数据

用于预训练的数据混合。

分词器

数据使用字节对编码(BPE)算法进行分词。值得注意的是,所有数字都被拆分为单个数字,对于未知的UTF-8字符则回退到字节进行分解。

总体而言,整个训练数据集在分词后大约包含1.4万亿个标记。对于大多数训练数据,每个标记在训练过程中仅使用一次,但维基百科和书籍领域的数据除外,这些数据大约会进行两个训练轮次。

架构

网络基于Transformer架构。它利用了随后在不同模型中提出并使用的各种改进方法。

  • 预归一化(源自GPT3):为了提高训练的稳定性,对每个Transformer子层的输入进行归一化(使用RMSNorm),而不是对输出进行归一化。
  • SwiGLU激活函数(源自PaLM):用SwiGLU激活函数取代ReLU非线性函数,其维度为2/3 4d,而不是像PaLM中那样为4d。
  • 旋转嵌入(源自GPTNeo):在网络的每一层使用旋转位置嵌入(RoPE),而不是绝对位置嵌入。

模型尺寸、架构和优化超参数

结果

LLaMA考虑了零样本和少样本任务,并在总共20个基准测试中报告结果:

  • 零样本:我们提供任务的文本描述和一个测试示例。模型通过开放式生成来生成答案,或者对给出的答案进行排序。
  • 少样本:提供几个任务示例(1到64个之间)和一个测试示例。模型将这些文本作为输入,并生成答案或不同的选项。
  • 常识推理:在常识推理任务上的零样本性能。LLaMA - 65B在除BoolQ之外的所有基准测试中都优于Chinchilla - 70B。LLaMA - 65B除了在BoolQ和WinoGrande之外,在其他所有基准测试中也都超过了PaLM540B。LLaMA - 13B尽管规模小得多,但在大多数基准测试中都优于GPT - 3。

  • 闭卷问答:在NaturalQuestions(精确匹配性能)和TriviaQA(过滤后的开发集上的零样本和少样本精确匹配性能)这两个基准测试中,LLaMA - 65B在零样本和少样本设置下均达到了最先进的性能。LLaMA - 13B尽管比GPT - 3和Chinchilla小5 - 10倍,但在这些基准测试中与它们具有竞争力。

  • 阅读理解:在阅读理解(零样本准确率)方面,LLaMA - 65B与PaLM - 540B的性能相当。LLaMA - 13B比GPT - 3的准确率高出几个百分点。

  • 数学推理:在定量推理数据集上的模型性能。Minerva是一系列基于PaLM的模型,在来自arXiv和数学网页的385亿个标记上进行了微调。PaLM和LLaMA模型未在数学数据上进行微调。结果与使用和不使用maj1@k进行比较,maj1@k涉及为每个问题生成k个样本并进行多数投票。LLaMA65B在GSM8k上的表现优于Minerva - 62B,尽管它没有在数学数据上进行微调。

  • 代码生成:在代码生成的模型性能方面,LLaMA 13B在HumanEval和MBPP上的表现均优于LaMDA 137B。LLaMA 65B优于PaLM 62B,即使PaLM 62B的训练时间更长。专门为代码训练的模型在这些任务上的表现优于通用模型。然而,本文的重点并非在代码标记上进行微调。

  • 大规模多任务语言理解:在大规模多任务语言理解(MMLU,五样本准确率)方面,LLaMA - 65B在MMLU基准测试中的性能落后于Chinchilla70B和PaLM - 540B。性能差距的可能原因是LLaMA - 65B使用的预训练数据量(177GB)比Gopher、Chinchilla和PaLM模型(多达2TB的书籍数据)要少。训练数据中更多的书籍可能解释了为什么Gopher在MMLU基准测试中比GPT - 3表现更好。

  • 指令微调:在指令微调(MMLU,五样本)方面,对中等规模模型在有无指令微调情况下在MMLU上的比较。即使没有微调,LLaMA - 65B也能遵循基本指令。LLaMA - I(650亿参数)在MMLU上达到了68.9%的准确率,优于其他经过指令微调的中等规模模型。然而,它仍然低于最先进水平,GPT code - davinci - 002在MMLU上的准确率为77.4%。

本文由mdnice多平台发布


柏企科技圈
15 声望4 粉丝