news 2026/9/13 10:41:52

数据改进才是大模型预训练进步的主引擎

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据改进才是大模型预训练进步的主引擎

最近在整理上一代大模型的技术复盘时,我注意到一个很有意思的说法:预训练模型的持续进步,首要推动力并不是架构的又一次大改,也不是算力的单纯翻倍,而是数据质量的系统化改进。这个观点不是我的发明,它出自 Dwarkesh Patel 的研究梳理。我以前挺迷信“模型够大就会有智能”,但把几代模型公开发布的信息摆在一起看之后,不得不承认:真正拉开差距的,很多时候就是数据处理这件事本身。这篇内容我想把这件事拆开讲清楚,包括为什么数据改进会成为主引擎、具体改的是哪些环节,以及落到自己团队时应该怎么检查和复现。

1. 一个经常被低估的结论:数据改进才是预训练进步的主引擎

1.1 这个观点到底在说什么

先解释一下 Dwarkesh Patel 的这套分析到底讲了什么。他梳理了几代大模型从发布到迭代的公开技术报告,以及大量一线研究者访谈,得出了一个在圈内争议不小的判断:过去几年预训练模型的性能提升,主要贡献来自数据侧的持续改进,而不是模型架构的突破性变化。这里的“数据改进”不是单纯指把数据集变大,而是包括采集渠道扩展、清洗去重、质量过滤、去污染、数据配比调整、合成数据引入、tokenizer 优化等一整套系统性工程。

我一开始对这个判断是打问号的,毕竟过去几年的流行叙事一直是“更大的模型 + 更多算力 = 更强智能”。可当我把各代模型的架构清单摆在一起对比后,不得不承认一个事实:Transformer 的基本结构这么多年其实没有大换血,大家反复应用的更多是在归一化、位置编码、注意力形式和路由机制上的细节优化,这些改动大多只带来几个百分点的提升。而在数据侧,只是把重复文本清掉、把评测集污染片段摘掉、把代码和数学语料比例调高,带来的收益往往是跨数量级的。

这个结论用生活化的方式理解会更直观:模型架构像发动机,算力像燃油供应量,而数据像燃料本身的品质。如果你一直在加注含杂质的劣质燃料,发动机再好也跑不出标称功率;但把燃料提纯、调配好,哪怕发动机没换,动力表现也会立刻上一个台阶。预训练这几年发生的,恰恰就是“提纯燃料”这件事被越来越多团队做深做透了。

1.2 为什么架构提升的边际贡献常常被高估

我参与过不少横向对比实验,同一个架构、同一种损失函数,只改数据预处理方案,最终结果的差距经常比换一个更大的模型还要明显。有人可能会疑惑:既然数据改进这么重要,为什么论文和行业媒体上总是铺天盖地宣传架构创新?原因很简单,架构创新容易写成新闻,数据处理很难变成标题。

架构创新的传播速度还特别快。今天某篇论文放出一个新的归一化方式或注意力变体,下周可能就有开源实现,再过一个月主流训练框架都内置了。这意味着架构红利会被迅速抹平,很难形成长期壁垒。算力堆叠同样如此,算力翻一倍确实有效,但如果不配合数据策略调整,loss 曲线很快就会进入瓶颈期,继续砸钱只是在收益趋平的地方越走越慢。

数据侧的改进则完全不同。数据配比如何确定、清洗规则怎么定、合成数据该掺多少,这些细节很少被完整公开。每个团队实际摸索出的那套数据配方,就是各自的“祖传秘方”。所以当 Dwarkesh Patel 把预训练的进步归因于数据改进时,他其实是在点破行业竞争的真实逻辑:当算法和算力越来越同质化,数据的差异化水平才是真正把团队拉开差距的杠杆。

1.3 损失函数的作用:和数据改进是什么关系

这一节想顺带聊一个经常和“数据改进”混在一起讨论的问题:预训练损失函数的设计。热词里有人提到“llm 预训练 损失函数”,很多初学者会觉得换一个损失函数就等于换了一种学习方式,应该能大幅提升模型。但从实际效果看,损失函数定义的只是模型从数据里提取信号的规则,如果数据本身的噪声和重复太多,规则再精巧也是白搭。

