《大规模语言模型:从理论到实践》第三章大预言模型预训练数据
[复制链接]
本周分享的是第三章大预言模型预训练数据,本章介绍的是常见的大语言模型预训练数据的来源、处理方法、预训练数据对大预言模型影响的分析及开源数据集等。
数据来源
文中指出OpenAI在训练GPT-3时所使用的数据集有CommonCrawl、WebText2、Books1、Books2和英文的Wikipedia等。这些数据集都是英文的,不过也从CommonCrawl加入了非英文的数据集进行训练。CommonCrawl的原始数据有45TB,比我的硬盘大了不知好几倍,如果是人去一个个的读的话,一辈子也看不完吧。经过模型的过滤将45TB的数据压缩成570GB,还是电脑的运行速度快。模型将这些数据源大体上分为通用数据和专业数据。
通用数据:包括网页、图书、新闻、对话文本等。特点是:规模大、多样性和易获取等。支持大语言建模和泛化能力。
专业数据:包括多语言数据、科学文本数据、代码及领域特有资料等。可以提升模型的任务解决能力。
典型的大语言模型所使用数据类型的分布情况
从图中不难看出各个模型所使用的数据来源分布差异还是很大的。
通用数据的常用数据源如下
专业数据的种类及包含内容或数据来源
数据处理
数据处理的流程主要有质量过滤、冗余去除、隐私消除和词元切分。
质量过滤
质量过滤是从收集到的数据中删除低质量数据,也是大语言模型训练中的重要步骤。过滤方法主要有基于分类器的方法和基于启发式的方法。
基于分类器的方法的目标是训练文本质量判断模型,利用该模型识别并过滤低质量数据。
基于启发式的方法的规则有语言过滤、指标过滤、统计特征过滤和关键词过滤。
语言过滤:如果一个大语言模型仅关注一种或者几种语言,则可以大幅过滤数据中其他语言的文本。
指标过滤:利用评测指标也可以过滤低质量文本。例如,可以使用语言模型对给定文本的困惑度(Perplexity)进行计算,利用该值可以过滤非自然的句子。
统计特征过滤:针对文本内容可以计算包括标点符号分布、符号字比(Symbol-to-Word Ratio)、句子长度在内的统计特征,利用这些特征过滤低质量数据。
关键词过滤:根据特定的关键词集,可以识别并删除文本中的噪声或无用元素。例如,HTML标签、超链接及冒犯性词语等。
冗余去除
模型数据库中的重复数据会降低大语言模型的多样性,可能导致训练过程不稳定,从而影响模型性能。冗余去除就是去除掉数据中重复的内容。其中文本冗余发现(也称为文本重复检测)是基础任务之一。其目标是发现不同粒度上的文本重复,包括句子、段落、文档等不同级别。
隐私消除
由于绝大多数预训练数据来源于互联网,因此不可避免地会包含涉及敏感或个人信息的用户生成内容,这可能会增加隐私泄露的风险。删除隐私数据最直接的方法是采用基于规则的算法,BigScience ROOTS Corpus在构建过程中就采用了基于命名实体识别的方法。
词元切分
传统的自然语言处理常常是以单词为基本单元,处理前会用这些单词制作一个词表。但是总会有不在词表中的单词。将这些单词用未登录词(Out-of-Vocabulary,OOV)进行表示。基于固定词表的词表示模型对词表大小的选择比较敏感。当词表过小时,未登录词的比例较高,影响模型性能;当词表大小过大时,大量低频词出现在词表中,这些词的词向量很难得到充分学习。理想模式下,词表示模型应能覆盖绝大部分的输入词,并避免词表过大所造成的数据稀疏问题。单词是由词根、词缀等构成,也为了充分学习这些构词模式,提出了子词词元化。如reborn的子词有re和born。
词元分析是将原始文本分割成词元序列的过程。词元切分也是数据预处理中至关重要的一步。
字节对编码(BPE)是一种常见的字词词元算法。该算法采用的词表包含最常见的单词及高频出现的子词。主要包括两部分,一是词元词表的确定;二是全词切分为词元及词元合并为全词的方法。
数据影响分析
数据模型
模型参数量与训练数据量的对比
模型训练达到计算最优的条件是模型大小和训练词元数量应该等比例缩放。
数据质量
数据质量通常被认为是影响大预言模型训练效果的关键因素之一。语言模型在经过清洗的高质量数据上训练数据可以得到更好的性能。
数据多样性
开源数据集
以下是部分开源数据集及部分数据集组成结构
|