LLaMA的训练数据集来源多样,涵盖了多个不同的数据集和预处理步骤。以下是详细的描述:
公开数据来源和预处理
-
CommonCrawl [67%]:
- 使用CCNet管道(Wenzek等人,2020年)对2017年至2020年间的五个CommonCrawl转储进行预处理。
- 删除行级别的数据,使用fastText线性分类器进行语言识别,以去除非英语页面。
- 用n-gram语言模型过滤低质量内容。
- 训练一个线性模型来对维基百科中用作参考文献的页面与随机抽样的页面进行分类,并丢弃未被分类为参考文献的页面。
-
C4 [15%]:
- 使用多样化的预处理CommonCrawl数据集提高性能。
- 公开的C4数据集(Raffel等人,2020年)包含重复数据删除和语言识别步骤。
- 与CCNet的主要区别在于质量过滤,主要依赖于标点符号的存在或网页中的单词和句子的数量等判例。
-
Github [4.5%]:
- 使用谷歌BigQuery上的GitHub公共数据集。
- 只保留在Apache、BSD和MIT许可下发布的项目。
- 用基于行长或字母数字字符比例的启发式方法过滤低质量的文件,并用正则表达式删除模板,如标题。
- 在文件层面上对结果数据集进行重复计算,并进行精确匹配。
-
维基百科 [4.5%]:
- 包括2022年6月至8月期间的维基百科转储,涵盖20种使用拉丁字母或西里尔字母的语言。
- 对数据进行处理,以删除超链接、评论和其他格式化的模板。
-
古腾堡和Books3 [4.5%]:
- 包括Gutenberg项目和ThePile(Gao等人,2020年)的Books3部分。
- 在书籍层面上进行重复数据删除,删除内容重叠度超过90%的书籍。
-
ArXiv [2.5%]:
- 处理arXiv的Latex文件,将科学数据添加到数据集中。
- 按照Lewkowycz等人(2022年)的做法,删除第一节之前的所有内容,以及书目。
- 删除.tex文件中的注释,以及用户写的内联扩展的定义和宏,以提高不同论文的一致性。
-
Stack Exchange [2%]:
- 包括Stack Exchange的转储,涵盖不同领域的高质量问答网站。
- 保留28个最大网站的数据,重新将HTML标签从文本中移出,并将答案按分数(从高到低)排序。
LLaMA的特点总结
- 多样化数据来源:涵盖从网络抓取数据到书籍、科学论文和问答网站的数据。
- 高效预处理:通过多种预处理技术确保数据的高质量和相关性,包括语言识别、质量过滤和重复数据删除。
- 覆盖多语言:重点涵盖使用拉丁字母和西里尔字母的多种语言,提高模型的多语言处理能力。
LLaMA 2在训练设置和模型架构上大部分继承了LLaMA 1的配置,但也进行了几项重要的改进和调整。以下是详细的说明:
模型架构和预训练设置
- 基础架构:LLaMA 2采用标准的Transformer架构(Vaswani等人,2017年)。
- 预归一化:使用RMSNorm进行预归一化(pre-normalization)(Zhang和Sennrich,2019年)。
- 激活函数:采用SwiGLU激活函数(Shazeer,2020年)。
- 位置嵌入:使用旋转位置嵌入(RoPE,Su等人,2022年)。
主要改进
- 上下文长度增加:与LLaMA 1相比,LLaMA 2增加了上下文长度,使得模型能够处理更长的输入序列。
- 分组查询注意力(GQA):引入了分组查询注意力机制,这是一种改进的注意力机制,有助于提高模型的效率和性能。
总结
LLaMA 2在保持LLaMA 1基础架构的同时,通过增加上下文长度和引入分组查询注意力机制,进一步提升了模型的能力。这些改进使得LLaMA 2在处理长文本和提高计算效率方面表现更佳。