阶段 5 · 大模型怎么炼成

数据工程:决定模型上限的
其实是看不见的那一半

《MoE 混合专家》讲"每次只用一部分脑子",但没问它喂进去的几万亿 token 怎么来的。 这一章走一遍真实的清洗流水线。

1

先接受一个不太舒服的事实

你改的东西通常带来的效果改起来多难
数据质量 极大。同一架构、同一规模,换个数据集能差出几个档次的评测分数 很难。要写规则、训练分类器、反复试
数据配比 很大。某些能力的"会不会"直接由配比决定 难。要在小规模上做大量消融实验(把某个设置调高调低、重训着看哪项能力变差)
模型规模 可预测(见缩放定律)。但边际收益递减且在变贵 极其贵
优化器 / 激活函数 很小。换个优化器通常只有个位数百分比的影响 容易

模型架构决定的是"天花板在哪",而数据决定的是"你能不能爬到那"。 一个架构稍差但数据干净的模型,几乎总是打败一个架构先进但数据脏的模型。 现实是:绝大多数人在调模型,很少有人认真调数据。

2

原始数据有多脏

大模型的原料主要是 Common Crawl——一个爬遍全网的项目,每月产出几十 TB(1 TB ≈ 1000 GB)的网页。 但它的原始形态几乎不可用。下面这些是真实存在的典型垃圾:

垃圾类型长什么样为什么有害
模板网页 "版权所有 © 2024 某某公司 | 隐私政策 | 联系我们" 出现在几百万个页面上 模型当高频"知识"背下来,浪费容量
导航菜单 / 广告 "首页 新闻 体育 财经 娱乐 科技 房产 汽车" 没有语法结构,污染语言模型
完全重复的文档 同一个新闻稿被 500 个网站转载 见第 4 节——这是最危险的一类
乱码 / 解析失败 编码错误、JS 代码残留、二进制被当文本 纯噪声,学不到东西还占算力
垃圾内容和有害文本 SEO 堆砌(为骗搜索排名硬塞关键词)、色情、暴力、仇恨言论 直接影响模型的行为和安全性
有问题的"质量" 机器翻译腔、AI 生成的凑数文章 语法正确但内容空洞,拉低表达质量
3

清洗流水线

下面生成 600 篇"网页",每一篇都真的算出这些指标:

平均词长 非字母数字字符占比 重复 4-gram 占比 与其他文档的最大相似度

4-gram 就是连续的 4 个词。最后一关的 Jaccard 相似度 = 两篇文档的 4-gram 集合里, 交集占并集的比例——第 4 关的阈值就定在它上面。

这套流水线像淘金:筛掉泥沙,留下金粒。 过滤规则就是那张筛网——但金粒不是天生的,是筛网先定下了「什么样算金」。 这个类比管到「规则写死进管道」为止:真金的成色客观,文本的「好」不是。

💡 整章都藏在这张图里

四道关卡把 600 篇砍到 168 篇。每道规则砍掉谁,就是这一章后面所有取舍的来源。

拖动滑块改阈值,看每一关能砍掉多少。

互动 · 数据清洗漏斗

原始文档
—
最终保留
—
保留率
—

4

去重为什么是最关键的一步

四道关卡里,去重排第一。原因不是"浪费算力",而是一个更隐蔽的机制。

互动 · 重复数据 → 记忆化

💡 为什么重复会导致逐字背诵

模型的目标是最小化平均损失。一条内容重复出现 N 次,背下它的收益就被放大 N 倍; 重复到一定程度,背诵就成了损失函数下的最优解。 后果:模型会原样吐出训练数据,带来隐私和版权风险。

去重层级做法能抓到什么
文档级精确去重对整篇文档算哈希(任意长的文本压成一个固定编号),只留一份 完全相同的转载
文档级近似去重 MinHash(一组哈希函数各取最小值,把一篇文档压成 k 个数的指纹),按 Jaccard 相似度判重 改了几个广告位的转载(最常见,也最需要这一步)
段落级去重把文档切成段落再判重 模板文字、免责声明、导航栏
子串去重 / 去污染 在评测集上做 n-gram 匹配(n-gram = 连续 n 个词的片段),把命中的训练样本删掉 评测集污染(考试题混进了训练材料,分数就成了背答案)。不做这一步,你的评测分数可能是假的
5

配比:怎么混,决定模型会什么

清洗完之后,还有一步:不同来源按什么比例混。 这里用英文网页、中文网页、代码三种把结构讲清楚。 第四根推理能力条不是第四个滑块,是由这三个占比推出来的。

互动 · 在一个固定的 token 预算下分配来源

⚠️ 这里有一个真实的反直觉现象

总量固定时,给一种语言加量,就等于从别的语言那里抠走一份。
提高中文占比,就必然压低英文和代码的占比。 而中文能力的提升往往会依赖于英文和代码里学到的推理能力(一步步想,不是跑一遍模型)——这是"跨语言迁移"。

📌 说明

上面的互动是简化的参数模型:演示"收益递减 + 跨域干扰"这两个结构,数值不代表任何具体模型。

M

数学 · 怎么在几 PB 里找出重复

第 4 节说「按 Jaccard 相似度判重」。但真做起来会撞上一面墙: 几 PB 的网页,两两相比是 1018 次比较,宇宙毁灭也算不完。 工业界的办法:把每篇文档压成 k 个数字——MinHash 指纹——以后只比这 k 个数。 真正省掉两两比较的是 LSH:指纹相近的分进同一个桶,只桶内互比。

