# 数据工程与预训练配方研究账本 > 状态:第一轮证据框架 > 研究截止: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. 本章先拆掉三个误区 ### 误区一:预训练数据就是“下载很多文本” 原始网页不是训练样本。它至少要经过: ```text 来源与权限 → 获取与版本化 → 正文 / 代码 / 表格 / 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 来源与快照:先保留“它从哪里来” 最低要求: 1. 稳定 source id,而不仅是下载后的文件名; 2. URL、时间戳、Common Crawl dump / 仓库 commit / 数据集版本; 3. 获取方式与使用条件; 4. 原始对象哈希; 5. 处理 lineage:每一步输入、输出、配置和代码版本; 6. 删除请求、许可变化和数据修正能反向定位。 为什么版本重要: - 网页会更新或消失; - 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 导致的伪语言。 领域分类最好多标签: ```text 一篇 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 常见做法: 1. 文档变成 word / byte shingles; 2. 计算 MinHash signature; 3. 用 LSH 找候选近邻; 4. 对候选计算 Jaccard 等精确相似度; 5. 在 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 明确拆成: ```text 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 / 评测截止。 检查顺序: 1. exact id / hash; 2. n-gram / shingle overlap; 3. normalized answer match; 4. embedding / semantic retrieval; 5. 人工检查高风险簇; 6. 训练前隔离; 7. 评测报告披露匹配定义与阈值。 `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`: ```text Σ 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 温度采样 可用: ```text 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 忠实改写 理想目标: ```text 事实 / 推理结构保持 + 表达、视角、组织变化 + lineage 保持 - hallucination - teacher style collapse ``` WRAP 作者摘要在其 C4 设置中报告约 3× 预训练速度、Pile 子集 perplexity 平均超过 10% 改善、13 个 zero-shot QA 平均超过 2% 改善。课程必须注明这些是作者在指定模型 / 数据 / 预算下的结果。 ### 6.3 Kimi K2 的 rephrasing pipeline 知识数据: 1. style- and perspective-diverse prompting; 2. 长文档分 chunk; 3. 前文作为上下文,autoregressive 逐块改写; 4. 拼回完整文档; 5. 与源文做 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 至少需要: ```text source_id transform_type teacher_version prompt_version generation_time verifier_version fidelity / safety result dedup cluster ``` --- ## 7. Tokenizer:数据的计量仪也是归纳偏置 ### 7.1 为什么不能跨 tokenizer 直接比 perplexity ```text 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 示例: ```text prefix suffix middle ``` 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 训练配方要画成多轨时间轴 至少同时画: ```text 累计 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 命名清楚 ```text 全局跨 dump 去重 → 语言 + 语义质量过滤 → 对欠代表领域 remix → multilingual BBPE ``` 亮点: - 91-dump global dedup 表是罕见的公开规模效应; - 用 non-embedding FLOPs/token 做 scaling 也提醒数据 Token 与模型算术要统一口径。 未知: - 最终各 source mixture; - 每个 filter 的 precision / recall; - 完整许可与 benchmark contamination 清单。 ### 10.2 DeepSeekMath:从目标能力反推语料 构造: 1. 从 deduplicated Common Crawl 约 40B HTML pages 起步; 2. 用种子数学域训练 fastText classifier; 3. 迭代发现相关 URL / domain; 4. 做 benchmark decontamination; 5. 形成 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,而是问题发生了变化: ```text 全局网页去重 → 中英与过滤取舍 → 代码 / 数学、文档完整性、FIM、token boundary → 自动生成互联网、长文档、agentic 中训与百万上下文 ``` --- ## 11. Kimi 数据工程谱系 ### 11.1 K2:Token utility K2 将高质量数据稀缺问题具体化为: ```text 原文多 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 三种不同路线 1. 冻结 LLM + 视觉 encoder + connector; 2. 已预训练 LLM 上做 multimodal continued pretraining; 3. 从训练开始共同优化 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 代码和渲染结果天然提供可验证对应: ```text 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 | 这条历史不是“数据越来越多”,而是: ```text 能清洗 → 能说明组成 → 能治理与审计 → 能控制去重 / 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. 页面写作门槛 每个数字旁至少能回答: 1. 来自哪篇论文哪一节 / 表; 2. 单位是文档、字节、Token、sequence 还是 FLOPs; 3. tokenizer 是什么; 4. 数据是 unique 还是 seen; 5. 模型与预算是什么; 6. 是作者报告、复现还是教学推导; 7. 能否外推; 8. 哪些域可能被平均数掩盖; 9. 是否公开了许可、污染和隐私边界; 10. 失败时会怎样被监测。 --- ## 18. 首版课程结构 1. 一粒 Token 的来路; 2. 十二张数据账; 3. 数据 pipeline 全景; 4. 解析与质量; 5. exact / fuzzy / semantic 去重; 6. 污染、记忆、隐私与许可; 7. mixture 与模型感知选择; 8. 重复、改写、翻译与合成; 9. Tokenizer; 10. Packing / mask / FIM; 11. curriculum 与 learning-rate / batch 联动; 12. DeepSeek 五代数据谱系; 13. Kimi K2 → K3 谱系; 14. 原生多模态数据; 15. 四个交互实验室; 16. 失败模式; 17. 一手论文路线; 18. 已知 / 推断 / 未知。 --- ## 19. 首版完成检查 - [x] K3 §3.1–§3.4 原文核验; - [x] K2 §2.2 / §2.5 与 Table 1 原文核验; - [x] DeepSeek LLM / Math / V2 / V3 / V4 数据章节原文核验; - [x] Grok leads 与正式证据分离; - [x] 十二张账与历史主线建立; - [x] 四实验定义与禁止性规则建立; - [ ] FineWeb / DCLM / Dolma / ROOTS 逐图精读; - [ ] 去重、mixture、污染和多模态选择重点论文全文缓存; - [ ] 课程长文实现; - [ ] 四实验组件实现; - [ ] 论文库扩充并标注 source level; - [ ] Astro check、构建、内部引用与浏览器断言; - [ ] 公开 Forgejo 提交; - [ ] 不可变镜像发布与生产核验。 研究账本不是完成标志;它是后续页面每个可交互结论的证据合同。