大模型预训练的数据过滤:为什么“不过滤”可能是最好的选择?
本文欲回答的核心问题:在大规模语言模型预训练中,花费大量算力和人力去过滤“低质量”数据,真的有必要吗?
当算力足够大、模型参数足够多时,最好的数据过滤器就是不过滤。 尽管行业内普遍认为必须筛选出高质量信息才能训练出优秀的模型,但最新的缩放实验表明,在充足算力的支撑下,足够大的参数模型不仅能容忍低质量和干扰性数据,甚至能从名义上的“劣质”数据中获益。这一发现正在挑战传统数据清洗流程的根基。
图片来源:Unsplash
核心问题:大模型预训练真的需要过滤低质量数据吗?
本段欲回答的核心问题:当前主流的数据过滤策略,在模型走向极致大规模时,究竟是助力还是阻力?
数据过滤在小算力时代是必要的,但在大算力极限下,它反而会成为性能天花板。 选取预训练数据的标准做法是从 Common Crawl (CC) 等海量网页数据中进行文本过滤。在算力受限、只能训练数据子集的情况下,选择“更高质量”的数据确实能大幅提升性能。然而,过滤本质上是在删除数据,这与模型缩放定律中“通过增加数据量来提升性能”的趋势背道而驰。
以典型的重度过滤数据集为例,经过极其严格的筛选后,通常仅保留原始 Common Crawl 约 1% 的数据,产生大约 3.8 万亿个 Token。虽然这看起来是个庞大的数字,但如果按照理想的计算配比来训练一个万亿参数模型,即使考虑到数据重复训练带来的收益递减,这些 Token 数量也远远不够。目前的行业趋势是让相对较小的模型进行过度训练,这需要更多的 Token。因此,保留更多的原始数据,而不是将其丢弃,可能才是通向更高性能的正确道路。
作者反思:被直觉误导的资源分配
在工程实践中,我们极易陷入“脏数据必出劣质模型”的直觉陷阱。这导致无数团队将宝贵的工程时间投入到设计复杂的启发式过滤规则中。然而,如果我们把同样的精力投入到增加模型参数或延长训练步数上,可能会获得更为确定的收益。这种直觉与实验结果的反差,值得每一位 AI 从业者深思。
实验设计:如何科学衡量数据集的真正价值?
本段欲回答的核心问题:在对比不同质量的数据集时,怎样才能确保比较是公平且能挖掘出数据全部潜力的?
要衡量一个数据集的真正价值,不能固定模型大小和训练步数,而必须在算力无限制的前提下寻找其能达到的最佳性能。 传统的对比实验往往固定了模型规模,这导致大容量数据集的优势无法显现。为了提取数据集中的所有“ juice”(价值),实验设计必须允许模型参数和训练步数跨越多个数量级进行联合优化,直到性能提升开始趋于平缓或算力耗尽。
实验配置与基准设定
为了严谨地验证这一假设,实验采用了以下具体的配置基准:
| 配置维度 | 具体设定 | 设定目的 |
|---|---|---|
| 数据来源 | DCLM-Pool(2023年前的完整 CC 数据,通过 resiliparse 提取文本) | 获取最原始、未经复杂清洗的 240 万亿 GPT-NeoX Token 池 |
| 子集规模 | 从约 6.7 亿到 100 亿 Token 不等的随机抽样子集 | 在可控算力下模拟全量数据的特性 |
| 模型架构 | Llama 风格的密集型 Transformer | 确保实验结果对当前主流架构具有参考价值 |
| 参数规模 | 1500 万至 70 亿参数 | 跨越 2 个数量级,观察容量变化的影响 |
| 训练框架 | Meta Lingua 代码库 | 保证大规模分布式训练的稳定性与可复现性 |
| 核心评估指标 | C4、Fineweb-Edu、Cosmopedia 三个数据集上的平均负对数似然 (NLL) | 相比于小规模的问答基准,NLL 更平滑且与下游性能相关性更强 |
在训练超参数方面,所有实验统一使用 1024 的上下文长度,批次大小固定为约 52.4 万个 Token,并包含 500 步的预热阶段。对于每一个模型,都会专门调整训练步数和权重衰减,以最大化数据重复利用时的稳定性。学习率随模型大小递减,这一规律在初期调优阶段被严格确定。
图片来源:Unsplash
过滤对比不过滤:小算力与大算力的分水岭
本段欲回答的核心问题:在具体的对比测试中,未经任何过滤的原始数据池是如何在后续训练中反超精心清洗的数据集的?
原始数据池在初期表现最差,但只要模型足够大且训练时间足够长,它最终一定会反超所有经过过滤的数据集。 实验在一个约 6.7 亿 Token 的最小 CC 池上进行,并在此基础上应用了五种不同的过滤策略,从宽松到严格依次为:英文过滤、重复过滤、停用词过滤、RefinedWeb 过滤以及最严格的 DCLM-Baseline 过滤。
五种过滤策略的逻辑与留存率
理解这些过滤器的机制,有助于我们看清它们“丢弃”了什么:
-
英文过滤器:使用快速文本分类器为文档打分并设阈值。仅保留了 28.2% 的数据。它丢弃了大量非英文但可能包含通用逻辑结构的有价值文本。 -
重复过滤器:源于 Gopher 模型的数据整理阶段,认为“过度重复往往与无信息内容相关”。按行、段落或 N-gram 颗粒度检查重复比例。仅保留 45.3% 的数据。 -
停用词过滤器:要求文档中至少出现 2 次“the”、“be”、“to”、“of”、“and”、“that”、“have”、“with”这 8 个英文停用词。保留了 50.4% 的数据。 -
RefinedWeb:综合上述及类似过滤器的结果,试图复现高清洗质量的数据集,仅保留 13% 的数据。 -
DCLM-Baseline:在上述基础上进一步进行去重和基于分类器的质量过滤,是最高标准的清洗管线,仅保留了原始池 2.1% 的数据。
性能交叉点的出现
在 1500 万参数的极小模型上,无论训练多少 Token(即使达到 1000 亿),原始池的性能始终垫底,永远无法超越前四种宽松过滤的数据集。这说明小模型确实无法消化原始数据中的噪声。
然而,随着模型参数增加到 3300 万和 10 亿,奇迹出现了:损失曲线上出现了明确的“交叉点”。以 10 亿参数模型为例,原始池最终达到了 3.37 的最佳平均损失,且随着模型规模的扩大,性能尚未出现明显的平缓停滞。更重要的是,当将这些运行结果转化为计算量-性能的帕累托前沿时可以发现,随着计算量的增加,原始池从表现最差的数据集平滑过渡到了表现最好的数据集。
应用场景推演:假设你的团队正在基于一个 10 亿参数的架构进行垂直领域模型预训练,算力预算有限。如果你采用了严格的数据清洗,你会在早期以较少的算力达到一个不错的及格线;但如果你有充足的算力预算,坚持使用包含大量“垃圾”的原始 crawled 数据,并在 10 亿参数规模上长时间训练,你最终突破的性能天花板将远高于前者。
极限压力测试:随机乱码与打乱词序的数据有用吗?
本段欲回答的核心问题:如果连常规的“低质量”网页都不算,直接向模型喂入毫无逻辑的随机字符串或语序错乱的文本,模型会崩溃吗?
即使面对看似完全无用的随机生成字符串,大模型也没有崩溃;而面对打乱词序的真实文档,大模型在充分训练后甚至表现得比使用原始文档更好。 为了探索预训练的鲁棒性极限,研究刻意构造了两种极端的“垃圾数据”并将其注入到原始池中,注入比例从 20% 一直到惊人的 800%(即垃圾数据是正常数据的 8 倍,正常数据仅占约 10%)。
两种极端垃圾数据的构造
-
随机生成字符串:构建一个包含 1 万个词的词汇表(从小写字母中随机采样 3 到 8 个字符组成),然后均匀随机抽取这些词并用空格拼接成文档。这种数据不包含任何自然语言的逻辑或语义。 -
打乱词序的文档:取额外的 CC 文档,将每个文档中的词序完全随机打乱。这破坏了所有的语法和词序共现关系,仅保留了文档的 Unigram(单字/词)分布。
出人意料的实验结果
首先,即使在注入了 8 倍垃圾数据的情况下,模型的表现也没有退化到随机猜测的水平(理论最差损失约为 10.8)。
对于随机字符串数据,1500 万参数模型出现了明显的性能分离,但到了 3.3 亿参数模型时,这种差距已经大幅缩小。在 10 亿参数模型上,甚至加入 20% 随机字符串的数据集,其表现都略微超越了纯净的原始池。这可能是由于随机字符串带来了一种意外的正则化效应,或者其“短词由空格分隔”的形式与自然文本在表层特征上存在某种相似性。
对于打乱词序的数据,结果更为震撼。在 3.3 亿参数模型上,除了 +800% 的极端情况外,所有打乱词序的数据集在训练约 110 亿 Token 后,性能都超越了纯净的原始池!
为什么打乱词序的数据反而有用?
直觉上,随机字符串来自一个与自然语言完全不同的分布,对小模型来说很容易区分但无法利用;而打乱词序的文档更具有“迷惑性”。虽然句子“法国的首都是巴黎”被打乱成了“巴黎的首都法国的是”,但“法国”和“巴黎”这两个词依然出现在同一个文档边界内。这帮助模型在 Unigram 层面建立起了这两个词之间的潜在关联。
作者反思:重新定义“噪声”
我们常常傲慢地将不符合语法规范的数据视为噪声。但这个实验狠狠地打击了这种观念:大模型的容量大到足以从破碎的词汇碎片中拼凑出统计规律。这让我意识到,在绝对的大规模统计学习面前,人类对“语法重要性”的认知可能被过度放大了。
图片来源:Unsplash
扩展规律预测:原始 Common Crawl 何时能打败顶级清洗数据集?
本段欲回答的核心问题:这些基于几亿 Token 小池子得出的结论,能否推广到包含 240 万亿 Token 的完整互联网数据规模?
通过建立缩放定律预测,完整 Common Crawl 池反超顶级过滤数据集(如 RefinedWeb)所需的计算量大约在 1e+30 FLOPs,这在未来的算力增长预期内是完全可及的。 6.7 亿 Token 的实验虽然具有启发性,但距离真实的互联网规模(200 到 500 万亿 Token)相差甚远。为了验证小池子效应的可扩展性,必须将池大小和模型大小同时跨越 2 个数量级进行缩放研究。
寻找“反超点”的数学表达
为了量化这一过程,研究定义了一个函数:在固定模型参数 M 和池大小 m 的情况下,找到原始池性能首次超过过滤池所需的最小训练步数。通过固定 10 亿参数模型并增加池大小,观察到了两个关键现象:
-
超线性的步数增长:所需训练步数随池大小呈超线性增长。6.7 亿池大约需要 1 个 Epoch 反超,20 亿池需要约 3 个 Epoch,而 100 亿池需要约 10 个 Epoch。 -
模型规模的救赎:虽然在 8000 万参数模型上,当池大小增加到 100 亿时,反超点已经消失(意味着在非单调的极端 Epoch 区域可能永远无法反超);但随着模型参数增加到 1B 甚至 7B,所需的 Epoch 数量作为模型大小的函数在迅速下降。
1e+30 FLOPs 的预测逻辑
基于上述观测,研究构建了两种计算缩放定律来预测 240 万亿 Token 的完整 DCLM-Pool 何时能超越 RefinedWeb:
-
基于 Token 与参数比例的拟合:假设每个非嵌入参数分配 600 个 Token(遵循某些前沿模型的设定),结合观测数据的多项式插值,推导出所需计算量。 -
基于 Epoch 约束的拟合:设定一个固定的 4 Epoch 训练约束(基于数据受限缩放研究的建议),寻找其与反超函数的交点。
令人惊讶的是,这两种完全不同的拟合方法在双对数坐标图上都表现出极高的线性度(R² 大于 0.99),并且给出了几乎相同的预测值:约 9.0e+29 到 3.6e+30 FLOPs。考虑到目前前沿预训练的计算量估计约为 5e+26 FLOPs,且已有预测认为到 2030 年将出现 1e+29 FLOP 级别的训练运行,这个“不过滤”的算力门槛并非遥不可及。
真正的危险边界:什么样的数据才会真正损害大模型?
本段欲回答的核心问题:既然随机乱码和低质量网页都不怕,那到底什么样的数据是大模型预训练的“毒药”?
大模型对数据分布的偏移(如词序打乱)极具抵抗力,真正有害的是那些“条件分布偏移”的数据,即看起来像高质量文本但包含事实错误的内容。 我们不能期望“数据越多越好”是机器学习的普遍定律,在域适应和分布偏移的经典问题中,错误的数据确实会带来损害。
事实性错误的潜在威胁
如果一个模型在预训练中看到了足够多诸如“法国的首都是哥本哈根”这样的实例,它就会学到错误的知识。为了评估 Common Crawl 中这种“主动有害”内容的比例,研究进行了一项针对性的语料库分析。
通过匹配特定知识领域(如世界宗教、天文学、大学生物学、医学遗传学)的关键词,并使用先进的大模型对这些文档进行分类判断(支持、反驳、相关但不表态、无关)。结果表明,在 Common Crawl 中,明确“支持”正确答案的文档数量,比明确“反驳”正确答案的文档数量至少高出一个数量级。这意味着,在完整的 CC 池中,主动散布事实错误的恶意数据在频率上是极低的。
一个微小的退化案例:文档开头的预测
虽然整体极具鲁棒性,但在一个特定的微观测验中,打乱词序的数据确实造成了退化:文档第一个 Token 的预测。
在对比原始池和注入 200% 打乱词序数据的模型时,如果评估整个序列的平均损失,打乱词序的数据集胜出;但如果只看文档前 1 个、前 4 个或前 16 个 Token 的预测损失,打乱词序的数据集立刻失去了优势。原因很简单:面对一个空的前缀,模型根本无法判断接下来的文档是否被打乱了词序,这种分布的不一致性在序列起始处造成了困扰。不过,由于绝大多数语言模型的应用场景都涉及超过几个 Token 的长文本生成,这种局部的边缘退化在实际应用中几乎不构成影响。
底层理论解释:为什么大模型能“消化”垃圾数据?
本段欲回答的核心问题:从理论和模型容量的底层逻辑来看,大参数模型吸收劣质数据而不受损害的机制是什么?
当模型的隐藏层容量(如矩阵秩)足够大时,它可以通过相互独立的组件分别处理不同分布的数据,使得“好”数据与“坏”数据互不干扰;而小模型由于容量不足,会导致不同任务在表示空间中相互冲突。
低秩矩阵分解的理论映射
可以通过最简单的单隐藏层线性神经网络——低秩矩阵分解,在群体水平上完美解释这一现象。
假设我们有来自 K 个不同任务的数据,且这些任务的输入分布是相互正交的(即可以完全区分开)。预测目标是由各个任务的真实权重矩阵组合而成。理论证明表明:
-
容量充足时(模型秩 r ≥ 任务数 K):矩阵分解可以完美地表示这个预测问题。梯度下降等一阶优化方法被证明一定能找到全局最优解。在这种情况下,噪声或“垃圾”任务可以被模型完美吸收,分配到独立的维度上,完全不会影响对“有用”任务的学习。 -
容量不足时(模型秩 r < 有效秩 ρ):模型性能必然会因为任务间的干扰而退化。此时,不同任务的特征在低维空间中被强制挤压,导致无法准确还原目标。
这个极其简洁的理论模型,精确地映射了实验中观察到的现象:大模型(高秩)能够将无过滤池中的噪声隔离处理,而小模型(低秩)则在噪声和信号之间手忙脚乱,导致性能下降。
局限性反思与工程实践启示
本段欲回答的核心问题:这些结论在实际的工业级大模型研发中,应该如何理性地看待和应用?
“不过滤”的结论目前严格局限于密集型 Transformer 的标准预训练阶段,在算力受限的当下,数据过滤依然具有不可替代的工程价值,但我们需要调整对“低质量”的过度焦虑。
必须正视的研究局限
在将这一“苦涩教训”付诸实践前,必须明确其边界:
-
架构与训练范式:结论基于密集型 Transformer,未使用数据课程、数据加权或后训练。对于混合专家模型等可能更不稳定的架构,或者在后训练阶段,数据的选择可能依然极其敏感。 -
合成数据的影响:如果未来大规模引入合成数据,若低质量数据主要起正则化作用,合成数据可能会严格优于它们;若低质量数据确实提供了独特的信息,合成数据只会推迟“不过滤”反超点的到来。 -
AI 生成内容的涌入:随着 CC 中 AI 生成内容的比例不断增加,其带来的影响目前仍是未知的。 -
重复文档的变量:虽然实验对权重衰减进行了调优,但在子集规模扩大时,重复文档的比例必然增加。尽管不期望改变核心结论,但这仍是一个潜在的干扰项。
工程实践的转型建议
尽管有上述局限,该研究为工程团队提供了清晰的指导思路转变:当你处于极度算力受限的环境,必须用极小的模型(如几千万参数)在有限步骤内达到可用状态时,传统的数据过滤(如去重、语言分类)仍然是你的最佳选择。
然而,如果你规划的是面向未来的大规模训练(数十亿甚至更大参数),且算力预算允许进行多 Epoch 的长周期训练,你应该果断放宽过滤阈值。停止在剔除那些“看起来有些乱”的网页上浪费精力,因为你的大模型有足够的能力从中榨取 Unigram 层面的统计价值。将工程资源从“数据清洗”转移到“增加参数”和“优化长周期训练的稳定性”上,将是更符合缩放定律的明智之举。
实用摘要与操作清单
基于上述分析,为技术团队提供以下可直接落地的操作检视清单:
-
[ ] 评估算力与参数定位:明确当前训练任务的参数量级。若低于 1 亿参数,坚持执行严格的启发式过滤;若规划 10 亿参数以上,考虑放宽阈值。 -
[ ] 停止过度去重:除非面临极端的重复文档(如垃圾站无限循环),否则不需要为了去除低质量而牺牲数据规模。 -
[ ] 重视单字/词分布:认识到即使语法完全被破坏,只要文档的词汇表分布与目标领域相关,这些数据对大模型就具有潜在的正则化或统计价值。 -
[ ] 警惕事实性毒药:将数据清洗的重点从“格式和语法质量”转移到“事实性校验”上,重点防范那些看似通顺但包含反常识事实的文本。 -
[ ] 监控序列起始损失:在包含大量分布外噪声数据的训练中,单独监控文档前几个 Token 的预测损失,以评估分布偏移对局部生成的潜在影响。 -
[ ] 规划长周期训练策略:如果决定采用宽松过滤或不过滤策略,必须同步调整权重衰减等正则化超参数,以应对不可避免的多 Epoch 训练带来的非单调波动。
一页速览
| 核心维度 | 传统认知(小算力时代) | 新发现(大算力极限) |
|---|---|---|
| 数据过滤必要性 | 绝对必要,脏数据毁模型 | 不必要,最好的过滤器是不过滤 |
| 低质量数据作用 | 纯属噪声,消耗算力 | 具有正则化作用,甚至提供 Unigram 层面的有用信号 |
| 模型容量要求 | 小模型即可,依赖数据纯净度 | 必须配合大参数模型与长训练步数才能显现优势 |
| 打乱词序的数据 | 彻底无用 | 大模型不仅能消化,甚至能从中获益超越原始文本 |
| 真正的数据风险 | 格式混乱、含有乱码 | 看似高质量但包含事实错误的“条件分布偏移”数据 |
| 全量 CC 的算力门槛 | 不适用 | 预测约 1e+30 FLOPs(2030 年预期算力范围内可及) |
常见问答 (FAQ)
Q1: 是不是以后训练大模型完全不需要做任何数据清洗了?
不是。本研究针对的是标准预训练阶段和密集型 Transformer。在算力未达到极其庞大的规模前,或者在使用混合专家等不稳定架构时,适度的去重和基础清洗仍然是有益的。
Q2: 为什么打乱词序的文档反而能让模型表现得更好?
因为打乱词序虽然破坏了语法,但保留了文档的 Unigram(单字词)分布。例如“法国”和“巴黎”依然在同一文档内出现,这帮助大模型在词汇共现的底层统计层面上建立了关联,而这种关联在小模型上无法被提取。
Q3: 随机生成的乱码字符串对模型真的没有负面影响吗?
在 1500 万等小参数模型上,负面影响的确存在;但随着参数增加到 3.3 亿和 10 亿,这种负面影响被完全消化,部分情况(如 20% 注入比例)甚至因为类似正则化的效应带来了微小的性能提升。
Q4: 预测的 1e+30 FLOPs 算力门槛在现实中意味着什么?
这大约是目前顶级前沿模型预训练计算量的数千倍。虽然目前还达不到,但根据算力增长预测,这个算力水平在 2030 年左右是有可能实现的,这意味着“不过滤”策略在不久的将来具备实战意义。
Q5: 什么样的“劣质数据”是模型绝对无法容忍的?
模型对分布偏移(如词序改变)极具鲁棒性,但无法容忍“条件分布偏移”。即那些行文流畅、看起来像高质量百科,但陈述了完全错误事实的数据(例如将错误的城市认作国家首都)。
Q6: 实验中的评估指标为什么选择负对数似然而不是常见的问答基准?
因为常见的问答基准测试集规模较小,测量出的性能曲线不够平滑。而 C4、Fineweb-Edu 等数据集上的负对数似然与下游性能高度相关,能够更敏锐、更稳定地捕捉到不同数据集在长时间训练中的细微差异。
Q7: 理论模型中的“正交输入”在现实中对应什么?
在理论解释中,正交输入意味着不同任务的数据特征可以通过线性变换完全区分开。在现实的预训练中,这近似对应于模型拥有足够的高维隐藏空间,将“正常网页的逻辑特征”与“乱码文本的表面特征”分配到互不干扰的维度上进行独立处理。