互动 · 两篇文档的指纹逐行比对(亮行 = 撞上)

真实相似度 J
—
指纹估计 M / k
—
误差量级 ±1/√k
—

公式 · Jaccard 相似度,和它的 MinHash 估计

把鼠标移到公式里的 J 上——第 3 节管道上那个「④ 近似重复相似度上限(Jaccard)」滑块会亮起来。

微型图解 · 为什么「最小值撞上」的概率正好是 J(对两篇文档的 4-gram 集合各取哈希最小值)

🎬 自己验一遍

把签名长度 k 拖到最小(8),再去拖真实相似度—— 估计值会抖得厉害,有时候差十几个百分点。
再把 k 拖到 32,估计值就基本贴着真实值了: 误差按 1/√k 缩小。这是整章里最便宜的一次「用算力换精度」。
多存几十个数字,省掉 1018 次比较——这就是几 PB 数据能被去重的原因。

6

清洗的代价:每条规则都会误伤

图 · 过滤太狠,会误伤谁

做法想要的代价什么时候真的会痛 → 换什么
质量分类器过滤 去掉低质量文本 分类器在已被筛过的数据上训,会系统性删掉方言、口语、少数群体语言 要覆盖口语、低资源语言(网上文本很少的语言)→ 留一份不过滤的语料
去重太激进 去掉冗余 法律条文、经典引用、常见代码模板这类合理重复也被删 模板 / 法条很多 → 用段落级、子串级去重
只保留"高质量" 提升平均质量 "高质量"偏向书面、出版过的文本,模型丧失口语和真实对话能力 要会聊天 → 对话、论坛语料单独留
安全过滤 去掉有害内容 过度过滤会让模型对正常话题也回避(医学、法律、冲突情节的小说) 要敢谈正当的敏感话题 → 分层过滤
合成数据 补足数据缺口 反复用模型生成的数据训新模型会"模型崩溃":分布收窄、错误被放大 真数据见底了 → 合成与真实数据搭配用

清洗没有最优解,只有取舍:每条规则都用一部分数据的数量换整体平均质量——被删掉的可能正是模型还不会的世界。

7

从数据到模型

阶段这一章做的事下一章做什么
数据 清洗、去重、配比 → 得到几万亿干净 token —
预训练 提供原料 用这些 token 做"预测下一个词",得到一个"会接话"的基座模型
对齐 提供少量高质量示范 把"会接话"调成"会听话"(见《训练三阶段总览》)

一个现代大模型的预训练数据量约 1013 个 token, 按每 token 4 个字符算就是 40 万亿个字符;一个人一辈子读的书只有 109 个字符量级。

图 · 预训练读过的量,要读约 4 万辈子

8

小结

整条清洗管道背后只有一个立场: “世界应该长什么样”是我们替模型定下的,不是数据自己决定的。

它对应哪条线 ② 没有免费午餐 —— 必须有归纳偏置: “什么算好文本”没有普适答案,只能硬塞一套假设
一句话 用“删掉一部分数据”换“剩下的数据里好文本的比例更高”—— 把“什么算干净”这个判断写死进管道。
它牺牲了什么 牺牲了数量与长尾覆盖。去重、质量过滤都会误杀: 被删掉的方言、少数语言、专业领域,就是模型永远学不会的那个世界。
🎬 自己验一遍

回到第 5 节那张图:把「代码占比」滑块从 0.30 拖到 0.02,再拖回 0.50, 右侧那根“推理能力”条会跟着一起变。这就是「配比是硬编码的归纳偏置」—— 你拖的不是数据,是替模型决定“以后该会什么”。

它在暗线里站在哪

其余暗线本章没有特别的话。

暗线这一章的回答
A 信息流动 形状一路缩水、变干净:Common Crawl 原始网页(TB 级、带 HTML) → 纯文本 → 四道漏斗 → 一长串 token:每一步都在减条数、增单位质量。
C 参数账本 GPT-3 约 3000 亿 token,Llama 2 是 2 万亿,今天前沿模型向 1013 走; C4(T5 用的数据集)从 Common Crawl 清洗出约 750 GB;RefinedWeb(Falcon 用的数据集)过滤出 5 万亿 token、公开其中 6000 亿。
D 跑在什么上 这一关不是算力受限,是 I/O 受限(瓶颈在读写,不在计算):清洗里几乎没有矩阵乘。 MinHash 压成指纹、LSH 只比桶内那一小撮,省下的都是磁盘读写。 完整账在 《硬件与算力账本》。
🎯 前后钩子

它接住了《MoE 混合专家》的什么:MoE 省的是算力,参数一个没少——参数再多,也得靠这堆 token 喂满。

它给下一章留了什么:原料就绪,才轮到 《训练三阶段总览》用这些 token 做“预测下一个词”。

一句话带走数据工程

清洗四关(长度 / 符号 / 4-gram 重复度 / 近似去重)里,去重最关键: 重复会把"背诵"变成损失函数下的最优解,也带来隐私和版权风险。
而清洗和配比都没有最优解,只有取舍——所以每加一条规则,都要问“它误伤了谁”。

9

拓展阅读

上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。

📄 这一章的说法从哪来

💻 工业界怎么写

∑ 更严格的形式