A Bitter Lesson for Data Filtering
数据过滤的苦涩教训
https://arxiv.org/pdf/2605.19407
摘要
我们通过新的扩展研究来探究大型模型预训练中的数据筛选问题,重点关注高计算、数据稀缺的场景。尽管有一种普遍看法认为筛选数据以仅包含高质量信息至关重要,但我们的实验表明,在拥有足够计算资源的情况下,最佳的数据筛选策略就是不进行任何筛选。我们发现,经过充分训练的大型参数模型不仅能容忍低质量和干扰性数据,而且实际上还能从名义上的“差”数据中获益。
1 引言
为语言模型选择预训练数据的标准方法是对来自Common Crawl(CC)[Common Crawl, 2024]等来源的文本进行筛选。已有大量文献记载,在计算资源受限的情况下(即只能使用CC的子集进行训练时),不同的数据选择策略会对模型性能产生重大影响。这很直观:在其他条件相同的情况下,用“更高质量”的数据进行训练似乎是理所当然的。因此,大量研究致力于解决数据选择问题,目标是找到用于预训练语言模型的最佳子集[Albalak et al., 2024, Li et al., 2025a]。
然而,大规模筛选消融实验不仅依赖于经验且成本高昂,而且筛选会移除数据,这与要求不断增加数据量以提升模型性能的扩展趋势相悖。例如,经过重度筛选的DCLM-Baseline数据集仅保留了原始CC的约1%,得到约3.8万亿个token [Li et al., 2025a]。尽管这个数量仍然巨大,但对于一个1万亿参数的模型而言,即使考虑到重复训练(epoching)带来的收益递减[Muennighoff et al., 2025],它仍达不到Chinchilla最优的token预算。当前的趋势也是相对于Chinchilla最优值进行过度训练,这需要更多的token来训练(相对)更小的模型,以使服务在财务上可行[Sardana et al., 2025]。
我们首先检验这样一个假设:在大计算极限下,数据筛选是否真的必要。虽然大规模机器学习已转向任务无关的预训练[Raffel et al., 2023],并且有零散证据表明更大的计算预算受益于更宽松的数据筛选[Goyal et al., 2024, Muennighoff et al., 2025],但完全取消所有数据筛选将是一种极端的干预,会使用到被认为具有潜在危害的数据[Raffel et al., 2023]。我们这项工作的目标是认真对待这种极端情况,并研究(低质量)数据在Transformer预训练中的极限。
我们发现证据驳斥了数据筛选必要的假设,并且最终,现有的数据筛选方法很可能都无法比直接使用Common Crawl进行训练更好。在我们的实验中,我们对CC及其筛选版本进行等比例缩小,以保持它们相对大小不变,然后在这些不同数据集上进行预训练时,扩展计算资源规模。我们主要依靠两个手段来实现这一点:扩大模型规模(这需要每步训练更多的计算量)和增加训练步数(这最终导致重复训练)。在比较达到的最佳性能(无论计算成本如何)时,我们的主要发现是,完整数据池的表现优于我们所选的筛选后数据集。
我们的发现在两个数量级的实验扩展范围内都是稳健的,并且我们发现,只要模型足够大,从小规模数据池实验中观察到的效果就能持续显现。此外,我们发现了数据池大小、训练步数和模型规模之间存在可预测的关系,这使我们能够建立缩放定律,预测对于特定数据池大小,需要多少计算量才能使“不筛选”成为最优选择。利用这一点,我们发现,来自DCLM-Pool的包含240万亿token的Common Crawl数据池可能在计算量达到1e+30 FLOPs时就开始成为最优选择。
这些初步发现引导我们研究预训练对“垃圾”数据的鲁棒性。令人惊讶的是,足够大的模型对无关或垃圾数据具有很高的鲁棒性,并且即使从高度噪声的数据中也能提取有用信息。我们使用随机生成的字符串和词序被打乱的文档来验证这一点。虽然在低计算预算下性能会下降,但经过充分训练的大型模型能够缩小这一差距。值得注意的是,这些模型甚至能从词序被打乱的文档中受益,尽管这些文档仅保留了词袋分布(unigram distribution)。
总的来说,我们的实验表明,足够大且训练时间足够长的模型能够从完整的CC数据集中受益。虽然构造有害数据是可能的(例如,看起来与高质量数据无异但内容不实的信息),但我们并未在CC中发现大量此类数据。因此,数据筛选可能遭遇“苦涩的教训”[Sutton, 2019],即在较小规模下表现良好的人工设计筛选器,最终会被那些规模扩展更优雅的简单(甚至不筛选)方法所取代。
本文的结构如下:在第2节中,我们介绍基本的实验设置,随后在第3节进行关于筛选的实验。在第4节中,我们转向向CC数据池添加数据,并在第5节讨论数据池规模的扩展。最后,我们在第6节讨论边缘情况,并在第7节提出一个理论模型,为观察到的现象提供事后解释。
1.1 相关工作
数据受限的预训练。有几项先前的工作研究了数据受限的预训练场景。Muennighoff等人[2025]推导了将数据重复因素纳入原始Chinchilla缩放定律的缩放定律,发现在数据上训练约4个epoch后收益递减,并且加入代码数据和使用基于困惑度的更宽松筛选可以缓解数据稀缺性。然而,作者建议筛选“噪声数据集”并在C4的子集上进行训练[Raffel et al., 2023],而当前的工作则直接使用(经解析的)Common Crawl进行训练,并发现了支持不进行筛选的证据。Kim等人[2025]研究了在数据受限但计算不受限的设置下的算法改进问题。我们采用了类似的实验设置(我们从数据集中取子集,在该子集上扩展计算量,然后再扩展子集大小),但分析对象不同(数据集筛选)。
宽松的数据筛选。与我们工作最接近的是Goyal等人[2024],他们主张筛选阈值应取决于计算预算,并展示了针对视觉-语言模型的证据。他们推导了一个缩放定律来预测作为计算预算函数的筛选阈值,并得出结论“在‘大计算’条件下,‘较不激进的筛选是最好的’”,但他们没有识别出对我们工作至关重要的参数缩放交互作用,也没有展示我们的主要发现,即对于语言模型而言,不筛选可能就是最好的筛选。Fang等人[2025]通过人为重复“高质量”数据以匹配宽松筛选数据的规模来处理一个相关问题。他们发现,在低计算场景下前者可以优于后者,但本工作所研究的高计算场景在他们那里仍完全是推测性的。最后,Gao[2021]发现激进筛选可能会损害性能,并推测这遵循了古德哈特定律[1984],而Saada等人[2025]发现使用质量分类器进行筛选可能会提升下游基准测试成绩,但不会提升“高质量”数据上的验证损失。
在理论方面,Cheng等人[2024]建立了数据清洗过程的理论模型,认为在模型有足够保真度来模拟噪声数据生成机制的情况下,不清洗数据更好,而当模型不完美时,清洗数据可以产生更鲁棒的学习。这一预测与我们后续的发现相吻合。
低质量数据。近期工作中对低质量数据或故意退化数据影响模型性能的探索,为我们第4节的实验提供了动机。Allen-Zhu和Li[2024]发现在合成数据设置中,“垃圾数据”显著降低了知识容量,这与我们在足够模型规模上的发现一致。与直觉相反的是,Li等人[2025b]认为在有毒数据上进行预训练会带来更好的表征,这使得在后训练阶段更容易消除有毒行为。在研究数据结构极限方面,Sinha等人[2021]在与我们的词序打乱实验类似的词序打乱数据上进行了训练,认为掩码语言模型之所以成功,主要归功于建模了“高阶词共现统计”。最后,Ru等人[2025]在与我们第4节中随机生成文本类似的随机生成整数上训练模型,并注意到仅有小幅性能下降。
2 预备知识
2.1 实验细节
我们使用Li等人[2025a]在其DCLM-Pool数据集中提供的Common Crawl版本,该数据集包含了2023年之前的所有CC,文本通过resiliparse[Bevendorff et al., 2018]从HTML中提取。该数据集包含240万亿个GPT-NeoX[Black et al., 2022] token,我们的随机采样子集规模范围约为6.7亿到100亿个token。在进行筛选时,我们使用Li等人[2025a]提供的代码。我们没有使用任何专门的数据课程(data curricula)或数据权重。
我们的模型是Llama风格的密集Transformer,参数规模从1500万到70亿不等,使用Meta Lingua代码仓库[Videau et al., 2024]进行训练。对于每个模型,我们调整了训练步数和权重衰减,遵循先前的研究以提高数据的可重复性[Fang et al., 2025, Kim et al., 2025]。按照标准做法,我们设置学习率随模型规模衰减[Brown et al., 2020, Kaplan et al., 2020],并有一个初始调优阶段来确定衰减方式。我们在GitHub上发布了配置文件。¹
我们关注的主要指标是各种数据集上的损失(负对数似然),因为已知这与下游性能相关,并且比常见的问答基准测试(可能因其规模较小)提供更平滑的测量结果。这些数据集包括C4的英语部分[Raffel et al., 2023]、Fineweb-Edu[Penedo et al., 2024](一个面向教育文本的预训练数据集)以及Cosmopedia[Ben Allal et al., 2024](一个合成生成文本的数据集)。我们主要绘制这三个数据集上的平均损失,但每个数据集的单独趋势也是相同的。我们还在附录B中提供了常见基准测试(如ARC-Easy[Clark et al., 2018]和PIQA[Bisk et al., 2019])的结果。由于我们的实验仅使用最多100亿token的数据池规模,我们预计不会受到测试集污染的影响。
3 数据筛选
我们专注于最小的CC数据池规模(约6.7亿个token),在此规模下进行消融实验成本最低,并通过应用下述筛选器来筛选该数据池,得到五个筛选版本,所有这些筛选器均在Li等人[2025a]中使用。前三个是DCLM-Baseline初始“启发式清洗”阶段中单独应用的筛选器,单独消融它们会得到比标准版本更大、筛选更宽松的预训练数据集。第四个给出“启发式清洗”阶段的最终结果,最后一个则给出完整筛选流程的结果。
英语筛选器。该筛选器首先使用fastText分类器[Joulin et al., 2016]为文档获取英语得分,然后对该得分应用一个阈值。根据我们的tokenizer,应用此筛选器后剩余28.2%的数据。
重复度筛选器。该筛选器源自Gopher模型的数据筛选阶段,其动机是“过度重复通常与无信息内容相关”[Rae et al., 2022]。它将文档分割成不同粒度的片段,如行、段落或n-gram,并对这些片段的重复比例应用阈值。根据我们的tokenizer,应用此筛选器后剩余45.3%的数据。
停用词筛选器。该筛选器确保文档中至少出现2次以下列表中的英语停用词:“the”、“be”、“to”、“of”、“and”、“that”、“have”和“with”。根据我们的tokenizer,应用此筛选器后剩余50.4%的数据。
RefinedWeb。该筛选器由上述筛选器以及其他类似筛选器组合而成,旨在复现RefinedWeb数据集[Penedo et al., 2023]。根据我们的tokenizer,应用此筛选器后剩余13%的数据。
DCLM-Baseline。该数据集对RefinedWeb应用了去重和基于fastText分类器的质量筛选。根据我们的tokenizer,应用此筛选器后原始数据池中仅剩余2.1%的数据。我们在附录B中讨论了严重数据稀缺性的问题。
在图1中,我们展示了每个数据集在随模型规模和训练步数变化的计算量下的平均损失。每个点代表一次独立的训练运行,具有各自的学习率预热和余弦衰减学习率调度方案。总体而言,数据池(CC)在1B模型上达到了3.37的最佳损失,并且其损失在模型规模扩展方面尚未明显趋于平缓。要优于筛选后的数据集,既需要足够大的模型,也需要足够大的训练步数。虽然我们尚未将15M模型训练到损失再次上升的程度,因为即使在100B总token的训练预算下损失仍在持续下降,但数据池似乎不太可能超越前四个筛选数据集中的任何一个。当我们过渡到更大的模型时,我们观察到数据池和筛选版本之间的损失曲线出现了交叉点,并且随着模型规模的增大,这些交叉点出现得更早。
在图2中,我们使用图1中相同的运行结果,推导出了计算-性能帕累托前沿。我们使用标准的 6 N M 近似[Kaplan et al., 2020]来计算一次运行的计算量,其中 N 是总训练token数, M 是模型参数数量。随着计算量的增加,数据池从性能最差的数据集转变为性能最佳的数据集。也许令人惊讶的是,并非所有数据集都在整体帕累托前沿上占据一点:在每个给定的计算水平下,至少有两个数据集的表现优于经过重复度筛选的数据集。
总的来说,这些实验表明预训练具有惊人的韧性。即使在我们这种规模下,我们也看到数据池最终超越了所有筛选变体的性能。这可能是违反直觉的,因为我们可能会预期一些垃圾数据会损害模型性能。为了进一步探索这一现象,我们在下一节中创建人工低质量数据,以探测预训练鲁棒性的极限。
4 数据注入
随机生成的字符串。我们从小写英文字母表(a-z)中均匀采样3到8个字符来定义一个包含10,000个单词的词汇表。然后从这些词中均匀采样,并用空格字符连接它们以形成文档。
额外的打乱数据池文档。我们取未包含在我们CC子集中的额外CC文档,并随机打乱每个文档中单词的顺序。
在图3中,我们在改变模型规模和训练步数时,将这两个新数据集与CC数据池进行了比较。我们包含了不同数量的注入垃圾数据,在打乱词序的情况下注入量高达数据池大小的8倍,使得未被触及的CC文档仅剩约10%。在两种情况下,注入数据都并未使模型性能完全降至随机水平,随机水平下的交叉熵损失或负对数似然为 − log ( 1 / V ) ,其中 V V是词表大小,使用我们的tokenizer时约为10.8。
对于这两种数据集变体,都需要足够大的模型才能匹配数据池的性能。在15M模型上,无论注入文档的比例如何,损失曲线都存在分离。当我们过渡到更大的模型时,这种差距缩小了。在330M模型上,我们甚至看到,除了+800%打乱数据集之外的所有打乱数据集,在约110亿个训练token之后都超过了数据池的性能。我们尚未将+800%打乱数据集训练到超过1000亿个token,但我们预计它最终也会超过数据池的性能,因为其损失尚未明显趋于平缓。我们还预计,在更大的1B模型上,它会更早地越过这个阈值,因为其损失下降得更快。在随机生成字符串的情况下,随机数据集似乎更接近数据池的性能,但总体而言,差距仍随模型规模的增大而缩小。
我们对这些数据集之间差异的直觉是,打乱词序的数据对较小的模型来说更“令人困惑”,而随机生成的字符串则更明显来自不同的分布。随着模型规模的扩大(因此也许区分这两种分布的能力也随之增强),从打乱词序的数据中可以提取出更多信号,因为它包含了额外的、未在数据池中出现过的文档,且其词袋分布保持完整。例如,如果我们打乱句子“The capital of France is Paris”,我们仍然会看到“France”和“Paris”一起出现,这有助于模型理解两者之间可能存在某种联系。我们将+20%随机数据带来的性能提升归因于可能的正则化效应,或与自然文本的意外相似性(自然文本通常以空格分隔长度相似的单词)。
5 扩展数据池规模
我们的实验是否对数据池为整个CC的大规模预训练具有意义?尽管具有启发性,但我们670M的数据池样本与200-500万亿token的可用互联网存量[Villalobos et al., 2024]相距甚远,规模效应可能会显著改变我们的结论。
其中我们将最小获胜 N N(如果存在)作为该函数的输出。根据我们的直觉和实验证据(见图1和图3),在扫过步数时,更大的模型会带来性能提升,这作为我们三维变量空间的一个简洁表示。
6 模型退化
在我们迄今为止的所有实验中,我们都看到,无论数据分布如何,如果我们能够自由地训练一个足够大的模型足够长的时间,更多的数据都会有帮助。我们不应期望这会是机器学习中的一个普遍属性,因为大量研究致力于领域适应和分布偏移下的学习问题[Mansour et al., 2023, Awasthi et al., 2023]。相反,我们假设语言模型对协变量偏移具有高度抵抗性,而“错误标记”的数据或与目标指标的条件分布存在偏移的数据才可能是有害的。例如,我们预期,一个在足够多的“法国的首都是哥本哈根”这样的实例上训练的模型,会学到错误的法国首都。
虽然CC规模太大,无法进行穷举搜索,并且包含诸如阴谋论等非事实性内容,但我们认为这类具有实际危害的内容出现频率相对较低。我们通过对CC中与MMLU相关的文档进行语料分析,提供了一个非常简短的研究来支持这一观点[Hendrycks et al., 2021]。我们首先匹配关键词,然后提示GPT5-mini对文档进行分类,判断该文档是支持、反驳、与问题及答案相关但不持立场,还是完全无关。我们针对MMLU中诸如世界宗教等具有非常罕见关键词的科目进行了分析。我们的分析结果呈现在表1中。虽然我们的搜索确实主要找到了无关文档,或相关但不支持也不反驳的文档,但支持性文档的平均数量至少比反驳性文档高出一个数量级。在附录C中,我们发展了一些理论,从数据集的事实正确性或标记正确性的角度来分析筛选应该在何时发挥作用。
现在我们转向第4节中词序打乱文档实验中的一个分布偏移案例。我们的指标是整个序列上的平均验证损失,但我们可能会预期在文档开头token的损失上会出现分布偏移,因为我们改变的是CC中自然出现的首token分布。在预测第一个token的情况下,仅通过空前缀是无法检测文档是否被打乱的。
在图7中,我们比较了CC和+200%打乱数据集在文档开头部分的损失上的平均CC验证损失。当我们从整体平均过渡到仅第一个token的损失时,+200%打乱数据集相对于数据池的优势消失了。我们不期望这种行为会随着模型规模的增大而改变。然而,由于语言模型的大多数用例涉及的不只是几个token,我们预计这不会构成有意义的退化。
7 理论模型
我们可能会问,我们已发现的结果是否是可预测的:我们是否应该预料到它们?我们提出了两个理论模型,一个在此,另一个在附录中,它们表现出了我们所观察到的行为,这表明我们所识别的行为类型可能具有更广泛的适用性。
从启发式角度来看,我们可以假设,一旦(Transformer)模型足够大,它就可以将“坏”数据通过那些不与代表“好”数据的组件相互作用的组件传递过去,而当模型不够大时,这种情况就不会发生。我们的实验与此一致:大型模型吸收未筛选数据而不受惩罚,而较小的模型则不能。在低秩矩阵分解——最简单的单隐藏层(线性)神经网络——中,我们在总体层面上恰好看到了这种行为。
8 讨论
虽然我们已经发现,扩展计算规模似乎会使筛选变得无关紧要,但仍存在若干局限性,这些局限性为该方向的后续研究提供了自然的下一步方向。
与标准预训练的偏差。我们的设置仅限于密集Transformer模型的预训练,不使用任何数据课程、数据权重或后训练。可能存在更不稳定的架构,如混合专家模型(MoE),或训练后期阶段的现象,这些都需要对预训练数据进行更谨慎的选择。其他变化,如使用合成数据进行预训练,也可能产生影响。如果我们把合成数据仅仅视为对“高质量”数据的增强,并假设“低质量”数据确实为改进指标提供了有用信息,那么加入合成数据可能只是提高了第5节中交叉点的计算水平,因为它提供了更多有效token。然而,如果低质量数据主要起正则化作用,那么合成数据可能严格更优。
重复文档。重复文档的预期比例随子集规模的增大而增加。在我们的子集规模下,该比例很可能远小于整个CC。我们不期望我们的总体结论会发生改变,特别是当我们对数据进行重复训练(epoching)时,但这是一个可能在我们实验中不起主要作用的变量。
计算量。原始Common Crawl要优于我们测试的筛选器所需计算量很大,根据我们在图6中的预测,高达约 1 e 30 FLOPs。当计算量成为瓶颈时,我们预计筛选仍然很重要。
AI生成内容。我们预计CC中AI生成内容的比例将会增加,而在我们2023年之前的DCLM-Pool数据集中可能含量很少。目前尚不清楚这是否会产生不利影响。
事实性。我们已通过表1对CC的事实性或正确性进行了初步研究,但可能存在一些罕见的边缘情况,即在完整数据池上训练的模型会学到不准确的信息。
原文链接:https://arxiv.org/pdf/2605.19407
热门跟贴