RoBERTa 当年去掉 NSP 改成动态掩码,就是一个很好的例子。很多人把这个改动解读为“损失函数创新”,但本质上它是在让模型更充分地利用已有数据:静态掩码每次训练见到的 mask 都一样,模型在重复数据上的学习效率自然低;动态掩码每个 epoch 重新生成 mask,等于在不增加数据总量、不改变模型架构的前提下,把数据里的信息挖掘得更彻底。这说明损失函数的调整很多时候只是“数据利用效率”的一部分,真正决定模型上限的,还是数据本身的信息密度和覆盖度。

2. 数据改进具体在做哪些事:从原始网页到高质量语料

2.1 清洗与去重:信息密度的第一道关

预训练语料最底层的来源是通用爬虫,Common Crawl 这样的快照动辄几十 TB,直接扔进训练流程是行不通的。原始网页里塞满了导航栏、广告、重复模板、乱码和无关内容,信息密度低得可怕。如果语料里 30% 都是重复文本,模型就会把大量容量花在“背诵”重复内容上,真正学到的新知识极其有限。这也是为什么去重被公认为数据工程里的第一道工序。

实操上去重分成几个层级:最基础的是 URL 级去重,把同一页面的不同快照合并;然后是文档级去重,用 MinHash 或 SimHash 计算文档间的相似度,把近似重复的文档剔除;再细一点可以做段落级和 n-gram 级去重。不同层级解决的问题不同:文档级去重解决“整篇重复”,n-gram 级去重解决“碎片化重复”。常用工具包括 datasketch 做 MinHash、Spark 做大规模去重任务、pyarrow 做高效 IO。一个经验参数是:对英文通用语料,MinHash 的相似度阈值设在 0.7 到 0.8 之间比较合适,去重后语料规模通常会缩减 20% 到 50%。

2.2 去污与去噪:评测分数不能虚高

另一个权重很高但不常被写进论文的问题,是评测集污染。如果你的预训练语料里混进了公开 benchmark 的题目,训练完的模型在评测集上会表现得非常好,但一换到真实任务上立刻现原形。这个“虚高”极其危险,因为它会误导你做出错误决策——比如你以为某个方向的改动有效,实际只是靠泄露数据刷上去的分数。

处理方式是为所有公开评测集建立指纹库。具体来说,把评测集里的题目和样本做 n-gram 切分,建立 Bloom filter 或倒排索引,每次语料入库前做全量扫描,命中指纹的段落直接剔除。这个操作必须放在训练管线的最前面,因为爬虫数据是持续更新的,今天新增的评测集规模,明天就可能出现在新的网页快照中。很多团队上线后才发现评测和真实表现严重不符,返工成本极高,而排查的第一步往往就是污染检查。

2.3 质量过滤与数据配比:不给模型喂垃圾

清洗去重解决的是“重复”和“污染”,但语料里还有大量低质量文本,比如机器翻译痕迹明显的页面、纯广告文案、口水化社区帖。业界通常会用两套过滤器:一套是启发式规则,包括长度过滤、标点比例过滤、特殊字符比例过滤;另一套是质量分类器,先人工标注少量高质量和低质量样本,训练一个轻量分类器,再对全量语料打分,按阈值过滤。分类器不需要很重,fastText 或一个小 BERT 就够用,关键在标注样本要有代表性。

数据配比是一个更讲究的技术活。不同领域语料的比例直接决定模型能力结构:代码语料太少,逻辑推理和结构化能力弱;数学语料太少,符号演算和复杂推理跟不上;中文语料太少,中文指令遵循和长文本理解就差。配比不能拍脑袋定,最靠谱的方式是跑一组小模型消融实验,用不同配比训练同一规模的小模型,对比下游任务表现,再放大到完整规模。这个过程会反复迭代,因为每加入一批新数据,老配比可能就要重新调整。

2.4 合成数据与多阶段训练:从“找数据”到“造数据”

