41 KiB
数据工程与预训练配方研究账本
状态:第一轮证据框架
研究截止:2026-07-29
课程位置:专题 05「数据工程与预训练配方」
锚点:Kimi K3 §3、Kimi K2 §2.2 / §2.5、DeepSeek LLM / Math / V2 / V3 / V4
目标:让读者从“一份网页”一路追到“一个进入梯度更新的训练 Token”,同时理解去重、混合、改写、Tokenizer、Packing、课程和审计如何共同决定 Token 的学习价值。
原则:P0 论文 / 正式技术报告优先;P1 作者数据卡 / 实现用于补充;摘要核验只支持摘要中的结论;Grok 只提供 discovery leads。
0. 本章先拆掉三个误区
误区一:预训练数据就是“下载很多文本”
原始网页不是训练样本。它至少要经过:
来源与权限
→ 获取与版本化
→ 正文 / 代码 / 表格 / OCR 解析
→ 语言与领域识别
→ 质量、安全、隐私过滤
→ exact / fuzzy / semantic 去重
→ benchmark 污染隔离
→ domain mixture 与采样
→ 改写 / 翻译 / FIM 等变换
→ Tokenizer
→ 文档 packing 与 attention mask
→ batch / curriculum / learning-rate schedule
→ 训练后审计
每个箭头都可能提升信号密度,也可能误删长尾、引入偏差、破坏文档结构或隐藏来源。
误区二:一个 Token 就是固定价值单位
训练 FLOPs 大致按“处理了多少 Token”记账,但学习价值不同:
- 完全重复的页面可能几乎只增加记忆;
- 同一事实的忠实改写可能增加语言表面覆盖;
- 错误改写会把错误放大成更多 Token;
- 一个完整代码文件与被截断的碎片即使 Token 数相同,监督结构不同;
- 数学解答、网页模板、OCR 噪声和多模态坐标 Token 的目标也不同。
因此 Scaling Laws 里的 D 是算术账;本章解释怎样把 D 拆成来源、唯一性、质量、领域、结构与课程。
误区三:“高质量数据”有一个万能分数
没有。质量至少包含:
- 可解析性与语言连贯;
- 信息密度与教育价值;
- 事实 / 代码 / 数学正确性;
- 来源、许可、隐私和安全;
- 文档完整性与上下文结构;
- 与目标领域的相关性;
- 相对现有 corpus 的新颖性;
- 不污染独立评测;
- 在给定模型、阶段与预算下的实际学习价值。
这些目标会冲突。过滤更激进可能让平均文本更“像教科书”,同时损失方言、论坛经验、少数文化和困难反例。
一句话总纲:
数据工程不是把垃圾删光,而是在可追溯约束下,为一个明确模型、预算与能力目标安排最有价值的学习经历。
1. 十二张不能混在一起的账
| 账本 | 核心问题 | 最小可审计字段 | 常见失败 |
|---|---|---|---|
| L1 来源与治理 | 从哪里来,谁允许怎样使用 | URL / dataset id、抓取时间、许可、robots、地域、版本 | 只写“公开互联网”,来源不可追 |
| L2 提取与解析 | 机器读到的是否还是原文档 | MIME、parser 版本、正文率、结构检查、OCR 置信度 | 导航栏、乱码、PDF 双栏顺序进入语料 |
| L3 语言与领域 | 属于什么语言和知识域 | language / domain label、置信度、多标签 | 混语文档被粗暴丢弃,长尾语言消失 |
| L4 质量与安全 | 为什么保留或删除 | 规则触发、分类器版本、阈值、人工标注协议 | 用模型偏好循环定义“高质量” |
| L5 唯一性 | 与已有数据重复多少 | exact hash、shingle、MinHash、embedding、cluster id | 模板和事实重复被当成同一种重复 |
| L6 污染与隐私 | 是否泄露评测、个人或秘密 | benchmark version、match type、PII / secret detector | 只查 exact match,漏掉答案改写 |
| L7 混合与采样 | 每个域被看多少次 | source weight、temperature、epoch、upsampling | 小而重要的域被网页体量淹没 |
| L8 数据变换 | 原文怎样被改写或重排 | transform id、teacher、prompt、source link、verifier | 合成文本失去 lineage,错误被扩增 |
| L9 Tokenizer | 相同字节变成多少学习步 | vocab、normalizer、pretokenizer、compression / BPB | 跨 tokenizer 用 perplexity 比“质量” |
| L10 Packing 与 mask | 哪些 Token 在同一序列中互相可见 | document boundary、FIM、mask、truncation | 文档跨界泄漏或大量尾部被截断 |
| L11 课程与配方 | 数据何时、以何种长度进入 | token range、LR、batch、context、mixture phase | 把总 Token 当均匀的一次训练 |
| L12 价值与反馈 | 哪些样本真正改善目标 | proxy / target model、validation slices、influence | 在小代理上最优,放大后失效 |
任何“数据规模”“保留率”“去重率”都必须先说明属于哪张账、按什么单位计算。
2. 从网页到梯度:完整流水线
2.1 来源与快照:先保留“它从哪里来”
最低要求:
- 稳定 source id,而不仅是下载后的文件名;
- URL、时间戳、Common Crawl dump / 仓库 commit / 数据集版本;
- 获取方式与使用条件;
- 原始对象哈希;
- 处理 lineage:每一步输入、输出、配置和代码版本;
- 删除请求、许可变化和数据修正能反向定位。
为什么版本重要:
- 网页会更新或消失;
- benchmark 会增加新题;
- 代码仓库历史包含之后泄露的测试;
- 同名开放数据集可能有多个清洗版本;
- 模型发布后,互联网上会出现大量模型生成内容。
课程边界:技术报告写“open-source collections + in-house pipelines”不等于公开了 source-by-source 许可与权利链。
2.2 提取与解析:先判断“文档还完整吗”
文本网页常见噪声:
- 导航、cookie banner、推荐栏、评论模板;
- 复制站、SEO 页、自动聚合;
- 不可见文本、编码破损、JavaScript 占位;
- 页面标题与正文错配;
- 列表、表格、公式顺序丢失。
代码数据额外需要:
- 文件类型、仓库级结构、依赖关系;
- generated / vendored / minified code 识别;
- license、secret、credential 扫描;
- commit 与文件去重不能只做行级字符串比较。
PDF / OCR / 多模态额外需要:
- 双栏阅读顺序、页眉页脚、公式与图注对应;
- 图片与周围文本的配对;
- OCR bbox 与坐标系;
- 视频帧、字幕、镜头与时间戳一致性。
K3 §3.4 对长文档明确加入 structural validation,因为 binary blobs、truncated files 与 invalid machine-generated logs 即使很长也不是长上下文监督。
2.3 语言与领域:分类不是身份判决
语言识别至少要区分:
- 文档主语言;
- 段落 / 句子级混语;
- 代码中的自然语言;
- 音译、方言与低资源语言;
- OCR 导致的伪语言。
领域分类最好多标签:
一篇 Jupyter 教程
= English + Code + Mathematics + Knowledge + Programmatic Visual
粗粒度单标签会把真正有价值的跨域文档塞进一个桶,随后 mixture 无法表达它的多重作用。
2.4 质量过滤:规则、分类器与消融各做什么
规则适合可解释硬故障:
- 字符 / 标点异常;
- 重复行、极端短文、乱码;
- HTML / code 比例不合理;
- 成人、恶意软件或明确 PII 模式;
- 无效文件结构。
分类器适合软判断:
- 连贯性、教育价值、专业程度;
- 是否像参考答案 / 教程;
- 是否由模板批量生成;
- 领域相关性。
小模型消融回答更接近最终问题:
- 同预算下,过滤版本 A / B 对 held-out loss 和任务切片有何影响;
- 哪些语言 / 领域收益,哪些被伤害;
- 结论是否随模型尺度、Token 预算和 curriculum 改变。
K3 §3.1 的 domain-specific sampling rate 就由 smaller-model ablation 决定;报告未公开全部候选配比、阈值和消融表,所以课程不得补造最终 mixture。
3. 去重:不是一个按钮,而是三类近邻问题
3.1 Exact dedup
典型做法:
- 对规范化文档或段落做 cryptographic hash;
- 完全相同只保留一个 canonical item;
- 记录 duplicate cluster,而不是直接让其他来源消失。
它擅长:
- 镜像、重复抓取、同 dump 内副本;
- 完全相同代码文件;
- 重复 benchmark 文件。
它漏掉:
- 页眉 / 日期不同的复制文;
- 空格、标点、HTML 包裹变化;
- 截断或拼接版本;
- 语义相同的改写。
3.2 Fuzzy lexical dedup
常见做法:
- 文档变成 word / byte shingles;
- 计算 MinHash signature;
- 用 LSH 找候选近邻;
- 对候选计算 Jaccard 等精确相似度;
- 在 cluster 中选择保留代表。
阈值降低:
- recall 增加;
- 计算和误删风险增加;
- 模板相同但正文不同的页面可能被错误合并。
Lee et al. 2021 的一手摘要与论文说明:近重复广泛存在,能造成 validation overlap 和长串记忆;去重在其设置中减少记忆、缩短训练并改善评估。但这不证明“删除越多越好”。
3.3 Semantic dedup
流程:
- 用 embedding 表示文档;
- 近邻搜索 / clustering;
- 删除或降权语义高度相似样本。
它能找到:
- 表面词不同的复述;
- 模板变化后的同内容;
- 跨来源的高语义重合。
它也可能误伤:
- 同一主题下不同立场;
- 数学题的相似题干但不同条件;
- 代码中相似结构但不同 bug;
- 多语言互译所保留的语言能力;
- 稀有文化表达。
SemDeDup、D4 与 SoftDedup 提供三种不同哲学:
- SemDeDup:在表示空间删除语义重复;
- D4:先去重,再主动保留多样性;
- SoftDedup:不硬删全部常见片段,而按频率降低权重。
三者的作者报告收益来自不同数据、模型与评测,不能拼成统一排名。
3.4 DeepSeek LLM 的全局去重案例
DeepSeek LLM §2.1 将 pipeline 明确拆成:
deduplication → filtering → remixing
其 Table 1 按 Common Crawl dump 数报告文档去重率:
| dump 数 | 1 | 2 | 6 | 12 | 16 | 22 | 41 | 91 |
|---|---|---|---|---|---|---|---|---|
| 去重率(%) | 22.2 | 46.7 | 55.7 | 69.9 | 75.7 | 76.3 | 81.6 | 89.8 |
正确解释:
- 跨 91 个 dump 能发现大量跨时间快照重复;
89.8%是该报告对应 pipeline 的文档去重率;- 不是说 89.8% 的互联网“没有价值”;
- 不是 Token 比例、字节比例或 universal Common Crawl 常数;
- 全局去重还需要决定 cluster 中保留哪个版本。
这是 DeepSeek 数据工程最值得亮点讲的早期节点:先扩大比较范围,才能看见单 dump 内不可见的重复。
4. 污染、记忆与隐私:三件相关但不同的事
4.1 Benchmark contamination
至少分:
- text contamination:题干 / 上下文出现;
- ground-truth contamination:标签、答案或标准解出现;
- format contamination:同模板大量出现;
- semantic contamination:改写、翻译、答案解释出现;
- temporal contamination:数据快照晚于 benchmark / 评测截止。
检查顺序:
- exact id / hash;
- n-gram / shingle overlap;
- normalized answer match;
- embedding / semantic retrieval;
- 人工检查高风险簇;
- 训练前隔离;
- 评测报告披露匹配定义与阈值。
n-gram 查不到不等于未污染。2024 contamination 研究强调 text overlap 与 ground-truth overlap 对评测的影响不同。
4.2 Memorization
记忆不是只有“会背 benchmark”:
- 常见短语的统计学习;
- 训练串的逐字复现;
- 被 prompt 触发的稀有长串;
- 个体 PII、联系方式或密钥;
- 代码许可证文本与实现复现。
Carlini et al. 2020 从 GPT-2 中抽取出大量逐字训练片段并包含 PII;实验说明即便单文档序列也可能被提取,且其设置下更大模型更易受影响。它是风险证据,不是所有模型、所有数据的固定泄露率。
4.3 合法可取不等于适合训练或适合发布
至少要把以下问题分开:
- 能否访问;
- 能否复制;
- 能否用于模型训练;
- 能否再分发原始 / 处理数据;
- 能否发布权重;
- 是否包含个人敏感信息;
- 是否符合地区与组织政策;
- 删除或权利主张如何传递到派生物。
本课程不把 license 名称简化成绿 / 红灯;应在数据卡中记录具体条款和不确定性。
5. Mixture:总量之外的能力配方
设 domain i 的采样权重为 w_i:
Σ w_i = 1
seen_tokens_i = total_tokens × w_i
effective_epochs_i = seen_tokens_i / unique_tokens_i
同样 15.5T Token,以下情况完全不同:
- 四域均匀;
- Web 占绝大多数;
- Math / Code 小语料高倍率 upsample;
- 长文档只在 cooldown 集中进入;
- synthetic rephrase 与 raw source 同时出现。
5.1 手工 mixture
优点:
- 可加入产品和治理约束;
- 重要小域不会被体量淹没;
- 易解释。
风险:
- 大量昂贵消融;
- 权重随模型尺度变化;
- 平均 benchmark 可能掩盖退化域。
5.2 温度采样
可用:
p_i ∝ n_i^α
α = 1接近按原始体量;α < 1抬高小域;- 它只改变采样概率,不自动判断小域质量。
5.3 DoReMi
DoReMi 用小代理模型学习对 worst-group excess loss 有利的 domain weights,再把权重迁移到更大模型。作者摘要报告:
- 280M proxy 学习 Pile domain weights;
- 权重用于 8B 模型,相差约 30×;
- 其设置中平均 few-shot 提升 6.5 个百分点;
- 达到 baseline accuracy 的训练步数减少约 2.6×。
边界:
- 目标是指定 validation domains;
- proxy-to-target transfer 不是无条件成立;
- domain 内部质量和未知新域仍需另做账。
5.4 DCLM 与可比较数据实验
DCLM 建立统一的 240T-token candidate pool、模型尺度和 53 项评测。作者摘要中,DCLM-Baseline:
- 7B 模型训练 2.6T Token;
- 5-shot MMLU 64%;
- 比 MAP-Neo 高 6.6 个百分点;
- 达到该结果使用少 40% 计算。
这些数字只适用于 DCLM 协议。它的重要性在于把“数据 pipeline 更好”放进统一训练预算,而不是宣布一个永久最优过滤器。
5.5 数据价值是模型和阶段相关的
MATES、Group-MATES、JEST 等路线试图用模型状态估计样本 / group 的训练价值。
必须记录:
- 谁计算 influence:当前模型、proxy 还是外部 encoder;
- 目标 validation set 是什么;
- selection 多久更新;
- 额外选择成本是否计入;
- 是否牺牲未进入目标集的语言 / 领域;
- 小模型得出的排序能否迁移。
“难样本”“高 loss 样本”“高质量样本”不是同义词:高 loss 也可能只是噪声或错标。
6. 改写、重复与合成:Token utility 的三条路
6.1 原文重复
优势:
- 成本低;
- 保持事实与来源形式;
- 小数据域能被看到更多次。
风险:
- 边际收益下降;
- 逐字记忆与过拟合;
- 不增加表达表面;
- 错误也被原样重复。
6.2 忠实改写
理想目标:
事实 / 推理结构保持
+ 表达、视角、组织变化
+ lineage 保持
- hallucination
- teacher style collapse
WRAP 作者摘要在其 C4 设置中报告约 3× 预训练速度、Pile 子集 perplexity 平均超过 10% 改善、13 个 zero-shot QA 平均超过 2% 改善。课程必须注明这些是作者在指定模型 / 数据 / 预算下的结果。
6.3 Kimi K2 的 rephrasing pipeline
知识数据:
- style- and perspective-diverse prompting;
- 长文档分 chunk;
- 前文作为上下文,autoregressive 逐块改写;
- 拼回完整文档;
- 与源文做 fidelity verification。
K2 Table 1 的早期 checkpoint / SimpleQA 对照:
| 数据策略 | 改写次数 | epoch | SimpleQA |
|---|---|---|---|
| raw wiki-text | 0 | 10 | 23.76 |
| 改写一次再重复 | 1 | 10 | 27.39 |
| 十种改写各一遍 | 10 | 1 | 28.94 |
必须同时讲的边界:
- 这是三个组合条件,不是只改变一个变量的完整因果分解;
- 指标只有 SimpleQA;
- 报告说生产扩展到其他大 corpus 后,每个 corpus 最多改写两次;
- 表中
10 rephrases不等于生产 mixture; - 不能推出改写次数越多越好。
数学数据:
- 改写为 learning-note style,沿用 SwallowMath 思路;
- 将其他语言的高质量数学材料翻译为英文;
- K2 自己承认 factual accuracy、hallucination、toxicity 与大规模扩展仍是开放问题。
K2 总语料:
- 15.5T Token;
- Web Text、Code、Mathematics、Knowledge 四个主域;
- 报告没有公开四域最终占比和 source-by-source 许可表。
6.4 Kimi K3 的继承与扩展
K3 §3.1 继续使用同四文本域,并增加 large-scale vision corpus:
- caption;
- interleaved image–text;
- OCR;
- perception;
- video;
- visual coding。
文本 pipeline:
- rule-based heuristics;
- classifier-based quality scoring;
- deduplication;
- smaller-model ablation 决定 domain sampling rate;
- Knowledge / Mathematics 继续做多样提示、chunk-wise AR 与 fidelity verification。
视觉 pipeline:
- open-source collections + in-house filtering / synthesis / dedup;
- 绝对坐标与
[0,1]归一化坐标共同监督; - code + rendered visual:SVG、3D assets、Webpage、Game、CAD。
未知项:
- 总训练 Token;
- 四文本域和各视觉域 mixture;
- synthetic / raw 比;
- 过滤阈值与保留率;
- 完整数据来源与许可映射。
因此不得把 K3 的 2.78T parameters 误写成 Token,也不得从模型参数反推数据总量。
6.5 Synthetic data 的失效路径
- teacher 的事实错误被批量复制;
- teacher 的句式变成 corpus 单一风格;
- verifier 与 teacher 共享盲点;
- 原始低资源语言被统一翻成英语;
- 答案 / benchmark 被改写后躲过 exact decontamination;
- 生成成本没有计入“数据效率”;
- 来源链在改写后断裂;
- 互联网中模型生成内容继续被下一代模型抓取,形成 feedback loop。
所以每个 synthetic item 至少需要:
source_id
transform_type
teacher_version
prompt_version
generation_time
verifier_version
fidelity / safety result
dedup cluster
7. Tokenizer:数据的计量仪也是归纳偏置
7.1 为什么不能跨 tokenizer 直接比 perplexity
PPL = exp(mean token NLL)
同一句话被切成 5 个或 12 个 Token,平均 token NLL 的分母不同。跨 tokenizer 更适合比较:
- bits per byte(BPB);
- bits per character(需谨慎语言差异);
- byte-normalized loss;
- 同 tokenizer 的 perplexity。
PALOMA 提倡固定训练顺序、细粒度 domain evaluation、去污染和 BPB,用于提高语料比较的可复现性。
7.2 DeepSeek tokenizer 谱系
DeepSeek LLM:
- BBPE;
- 预分词阻止 newline、punctuation、CJK 跨类别合并;
- 数字按 digit 拆分;
- 约 24GB multilingual corpus 训练 tokenizer;
- 100,000 conventional tokens + 15 special tokens;
- 模型实际 vocabulary padding 到 102,400。
DeepSeek-V2:
- 沿用 100K BBPE;
- 8.1T tokenized corpus;
- 报告称 Chinese Token 数约比 English 多 12%。
DeepSeek-V3:
- 128K BBPE;
- 为 multilingual compression 修改 pretokenizer 与 tokenizer data;
- 新增 punctuation + newline 合并 Token;
- 发现 multi-line prompt 的 boundary bias;
- 训练时随机拆分一部分合并 Token,增加边界变体。
DeepSeek-V4:
- 继承 V3 tokenizer、token splitting 与 FIM;
- 增加少量 context construction special tokens;
- vocabulary 仍为 128K。
这条谱系展示了一个重要方法:tokenizer trick 不是只报告压缩率,还要寻找它制造的评测 / 提示边界偏差。
8. Packing、截断、mask 与 FIM
8.1 naive packing 的问题
把文档依次塞入固定长度:
- 长文档尾部经常被截断;
- 短文档留下 padding;
- 文档边界可能被模型跨越;
- sample A 的 Token 可能注意到 sample B;
- epoch / source 统计与实际可见关系不同。
Best-fit Packing 的核心目标不是创造新 Token,而是减少 truncation、保留文档完整性并提高长度利用率。
8.2 sample-level attention mask
两种常见选择:
- packed sequence 内所有之前 Token 都可见:吞吐简单,但跨文档形成伪上下文;
- 每个 sample 内 causal,跨 sample 屏蔽:语义干净,但 mask / kernel 更复杂。
DeepSeek 报告提供清晰演化:
- V3:document packing,不做 cross-sample attention masking;
- V4:继续跨来源 pack,但改为 sample-level attention masking。
课程不能把二者都概括成“packing 保证数据完整性”而省略可见性差异。
8.3 Fill-in-the-Middle
FIM 是训练数据变换,不是新架构。PSM 示例:
<fim_begin> prefix
<fim_hole> suffix
<fim_end> middle
<eos>
FIM 论文在其设置中表明,大比例 FIM 变换可以获得补中间能力且不必牺牲标准 left-to-right 能力;实际效果依赖变换率、文档边界和 prompt 格式。
DeepSeek-V3:
- document level;
- pre-packing 阶段;
- PSM;
- rate
0.1。
V4 继承 V3 FIM。不能把 0.1 外推成所有代码 / 通用模型的最佳值。
9. Curriculum:总 Token 数背后的时间顺序
9.1 训练配方要画成多轨时间轴
至少同时画:
累计 Token
├─ learning rate
├─ global batch
├─ context length
├─ domain mixture
├─ raw / synthetic / FIM
├─ optimizer / loss coefficient
└─ dense / sparse attention stage
只给总 Token 会丢掉最重要的“什么时候学什么”。
9.2 Kimi K2
主预训练:
- context 4,096;
- MuonClip;
- WSD;
- 总计 15.5T Token;
- 500-step warmup 后,前 10T 维持
2e-4; - 后 5.5T cosine
2e-4 → 2e-5; - weight decay
0.1; - global batch 67M Token。
末期:
- learning rate
2e-5 → 7e-6; - 400B Token @ 4K;
- 60B Token @ 32K;
- YaRN 扩到 128K。
注意:报告把 15.5T corpus 与 main pretraining schedule 都写为 15.5T,末期 annealing / activation 的 460B 是否计入读者理解中的“总训练处理 Token”需要按原文阶段表述,不擅自相加成新官方数字。
9.3 Kimi K3
- 原生多模态:语言与视觉从训练开始共同优化;
- visual / textual Token 在同一 next-token prediction objective 中交错;
- Per-Head Muon + weight clipping + QB;
- cosine schedule;
- 1% linear warmup;
- weight decay
0.1; - pretraining context
8K → 64K; - cooldown context
256K → 1M; - 昂贵长序列计算集中在整体预算的小部分。
K3 长上下文数据:
- exact + fuzzy dedup;
- video frame perceptual hash;
- heuristic + classifier quality filter;
- structural validation;
- 上采样稀缺长文 / 长视频;
- permute + concatenate 文档和子任务,要求跨全上下文找分散信息。
“长度长”不等于“需要远程依赖”是这里的核心:长而局部的文档不能单独训练出百万 Token 检索 / 推理。
9.4 DeepSeek-V3
- 14.8T Token;
- math / programming ratio 高于 V2;
- multilingual 扩展到中英以外;
- 4K context 主预训练;
- 2,000 step warmup 到
2.2e-4; - 到 10T 基本恒定;
- 之后 4.3T cosine 到
2.2e-5; - final 500B:333B @
2.2e-5,167B @7.3e-6; - batch 在前 469B 从 3,072 sequences 增到 15,360;
- MTP loss weight:前 10T 为
0.3,余下 4.8T 为0.1; - context extension:32K、128K,各 1,000 steps,使用 YaRN。
这些是一个多段配方,不能被压成“14.8T @ 128K”。
9.5 DeepSeek-V4
数据:
- 基于 V3,增加多样性、质量与有效长上下文;
- 过滤批量自动生成和模板内容,以减轻 model collapse 风险;
- Math / Code 仍为核心;
- mid-training 加 agentic data;
- 扩多语言和文化长尾;
- 强调科学论文、技术报告等长文档;
- Flash 32T、Pro 33T。
课程:
4K → 16K → 64K → 1M;- Flash 前 1T Token 使用 dense attention warmup;
- 64K 阶段引入 sparse attention;
- 先短阶段 warm up sparse indexer,再进入主 sparse 训练;
- V4 公开承认训练中出现明显 instability / spike,需要额外缓解设计。
V3 的“没有不可恢复 loss spike / 无 rollback”与 V4 的公开 instability 并不矛盾:模型、架构、数据、context 与优化器都变了。课程不写成“DeepSeek 已永久解决稳定性”。
10. DeepSeek 数据工程谱系
10.1 DeepSeek LLM:把 pipeline 命名清楚
全局跨 dump 去重
→ 语言 + 语义质量过滤
→ 对欠代表领域 remix
→ multilingual BBPE
亮点:
- 91-dump global dedup 表是罕见的公开规模效应;
- 用 non-embedding FLOPs/token 做 scaling 也提醒数据 Token 与模型算术要统一口径。
未知:
- 最终各 source mixture;
- 每个 filter 的 precision / recall;
- 完整许可与 benchmark contamination 清单。
10.2 DeepSeekMath:从目标能力反推语料
构造:
- 从 deduplicated Common Crawl 约 40B HTML pages 起步;
- 用种子数学域训练 fastText classifier;
- 迭代发现相关 URL / domain;
- 做 benchmark decontamination;
- 形成 120.2B multilingual math corpus。
论文用同一 1.3B 模型比较 MathPile、OpenWebMath、Proof-Pile-2 与 DeepSeekMath corpus;表中 DeepSeekMath 在八个英 / 中数学 benchmark 的作者报告结果领先。它证明“针对目标能力的 corpus construction 可以受控比较”,但 benchmark 结果仍同时受体量和平均质量影响。
DeepSeekMath-Base 7B:
- 从 DeepSeek-Coder-Base-v1.5 7B 继续训练;
- 500B Token;
- 56% DeepSeekMath;
- 4% AlgebraicStack;
- 10% arXiv;
- 20% GitHub code;
- 10% 中英 Common Crawl 自然语言。
这份公开 mixture 特别适合教学:数学模型仍保留代码与自然语言,避免把领域继续预训练理解成“100% 数学”。
10.3 DeepSeek-V2:恢复误删数据与语言再平衡
- 沿用 DeepSeek-67B stages;
- 优化清洗,恢复被误删的好数据;
- 增加中文;
- 改进 quality filter;
- 过滤 contentious content;
- 8.1T Token;
- 中文 Token 约比英文多 12%。
附录承认价值敏感过滤在区域 benchmark 上可能造成性能代价,且人工标注者会有分歧。这个节点说明“安全 / 价值过滤”既是治理选择,也是会改变能力分布的数据变换。
10.4 DeepSeek-V3:完整性、FIM 与 tokenizer 边界
- 14.8T;
- Math / Code 提权;
- 更广 multilingual;
- 减少冗余同时保留多样性;
- best-fit document packing;
- 无 cross-sample attention mask;
- document-level PSM FIM rate 0.1;
- 128K BBPE;
- random token splitting 修复 punctuation-newline boundary bias。
10.5 DeepSeek-V4:长文、agentic 与合成生态反制
-
32T corpus;
- 过滤批量自动生成 / 模板网页;
- 强化长文档;
- agentic data 在 mid-training 引入;
- sample-level attention mask;
- 4K → 1M curriculum;
- 数据、attention sparsity 和 indexer warmup 共同分阶段。
这条谱系最值得强调的不是 Token 从 8.1T → 14.8T → 32/33T,而是问题发生了变化:
全局网页去重
→ 中英与过滤取舍
→ 代码 / 数学、文档完整性、FIM、token boundary
→ 自动生成互联网、长文档、agentic 中训与百万上下文
11. Kimi 数据工程谱系
11.1 K2:Token utility
K2 将高质量数据稀缺问题具体化为:
原文多 epoch
vs
同一知识的多表面忠实改写
贡献:
- 给出可读的 chunk-wise pipeline;
- 给出明确消融表;
- 同时披露生产中改写次数更克制;
- 主动列出 hallucination / toxicity / factuality / scalability 风险。
11.2 K3:从文本改写到原生多模态
K3 继承 K2 / K2.5 pipeline,并让:
- 文本四域;
- 视觉六类;
- programmatic code-render pair;
- multimodal coordinate;
- 长文 / 视频;
- context curriculum
进入同一 native multimodal pretraining。
K3 §3.2 的 2.5×:
- 比较 K2 / K3 fitted scaling curves;
- 指标是 held-out OOD validation loss;
- 报告说 architecture + data + training improvements 共同定义新模型族;
- 同时重新搜索 batch、LR、TPP 和 shape;
- 因而不是 rephrasing、vision data、Muon 或 cosine 任一单项收益。
K3 schedule 对照:
- cosine 与 WSD 的 peak LR、batch optimum 不同;
- 分别独立 search;
- 在各自 optimum 下 cosine 最终 loss 更低。
这提供了本章的重要实验规范:比较数据或 schedule 时,其他最优超参可能也会移动;共享一套超参可能造成假胜负。
12. 原生多模态数据:不只是“给文本模型接一个眼睛”
12.1 三种不同路线
- 冻结 LLM + 视觉 encoder + connector;
- 已预训练 LLM 上做 multimodal continued pretraining;
- 从训练开始共同优化 visual / text token。
K3 选择第三种,并用 single next-token prediction objective 学习交错 Token。
12.2 数据 mixture 决定什么
MM1 的作者报告消融指出:
- caption、interleaved image-text 与 text-only 的组合非常关键;
- image encoder、resolution、visual token 数在其研究中比 connector 设计更重要;
- 研究覆盖 dense / MoE,最大约 30B。
它与 K3 形成教学互补:
- MM1 更适合讲 data mix 的受控消融;
- K3 更适合讲 native multimodal frontier model 的完整 taxonomy 与课程;
- 两者的模型、数据、规模不同,不能直接比较指标。
12.3 Programmatic multimodal data
代码和渲染结果天然提供可验证对应:
SVG source ↔ rendered shape
HTML/CSS/JS ↔ webpage
game code ↔ frame / interaction
CAD program ↔ schematic
3D asset description ↔ rendering
潜力:
- 文字 / 代码 / 像素之间结构明确;
- 可自动生成变化;
- 可做坐标、布局、因果编辑监督。
风险:
- renderer bug 与环境差异;
- 样式模板单一;
- 代码泄漏来源 / license;
- 渲染正确不等于任务语义正确;
- synthetic distribution 与真实界面差异。
13. 四个课程实验室的证据设计
Lab A:Pipeline Ledger
教学问题:100 万文档怎样逐步变成训练 Token?
控制项:
- parse pass;
- language / domain;
- quality threshold;
- PII / license quarantine;
- exact / fuzzy dedup;
- contamination exclusion。
输出必须分开:
- document;
- byte;
- unique Token;
- language / domain retention;
- unknown provenance;
- quarantine。
禁止:
- 把“删得更多”画成天然更绿;
- 把 synthetic expansion 混入 unique source Token;
- 用单一 retention 数掩盖少数语言损失。
Lab B:Dedup Lens
教学样本:
- 完全相同;
- 只改导航栏;
- 相同模板不同正文;
- 同事实不同立场;
- 翻译;
- 数学近题;
- 语义改写 benchmark。
控制项:
- exact;
- shingle size / Jaccard;
- semantic similarity;
- cluster representative policy。
输出:
- true duplicate removed;
- false positive;
- false negative;
- rare-viewpoint loss;
- benchmark leakage。
Lab C:Mixture Studio
领域:
- Web;
- Code;
- Math;
- Knowledge;
- Multimodal。
控制项:
- weights;
- unique size;
- quality multiplier(明确为教学假设);
- proxy / target model;
- training stage。
输出:
- 每域 seen Token;
- effective epoch;
- 五个独立 validation slices;
- Pareto frontier;
- average 仅作为可选聚合。
必须让读者看到:提高 Math 不必然让所有能力下降,也不保证免费提升;结果由 transfer matrix 与预算约束共同决定。
Lab D:Rewrite & Curriculum
控制项:
- raw repeat;
- rephrase count;
- fidelity;
- teacher error;
- long-doc upsampling;
- context stage;
- FIM rate。
输出:
- source facts;
- surface variants;
- erroneous facts;
- token / generation cost;
- long-range dependency coverage;
- schedule timeline。
预设:
- K2 early-checkpoint 表;
- “生产克制”每 corpus ≤2 rephrase;
- K3 8K → 64K → 256K → 1M;
- V3 4K + 32K / 128K extension;
- V4 4K → 16K → 64K → 1M。
所有非论文直接给出的组合结果必须标为“教学模型”,不能伪装成真实 loss。
14. 历史主线
| 年份 | 节点 | 课程意义 |
|---|---|---|
| 2019 | T5 / C4 | Common Crawl 清洗成为现代预训练基线 |
| 2019 | CCNet | 去重、语言识别和质量过滤形成可复用流水线 |
| 2020 | The Pile | 825GiB、22 子集,把 mixture 明确写出来 |
| 2020 | Carlini extraction | 训练串记忆与 PII 不再只是理论风险 |
| 2021 | ROOTS | 多语言 corpus 建设与治理进入中心 |
| 2021 | Gopher data pipeline | 质量分类与大模型语料消融 |
| 2021 | Deduplicating Training Data | 近重复、validation overlap 与记忆统一观察 |
| 2022 | Chinchilla | 数据 Token 与参数配比成为 scaling 主角 |
| 2022 | FIM | 通过数据重排获得中间补全能力 |
| 2023 | DoReMi | proxy model 学习 domain weights |
| 2023 | ROOTS paper | 1.6TB、59 种语言与协作治理总结 |
| 2023 | SemDeDup | embedding 空间语义去重 |
| 2023 | D4 | 去重之后继续优化多样性 |
| 2024 | Dolma | 3T English Token、工具和开放文档 |
| 2024 | DeepSeek LLM | 91-dump global dedup、filter、remix |
| 2024 | DeepSeekMath | 目标领域发现、120.2B corpus 与公开 mixture |
| 2024 | DeepSeek-V2 | 8.1T、中英平衡与价值过滤代价 |
| 2024 | FineWeb | 大规模网页过滤消融 |
| 2024 | DCLM | 统一数据 pool、训练和评测协议 |
| 2024 | WRAP | 文档改写作为 Token utility 路线 |
| 2024 | Best-fit Packing | 文档完整性与截断成为独立变量 |
| 2024 | SoftDedup | 从硬删除转向频率降权 |
| 2024 | MATES | 模型感知动态数据选择 |
| 2024 | MM1 | 多模态 mixture 的受控消融 |
| 2024 | DeepSeek-V3 | 14.8T、FIM、packing、128K tokenizer |
| 2025 | Kimi K2 | 15.5T、rephrasing 与 Token utility |
| 2025 | Swallow | Code / Math 合成数据的受控持续预训练 |
| 2025 | Common Pile | 更强调公开许可的语料组合 |
| 2025 | Group-MATES | group-level influence |
| 2026 | DeepSeek-V4 | 32/33T、自动生成过滤、agentic 与长文课程 |
| 2026 | Kimi K3 | 四文本域、视觉 taxonomy、原生多模态与 1M curriculum |
这条历史不是“数据越来越多”,而是:
能清洗
→ 能说明组成
→ 能治理与审计
→ 能控制去重 / mixture
→ 能通过变换提高 Token utility
→ 能让数据、模型与训练阶段联合优化
15. 一手来源矩阵与核验状态
等级:
- A:本地全文 / 正式报告相关章节已读;
- B:官方 arXiv / 作者摘要已核对,正文仍需逐图精读;
- C:候选线索,尚不得支撑正文数字;
- P1:作者数据卡 / 代码 / dataset page,待与论文互证。
| 来源 | 年份 | 主题 | 当前等级 | 首版可用范围 |
|---|---|---|---|---|
T5 / C4 1910.10683 |
2019 | 清洗、统一任务 | A | C4 定义与历史节点 |
CCNet 1911.00359 |
2019 | 去重、语言、质量 | A | pipeline 主张 |
Extracting Training Data 2012.07805 |
2020 | 记忆 / PII | B | 作者摘要与风险边界 |
The Pile 2101.00027 |
2020 | 22 子集 mixture | A | 825GiB / 22 subsets |
ROOTS 2303.03915 |
2023 | 多语言治理 | B | 1.6TB / 59 languages 摘要 |
Deduplicating Training Data 2107.06499 |
2021 | fuzzy dedup | B | 摘要数字与方法主张 |
FIM 2207.14255 |
2022 | 数据变换 | B | PSM / SPM 与边界 |
DoReMi 2305.10429 |
2023 | mixture | B | 摘要中的 proxy / 8B 结果 |
SemDeDup 2303.09540 |
2023 | semantic dedup | B | 作者摘要结果 |
D4 2308.12284 |
2023 | 去重 + 多样性 | B | 作者摘要结果 |
Dolma 2402.00159 |
2024 | 开放语料 | B | 3T English Token |
DCLM 2406.11794 |
2024 | 统一数据实验 | B | 摘要中的 pool / 7B 结果 |
FineWeb 2406.17557 |
2024 | 网页过滤 | B | 标题、总体主张;数字待全文 |
WRAP 2401.16380 |
2024 | 改写 | B | 摘要中的设置与收益 |
Best-fit Packing 2404.10830 |
2024 | packing | B | 文档完整性主张 |
SoftDedup 2407.06654 |
2024 | 降权 | B | 摘要中的作者结果 |
MATES 2406.06046 |
2024 | influence | B | 摘要中的 410M / 1B 设置 |
Group-MATES 2502.14709 |
2025 | group influence | B | 路线节点;数字待正文 |
Data Contamination 2401.06059 |
2024 | 污染 | B | text / ground-truth 区分 |
MM1 2403.09611 |
2024 | multimodal mixture | B | 摘要中的核心消融 |
PALOMA 2312.10523 |
2023 | corpus evaluation | B | BPB / fixed order / contamination 指南 |
JEST 2406.17711 |
2024 | multimodal selection | B | 联合选择路线;数字待正文 |
DeepSeek LLM 2401.02954 |
2024 | dedup / filter / remix | A | Table 1、tokenizer、pipeline |
DeepSeekMath 2402.03300 |
2024 | Math corpus | A | 120.2B、构造与 500B mixture |
DeepSeek-V2 2405.04434 |
2024 | 8.1T / multilingual | A | data §3.1、Appendix E |
DeepSeek-V3 2412.19437 |
2024 | 14.8T / FIM / packing | A | data 与 hyperparameters |
DeepSeek-V4 2606.19348 |
2026 | 32/33T / long / agentic | A | §4 data、schedule、instability |
Kimi K2 2507.20534 |
2025 | 15.5T / rephrasing | A | §2.2、Table 1、§2.5 |
Swallow 2505.02881 |
2025/2026 v4 | synthetic CPT | B | 摘要中的 corpus / 50B / 作者结果 |
Kimi K3 2607.24653 |
2026 | native multimodal | A | §3.1–§3.4 |
Kimi K2.5 2602.02276 |
2026 | vision taxonomy | C | K3 引用入口;待逐节核验 |
| Common Pile | 2025 | licensed corpus | C / P1 | 仅候选;待数据卡与论文 |
| DSIR | 2023 | importance resampling | C | 仅候选;待全文 |
| RegMix | 2024 | mixture regression | C | 仅候选;待全文 |
| Data Mixing Laws | 2024 | mixture scaling | C | 仅候选;待全文 |
首版页面只允许 A / B 级事实;C 级来源可出现在“下一步阅读”,不能承担数字和结论。
16. 关键证据边界
已知
- K2 / K3、DeepSeek 各代报告公开的语料总量(若报告给出)、主要领域、部分 pipeline、tokenizer、packing、FIM 和 schedule;
- K2 SimpleQA rephrasing 表;
- DeepSeek LLM 91-dump dedup 表;
- DeepSeekMath 的 corpus 与 500B mixture;
- K3 原生多模态和长上下文 curriculum。
合理机制解释,但不是报告直接数字
- 改写增加 surface diversity;
- packing 减少截断能保留监督结构;
- sample mask 阻止跨文档伪因果;
- 稀缺域 upsample 增加 effective epoch;
- tokenizer 改变同一语料的 Token 计量。
页面要标“机制推导”或“教学模型”。
公开未知
- K3 总训练 Token;
- K3 / K2 最终 source-level mixture;
- K3 各视觉域数量;
- DeepSeek V3 / V4 完整 source / license map;
- 工业 pipeline 的所有阈值、人工标注协议、误删率;
- benchmark contamination 的完整内部审计;
- synthetic / human / raw 的最终占比;
- 单一数据改进对 frontier run 的因果贡献。
“未披露”本身必须在课程里可见,不能用二手猜测填空。
17. 页面写作门槛
每个数字旁至少能回答:
- 来自哪篇论文哪一节 / 表;
- 单位是文档、字节、Token、sequence 还是 FLOPs;
- tokenizer 是什么;
- 数据是 unique 还是 seen;
- 模型与预算是什么;
- 是作者报告、复现还是教学推导;
- 能否外推;
- 哪些域可能被平均数掩盖;
- 是否公开了许可、污染和隐私边界;
- 失败时会怎样被监测。
18. 首版课程结构
- 一粒 Token 的来路;
- 十二张数据账;
- 数据 pipeline 全景;
- 解析与质量;
- exact / fuzzy / semantic 去重;
- 污染、记忆、隐私与许可;
- mixture 与模型感知选择;
- 重复、改写、翻译与合成;
- Tokenizer;
- Packing / mask / FIM;
- curriculum 与 learning-rate / batch 联动;
- DeepSeek 五代数据谱系;
- Kimi K2 → K3 谱系;
- 原生多模态数据;
- 四个交互实验室;
- 失败模式;
- 一手论文路线;
- 已知 / 推断 / 未知。
19. 首版完成检查
- K3 §3.1–§3.4 原文核验;
- K2 §2.2 / §2.5 与 Table 1 原文核验;
- DeepSeek LLM / Math / V2 / V3 / V4 数据章节原文核验;
- Grok leads 与正式证据分离;
- 十二张账与历史主线建立;
- 四实验定义与禁止性规则建立;
- FineWeb / DCLM / Dolma / ROOTS 逐图精读;
- 去重、mixture、污染和多模态选择重点论文全文缓存;
- 课程长文实现;
- 四实验组件实现;
- 论文库扩充并标注 source level;
- Astro check、构建、内部引用与浏览器断言;
- 公开 Forgejo 提交;
- 不可变镜像发布与生产核验。
研究账本不是完成标志;它是后续页面每个可交互结论的证据合同。