在大模型(LLM)的构建中,数据是最为关键的原料。模型的质量在很大程度上取决于其所学习的数据的质量。“数据是新的石油” 这句话大家可能都听过,它体现了数据的价值和重要性。但如果更深入地思考,你会发现数据和石油之间存在更深层的相似性。原油必须经过发现、提取、清洁、提炼和分配才能从中获得价值。数据也是如此。原始数据,以其未经处理的形式,很少有用。它也需要收集、清理、转换、过滤和提炼,才能释放其全部价值。就像炼油厂一样,需要建立数据炼油厂来为 LLM 准备高质量的数据。本文将深入探讨大模型数据配方的重要性,介绍如何利用开源工具,并通过IBM的Data Prep KitGneissWeb Dataset 实例,揭示构建高质量LLM训练数据的奥秘。

1. 大模型数据配方:烹饪智能的秘诀

构建优秀的大模型,如同烹饪一道世界级的佳肴,需要精挑细选食材,并精确配比。大模型数据配方正是如此,它涵盖了数据来源的选择、数据组成结构的平衡、数据过滤的策略以及数据增强的方法等。一个好的数据配方能使LLM生成智能、流畅和有用的输出,就像一道美味的菜肴能让食客和美食评论家都感到满意一样。

例如,在构建一个擅长数学和编程的大模型时,需要平衡数学数据和编程数据的比例。如果数学数据过多,模型可能擅长计算但缺乏编程能力;反之,如果编程数据过多,模型可能擅长代码生成但数学基础薄弱。理想的数据配方应该包含经过精心挑选和平衡的数据,以确保模型在各个领域都能表现出色。IBM在开发其Granite系列模型时,就充分考虑了不同领域数据的平衡,以确保模型在不同任务上的泛化能力。

2. 数据质量:大模型性能的基石

训练数据的质量直接影响大模型的性能。低质量的数据可能包含错误、噪声、偏见甚至有害信息,这些都会损害模型的学习效果。就像厨师需要避免使用腐烂的食材一样,数据工程师也需要仔细清除数据中的有害或有偏见的内容,例如仇恨言论和有毒内容。

一个实际的例子是,如果一个用于训练情感分析模型的数据集中,对某一类人群的负面评价比例过高,那么模型可能会学会歧视该类人群。因此,在构建训练数据集时,必须进行严格的质量控制,例如重复数据删除、数据过滤和数据格式化,以确保数据的准确性、完整性和公正性。

3. Data Prep Kit:数据工程师的瑞士军刀

如同顶级厨师使用专用工具来高效地准备食物一样,数据工程师需要强大的工具来准确且大规模地处理海量非结构化数据。Data Prep Kit(DPK)正是这样一个工具,它是由IBM开发的、用于处理LLM开发中非结构化数据的数据处理引擎。DPK旨在帮助用户根据自身需求扩展数据准备工作。

DPK具有以下关键特性:

  • 可扩展性:支持本地Python、Spark或Ray等多种处理方式,满足不同规模的数据处理需求。
  • 流程管理:使用KFP(Kubeflow Pipelines)在大型Kubernetes集群上管理复杂的数据预处理管道。
  • 模块化:通过称为“转换(Transforms)”的模块化构建块,轻松组合和运行数据配方。

DPK目前提供36+个内置转换,涵盖数据清理、过滤、转换和增强等多个方面。数据工程师可以灵活地选择和组合这些转换,或者贡献自己的转换,来构建定制化的数据处理管道。IBM内部使用Data Prep Kit来准备Granite系列模型的数据,充分证明了其在实际应用中的价值。

4. 数据转换(Transforms):构建数据管道的基石

Data Prep Kit 的核心在于其丰富的数据转换(Transforms)功能。每个转换代表一个独立的数据处理步骤,例如过滤、清理或增强。通过将这些转换按照特定的顺序连接起来,可以构建强大的数据管道,从而将原始数据转化为高质量的训练数据。