当优质自然语料接近耗尽时,合成数据成了重要补充。当前不少模型在代码、数学、指令跟随上的能力,很大程度依赖于“教师模型”生成的合成数据。用合成数据必须严格控制质量,生成的数据要经过过滤、去重、人工抽查,否则错误会被扩散进下一代模型;多轮反复蒸馏还会让模型多样性下降,甚至出现“模型坍塌”。

多阶段训练则是一种常见的数据策略:先用大规模通用语料做基础预训练,再用领域语料做继续训练,最后用高质量指令数据做对齐。这个流程的本质是把数据按难度和用途设计成“课程”,让模型在不同阶段接触不同分布的数据。相比一次性混训,多阶段训练往往收敛更稳定,下游针对性也更强。值得注意的是,每个阶段的切换时机和配比都算数据改进的一部分,同样需要通过小实验来验证。

2.5 数据改进不只属于语言模型:CV 预训练的同一逻辑

预训练数据改进这条逻辑,在计算机视觉领域也一样成立。ResNet 这类骨干网络在 ImageNet 上预训练时,ImageNet 数据集的整理质量,包括类别均衡、去重、标签清洗,直接决定了学到的特征质量。后来 Swin Transformer 这类模型在 NuImages、NuScenes 等自动驾驶数据集上做预训练时,数据集的采集规模、场景多样性、标注一致性,对下游任务效果的影响同样是决定性的。

很多做 CV 的同学以前会觉得“换 Backbone”才算创新,但实际工作中,把采样策略、数据增强、伪标签过滤做好,收益往往比换一个更大的预训练模型更稳。这说明数据改进不是 LLM 的专属话题,而是所有预训练任务的公共底层逻辑。模型越来越同质化的背景下,谁的数据处理得更干净、更有针对性,谁就能在同样的算力预算下拿到更好的预训练结果。

3. 实操现场:我如何用数据改进复现一次预训练提升

3.1 从零搭一个数据检查管线

很多朋友问数据改进到底怎么落地,我建议拿到一个预训练项目时,先别急着选模型或堆算力,花点时间把数据管线搭出来。我常用的管线大致长这样:语言识别、清洗、去重、去污、质量过滤、配比采样、tokenizer 检查。每一步都有对应的工具和检查点,我一个个说。

语言识别用 fastText 的 language identification 模型,先过滤目标语种,避免无关语言稀释训练信号。清洗阶段去掉 HTML 标签、重复段落、处理 Unicode 异常字符、统一换行符。去重阶段先做 URL 级和文档级 MinHash 去重,再按需做 n-gram 去重。去污阶段就是前面说的评测集指纹扫描,一定放在入库前。质量过滤阶段先跑规则再跑分类器打分。配比采样阶段根据目标领域决定采样权重。最后一定要检查 tokenizer:拿中文、英文、代码、数字分别测一遍,如果分词粒度太碎,模型的训练效率和下游表现都会受影响。

3.2 用一个 1 亿参数的小模型做数据消融

数据改没改对,不能靠感觉判断。我的习惯是先跑一个 1 亿参数的小模型做数据消融实验:固定模型架构和训练步数,只改数据管线里的一个变量,然后对比训练 loss、验证 loss,以及几个有代表性的下游任务分数。这样每个变量带来的影响都能单独评估,不容易被混在一起的噪音带偏。

公开案例里最经典的就是 RoBERTa。它几乎没有改动 BERT 的模型架构,真正调整的是训练数据规模、动态掩码、移除下一句预测任务,以及训练步数延长。就这么几项和数据、训练流程相关的改动,让它在 GLUE 等多个基准上全面超过了 BERT,充分说明数据侧的系统性改进被很多人严重低估。后来中文 RoBERTa 系列模型也走了类似路线,通过更干净的语料、更合理的配比和继续预训练策略,把中文理解能力拉高了一个台阶。所以当你怀疑数据有问题时,不妨先拿一个小模型把数据消融跑一遍,用事实说话。

3.3 训练中的观察点与止损判断

