一、前言
在大型语言模型(LLM)的开发过程中,预训练数据的规模和质量对塑造LLM的能力起着至关重要的作用。语言模型的数据集迅速扩大,其中最重要的是Common Crawl (CC) 数据集,包含近1T 个词。这样规模的数据集足以训练最大的模型。然而,未经筛选或轻度筛选的CC 数据集质量往往比经过精心构建的数据集要低。OpenAI 在GPT3 [1] 训练过程中采取三个步骤来提高数据集的质量:
- 基于与一系列高质量参考语料库的相似性,筛选了一个高质量CC 数据集;
- 不仅在各数据集内部而且跨数据集之间进行模糊去重(fuzzy deduplication),以防止数据冗余;并且保留一部分数据作为验证集,以评估模型是否过拟合;
- 将已知的高质量参考语料库添加到训练集中,以增加多样性。
二、技术方案
为了提高Common Crawl 数据集的质量,OpenAI [1] 给出了具体实现方法,开发了一种基于模型的方法来剔除低质量文档。核心思路:训练了一个二分类分类器来区分高质量的文档和原始Common Crawl中的文档。分类器采用逻辑回归 (logistic regression) 模型,使用 Spark的标准分词器和HashingTF 10 进行特征处理。正例采用已知高质量语料,如 WebText、Wikipedia和 网页书籍语料库 (Books1, Books2);负例采用经过滤的Common Crawl。然后使用这个LR 分类器来给CC 文档打分,得到每个CC 文档的质量分 document_score 。为了避免分类器的偏差,文档质量分通过 Pareto 分布采样,保留大部分的高质量文档的同时,