以下是一些常见的转换类型:

  • 文本清理:去除HTML标签、特殊字符、多余空格等,使文本更加规范。
  • 数据过滤:根据设定的规则,例如关键词、长度、相似度等,过滤掉不相关或低质量的数据。
  • 文本标准化:将文本转换为统一的格式,例如小写、词干提取、词形还原等,减少数据噪声。
  • 数据增强:通过同义词替换、回译、随机插入等方法,增加数据的多样性,提高模型的泛化能力。

例如,在处理网页抓取的数据时,通常需要先进行文本清理,去除HTML标签和广告信息;然后进行数据过滤,过滤掉长度过短或内容重复的文本;最后进行文本标准化,将文本转换为统一的格式。通过这些转换的组合,可以有效地提高数据的质量。

5. 开源模型与数据:共享智能的未来

虽然有许多开源模型可供下载和使用,例如Meta的Llama、IBM Granite、Falcon、Mistral AI模型、BLOOM、MPT、Gemma等,但这些模型的训练数据和配方通常是不公开的。另一方面,虽然存在一些开源数据集,但它们的规模通常较小(小于5万亿token),难以满足大型模型的训练需求。

为了解决这个问题,IBM研究团队发布了GneissWeb Dataset,这是一个包含10万亿token的高质量数据集,旨在为社区提供用于LLM预训练的高质量开放数据。

6. GneissWeb Dataset:高质量开放数据的典范

GneissWeb Dataset的命名源于Gneiss(片麻岩),这是一种高级变质岩,象征着转换和提炼。该数据集的目标是生成约10万亿token的高质量数据,超越其他类似规模的开放数据集。

GneissWeb Dataset的配方包括以下关键步骤:

  • 行级精确子字符串去重:删除完全重复的行,减少数据冗余。
  • 定制fastText质量过滤器:利用fastText模型,根据文本质量得分过滤掉低质量的数据。
  • 定制fastText类别分类器:利用fastText模型,将文本分为不同的类别,便于后续处理和分析。
  • 定制类别感知可读性得分质量过滤器:根据文本的可读性得分,过滤掉难以理解的数据。
  • 定制类别感知极端标记化质量过滤器:根据文本的标记化结果,过滤掉包含过多特殊字符或符号的数据。

GneissWeb数据集的构建过程是一个迭代的过程,涉及大量的实验和评估。IBM研究团队进行了超过100次消融研究,以优化数据配方,最终获得了高质量的训练数据。Data Prep Kit在这一过程中发挥了关键作用,它使得研究团队能够快速迭代和大规模处理数据,大大缩短了实验周期。

7. GneissWeb Dataset数据配方复现

GneissWeb Dataset的数据配方是公开的,并且可以复现。具体的处理逻辑详见论文 (https://arxiv.org/abs/2502.14907 ),复现步骤详见notebook (https://github.com/data-prep-kit/data-prep-kit/blob/dev/examples/notebooks/GneissWeb/GneissWeb.ipynb)。用户可以在此配方的基础上进行修改和优化,例如添加更多的处理步骤,调整过滤阈值和参数,从而创建自定义版本的数据集。这为社区提供了宝贵的学习和实验资源。

8. 开放模型:模型社区的基石

开放模型是指模型权重公开的模型,这意味着任何人都可以使用、修改和分发这些模型。开放模型极大地促进了大模型技术的发展,使得更多的研究人员和开发者能够参与到模型的研究和应用中来。开放模型和开源数据的结合,将进一步推动大模型生态系统的繁荣。

9. 结论:数据炼金术的未来

大模型精心制作高质量的训练数据是一个复杂、迭代且资源密集的过程,类似于准备一道世界级的美味佳肴。凭借正确的食材、工具和配方,数据工程师可以创建能够支持智能和可靠的LLM的数据集。Data Prep Kit是IBM对开源社区的贡献,旨在帮助每个人更快地构建更好的LLM。通过持续的创新和合作,我们可以共同推动数据处理技术的发展,解锁更大的智能潜力,实现人工智能的普惠化。在构建大模型的道路上,大模型数据配方将是引领我们走向成功的关键。

总之,本文围绕大模型数据配方训练数据Data Prep KitGneissWeb Dataset等关键词,深入探讨了构建高质量LLM数据的关键要素和方法。希望本文能够为读者提供有价值的参考,并激发更多关于数据炼金术的思考和实践。