数据消融实验跑起来后,有几个信号值得盯紧。如果验证 loss 在某个 epoch 后开始回升,训练 loss 还在继续下降,通常是数据里的重复样本太多,模型开始过拟合高频片段。如果某个下游任务分数异常高,先别高兴,跑一遍 n-gram 指纹扫描确认有没有污染。如果 loss 曲线在某批数据换入后出现跳变,说明新数据和原数据分布差距太大,很可能是配比突变导致的,需要回退并重新调整混合比例。

我特别想强调一个止损判断:当训练 loss 长时间不降时,先检查数据,不要第一反应就是加算力或换大模型。我在多个项目里见过这种场景,团队一遇到瓶颈就开卡继续烧,最后发现只是语料里有几亿条重复文本没有去干净。把数据管线单独拉出来排查,往往能用最小的成本解决最大的问题。这条经验放到今天依然适用,而且随着模型越来越大,数据问题被放大的程度只会更夸张。

4. 常见坑位与排查技巧:数据工程最容易翻车的地方

4.1 去重过度导致能力退化

去重不是越狠越好。有些团队为了追求信息密度,把相似度阈值调得很低,结果把大量有效变体也删掉了,模型在特定领域上的知识覆盖明显下降。这个坑很隐蔽,因为整体数据量看着变“干净”了,训练 loss 可能也下降了,但下游任务迟迟不涨。

排查方法是统计去重前后的 n-gram 覆盖率和领域分布,确认关键领域没有被误伤。实操上我建议分两步去重:先用较高阈值去掉明显重复,再做一次基于关键领域的保留扫描,确保低资源语言和长尾知识不被过度清理。这样既能获得信息密度,又能保住多样性。

4.2 合成数据把模型带偏

合成数据最常见的坑是“自我蒸馏退化”。如果教师模型本身带有某种偏见或错误,合成数据会把错误放大并传给下一代模型,迭代几轮后模型能力反而下降。更麻烦的是,合成数据错误往往比较隐蔽,不是一眼能看出来的脏文本。

我在实践中发现两个快速验证方法:一是把合成数据混入真实数据,跑一个小模型实验,对比纯真实数据的基线,如果训练 loss 收敛变慢或下游任务变差,说明合成数据有问题;二是随机抽几千条合成样本做人工检查,统计明显事实错误的占比。合成数据不是不能用,而是要当成“高风险高收益”的原材料来管理,必须有过滤和抽检机制兜底。

4.3 多语种与代码语料的配比失衡

我见过不少团队只盯着英文通用语料,结果中文任务和代码任务一测就很拉胯。这类问题的根源通常是语料分类账没做好,不知道自己的数据里各类别到底占多少。建议先建一份语料分类账,按语言和类别统计 token 量,再设定目标配比,用采样权重补齐短板。

举个例子,如果中文章节只占原始语料的 3%,而你的产品目标是中文场景为主,那就得在采样时对中文语料做上采样,否则模型的中文能力永远上不来。代码语料同理,如果代码只占 5%,而你想让模型具备较强的结构化推理能力,最好把代码语料比例提到 15% 甚至更高。这个比例没有绝对标准,要靠小实验验证,但它必须是数据团队日常关注的指标之一。

4.4 评测集污染防不胜防

评测集污染的隐蔽性比很多人想象得高。普通 n-gram 匹配只能防住“一字不改”的泄露,换一种同义改写的方式,照样能骗过简单过滤器。更稳妥的长期做法是建立动态评测集黑名单机制:凡是进入预训练语料的网络快照,都要和最新版评测集做一次向量相似度级别的检查,而不只是字面匹配。

同时要定期更新评测集,让旧污染自动失效。这个机制维护起来确实费人力,但它能避免“看起来很强、上线就废”的尴尬。如果你负责的模型会被公开评测,污染问题不是一个可以靠“我们没故意加”带过的细节,而是必须用工程手段主动防御的隐患。

5. 对个人与团队的影响:数据思维正在改变预训练格局

5.1 数据岗位价值上升:预训练和后训练哪个薪资高

数据改进地位上升,最直观的影响是行业对数据工程、数据飞轮相关岗位的重视程度大幅提升。以前讨论“预训练和后训练哪个薪资高”,很多人会脱口而出“后训练”,因为 RLHF、SFT 和推理优化离业务更近,效果也更直接。但从数据视角看,后训练本身极度依赖高质量的人类偏好数据和指令数据,而这些数据的生产、清洗、迭代,本质上依然是一场数据工程。

换句话说,预训练和后训练不是两个割裂的世界,它们共享同一套数据底层逻辑。随着数据改进的价值被更多人认可,懂得数据管线、数据质量评估、数据配比和合成数据策略的人才,在薪资上开始追赶甚至超过单纯做模型训练的工程师。我认为未来两三年,数据基础设施相关岗位的稀缺度只会更高,因为每个实验室都意识到“数据飞轮”才是长期竞争力。

5.2 从模型中心到数据中心:机器人等领域的同构逻辑

数据改进的逻辑并不只属于语言模型领域。机器人领域同样有预训练和后训练,而且更依赖高质量的数据采集。无论是真实遥操作数据、仿真环境数据,还是多模态传感器数据,模型能不能学会泛化的操作技能,很大程度取决于数据集的覆盖度、清洁度和任务多样性。最近很多工作强调“预训练、后训练”在机器人技能学习中的应用,但把数据换成低质量、低覆盖的版本,效果立刻能感受到差距。

这也是为什么机器人大模型团队都在疯狂搭建数据采集和回流管线。真实操作数据昂贵,仿真数据有 sim-to-real 差距,如何清洗、标注、配比、增强,每一步都是数据工程问题。可以说,谁先建立起高效的数据采集、清洗、标注、回流飞轮,谁就能在具身智能这条赛道上拉开身位。

5.3 给从业者的建议:先把数据做扎实,再谈模型增长

如果你正在做预训练相关的工作,我的统一建议是:先把数据做扎实,再谈模型增长。换一个更大的模型可能只是改几个启动参数,把数据质量从 70 分提到 90 分,往往需要数周甚至数月的脏活累活。可正是这些脏活累活,决定了模型最终能走多远。

预算有限的团队,最划算的第一笔投入是搭一个可视化的数据质量看板,把语料来源、清洗规则、去重比例、污染检出率、配比现状全部列出来。这个看板能帮你随时回答两个关键问题:我手里的数据到底干不干净?我的配比离目标还有多远?把这两个问题答清楚,你就已经领先不少直接开训的团队了。

我个人的体会是,预训练技术的竞争正在从“模型军备竞赛”慢慢转向“数据飞轮竞赛”。以前我接到一个新任务,第一反应是“要不要换更强的开源模型”,现在我的第一反应变成了“先看看手里的数据干不干净、分布对不对”。在好几个项目里,花两周清洗和重配数据带来的提升,比租一批卡再硬训一个大模型要明显得多。所以如果你也在预训练这条路上,我建议你先别急着追新架构,认真做一次只改动数据的小规模消融实验。亲自跑完一轮之后,你就会明白为什么那么多资深团队会把数据工程当作最高优先级的事。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 10:41:10

Buzz 离线语音转录完整指南:免费在本地把音频转成文字

Buzz 离线语音转录完整指南:免费在本地把音频转成文字 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz Buzz 是一款…

作者头像 李华
网站建设 2026/9/13 10:39:48

程序员面试算法题备战指南:从Hot 100到外包OD全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 10:39:44

STM32与Emm-V4.2闭环步进驱动速度控制及PI整定指南

简介:这份STM32步进电机控制资源包,聚焦Emm-V4.2驱动器的闭环与速度控制,面向嵌入式电机控制开发者及自动化相关专业学习者,解决高速高负载下步进电机精准定位与平稳调速问题。压缩包共163个文件,大小仅6.88MB&#xf…

作者头像 李华
网站建设 2026/9/13 10:39:08

Surely Vue Table 水印去除实战:CSS与JS双层绕过方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 10:38:26

Keil #20错误排查:头文件包含顺序与条件编译导致的符号未定义

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华