diff --git a/PROGRESS.md b/PROGRESS.md index 030c842..99fb725 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -11,6 +11,7 @@ | Kimi K3 深读 | 进行中 | 66% | 扩写 pre-training / infra 逐图笔记 | | Transformer 基础 | 进行中 | 52% | 矩阵形状动画与手算练习 | | Scaling Laws | 完成首版 | 74% | 真实拟合复现、置信区间与更多模型族对照 | +| 数据工程与预训练配方 | 完成首版 | 73% | FineWeb / DCLM 逐图精读、真实去重误伤与 mixture traces | | DeepSeek 专题 | 进行中 | 71% | 补 R1 / DAPO 的逐图训练轨迹与复现对照 | | 推理与测试时扩展 | 完成首版 | 76% | 真实模型采样曲线、PRM 案例与逐篇图表精读 | | 稀疏计算与 MoE | 完成首版 | 74% | 真实负载 traces 与专家特化案例 | @@ -29,10 +30,10 @@ - [x] 提炼参考网站的编辑设计语言。 - [x] 确认 `git.k1412.top` 为 Gitea/Forgejo 兼容服务且本机 HTTPS 凭据可用于既有仓库。 - [x] 使用 Grok CLI 检索并形成约 95 篇一手论文的补充路线,主代理已回查关键来源。 -- [x] 完成 182 篇关键论文索引,覆盖 12 个专题与 Kimi/DeepSeek 聚光主线。 +- [x] 完成 202 篇关键论文索引,覆盖 13 个标签专题与 Kimi/DeepSeek 聚光主线。 - [x] 完成可检索、可按专题筛选的论文库页面。 -- [x] 完成 K3、Transformer 基础、DeepSeek 谱系、Scaling Laws、长上下文、MoE、推理与训练系统八篇首版长文。 -- [x] 完成 K3 三轴架构、Self-Attention、DeepSeek 谱系、长上下文、MoE 路由、推理三页签,以及训练系统与 Scaling 各四页签等十六个原创交互视图。 +- [x] 完成 K3、Transformer 基础、DeepSeek 谱系、Scaling Laws、数据工程、长上下文、MoE、推理与训练系统九篇首版长文。 +- [x] 完成 K3 三轴架构、Self-Attention、DeepSeek 谱系、长上下文、MoE 路由、推理三页签,以及训练系统、Scaling 与数据工程各四页签等二十个原创交互视图。 - [x] 完成长上下文首版:五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。 - [x] 核验 FlashAttention、DeepSeek-V2/V3.2/V4、Kimi Linear/K3 等六份论文原文,并建立长上下文研究账本。 - [x] 核验 Switch、ST-MoE、DeepSeekMoE、Loss-Free、V3、LatentMoE 与 K3 原文,并建立 MoE 研究账本。 @@ -58,10 +59,18 @@ - [x] Scaling 真实 Chrome 断言通过:IsoFLOP 谷底、生命周期最优点、重复数据衰减和指标阶跃均正确响应。 - [x] 对 Scaling、训练系统、推理与 MoE 执行全量浏览器回归;12 项桌面导航、移动菜单和首页新章入口无回归。 - [x] Scaling 首版以提交 `eff0e4c`、不可变镜像 `20260728T181742Z-eff0e4c` 发布;NAS、VPS/Tailscale、NPM、DNS、HTTPS、证书、12 路由与生产 Chrome 全链路通过。 +- [x] 启动数据工程专题:回查 K3/K2、DeepSeek LLM/Math/V2/V3/V4 数据章节,并将 Grok 线索永久隔离为未核验候选。 +- [x] 建立 1264 行正式研究账本:十二张账、2019→2026 历史主线、DeepSeek/Kimi 双谱系、四实验合同与公开未知项。 +- [x] 完成数据工程首版:18 节长文、31 个一手节点、十余组机制图与流水线—去重—混合—改写四联实验。 +- [x] 论文库新增「数据」标签与 20 个一手节点,从 182 篇扩充至 202 篇。 +- [x] 数据工程真实 Chrome 断言通过:激进过滤、semantic 去重误伤、数学 mixture 和失控合成均正确响应,桌面 / 390px 移动端无溢出。 +- [x] 对 Scaling、训练系统、推理与 MoE 重新执行全量浏览器回归;13 项桌面 / 移动导航和首页数据新章入口无回归。 +- [x] Astro 类型检查、生产构建、13 个页面路由、527 个站内引用和 20 个跨页锚点全部通过。 ## 正在进行 - [ ] Scaling Laws 二轮精读:真实拟合复现、逐篇图表、置信区间、外推失败与更多模型族对照。 +- [ ] 数据工程二轮:FineWeb / DCLM / Dolma / ROOTS 逐图精读、真实去重误伤、mixture traces 与污染案例。 - [ ] 大规模训练系统二轮:真实集群 traces、故障恢复案例与精确 topology / kernel 配置。 - [ ] 推理专题二轮:真实 pass@k 曲线、PRM 失败案例与逐篇图表精读。 - [ ] 长上下文专题的真实模型配置对比、内核细节与失败案例二轮深化。 @@ -98,6 +107,11 @@ | 2026-07-29 | Scaling 首版用 29 个一手节点和四个独立实验闭环 | IsoFLOP、训练—部署、数据复用与指标涌现分开建模,不合成伪“规模总分” | | 2026-07-29 | 论文库随 Scaling 一手链扩充到 182 篇 | 新增早期跨任务幂律、Gopher、数据受限、过训练、部署经济、复现和 task ladder 节点 | | 2026-07-29 | Scaling 首版用不可变镜像 `20260728T181742Z-eff0e4c` 发布 | OCI digest `sha256:802e4041…cf83`;保留 `12010→8080`、NPM host 31 / cert 41、门户 order 180 与公开 Forgejo | +| 2026-07-29 | 数据工程拆成来源、解析、语言、质量、唯一性、污染、混合、变换、Tokenizer、Packing、课程与价值十二张账 | 防止用一个“高质量 Token”标签掩盖单位、误删、治理与课程 | +| 2026-07-29 | Grok 数据研究包只保留为 `DATA_PRETRAINING_GROK_LEADS.md` | 模型发现候选不越过一手证据门槛;K3 总训练 Token、工业 mixture 和 source map 保持未知 | +| 2026-07-29 | K2 改写、K3 2.5×、V3/V4 packing 边界在正文主视区显式限定 | 不把早期 SimpleQA 对照外推为普遍定律,不把模型族收益归因给单一数据技巧 | +| 2026-07-29 | 数据工程首版用四个独立实验闭环 | 文档保留、去重误伤、领域 exposure 与改写课程分开建模,不合成伪“数据质量总分” | +| 2026-07-29 | 论文库新增数据标签并扩充到 202 篇 | 新增 CCNet、ROOTS、Dedup、DoReMi、DCLM、WRAP、MATES、MM1、Swallow 等 20 个节点 | ## 未决问题 diff --git a/README.md b/README.md index 2e72421..64c5d38 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ - 持续进度:[PROGRESS.md](./PROGRESS.md) - 证据与写作规范:[research/METHODOLOGY.md](./research/METHODOLOGY.md) -当前里程碑包含 16 专题学习地图、182 篇关键论文索引、Kimi K3 完整导读、 -Transformer 基础、DeepSeek 技术谱系、Scaling Laws、长上下文、MoE、推理与训练系统深度专题, +当前里程碑包含 16 专题学习地图、202 篇关键论文索引、Kimi K3 完整导读、 +Transformer 基础、DeepSeek 技术谱系、Scaling Laws、数据工程、长上下文、MoE、推理与训练系统深度专题, 以及覆盖核心机制的原创交互实验室。 其余专题按进度账本持续扩建。 diff --git a/package.json b/package.json index 307eb02..c9c09fe 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "check:moe-browser": "node scripts/check-moe-browser.mjs", "check:reasoning-browser": "node scripts/check-reasoning-browser.mjs", "check:training-systems-browser": "node scripts/check-training-systems-browser.mjs", - "check:scaling-browser": "node scripts/check-scaling-browser.mjs" + "check:scaling-browser": "node scripts/check-scaling-browser.mjs", + "check:data-browser": "node scripts/check-data-browser.mjs" }, "dependencies": { "@astrojs/sitemap": "3.7.3", diff --git a/research/DATA_PRETRAINING_GROK_LEADS.md b/research/DATA_PRETRAINING_GROK_LEADS.md new file mode 100644 index 0000000..c7ca693 --- /dev/null +++ b/research/DATA_PRETRAINING_GROK_LEADS.md @@ -0,0 +1,203 @@ +# 数据工程与预训练配方 · Grok Discovery Leads + +> **未核验线索,不是正式研究账本。** +> +> 2026-07-29 使用本机 Grok CLI Headless 扩展候选论文、关键词与视觉方案。 +> 正式结论只进入 `DATA_PRETRAINING_RESEARCH.md`,且必须回到论文、技术报告、数据卡或作者实现。 +> Grok 被明确禁止调用子代理;其输出只承担“还有什么值得查”,不承担“事实究竟是什么”。 + +--- + +## 1. Grok 建议的十二张候选账 + +| 账 | 候选问题 | 候选关键词 | +|---|---|---| +| L1 来源与治理 | 数据来自哪里,是否允许获取、研究、训练与再分发 | data card、license、consent、robots、provenance、governance | +| L2 提取与解析 | HTML、PDF、代码与表格怎样变成没有被破坏的文档 | boilerplate removal、DOM、OCR、code parser、structural validation | +| L3 语言与领域 | 语言识别、领域识别和长尾覆盖怎样度量 | fastText、language ID、domain classifier、long tail | +| L4 质量过滤 | “高质量”由哪些可观测量定义 | heuristic、classifier、educational value、toxicity、PII | +| L5 去重 | exact、fuzzy、semantic 各去掉什么,又会误删什么 | hash、MinHash、LSH、embedding、cluster、frequency | +| L6 混合与采样 | 数据占比怎样变成模型能力的组合 | mixture weight、temperature、upsampling、proxy model、DoReMi | +| L7 Tokenizer 与 Packing | 文档怎样变成 Token 和训练序列 | BBPE、compression、BPB、best-fit packing、sample mask、FIM | +| L8 课程与退火 | 不同数据和长度何时进入训练 | curriculum、annealing、mid-training、continual pretraining、WSD | +| L9 合成与改写 | 重复、改写、翻译和生成数据有何不同 | WRAP、rephrasing、fidelity、teacher bias、model collapse | +| L10 污染与记忆 | benchmark、隐私和长串复现如何被发现 | decontamination、memorization、extraction、canary | +| L11 原生多模态 | 图片、视频、OCR、代码渲染怎样与文本共同训练 | caption、interleaved、MM1、native multimodal、coordinate supervision | +| L12 数据价值 | 哪个样本值得下一个训练 FLOP | influence、gradient matching、DSIR、MATES、JEST、data selection | + +这十二张账是 discovery taxonomy,不表示这些问题可以被压缩成一个“数据质量总分”。 + +--- + +## 2. 候选历史节点 + +### 2019–2021:把互联网变成可训练语料 + +- T5 / C4:Common Crawl 清洗与 text-to-text 统一任务; +- CCNet:去重、语言识别与近似 Wikipedia 质量过滤; +- The Pile:22 个异质子语料与明确 mixture; +- ROOTS / BigScience:多语言、治理、数据卡与协作式语料建设; +- Gopher:大规模网页质量分类与 mixture 工程; +- Carlini et al.:训练数据抽取与隐私记忆风险。 + +### 2022–2023:去重、混合与数据中心化 + +- Lee et al.:近重复会污染验证集并放大记忆; +- FIM:预训练数据变换可以增加代码“补中间”能力; +- DoReMi:用小代理模型学习 domain weights; +- RefinedWeb:过滤网页数据可以支撑强模型; +- SemDeDup:embedding 空间中的语义去重; +- D4:去重之后继续做多样性选择; +- DSIR:按目标分布重要性重采样。 + +### 2024:公开数据工程成为可比较实验 + +- Dolma:3T English Token、开放工具与文档; +- FineWeb:大规模网页数据的清洗消融; +- DCLM:统一 pool、模型尺度与评测协议; +- WRAP:改写网页文档而不是只做原文多 epoch; +- MATES:模型感知的数据选择; +- SoftDedup:按频率降权,而非“一刀切”删除; +- Best-fit Packing:减少文档截断; +- MM1:多模态数据 mixture 消融; +- DeepSeek LLM / Math / V2 / V3:全局去重、领域构造、packing、FIM 与训练配方。 + +### 2025–2026:数据稀缺、合成扩展与超长上下文 + +- Kimi K2:知识与数学改写、15.5T Token、WSD 与长上下文激活; +- Swallow:代码与数学合成数据的受控持续预训练; +- Common Pile:更强调公开许可的数据源组合; +- Group-MATES:group-level data influence; +- DeepSeek-V4:过滤批量自动生成 / 模板内容、长文档与 agentic mid-training; +- Kimi K3:四文本域 + 大规模视觉语料、原生多模态与 8K → 64K → 256K → 1M 课程。 + +--- + +## 3. 候选论文池 + +下面只表示“值得回查”。表中的数字、结论和适用范围尚未因出现在这里而获得证据等级。 + +| 方向 | 候选来源 | +|---|---| +| 网页清洗 | T5/C4、CCNet、RefinedWeb、FineWeb、DCLM | +| 开放语料 | The Pile、ROOTS、Dolma、Common Pile | +| 质量分类 | Gopher data pipeline、FineWeb-Edu、DCLM fastText classifier | +| exact / fuzzy dedup | Lee et al. 2021、SlimPajama、Dolma | +| semantic dedup | SemDeDup、D4、SoftDedup | +| mixture | DoReMi、DSIR、Data Mixing Laws、RegMix | +| packing | Fewer Truncations Improve Language Modeling | +| FIM | Efficient Training of Language Models to Fill in the Middle | +| 改写 | WRAP、Swallow、Kimi K2、Kimi K3 | +| 动态数据价值 | MATES、Group-MATES、LESS、JEST | +| 污染 | Carlini extraction、Detecting Pretraining Data from LLMs、Contamination Detection | +| 多模态 mixture | MM1、JEST、Kimi K2.5、Kimi K3 | +| 长上下文数据 | DeepSeek-V4、Kimi K3、Long-context synthetic retrieval | + +--- + +## 4. 候选视觉 + +1. **一条文档的生命线** + 来源 → 下载 → 解析 → 语言 / 领域 → 质量 / 安全 → 去重 → 污染隔离 → 混合 → 改写 / FIM → Tokenize → Packing → Batch。 + +2. **去重显微镜** + 同时展示 exact hash、shingle MinHash 与 embedding 相似度;拖动阈值观察漏删、误删和长尾损失。 + +3. **Mixture Studio** + 调整 Web / Code / Math / Knowledge / Multimodal 权重;分开展示通用、代码、数学、多语言和平均 loss,不制造“万能能力分”。 + +4. **改写与重复实验** + 对比 raw × epochs、faithful rephrase、错误 rephrase;展示 token utility、事实保真、风格多样性和生成成本。 + +5. **课程时间轴** + Token 轴上叠加学习率、batch、数据 mixture、context length、FIM 率与 synthetic 比例。 + +6. **污染火灾图** + benchmark 文档进入训练语料后,按 exact、n-gram、semantic、ground-truth overlap 不同检查器显示不同告警。 + +--- + +## 5. 候选互动实验 + +### 实验 A:Pipeline Ledger + +- 输入:抓取量、解析通过率、质量阈值、去重阈值、许可 / PII 隔离策略; +- 输出:文档数、唯一 Token、各领域保留率、未知来源比例; +- 必须展示:减少的“量”不自动等于增加的“质量”。 + +### 实验 B:Dedup Lens + +- 输入:exact / fuzzy / semantic 模式、相似度阈值、保留策略; +- 输出:duplicate precision / recall、benchmark overlap、长尾簇被删比例; +- 必须展示:同一句模板与真正重复文档不是同一个问题。 + +### 实验 C:Mixture Studio + +- 输入:领域权重、temperature、目标验证集; +- 输出:各领域 loss / score 的 Pareto 变化; +- 必须展示:最优 mixture 依赖模型尺度、训练阶段与目标分布。 + +### 实验 D:Rewrite & Curriculum + +- 输入:改写次数、fidelity、重复 epoch、context stage、长文 upsampling; +- 输出:有效新颖度、错误扩增、训练成本、长上下文覆盖; +- 必须展示:synthetic token 不是无成本的新事实。 + +--- + +## 6. 必须回到原文的高风险数字 + +- 任意语料的“原始文档数”“最终 Token 数”和过滤保留率; +- dedup 删除百分比,以及它是按文档、字节还是 Token 计; +- DCLM、FineWeb、WRAP、MATES、SoftDedup 的作者报告收益; +- Kimi K2 的 SimpleQA 改写消融; +- Kimi K2、DeepSeek-V3 / V4 的训练 Token 与 schedule; +- DeepSeek LLM 91 个 Common Crawl dump 的去重率; +- DeepSeekMath 的 120.2B corpus 和 500B continual-pretraining mixture; +- K3 的四文本域、视觉 taxonomy、原生多模态与长上下文阶段; +- 任何“X 倍更高效”的分母、模型大小、任务和预算。 + +--- + +## 7. 已在主代理回查中纠正的风险 + +1. **K3 没有披露总训练 Token 数。** + `2.78T` 是模型总参数,不是训练 Token;正式报告只描述数据域、pipeline 和训练阶段。 + +2. **K3 的 `2.5×` 不是某个数据技巧的独立收益。** + 报告 §3.2 明确说它来自架构、数据和训练变化共同定义的新模型族,并在 held-out OOD scaling curve 上比较。 + +3. **K2 改写表不是普遍定律。** + `23.76 → 27.39 → 28.94` 来自 K2 早期 checkpoint、SimpleQA 与三种指定配置;生产中每个 corpus 最多改写两次。 + +4. **K2 的 WSD 与 K3 的 cosine 不构成简单胜负。** + K3 分别为两种 schedule 独立搜索 peak LR 和 batch 后才报告 cosine 更低;共享超参数会造成不公平比较。 + +5. **DeepSeek-V3 与 V4 的 packing 边界不同。** + V3 做 document packing 且不使用 cross-sample attention mask;V4 沿用 packing,但改为 sample-level attention masking。 + +6. **DeepSeek 的工业级语料仍是部分黑箱。** + 报告公开阶段、部分总量和消融,但没有完整 source-by-source license map、最终 mixture、过滤阈值与 contamination 清单。 + +7. **“高质量”不能用 benchmark 提升循环定义。** + 必须分别记录分类器目标、人工标注协议、保留率、误删率、长尾覆盖与独立验证。 + +8. **合成数据会继承生成模型偏差。** + fidelity filter 不能证明事实完全正确,也不能消除风格坍缩、毒性、版权、隐私或污染风险。 + +--- + +## 8. 从 leads 晋级正式账本的门槛 + +候选结论至少满足: + +1. 找到稳定的一手入口; +2. 核对标题、作者、版本与年份; +3. 读到支持结论的正文 / 表格 / 附录,而不仅是搜索摘要; +4. 记录实验对象、模型大小、Token 预算、数据与评测协议; +5. 区分作者报告、独立复现与课程推导; +6. 明确失败条件与不可外推范围; +7. 数字能追到表、图、公式或可复现实验; +8. 无法公开确认的工业细节明确写为“未知”。 + +这份文件的价值不是“收集得多”,而是把发现阶段与证据阶段永久隔开。 diff --git a/research/DATA_PRETRAINING_RESEARCH.md b/research/DATA_PRETRAINING_RESEARCH.md new file mode 100644 index 0000000..4b8649f --- /dev/null +++ b/research/DATA_PRETRAINING_RESEARCH.md @@ -0,0 +1,1264 @@ +# 数据工程与预训练配方研究账本 + +> 状态:第一轮证据框架 +> 研究截止: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 提交; +- [ ] 不可变镜像发布与生产核验。 + +研究账本不是完成标志;它是后续页面每个可交互结论的证据合同。 diff --git a/scripts/check-data-browser.mjs b/scripts/check-data-browser.mjs new file mode 100644 index 0000000..02d96f3 --- /dev/null +++ b/scripts/check-data-browser.mjs @@ -0,0 +1,249 @@ +import { writeFileSync } from "node:fs"; + +const cdpPort = process.env.CDP_PORT ?? "9226"; +const baseUrl = process.env.SITE_URL ?? "http://127.0.0.1:4325"; +const pages = await fetch(`http://127.0.0.1:${cdpPort}/json/list`).then((response) => response.json()); +const page = pages.find((entry) => entry.type === "page"); +if (!page) throw new Error(`CDP ${cdpPort} 没有可用页面`); + +const socket = new WebSocket(page.webSocketDebuggerUrl); +await new Promise((resolve, reject) => { + socket.addEventListener("open", resolve, { once: true }); + socket.addEventListener("error", reject, { once: true }); +}); + +let nextId = 0; +const pending = new Map(); +const exceptions = []; +socket.addEventListener("message", (event) => { + const message = JSON.parse(event.data); + if (message.id && pending.has(message.id)) { + const { resolve, reject } = pending.get(message.id); + pending.delete(message.id); + if (message.error) reject(new Error(message.error.message)); + else resolve(message.result); + } + if (message.method === "Runtime.exceptionThrown") { + exceptions.push(message.params.exceptionDetails.exception?.description ?? message.params.exceptionDetails.text); + } +}); + +const command = (method, params = {}) => new Promise((resolve, reject) => { + const id = ++nextId; + pending.set(id, { resolve, reject }); + socket.send(JSON.stringify({ id, method, params })); +}); +const pause = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds)); +const evaluate = async (expression) => { + const result = await command("Runtime.evaluate", { expression, returnByValue: true, awaitPromise: true }); + if (result.exceptionDetails) throw new Error(result.exceptionDetails.exception?.description ?? result.exceptionDetails.text); + return result.result.value; +}; +const navigate = async (path) => { + await command("Page.navigate", { url: `${baseUrl}${path}` }); + for (let attempt = 0; attempt < 50; attempt += 1) { + await pause(100); + if (await evaluate("document.readyState === 'complete'")) return; + } + throw new Error(`${path} 加载超时`); +}; +const screenshot = async (path) => { + const result = await command("Page.captureScreenshot", { format: "png", captureBeyondViewport: false }); + writeFileSync(path, Buffer.from(result.data, "base64")); +}; + +await command("Page.enable"); +await command("Runtime.enable"); +await command("Emulation.setDeviceMetricsOverride", { + width: 1440, + height: 1100, + deviceScaleFactor: 1, + mobile: false, +}); +await navigate("/pretraining/data/"); +await screenshot("/tmp/llm-atlas-data-desktop.png"); + +const pipeline = await evaluate(`(() => { + const root = document.querySelector("[data-data-lab]"); + const measure = () => ({ + trainable: root.querySelector('[data-pipeline-metric="trainable"]').textContent, + retention: root.querySelector('[data-pipeline-metric="retention"]').textContent, + quarantine: root.querySelector('[data-pipeline-metric="quarantine"]').textContent, + rows: root.querySelectorAll(".funnel-row").length, + tail: root.querySelector('[data-pipeline-slice-label="tail"]').textContent, + }); + const balanced = measure(); + root.querySelector('[data-pipeline-preset="strict"]').click(); + return { balanced, strict: measure() }; +})()`); + +const dedup = await evaluate(`(() => { + const root = document.querySelector("[data-data-lab]"); + root.querySelector('[data-data-tab="dedup"]').click(); + const measure = () => ({ + precision: root.querySelector('[data-dedup-metric="precision"]').textContent, + recall: root.querySelector('[data-dedup-metric="recall"]').textContent, + falsePositive: root.querySelector('[data-dedup-metric="false"]').textContent, + rare: root.querySelector('[data-dedup-metric="rare"]').textContent, + rows: root.querySelectorAll("[data-dedup-example]").length, + }); + root.querySelector('[data-dedup-mode="exact"]').click(); + const exact = measure(); + root.querySelector('[data-dedup-mode="semantic"]').click(); + const threshold = root.querySelector('[data-dedup-input="threshold"]'); + threshold.value = "85"; + threshold.dispatchEvent(new Event("input", { bubbles: true })); + return { exact, semantic: measure() }; +})()`); + +const mixture = await evaluate(`(() => { + const root = document.querySelector("[data-data-lab]"); + root.querySelector('[data-data-tab="mixture"]').click(); + const measure = () => ({ + weights: [...root.querySelectorAll("[data-mixture-output]")].slice(0, 5).map((item) => item.textContent), + epochs: [...root.querySelectorAll("[data-mixture-ledger] small")].map((item) => item.textContent), + scores: [...root.querySelectorAll("[data-mixture-slices] strong")].map((item) => item.textContent), + rows: root.querySelectorAll("[data-mixture-ledger] > div").length, + }); + root.querySelector('[data-mixture-preset="balanced"]').click(); + const balanced = measure(); + root.querySelector('[data-mixture-preset="math"]').click(); + return { balanced, math: measure() }; +})()`); + +const transform = await evaluate(`(() => { + const root = document.querySelector("[data-data-lab]"); + root.querySelector('[data-data-tab="transform"]').click(); + const measure = () => ({ + variants: root.querySelector('[data-transform-metric="variants"]').textContent, + errors: root.querySelector('[data-transform-metric="errors"]').textContent, + cost: root.querySelector('[data-transform-metric="cost"]').textContent, + context: root.querySelector('[data-transform-metric="context"]').textContent, + stages: root.querySelectorAll("[data-transform-timeline] > div").length, + errorDots: root.querySelectorAll('[data-transform-facts] > i[data-kind="error"]').length, + }); + root.querySelector('[data-transform-preset="production"]').click(); + const production = measure(); + root.querySelector('[data-transform-preset="risky"]').click(); + const risky = measure(); + const firstTab = root.querySelector('[data-data-tab="pipeline"]'); + firstTab.focus(); + firstTab.dispatchEvent(new KeyboardEvent("keydown", { key: "End", bubbles: true })); + return { + production, + risky, + keyboard: { + selected: root.querySelector('[data-data-tab][aria-selected="true"]').dataset.dataTab, + visible: root.querySelector("[data-data-view]:not([hidden])").dataset.dataView, + }, + }; +})()`); + +const layout = await evaluate(`(() => { + const nav = document.querySelector(".top-nav"); + const meta = document.querySelector(".header-meta"); + return { + documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth, + navGap: Number((meta.getBoundingClientRect().left - nav.getBoundingClientRect().right).toFixed(1)), + navLinks: document.querySelectorAll(".top-nav a").length, + articleSections: document.querySelectorAll(".article-section").length, + paperLinks: document.querySelectorAll(".paper-chain a").length, + labTabs: document.querySelectorAll("[data-data-tab]").length, + views: document.querySelectorAll("[data-data-view]").length, + }; +})()`); + +await evaluate(`(() => { + document.documentElement.style.scrollBehavior = "auto"; + document.querySelector("[data-data-lab]").scrollIntoView({ block: "start", behavior: "instant" }); +})()`); +await pause(150); +await screenshot("/tmp/llm-atlas-data-lab-desktop.png"); + +await command("Emulation.setDeviceMetricsOverride", { + width: 390, + height: 844, + deviceScaleFactor: 1, + mobile: true, +}); +await navigate("/pretraining/data/"); +await evaluate(`document.querySelector("[data-data-lab]").scrollIntoView({ block: "start", behavior: "instant" })`); +await pause(120); +await screenshot("/tmp/llm-atlas-data-lab-mobile.png"); +const mobile = await evaluate(`(() => { + const toggle = document.querySelector("#menu-toggle"); + toggle.click(); + return { + documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth, + menuVisible: getComputedStyle(toggle).display !== "none", + menuOpen: toggle.getAttribute("aria-expanded"), + mobileLinks: document.querySelectorAll("#mobile-nav a").length, + selectedTab: document.querySelector('[data-data-tab][aria-selected="true"]').dataset.dataTab, + }; +})()`); + +await command("Emulation.setDeviceMetricsOverride", { + width: 1440, + height: 1100, + deviceScaleFactor: 1, + mobile: false, +}); +await navigate("/"); +const home = await evaluate(`({ + documentOverflow: document.documentElement.scrollWidth - document.documentElement.clientWidth, + releaseCards: document.querySelectorAll(".release-card").length, + firstRelease: document.querySelector(".release-card h2").textContent, + firstHref: document.querySelector(".release-card").getAttribute("href"), + paperCount: document.querySelector(".hero-stats div:nth-child(3) b").textContent, + navLinks: document.querySelectorAll(".top-nav a").length, +})`); + +await navigate("/papers/"); +const papers = await evaluate(`(() => { + const button = [...document.querySelectorAll("[data-filter]")].find((item) => item.dataset.filter === "数据"); + button?.click(); + return { + hasDataFilter: Boolean(button), + visible: [...document.querySelectorAll("[data-paper]")].filter((item) => !item.hidden).length, + total: document.querySelectorAll("[data-paper]").length, + }; +})()`); + +const report = { pipeline, dedup, mixture, transform, layout, mobile, home, papers, exceptions }; +console.log(JSON.stringify(report, null, 2)); + +const numeric = (value) => Number.parseFloat(value); +const failures = []; +if (pipeline.balanced.rows !== 5 || pipeline.strict.rows !== 5) failures.push("Pipeline 漏斗阶段数量异常"); +if (numeric(pipeline.strict.retention) >= numeric(pipeline.balanced.retention)) failures.push("激进过滤没有降低文档保留率"); +if (dedup.exact.rows !== 6 || dedup.semantic.rows !== 6) failures.push("去重教学样本数量异常"); +if (numeric(dedup.semantic.recall) <= numeric(dedup.exact.recall) || Number(dedup.semantic.falsePositive) < 1) { + failures.push("Semantic 去重没有体现召回—误伤权衡"); +} +if (mixture.balanced.rows !== 5 || mixture.math.rows !== 5) failures.push("Mixture 五领域账本没有完整渲染"); +if (numeric(mixture.math.scores[2]) <= numeric(mixture.balanced.scores[2])) failures.push("数学强化没有提升教学 Math slice"); +if (numeric(transform.risky.errors) <= numeric(transform.production.errors) || transform.risky.errorDots <= transform.production.errorDots) { + failures.push("失控合成没有增加错误副本"); +} +if (transform.production.stages !== 4 || transform.risky.stages !== 4) failures.push("公开课程阶段数量异常"); +if (transform.keyboard.selected !== "transform" || transform.keyboard.visible !== "transform") failures.push("实验页签键盘导航异常"); +if (layout.articleSections !== 18 || layout.paperLinks !== 31 || layout.labTabs !== 4 || layout.views !== 4) { + failures.push("章节、论文或实验数量异常"); +} +if (layout.navLinks !== 13 || mobile.mobileLinks !== 13 || home.navLinks !== 13) failures.push("全站导航未同步数据工程"); +if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出"); +if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); +if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); +if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token") || home.firstHref !== "/pretraining/data/") { + failures.push("首页数据工程新章入口异常"); +} +if (home.paperCount !== "202") failures.push(`首页论文总数异常:${home.paperCount}`); +if (!papers.hasDataFilter || papers.total !== 202 || papers.visible < 25) failures.push("论文库数据标签或论文总数异常"); +if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); + +socket.close(); +if (failures.length) { + failures.forEach((failure) => console.error(`- ${failure}`)); + process.exit(1); +} +console.log("数据工程专题真实 Chrome 断言通过。"); diff --git a/scripts/check-moe-browser.mjs b/scripts/check-moe-browser.mjs index 5c0ce79..54f7b24 100644 --- a/scripts/check-moe-browser.mjs +++ b/scripts/check-moe-browser.mjs @@ -177,7 +177,7 @@ if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentO } if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible) failures.push("移动端菜单按钮未显示"); -if (home.releaseCards !== 5) failures.push(`首页新章卡数量异常:${home.releaseCards}`); +if (home.releaseCards !== 6) failures.push(`首页新章卡数量异常:${home.releaseCards}`); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-reasoning-browser.mjs b/scripts/check-reasoning-browser.mjs index 7f14d8e..62f335a 100644 --- a/scripts/check-reasoning-browser.mjs +++ b/scripts/check-reasoning-browser.mjs @@ -289,7 +289,7 @@ if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentO } if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 5 || !home.firstRelease.includes("大一点")) failures.push("首页新章入口异常"); +if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token")) failures.push("首页新章入口异常"); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-scaling-browser.mjs b/scripts/check-scaling-browser.mjs index dd2cc0b..626089f 100644 --- a/scripts/check-scaling-browser.mjs +++ b/scripts/check-scaling-browser.mjs @@ -269,14 +269,14 @@ if (emergence.paths.some((length) => length < 500)) failures.push("涌现多指 if (layout.articleSections !== 16 || layout.paperLinks !== 29 || layout.labTabs !== 4 || layout.views !== 4) { failures.push("章节、论文或实验数量异常"); } -if (layout.navLinks !== 12 || mobile.mobileLinks !== 12 || home.navLinks !== 12) failures.push("全站导航未同步 Scaling"); +if (layout.navLinks !== 13 || mobile.mobileLinks !== 13 || home.navLinks !== 13) failures.push("全站导航未同步 Scaling"); if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出"); if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 5 || !home.firstRelease.includes("大一点") || home.firstHref !== "/scaling/") { - failures.push("首页 Scaling 新章入口异常"); +if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token") || home.firstHref !== "/pretraining/data/") { + failures.push("首页数据工程新章入口异常"); } -if (home.paperCount !== "182") failures.push(`首页论文总数异常:${home.paperCount}`); +if (home.paperCount !== "202") failures.push(`首页论文总数异常:${home.paperCount}`); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/scripts/check-training-systems-browser.mjs b/scripts/check-training-systems-browser.mjs index 599b671..627883c 100644 --- a/scripts/check-training-systems-browser.mjs +++ b/scripts/check-training-systems-browser.mjs @@ -233,7 +233,7 @@ if (layout.articleSections !== 16 || layout.paperLinks !== 37 || layout.labTabs if (layout.documentOverflow > 0 || mobile.documentOverflow > 0 || home.documentOverflow > 0) failures.push("页面存在横向溢出"); if (layout.navGap < 0) failures.push(`桌面导航碰撞:${layout.navGap}px`); if (!mobile.menuVisible || mobile.menuOpen !== "true") failures.push("移动端菜单不可用"); -if (home.releaseCards !== 5 || !home.firstRelease.includes("大一点")) failures.push("首页新章入口异常"); +if (home.releaseCards !== 6 || !home.firstRelease.includes("一万亿 Token")) failures.push("首页新章入口异常"); if (exceptions.length) failures.push(`浏览器脚本异常:${exceptions.join("; ")}`); socket.close(); diff --git a/src/components/DataPipelineLab.astro b/src/components/DataPipelineLab.astro new file mode 100644 index 0000000..6ff1ffe --- /dev/null +++ b/src/components/DataPipelineLab.astro @@ -0,0 +1,1494 @@ +--- +const pipelinePresets = [ + { id: "balanced", label: "均衡清洗", parse: 92, quality: 74, duplicate: 31, quarantine: 4 }, + { id: "strict", label: "激进过滤", parse: 88, quality: 48, duplicate: 45, quarantine: 8 }, + { id: "permissive", label: "宽松保留", parse: 96, quality: 91, duplicate: 16, quarantine: 2 }, + { id: "audit", label: "来源优先", parse: 90, quality: 70, duplicate: 28, quarantine: 18 }, +]; + +const mixturePresets = [ + { id: "balanced", label: "五域均衡", weights: "20,20,20,20,20" }, + { id: "web", label: "网页自然分布", weights: "58,16,7,14,5" }, + { id: "code", label: "代码强化", weights: "24,42,10,16,8" }, + { id: "math", label: "数学强化", weights: "22,15,38,18,7" }, + { id: "multi", label: "多模态强化", weights: "22,16,10,17,35" }, +]; + +const transformPresets = [ + { id: "raw", label: "原文重复", rephrase: 0, fidelity: 96, error: 2, upsample: 1, curriculum: "k2" }, + { id: "k2", label: "K2 早期对照", rephrase: 10, fidelity: 94, error: 3, upsample: 1, curriculum: "k2" }, + { id: "production", label: "生产克制", rephrase: 2, fidelity: 97, error: 2, upsample: 2, curriculum: "k3" }, + { id: "risky", label: "失控合成", rephrase: 8, fidelity: 72, error: 9, upsample: 5, curriculum: "v4" }, +]; + +const dedupExamples = [ + { id: "mirror", label: "镜像网页", exact: 1, fuzzy: 0.99, semantic: 0.99, duplicate: true, rare: false }, + { id: "chrome", label: "导航不同、正文相同", exact: 0, fuzzy: 0.94, semantic: 0.98, duplicate: true, rare: false }, + { id: "template", label: "同模板、不同病例", exact: 0, fuzzy: 0.86, semantic: 0.78, duplicate: false, rare: true }, + { id: "translation", label: "同事实的跨语翻译", exact: 0, fuzzy: 0.24, semantic: 0.93, duplicate: false, rare: true }, + { id: "math", label: "相似题干、条件不同", exact: 0, fuzzy: 0.79, semantic: 0.91, duplicate: false, rare: true }, + { id: "rewrite", label: "评测答案的语义改写", exact: 0, fuzzy: 0.58, semantic: 0.96, duplicate: true, rare: false }, +]; +--- + +
+
+
+

INTERACTIVE / DATA & PRE-TRAINING LAB

+

同一个“数据量”,可以藏着四种完全不同的训练经历

+
+

+ 四个实验均为确定性教学模型。论文中的公开数字只在预设与说明中按原范围引用; + 互动输出不预测 Kimi、DeepSeek 或任何真实模型的 loss、能力与数据配方。 +

+
+ +
+ + + + +
+ +
+
+
+

PIPELINE LEDGER

+

删除 80% 不一定更好,保留 80% 也不一定更安全

+
+

+ 各阶段按顺序作用:解析 → 质量过滤 → 去重 → 许可 / PII / 污染隔离。 + 图中统计按文档计;Token、字节与语言保留率必须另记。 +

+
+ +
+ {pipelinePresets.map((preset) => ( + + ))} +
+ +
+
+ + + + + +
+ +
+
+
TRAINABLE DOCS456K

通过全部阶段的文档

+
RETENTION45.6%

按文档,不是按 Token

+
QUARANTINED19K

可审计隔离,不是静默删除

+
EST. TOKENS0.57B

按 1,250 Token / 文档估算

+
+ +
+ +
+
+ 多数语言保留 + + 55% +
+
+ 长尾语言保留 + + 39% +
+
+ 代码 / 数学保留 + + 50% +
+
+ +
+ 怎样读保留率 + 整体保留率只是体量账;长尾语言的模拟保留率更低,提示必须做分域审计。 +

隔离区应保留 source id 与触发原因;删除后无法追溯,会让许可更新、误删复盘和 benchmark 修正都失去入口。

+
+
+
+
+ + + + + + +
+ + + + diff --git a/src/components/SiteHeader.astro b/src/components/SiteHeader.astro index 4345526..b7ce2e0 100644 --- a/src/components/SiteHeader.astro +++ b/src/components/SiteHeader.astro @@ -11,6 +11,7 @@ const items = [ { id: "deepseek", href: "/deepseek/", label: "DeepSeek" }, { id: "foundations", href: "/foundations/", label: "基础原理" }, { id: "scaling", href: "/scaling/", label: "Scaling" }, + { id: "data", href: "/pretraining/data/", label: "数据工程" }, { id: "moe", href: "/moe/", label: "MoE" }, { id: "long-context", href: "/long-context/", label: "长上下文" }, { id: "reasoning", href: "/reasoning/", label: "推理" }, diff --git a/src/data/chapters.ts b/src/data/chapters.ts index 1075868..b4d9165 100644 --- a/src/data/chapters.ts +++ b/src/data/chapters.ts @@ -86,12 +86,12 @@ export const chapters: Chapter[] = [ title: "数据工程与预训练配方", kicker: "DATA", question: "更多网页为什么不等于更好的模型?", - summary: "追踪采集、过滤、去重、混合、课程、合成数据与污染控制,并明确公开报告的知识边界。", - status: "queued", - progress: 8, - papers: 14, + summary: "用十二张账追踪采集、解析、过滤、去重、混合、改写、Tokenizer、Packing、课程与污染,并串起 DeepSeek / Kimi 数据谱系。", + status: "published", + progress: 73, + papers: 31, prerequisites: ["01", "04"], - highlights: ["数据质量", "混合策略", "污染"], + highlights: ["十二张账", "DeepSeek/Kimi 谱系", "四联实验"], }, { number: "06", diff --git a/src/data/papers.ts b/src/data/papers.ts index ae6eaf3..454d6f9 100644 --- a/src/data/papers.ts +++ b/src/data/papers.ts @@ -4,6 +4,7 @@ export type PaperTopic = | "长上下文" | "MoE" | "Scaling" + | "数据" | "训练系统" | "低精度" | "后训练" @@ -123,8 +124,8 @@ export const papers: Paper[] = [ year: 2019, title: "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer", url: "https://arxiv.org/abs/1910.10683", - topics: ["Transformer", "Scaling"], - contribution: "T5 统一 text-to-text 接口并系统研究架构与数据。", + topics: ["Transformer", "Scaling", "数据"], + contribution: "T5 统一 text-to-text 接口,并以 C4 建立现代 Common Crawl 清洗基线。", verified: true, }, { @@ -397,7 +398,7 @@ export const papers: Paper[] = [ year: 2021, title: "GLaM: Efficient Scaling of Language Models with Mixture-of-Experts", url: "https://arxiv.org/abs/2112.06905", - topics: ["MoE", "Scaling"], + topics: ["MoE", "Scaling", "数据"], contribution: "展示 MoE 在能耗与推理计算上高效扩展语言模型。", verified: true, }, @@ -446,8 +447,8 @@ export const papers: Paper[] = [ year: 2024, title: "DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model", url: "https://arxiv.org/abs/2405.04434", - topics: ["MoE", "长上下文", "训练系统"], - contribution: "联合 DeepSeekMoE 与 MLA,直接压缩推理 KV Cache。", + topics: ["MoE", "长上下文", "数据", "训练系统"], + contribution: "联合 DeepSeekMoE 与 MLA,并披露 8.1T 中英数据、过滤取舍和训练配方。", spotlight: "DeepSeek", verified: true, }, @@ -472,7 +473,7 @@ export const papers: Paper[] = [ year: 2024, title: "DeepSeek-V3 Technical Report", url: "https://arxiv.org/abs/2412.19437", - topics: ["MoE", "Scaling", "训练系统", "低精度"], + topics: ["MoE", "Scaling", "数据", "训练系统", "低精度"], contribution: "671B-A37B;FP8、MTP、无辅助损失平衡与 DualPipe。", spotlight: "DeepSeek", verified: true, @@ -545,8 +546,8 @@ export const papers: Paper[] = [ year: 2024, title: "DeepSeek LLM: Scaling Open-Source Language Models with Longtermism", url: "https://arxiv.org/abs/2401.02954", - topics: ["Scaling"], - contribution: "中英 dense 基线与公开 scaling-law 研究。", + topics: ["Scaling", "数据"], + contribution: "中英 dense 基线、跨 91 个 Common Crawl dump 去重与公开 scaling-law 研究。", spotlight: "DeepSeek", verified: true, }, @@ -554,7 +555,7 @@ export const papers: Paper[] = [ year: 2021, title: "The Pile: An 800GB Dataset of Diverse Text for Language Modeling", url: "https://arxiv.org/abs/2101.00027", - topics: ["Scaling"], + topics: ["Scaling", "数据"], contribution: "公开多域预训练语料与数据配比研究基础。", verified: true, }, @@ -562,7 +563,7 @@ export const papers: Paper[] = [ year: 2023, title: "The RefinedWeb Dataset for Falcon LLM", url: "https://arxiv.org/abs/2306.01116", - topics: ["Scaling"], + topics: ["Scaling", "数据"], contribution: "证明高质量过滤与去重的 Web 数据可以支撑强模型。", verified: true, }, @@ -570,10 +571,170 @@ export const papers: Paper[] = [ year: 2024, title: "Dolma: an Open Corpus of Three Trillion Tokens for Language Model Pretraining Research", url: "https://arxiv.org/abs/2402.00159", - topics: ["Scaling"], + topics: ["Scaling", "数据"], contribution: "开放 3T Token 语料与完整数据处理工具。", verified: true, }, + { + year: 2019, + title: "CCNet: Extracting High Quality Monolingual Datasets from Web Crawl Data", + url: "https://arxiv.org/abs/1911.00359", + topics: ["数据"], + contribution: "把去重、语言识别和 Wikipedia-like 质量过滤组织成可扩展网页语料流水线。", + verified: true, + }, + { + year: 2020, + title: "Extracting Training Data from Large Language Models", + url: "https://arxiv.org/abs/2012.07805", + topics: ["数据", "评测"], + contribution: "从 GPT-2 抽取逐字训练片段与 PII,实证训练记忆和隐私泄露风险。", + verified: true, + }, + { + year: 2021, + title: "Deduplicating Training Data Makes Language Models Better", + url: "https://arxiv.org/abs/2107.06499", + topics: ["数据", "评测"], + contribution: "连接近重复、验证集重合、训练效率与逐字记忆,建立现代 fuzzy dedup 主线。", + verified: true, + }, + { + year: 2023, + title: "ROOTS: One Massive Multilingual Dataset for 1.6TB of Text", + url: "https://arxiv.org/abs/2303.03915", + topics: ["数据"], + contribution: "总结 59 种语言、1.6TB 多语言语料的协作建设、治理与数据文档。", + verified: true, + }, + { + year: 2022, + title: "Efficient Training of Language Models to Fill in the Middle", + url: "https://arxiv.org/abs/2207.14255", + topics: ["数据"], + contribution: "通过 PSM/SPM 数据重排获得代码中间补全能力,并消融变换率和格式。", + verified: true, + }, + { + year: 2023, + title: "DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining", + url: "https://arxiv.org/abs/2305.10429", + topics: ["数据", "Scaling"], + contribution: "用小代理模型学习 domain weights,再迁移到更大目标模型。", + verified: true, + }, + { + year: 2023, + title: "SemDeDup: Data-efficient Learning at Web-scale through Semantic Deduplication", + url: "https://arxiv.org/abs/2303.09540", + topics: ["数据"], + contribution: "在预训练 embedding 空间聚类语义近重复,研究硬删除与多样性收益。", + verified: true, + }, + { + year: 2023, + title: "D4: Improving LLM Pretraining via Document De-Duplication and Diversification", + url: "https://arxiv.org/abs/2308.12284", + topics: ["数据"], + contribution: "先去重再主动保留多样性,说明智能重复与随机重复并不等价。", + verified: true, + }, + { + year: 2023, + title: "PALOMA: A Benchmark for Evaluating Language Model Fit", + url: "https://arxiv.org/abs/2312.10523", + topics: ["数据", "评测"], + contribution: "提出固定训练顺序、子文档去污染、细粒度 domain 和 bits-per-byte 语料评测协议。", + verified: true, + }, + { + year: 2024, + title: "The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale", + url: "https://arxiv.org/abs/2406.17557", + topics: ["数据"], + contribution: "以大规模网页清洗消融构建 FineWeb 与教育价值子集。", + verified: true, + }, + { + year: 2024, + title: "DataComp-LM: In Search of the Next Generation of Language Model Pretraining Datasets", + url: "https://arxiv.org/abs/2406.11794", + topics: ["数据", "Scaling", "评测"], + contribution: "固定 240T candidate pool、模型尺度与 53 项评测,使数据 pipeline 可以同协议比较。", + verified: true, + }, + { + year: 2024, + title: "Rephrasing the Web: A Recipe for Compute and Data-Efficient Language Modeling", + url: "https://arxiv.org/abs/2401.16380", + topics: ["数据"], + contribution: "WRAP 用受控改写增加网页语料的表达覆盖,并研究 Token utility。", + verified: true, + }, + { + year: 2024, + title: "Fewer Truncations Improve Language Modeling", + url: "https://arxiv.org/abs/2404.10830", + topics: ["数据", "训练系统"], + contribution: "Best-fit packing 减少长文档截断,在固定序列长度下保护文档完整性。", + verified: true, + }, + { + year: 2024, + title: "SoftDedup: Efficient Data Reweighting at Scale", + url: "https://arxiv.org/abs/2407.06654", + topics: ["数据"], + contribution: "按常见 n-gram 频率降低样本权重,探索比硬删除更连续的去重策略。", + verified: true, + }, + { + year: 2024, + title: "MATES: Model-Aware Data Selection for Efficient Language Model Pretraining", + url: "https://arxiv.org/abs/2406.06046", + topics: ["数据", "Scaling"], + contribution: "以当前模型状态动态估计样本对目标验证分布的影响。", + verified: true, + }, + { + year: 2024, + title: "Investigating Data Contamination in Modern Benchmarks for Large Language Models", + url: "https://arxiv.org/abs/2401.06059", + topics: ["数据", "评测"], + contribution: "区分 text contamination 与 ground-truth contamination,并检查 n-gram 检测的边界。", + verified: true, + }, + { + year: 2024, + title: "MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training", + url: "https://arxiv.org/abs/2403.09611", + topics: ["数据", "多模态"], + contribution: "系统消融 caption、interleaved image-text、text-only mixture 与视觉组件。", + verified: true, + }, + { + year: 2024, + title: "JEST: Joint Example Selection for Multimodal Learning", + url: "https://arxiv.org/abs/2406.17711", + topics: ["数据", "多模态"], + contribution: "按 batch 的联合可学习性选择多模态样本,研究动态数据价值。", + verified: true, + }, + { + year: 2025, + title: "Group-MATES: Data-Efficient Pretraining with Group-Level Data Influence Modeling", + url: "https://arxiv.org/abs/2502.14709", + topics: ["数据", "Scaling"], + contribution: "把模型感知的数据影响估计扩展到 group-level 选择。", + verified: true, + }, + { + year: 2025, + title: "Swallow: Continued Pre-training with Synthetic Data for Efficient Language Model Adaptation", + url: "https://arxiv.org/abs/2505.02881", + topics: ["数据", "后训练"], + contribution: "用 SwallowCode 与 SwallowMath 研究受控合成数据的继续预训练收益与边界。", + verified: true, + }, { year: 2017, title: "Deep Learning Scaling is Predictable, Empirically", @@ -1157,8 +1318,8 @@ export const papers: Paper[] = [ year: 2024, title: "DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models", url: "https://arxiv.org/abs/2402.03300", - topics: ["推理", "后训练"], - contribution: "数学数据管线与无独立 critic 的 GRPO。", + topics: ["数据", "推理", "后训练"], + contribution: "从 40B HTML pages 发现 120.2B 数学语料,并提出无独立 critic 的 GRPO。", spotlight: "DeepSeek", verified: true, }, @@ -1344,8 +1505,8 @@ export const papers: Paper[] = [ year: 2025, title: "Kimi K2: Open Agentic Intelligence", url: "https://arxiv.org/abs/2507.20534", - topics: ["MoE", "训练系统", "Agent", "后训练", "推理"], - contribution: "开放 1T MoE Agent 模型,以 verifiable gym 与 self-critique rubric 做 joint RL。", + topics: ["MoE", "数据", "训练系统", "Agent", "后训练", "推理"], + contribution: "开放 1T MoE Agent 模型,以 15.5T、知识/数学改写与 verifiable gym / self-critique joint RL 协同。", spotlight: "Kimi", verified: true, }, @@ -1353,7 +1514,7 @@ export const papers: Paper[] = [ year: 2026, title: "Kimi K2.5: Visual Agentic Intelligence", url: "https://arxiv.org/abs/2602.02276", - topics: ["训练系统", "Agent", "多模态", "推理"], + topics: ["数据", "训练系统", "Agent", "多模态", "推理"], contribution: "把视觉、工具使用和并行 Agent Swarm 纳入统一后训练。", spotlight: "Kimi", verified: true, @@ -1484,8 +1645,8 @@ export const papers: Paper[] = [ year: 2026, title: "DeepSeek-V4: Towards Highly Efficient Million-Token Context Intelligence", url: "https://arxiv.org/abs/2606.19348", - topics: ["长上下文", "MoE", "训练系统", "推理"], - contribution: "CSA/HCA 混合注意力、mHC、Muon 与 1M 上下文双模型。", + topics: ["长上下文", "MoE", "数据", "训练系统", "推理"], + contribution: "32/33T 长文与 agentic 数据、CSA/HCA、mHC、Muon 和 1M 上下文双模型。", spotlight: "DeepSeek", verified: true, }, @@ -1493,8 +1654,8 @@ export const papers: Paper[] = [ year: 2026, title: "Kimi K3: Open Frontier Intelligence", url: "https://arxiv.org/abs/2607.24653", - topics: ["长上下文", "MoE", "训练系统", "低精度", "推理", "Agent", "多模态", "评测"], - contribution: "2.8T-A104B、KDA/MLA、AttnRes、Stable LatentMoE 与 1M Agentic RL。", + topics: ["长上下文", "MoE", "数据", "训练系统", "低精度", "推理", "Agent", "多模态", "评测"], + contribution: "四文本域与视觉语料、2.8T-A104B、KDA/MLA、Stable LatentMoE 与 1M Agentic RL。", spotlight: "Kimi", verified: true, }, @@ -1506,6 +1667,7 @@ export const paperTopics: PaperTopic[] = [ "长上下文", "MoE", "Scaling", + "数据", "训练系统", "低精度", "后训练", diff --git a/src/pages/index.astro b/src/pages/index.astro index 30d3778..998cfc1 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -8,6 +8,7 @@ const routes: Record = { roadmap: "/roadmap/", foundations: "/foundations/", scaling: "/scaling/", + "pretraining/data": "/pretraining/data/", moe: "/moe/", "long-context": "/long-context/", reasoning: "/reasoning/", @@ -80,6 +81,7 @@ const paths = [ 直接解剖 K3 DeepSeek 专题 Scaling Laws 专题 + 数据工程专题 MoE 专题 长上下文专题 推理专题 @@ -93,20 +95,36 @@ const paths = [
16核心专题
151K3 报告来源
-
182关键论文索引
+
202关键论文索引
47pK3 技术报告
研究范围 -

表示学习 · Transformer · Scaling · MoE · 长上下文 · 训练系统 · 后训练 · 推理 · Agent · 多模态 · 服务与评测

+

表示学习 · Transformer · Scaling · 数据工程 · MoE · 长上下文 · 训练系统 · 后训练 · 推理 · Agent · 多模态 · 服务与评测

查看实时进度 →
+ +
+

NEW / CHAPTER 05 DATA & PRE-TRAINING

+

同样一万亿 Token,可以是完全不同的训练经历

+

+ 用来源、解析、质量、唯一性、污染、混合、变换、Tokenizer、Packing、课程与模型感知价值十二张账, + 从 C4、Pile、DoReMi 和 DCLM 一路走到 DeepSeek 五代数据工程与 Kimi K2→K3 原生多模态。 +

+
+
+
LINEAGE
2019 → 2026
+
PAPERS
31 个一手节点
+
LAB
流水线 · 去重 · 混合 · 改写
+
+ +

NEW / CHAPTER 04 SCALING LAWS

@@ -420,6 +438,7 @@ const paths = [ transition: transform 180ms ease, border-color 180ms ease; } + .data-release, .scaling-release, .training-release, .reasoning-release { @@ -427,6 +446,13 @@ const paths = [ min-height: 510px; } + .data-release { + background: + radial-gradient(circle at 82% 18%, rgba(76, 118, 112, 0.2), transparent 30%), + repeating-linear-gradient(0deg, transparent 0 46px, rgba(76, 118, 112, 0.045) 46px 47px), + var(--paper-raised); + } + .scaling-release { background: radial-gradient(circle at 82% 18%, rgba(159, 91, 52, 0.18), transparent 30%), @@ -510,6 +536,7 @@ const paths = [ padding-bottom: 76px; } + .data-release, .scaling-release, .training-release, .reasoning-release { diff --git a/src/pages/moe/index.astro b/src/pages/moe/index.astro index a2d7398..b68eef5 100644 --- a/src/pages/moe/index.astro +++ b/src/pages/moe/index.astro @@ -683,7 +683,7 @@ const paperChain = [
diff --git a/src/pages/pretraining/data/index.astro b/src/pages/pretraining/data/index.astro new file mode 100644 index 0000000..2bbbb28 --- /dev/null +++ b/src/pages/pretraining/data/index.astro @@ -0,0 +1,2357 @@ +--- +import BaseLayout from "@/layouts/BaseLayout.astro"; +import DataPipelineLab from "@/components/DataPipelineLab.astro"; + +const toc = [ + ["00", "map", "十二张数据账"], + ["01", "pipeline", "一粒 Token 的来路"], + ["02", "parse", "提取与解析"], + ["03", "quality", "质量怎样定义"], + ["04", "dedup", "三种去重"], + ["05", "safety", "污染、记忆与治理"], + ["06", "mixture", "领域混合与选择"], + ["07", "rewrite", "重复、改写与合成"], + ["08", "tokenizer", "Tokenizer 的隐形影响"], + ["09", "packing", "Packing、Mask 与 FIM"], + ["10", "curriculum", "预训练课程"], + ["11", "deepseek", "DeepSeek 五代谱系"], + ["12", "kimi", "Kimi K2 → K3"], + ["13", "multimodal", "原生多模态数据"], + ["14", "lab", "四联互动实验"], + ["15", "audit", "证据与审计协议"], + ["16", "history", "历史主线"], + ["17", "papers", "一手论文链"], +]; + +const ledgers = [ + ["L1 / SOURCE", "来源与治理", "URL、快照、许可、robots、地域和删除请求能否追溯?"], + ["L2 / PARSING", "提取与解析", "网页、PDF、代码、OCR 的结构有没有在转文本时被破坏?"], + ["L3 / LANGUAGE", "语言与领域", "混语、方言、代码注释与跨域文档怎样多标签识别?"], + ["L4 / QUALITY", "质量与安全", "规则、分类器、人工标注分别在判断什么,误删率多大?"], + ["L5 / UNIQUENESS", "唯一性", "完全重复、表面近似和语义相似是否被混成一种重复?"], + ["L6 / CONTAMINATION", "污染与隐私", "题干、答案、语义改写、PII 和 secret 分别怎样检查?"], + ["L7 / MIXTURE", "混合与采样", "每个领域最终看多少 Token、相当于多少 effective epoch?"], + ["L8 / TRANSFORM", "数据变换", "改写、翻译、FIM 和合成后还保留 source lineage 吗?"], + ["L9 / TOKENIZER", "Token 计量", "相同字节被切成多少 Token,跨模型 loss 是否还能比较?"], + ["L10 / PACKING", "序列与可见性", "文档是否被截断;packed sample 能否互相 attention?"], + ["L11 / CURRICULUM", "课程与配方", "什么数据在什么 LR、batch、context 和阶段进入训练?"], + ["L12 / VALUE", "模型感知价值", "样本对哪个模型、验证域和训练阶段真正有用?"], +]; + +const pipelineSteps = [ + ["01", "SOURCE SNAPSHOT", "来源快照", "保存 URL / dump / commit、抓取时间、原始哈希和权利信息。", "治理账"], + ["02", "EXTRACT", "正文与结构", "去 boilerplate,恢复 PDF 阅读顺序,保留代码、表格、图注与坐标。", "解析账"], + ["03", "LANGUAGE", "语言识别", "文档级只是起点;混语与代码注释需要段落级、多标签判断。", "覆盖账"], + ["04", "DOMAIN", "领域识别", "Web、Code、Math、Knowledge、Vision 并非互斥桶。", "混合账"], + ["05", "QUALITY", "质量筛选", "硬故障用规则,软价值用分类器,最终用小模型消融校验。", "误删账"], + ["06", "SAFETY", "安全与隐私", "检测 PII、secret、恶意内容与价值敏感样本;高风险进入隔离区。", "治理账"], + ["07", "DEDUP", "唯一性", "先 exact,再 fuzzy / semantic;cluster 保留策略同样影响长尾。", "唯一性账"], + ["08", "DECONTAM", "评测隔离", "题干、答案、解释、翻译与时间边界分开检查。", "评测账"], + ["09", "MIX", "领域采样", "权重决定 seen Token 与 effective epoch,而不只是 corpus 占比。", "能力账"], + ["10", "TRANSFORM", "改写与重排", "rephrase、translation、FIM 都要携带源文、teacher 与 verifier 版本。", "变换账"], + ["11", "TOKENIZE", "分词", "vocab、normalizer、pretokenizer 改变压缩率、边界与 loss 单位。", "计量账"], + ["12", "PACK & TRAIN", "组序列与课程", "文档边界、mask、长度、LR、batch 和阶段共同定义实际训练经历。", "配方账"], +]; + +const parserCases = [ + ["WEB", "导航、cookie banner、推荐栏、SEO 聚合、隐藏文本", "正文率、DOM 密度、重复块、编码、标题—正文一致性"], + ["PDF", "双栏错序、页眉页脚、公式拆散、表格与图注失联", "layout parser、页级结构、公式/图/引用锚点"], + ["CODE", "vendor、generated、minified、secret、仓库上下文丢失", "语言 parser、repo/commit、license、依赖和测试关系"], + ["OCR", "错字、bbox 漂移、阅读顺序、截图与文本不匹配", "OCR confidence、坐标系、视觉—文本对齐"], + ["VIDEO", "重复帧、字幕错时、短 clip 拼接、镜头语义断裂", "perceptual hash、timestamp、shot boundary、轨迹完整性"], +]; + +const dedupModes = [ + { + code: "01 / EXACT", + title: "哈希相等", + sees: "镜像、重复抓取、完全相同文件", + misses: "空格 / 页眉变化、截断、改写、翻译", + danger: "误伤少,但把“未命中”误当“唯一”", + }, + { + code: "02 / FUZZY", + title: "Shingle + MinHash / LSH", + sees: "正文相同但模板变化、局部增删", + misses: "跨语翻译与深度复述", + danger: "共享模板的独立病例、代码样板可能被合并", + }, + { + code: "03 / SEMANTIC", + title: "Embedding 近邻", + sees: "表面不同但内容相似、语义改写", + misses: "encoder 不擅长的语言与专业域", + danger: "相反立场、近题、翻译和文化长尾被误删", + }, +]; + +const qualityLayers = [ + ["HARD FAILURE", "规则", "乱码、极短、重复行、无效结构、明确 secret", "可解释、便宜", "规则外噪声漏过;特殊体裁误删"], + ["SOFT QUALITY", "分类器", "连贯、教育价值、专业度、模板生成概率", "可扩大到海量语料", "继承标注者与 teacher 偏好"], + ["CAUSAL CHECK", "小模型消融", "同预算 A/B pipeline 对 held-out slices 的影响", "最接近训练目标", "昂贵;小模型排序未必迁移"], + ["GOVERNANCE", "人工与策略", "许可、隐私、价值冲突、长尾文化", "能处理不可约规范问题", "分歧必须披露,不能藏进单一分数"], +]; + +const contaminationTypes = [ + ["TEXT", "题干 / 上下文逐字或近似出现", "exact、n-gram、shingle"], + ["GROUND TRUTH", "标签、答案、标准解或评分脚本出现", "答案规范化、结构匹配"], + ["SEMANTIC", "题目 / 答案被改写或翻译", "retrieval + 人工复核"], + ["TEMPORAL", "训练快照晚于评测截止或结果公布", "版本 / 时间戳"], + ["MEMORIZATION", "稀有长串、PII、secret 可被诱导复现", "canary、extraction audit"], +]; + +const tokenizerSteps = [ + ["DEEPSEEK LLM", "100,015 → pad 102,400", "BBPE;newline、punctuation、CJK 分开;数字逐位;约 24GB multilingual tokenizer corpus。"], + ["DEEPSEEK-V2", "100K", "沿用 BBPE;8.1T tokenized corpus,报告中文 Token 约比英文多 12%。"], + ["DEEPSEEK-V3", "128K", "优化 multilingual compression;合并 punctuation + newline,又以随机 token splitting 修复 boundary bias。"], + ["DEEPSEEK-V4", "128K", "继承 V3、FIM 与 token splitting;新增少量 context construction special tokens。"], + ["KIMI K2 / K3", "160K", "报告给出词表规模;完整 tokenizer 训练语料与跨语言压缩表未公开。"], +]; + +const packingCases: Array<[string, string[], string]> = [ + ["NAIVE CONCAT", ["Doc A", "Doc B", "Doc C…"], "尾部截断少量 padding,但跨文档形成伪上下文。"], + ["SAMPLE MASK", ["Doc A │", "Doc B │", "Doc C"], "同序列提升利用率,attention 只在各 sample 内因果可见。"], + ["BEST-FIT", ["Long Doc A", "Short B + C", "Medium D"], "按长度装箱,减少长文档被反复截断。"], + ["FIM / PSM", ["prefix", "suffix", "middle"], "数据重排获得补中间能力;不是新增架构或新事实。"], +]; + +const deepseekLineage = [ + { + year: "2024", + model: "DeepSeek LLM", + amount: "2T(模型训练)", + data: "dedup → filter → remix", + detail: "跨 91 个 Common Crawl dump 去重,Table 1 的文档去重率从单 dump 22.2% 增到 89.8%;BBPE 100K。", + unknown: "最终 source mixture、各过滤器误删率与完整许可表。", + }, + { + year: "2024", + model: "DeepSeekMath", + amount: "120.2B Math corpus", + data: "seed classifier → domain expansion", + detail: "从约 40B deduplicated HTML pages 出发,迭代 URL / domain 发现并去污染;7B 继续训练 500B 的 mixture 公开。", + unknown: "完整 URL 清单、分类器阈值和所有来源权利映射。", + }, + { + year: "2024", + model: "DeepSeek-V2", + amount: "8.1T Token", + data: "恢复误删 + 更多中文", + detail: "改进 cleaning 与 quality filter,增加中文并过滤 contentious content;附录承认区域 benchmark 代价与标注分歧。", + unknown: "价值过滤完整政策、每语言 source 与最终比例。", + }, + { + year: "2024", + model: "DeepSeek-V3", + amount: "14.8T Token", + data: "Math / Code + multilingual", + detail: "减少冗余但保留多样性;best-fit packing;无 cross-sample mask;document-level PSM FIM rate 0.1;128K BBPE。", + unknown: "精确 domain mixture、unique Token、FIM 各域比例。", + }, + { + year: "2026", + model: "DeepSeek-V4", + amount: "Flash 32T · Pro 33T", + data: "长文 + agentic mid-training", + detail: "过滤批量自动生成 / 模板页,扩文化长尾;sample-level mask;4K → 16K → 64K → 1M,并在 64K 后引入 sparse attention。", + unknown: "自动生成检测器细节、agentic 占比、每阶段 Token 和 source map。", + }, +]; + +const schedules = [ + { + name: "Kimi K2", + total: "15.5T 主语料 / schedule", + stages: [ + ["500 steps", "warmup"], + ["10T", "2e-4 stable"], + ["5.5T", "cosine → 2e-5"], + ["400B + 60B", "anneal 4K → 32K"], + ["target", "YaRN 128K"], + ], + note: "MuonClip、67M Token global batch;末期阶段按报告表述,不擅自重算成新的官方总量。", + }, + { + name: "Kimi K3", + total: "总训练 Token 未披露", + stages: [ + ["1%", "linear warmup"], + ["pretrain", "8K"], + ["pretrain", "64K"], + ["cooldown", "256K"], + ["target", "1M"], + ], + note: "Cosine;Per-Head Muon、weight clipping、QB;语言与视觉从头共同优化。", + }, + { + name: "DeepSeek-V3", + total: "14.8T", + stages: [ + ["2K steps", "warmup"], + ["→10T", "2.2e-4"], + ["4.3T", "cosine → 2.2e-5"], + ["500B", "2-stage final LR"], + ["2×1K steps", "32K → 128K"], + ], + note: "主预训练 4K;MTP loss weight 0.3 → 0.1,batch 在前 469B 墤大。", + }, + { + name: "DeepSeek-V4", + total: "32T / 33T", + stages: [ + ["first 1T*", "dense warmup"], + ["length", "4K → 16K"], + ["64K", "indexer warmup"], + ["main", "sparse attention"], + ["target", "1M"], + ], + note: "* Flash 报告明确前 1T dense;Pro dense stage 更长但未给同一简化数值。", + }, +]; + +const multimodalTypes = [ + ["CAPTION", "图片 ↔ 描述", "物体与属性", "短、弱关系、易模板化"], + ["INTERLEAVED", "图文交错文档", "跨段落图文依赖", "解析和对齐困难"], + ["OCR", "像素 ↔ 文字 / bbox", "读图与定位", "识别错误与坐标漂移"], + ["PERCEPTION", "区域 / 坐标 / 类别", "空间与检测", "标注体系不一致"], + ["VIDEO", "帧 + 时间 + 文本", "动态过程", "重复帧、字幕错时、Token 巨大"], + ["VISUAL CODE", "程序 ↔ 渲染", "结构、布局、可编辑生成", "renderer / 模板偏差"], +]; + +const history = [ + ["2019", "T5 / C4", "Common Crawl 清洗成为现代预训练入口。"], + ["2019", "CCNet", "去重、语言识别与 Wikipedia-like quality pipeline。"], + ["2020", "The Pile", "825GiB、22 个异质子集,mixture 公开化。"], + ["2020", "Training-data extraction", "逐字记忆、PII 与模型抽取成为实证风险。"], + ["2021", "ROOTS", "多语言、协作治理与数据卡进入中心。"], + ["2021", "Deduplication", "近重复、validation overlap 与记忆被统一研究。"], + ["2022", "FIM", "通过数据重排获得代码补中间能力。"], + ["2023", "DoReMi", "280M proxy 学 domain weights,再迁移到 8B。"], + ["2023", "SemDeDup / D4", "语义去重与去重后的多样性选择。"], + ["2024", "Dolma / FineWeb / DCLM", "开放工具、网页消融与统一数据实验协议。"], + ["2024", "WRAP / SoftDedup / MATES", "改写、降权和模型感知选择三条路线。"], + ["2024", "DeepSeek LLM → V3", "全局去重、Math corpus、语言再平衡、FIM 与 packing。"], + ["2024", "MM1", "多模态 data mixture 的受控消融。"], + ["2025", "Kimi K2 / Swallow", "Token utility、知识 / 数学改写与合成持续预训练。"], + ["2026", "DeepSeek-V4 / Kimi K3", "自动生成互联网、agentic、原生多模态与百万上下文课程。"], +]; + +const paperChain = [ + ["2019", "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer", "https://arxiv.org/abs/1910.10683", "T5 与 C4。"], + ["2019", "CCNet: Extracting High Quality Monolingual Datasets from Web Crawl Data", "https://arxiv.org/abs/1911.00359", "网页清洗、语言识别与去重。"], + ["2020", "The Pile: An 800GB Dataset of Diverse Text for Language Modeling", "https://arxiv.org/abs/2101.00027", "22 子集 mixture。"], + ["2020", "Extracting Training Data from Large Language Models", "https://arxiv.org/abs/2012.07805", "记忆、抽取与 PII。"], + ["2021", "Deduplicating Training Data Makes Language Models Better", "https://arxiv.org/abs/2107.06499", "近重复与记忆。"], + ["2022", "ROOTS: One Massive Multilingual Dataset", "https://arxiv.org/abs/2303.03915", "59 种语言与治理。"], + ["2022", "Efficient Training of Language Models to Fill in the Middle", "https://arxiv.org/abs/2207.14255", "FIM 数据变换。"], + ["2023", "DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining", "https://arxiv.org/abs/2305.10429", "代理模型学习配比。"], + ["2023", "SemDeDup", "https://arxiv.org/abs/2303.09540", "语义去重。"], + ["2023", "D4: Improving LLM Pretraining via Document De-Duplication and Diversification", "https://arxiv.org/abs/2308.12284", "去重 + 多样性。"], + ["2023", "PALOMA", "https://arxiv.org/abs/2312.10523", "细粒度语料评测与 BPB。"], + ["2024", "Dolma: an Open Corpus of Three Trillion Tokens", "https://arxiv.org/abs/2402.00159", "开放语料与工具。"], + ["2024", "The FineWeb Datasets", "https://arxiv.org/abs/2406.17557", "网页过滤消融。"], + ["2024", "DataComp-LM", "https://arxiv.org/abs/2406.11794", "统一 pool、训练和评测。"], + ["2024", "Rephrasing the Web", "https://arxiv.org/abs/2401.16380", "WRAP 与改写。"], + ["2024", "Fewer Truncations Improve Language Modeling", "https://arxiv.org/abs/2404.10830", "Best-fit packing。"], + ["2024", "SoftDedup", "https://arxiv.org/abs/2407.06654", "按频率降权。"], + ["2024", "MATES", "https://arxiv.org/abs/2406.06046", "模型感知数据选择。"], + ["2024", "Investigating Data Contamination in Modern Benchmarks", "https://arxiv.org/abs/2401.06059", "text 与 ground-truth contamination。"], + ["2024", "MM1: Methods, Analysis & Insights from Multimodal LLM Pre-training", "https://arxiv.org/abs/2403.09611", "多模态 mixture。"], + ["2024", "JEST", "https://arxiv.org/abs/2406.17711", "多模态联合样本选择。"], + ["2024", "DeepSeek LLM", "https://arxiv.org/abs/2401.02954", "dedup、filter、remix 与 tokenizer。"], + ["2024", "DeepSeekMath", "https://arxiv.org/abs/2402.03300", "120.2B 数学语料与公开 mixture。"], + ["2024", "DeepSeek-V2", "https://arxiv.org/abs/2405.04434", "8.1T、中文与过滤取舍。"], + ["2024", "DeepSeek-V3", "https://arxiv.org/abs/2412.19437", "14.8T、packing、FIM 与 128K tokenizer。"], + ["2025", "Group-MATES", "https://arxiv.org/abs/2502.14709", "group-level data influence。"], + ["2025", "Swallow: Continued Pre-training with Synthetic Data", "https://arxiv.org/abs/2505.02881", "Code / Math 合成数据。"], + ["2025", "Kimi K2", "https://arxiv.org/abs/2507.20534", "15.5T、rephrasing 与 WSD。"], + ["2026", "Kimi K2.5", "https://arxiv.org/abs/2602.02276", "原生多模态数据 taxonomy 的前代。"], + ["2026", "DeepSeek-V4", "https://arxiv.org/abs/2606.19348", "32/33T、长文、agentic 与 1M curriculum。"], + ["2026", "Kimi K3", "https://arxiv.org/abs/2607.24653", "四文本域、视觉语料与原生多模态。"], +]; +--- + + +
+
+
+

DATA / 05 CORPUS → TOKEN → GRADIENT

+

模型吃下的不是网页,
而是一套被安排过的经历。

+

+ 同样是一万亿 Token,可以是独特知识、重复模板、忠实改写、错误合成或被截断的碎片。 + 本章沿一份原始文档走完整条流水线,再看 DeepSeek 与 Kimi 如何把数据、模型和训练阶段一起设计。 +

+
+
+
LEDGERS
12 张独立数据账
+
SOURCES
31 个一手节点
+
LINEAGE
2019 → 2026
+
LAB
4 个独立实验
+
SPOTLIGHT
DeepSeek × Kimi
+
+
+
+ +
+ + +
+
+

00 TWELVE LEDGERS

+

先把“数据质量”拆成十二个可以追问、可以失败的问题

+

+ 数据工程最危险的表达是“我们使用了高质量、多样、去重的数据”。它没有说明来源、单位、阈值, + 也没有告诉你少数语言、隐私、benchmark 和文档结构发生了什么。下面十二张账是本章的防混淆协议。 +

+ +
+ {ledgers.map(([code, title, body]) => ( +
{code}

{title}

{body}

+ ))} +
+ +
+ CORE MODEL +

+ 算力账数模型处理了多少 Token;唯一性账数真正不同的材料; + 价值账问这些材料对当前模型与目标有没有用;治理账决定即使有用,是否应该进入训练。 +

+
+ +
+
1 文档

可能是 80 字短帖,也可能是 400 页技术手册。

+ +
1 Token

由 tokenizer 定义;不同语言与词表的压缩率不同。

+ +
1 学习信号

重复、噪声、结构完整性和课程都会改变边际价值。

+
+
+ +
+

01 DOCUMENT LIFE CYCLE

+

一份网页走到一次梯度更新,中间至少经过十二道门

+

+ 这不是所有团队唯一的顺序:安全、去重与污染检查可能多次发生,代码和视觉也有专门分支。 + 但如果一份技术报告完全跳过其中某一步,读者至少应该知道自己失去了哪种证据。 +

+ +
+ {pipelineSteps.map(([number, code, title, body, ledger], index) => ( +
+ {number} +
{code}

{title}

{body}

+ {ledger} + {index < pipelineSteps.length - 1 && } +
+ ))} +
+ +
+ 每一步都应留下 + input idcode / config versiondecision + reasonoutput id +
+
+ +
+

02 EXTRACTION & STRUCTURE

+

“下载成功”离“得到一个文档”还很远

+

+ HTML boilerplate 会把导航模板重复数万次;PDF 双栏若按横向坐标读取,会把两列句子交错; + 代码离开仓库与依赖后,可能只剩无法执行的片段。解析质量是数据质量的地基。 +

+ +
+
载体典型破坏最低检查
+ {parserCases.map(([kind, failure, check]) => ( +
{kind}

{failure}

{check}

+ ))} +
+ +
+
+ LONG ≠ COHERENT +

长文件可能只是更大的垃圾袋

+

binary blob、截断日志、复制页面与无效生成记录可以很长,却没有远距离依赖。

+
+
    +
  1. 完整性开头、结尾、章节、引用与文件格式一致
  2. +
  3. 结构性任务需要跨段落、跨帧或跨子任务连接信息
  4. +
  5. 唯一性exact / fuzzy;视频还要做 frame perceptual hash
  6. +
+
+

+ K3 §3.4 正式列出 exact / fuzzy dedup、视频帧感知哈希、规则 / 分类器过滤和 structural validation; + 这也是它在 1M context 前先处理“长而无效”材料的原因。 +

+
+ +
+

03 QUALITY IS A VECTOR

+

规则能发现坏文件,分类器能猜测价值,真正的答案还要回到训练消融

+

+ “像百科”“像教科书”“语言流畅”只是 proxy。论坛中的稀有工程经验可能不像教科书, + 低资源语言的分类器置信度也可能更低。好的 pipeline 必须展示整体收益与分域伤害。 +

+ +
+ {qualityLayers.map(([code, actor, target, strength, risk]) => ( +
+ {code}

{actor}

{target}

+
强项
{strength}
风险
{risk}
+
+ ))} +
+ +
+ NOT A REAL FORMULA + quality ≠ fluency × prestige × benchmark score +

这是禁止性表达:如果用已有模型偏好筛数据,再用同类 benchmark 证明数据“高质量”,会形成循环定义。

+
+ +
+ 最小可信 A/B +
    +
  1. 同原始 pool 与同 Token 预算;
  2. +
  3. 只改变一个 pipeline 阶段;
  4. +
  5. 两边分别调必要超参;
  6. +
  7. 同时报告 overall loss、语言 / 领域 slices、误删样本与置信区间;
  8. +
  9. 把 classifier / parsing 的额外计算计入。
  10. +
+
+
+ +
+

04 EXACT → FUZZY → SEMANTIC

+

去重越“聪明”,越需要回答它把哪些真正差异看成了重复

+

+ Exact dedup 处理字节 / 规范化字符串;fuzzy dedup 比较 shingles;semantic dedup 在表示空间找近邻。 + 三种方法不是替代关系,也不共享同一个阈值含义。 +

+ +
+ {dedupModes.map((mode) => ( +
+ {mode.code}

{mode.title}

+
+
看得见
{mode.sees}
+
看不见
{mode.misses}
+
危险
{mode.danger}
+
+
+ ))} +
+ +
+
+ DEEPSEEK LLM · TABLE 1 +

比较范围从 1 个 dump 扩到 91 个,重复才真正显形

+

+ 报告按文档给出去重率:单 dump 为 22.2%,跨 91 个 Common Crawl dump 为 89.8%。 + 作者将其描述为删除文档数约为单 dump 方法的四倍。 +

+
+
+ {[["1", 22.2], ["2", 46.7], ["6", 55.7], ["12", 69.9], ["16", 75.7], ["22", 76.3], ["41", 81.6], ["91", 89.8]].map(([dump, rate]) => ( +
{rate}%{dump}
+ ))} +
+ DUMPS USED · 这是该 pipeline 的文档比例,不是 Token 比例,更不是“互联网 89.8% 无价值”。 +
+
+ +
+

05 CONTAMINATION · MEMORY · RIGHTS

+

评测污染、训练记忆和数据权利相关,却必须分开审计

+

+ 一道题出现在训练集,不必然意味着模型会逐字复现;模型能复现一段 PII,也不要求它来自 benchmark。 + 许可允许访问,也不自动回答能否训练、再分发数据或发布权重。 +

+ +
+ {contaminationTypes.map(([type, meaning, detector]) => ( +
{type}

{meaning}

{detector}
+ ))} +
+ +
+
TRAIN SNAPSHOT先冻结版本

没有时间戳,就无法判定 benchmark 公布前后。

+ +
MATCH LAYERS由 exact 到 semantic

每层报告阈值、候选数与人工复核。

+ +
QUARANTINE隔离而非消失

保留触发原因,才能复盘误报与删除请求。

+ +
REPORT披露剩余风险

“未命中”不能写成“完全无污染”。

+
+ +
+ Carlini et al. 2020 的正确边界 +

+ 作者从 GPT-2 中抽取出数百个逐字训练片段,包含 PII;其设置还观察到单文档序列也可能被抽取、 + 更大模型更易受影响。这是风险实证,不是所有模型的固定泄露率。 +

+
+
+ +
+

06 DOMAIN MIXTURE

+

Corpus 占比、采样权重和训练遍数,是三个不同数字

+

+ 一个 120B Token 的数学桶在 1T 训练中拿到 20% 权重,会被看约 1.67 遍; + 一个 800B 的 Web 桶拿到同样 20%,只覆盖约四分之一。权重相同,不等于 exposure 相同。 +

+ +
+
SAMPLINGΣ wᵢ = 1

每一步从哪个 domain 取样

+ +
SEENDᵢ = D × wᵢ

训练实际处理的 Token

+ +
EPOCHeᵢ = Dᵢ / Uᵢ

相对 unique corpus 的遍数

+
+ +
+
MANUAL

人工配比

能加入产品、语言和治理约束;需要大量消融,且最优点会随规模和阶段移动。

+
TEMPERATURE

按体量平滑

pᵢ ∝ nᵢα;α<1 抬高小域,但不判断小域质量。

+
DOREMI

代理模型学权重

280M proxy → 8B;作者摘要在 Pile 设置报告 +6.5pp 与 2.6× fewer steps。

+
MATES / JEST

模型感知选择

估计当前样本 / batch 对目标 validation 的价值;选择开销、目标偏差和可迁移性必须记账。

+
+ +
+ WHY DCLM MATTERS +

+ DCLM 固定 240T-token candidate pool、模型尺度和 53 项评测,让不同数据 pipeline 在同协议竞争。 + 作者摘要中的 7B / 2.6T baseline 达 64% 5-shot MMLU、比 MAP-Neo 高 6.6pp 且少 40% compute; + 这些数字只属于 DCLM 协议。 +

+
+
+ +
+

07 REPEAT · REPHRASE · SYNTHESIZE

+

改写不是免费新知识,而是用生成成本换取更多语言表面

+

+ 原文重复保留事实形式但边际收益下降;忠实改写希望保持事实 / 推理结构并改变表述; + 从零合成则可能创造新组合,也最容易继承 teacher 的错误、风格和偏见。 +

+ +
+
LOW GENERATION COST

原文多 epoch

没有生成误差;增加记忆与过拟合风险,不增加表面多样性。

+ +
CONTROLLED SURFACE

忠实改写 / 翻译

必须保留 source lineage、teacher、prompt 与 fidelity verifier。

+ +
NEW COMPOSITION

合成任务 / 轨迹

可以程序化验证,也可能产生 teacher monoculture 与 feedback loop。

+
+ +
+
+ 4096-TOKEN SOURCE +
chunk 1rewrite 1
+
chunk 2 + previous contextrewrite 2
+
… autoregressiveconcat
+ FIDELITY CHECK ↔ SOURCE +
+
+ KIMI K2 · TABLE 1 +

一个很有价值、也很容易被过度外推的实验

+ + + + + + + +
配置改写epochSimpleQA
raw wiki-text01023.76
改写一次后重复11027.39
十种改写各一遍10128.94
+

+ 这是 early checkpoint、单一 SimpleQA 与三种组合配置;生产扩展中每个 corpus 最多改写两次。 + 它不证明“改写越多永远越好”。 +

+
+
+ +
+ 改写 pipeline 仍需回答 + 事实是否保持?原语言是否消失?teacher 风格是否坍缩? + 答案改写是否躲过污染检查?生成 FLOPs 是否计入?删除请求能否沿 lineage 传播? +
+
+ +
+

08 TOKENIZER AS A METER

+

Tokenizer 既是压缩器,也是训练数据的计量仪和边界偏置

+

+ Perplexity 是平均 token NLL 的指数。同一句话被切成 5 或 12 个 Token,分母已经变了; + 跨 tokenizer 更适合看 bits-per-byte 或 byte-normalized loss。 +

+ +
+
SAME BYTESDeepSeek-V3 fixes
multi-line prompts.
+ +
TOKENIZER ADeep · Seek · - · V · 3 · fixes · …更多 Token / 不同边界
+ +
TOKENIZER BDeepSeek · -V3 · fixes · ↵ · multi-line · …更少 Token / 合并换行
+
+ +
+ {tokenizerSteps.map(([model, vocab, detail], index) => ( +
{String(index + 1).padStart(2, "0")}{vocab}

{detail}

+ ))} +
+ +
+ V3 的好教材:优化也会制造 bug +

+ punctuation + newline 合并 Token 提高某些 multilingual compression,却在没有终止换行的 multi-line few-shot prompt 上产生 boundary bias。 + V3 训练时随机拆开一部分合并 Token,让模型见到更多边界变体。 +

+
+
+ +
+

09 PACKING · MASK · FIM

+

把文档塞满序列,不能顺手改变“谁能看见谁”

+

+ Packing 解决 padding 与 truncation;attention mask 决定跨样本可见性;FIM 改变 token 顺序以学习中间补全。 + 三者经常一起出现,却不是同一个优化。 +

+ +
+ {packingCases.map(([title, blocks, note], index) => ( +
+ 0{index + 1} / {title} +
{blocks.map((block, blockIndex) => {block})}
+

{note}

+
+ ))} +
+ +
+
+ DEEPSEEK-V3

Packing · 无 cross-sample mask

+
+ {Array.from({ length: 16 }, (_, index) => )} +
+

前面的 packed document 可进入后面 Token 的 causal context。

+
+ +
+ DEEPSEEK-V4

Packing · sample-level mask

+
+ {Array.from({ length: 16 }, (_, index) => )} +
+

仍提高序列利用率,但不同 sample 的注意力被分块隔离。

+
+
+ +
+ DEEPSEEK-V3 · DOCUMENT LEVEL · RATE 0.1 + <fim_begin> prefix <fim_hole> suffix <fim_end> middle <eos> +

`0.1` 是 V3 的公开设置,不是所有语言模型或代码数据的通用最优 FIM 率。

+
+
+ +
+

10 TRAINING IS A TIMELINE

+

总 Token 是一张收据;课程才告诉你什么时候学了什么

+

+ 预训练时间轴至少要叠加 learning rate、batch、context、domain mixture、synthetic / FIM 和 loss coefficient。 + “14.8T 支持 128K”绝不等于 14.8T 全部在 128K 上训练。 +

+ +
+ {schedules.map((schedule) => ( +
+
{schedule.name}{schedule.total}

{schedule.note}

+
+ {schedule.stages.map(([amount, phase], index) => ( +
{amount}{phase}
+ ))} +
+
+ ))} +
+ +
+ FAIR COMPARISON +

+ K3 比较 cosine 与 WSD 时发现两者的最优 peak LR 和 batch 明显不同;分别独立搜索后 cosine 的最终 loss 更低。 + 共享一套超参可能只是让其中一种 schedule 穿了不合脚的鞋。 +

+
+
+ +
+

11 DEEPSEEK DATA LINEAGE

+

DeepSeek 的数据主线不是“8T、14T、32T”,而是每代解决了新的语料问题

+

+ 从跨 dump 去重,到数学域发现、中文恢复、FIM / packing,再到自动生成互联网、agentic mid-training 和百万上下文, + 这条谱系展示了数据工程怎样随模型能力边界一起移动。 +

+ +
+ {deepseekLineage.map((step, index) => ( +
+
0{index + 1}
+

{step.model}

+ {step.amount} + {step.data} +

{step.detail}

+
仍未公开
{step.unknown}
+
+ ))} +
+ +
+
+ DEEPSEEKMATH · CORPUS DISCOVERY +

从能力目标反推数据,而不是只给网页打一个“优质”分

+
    +
  1. 约 40B deduplicated HTML pages
  2. +
  3. 数学 seed → fastText classifier
  4. +
  5. 迭代发现 URL / domain
  6. +
  7. benchmark decontamination
  8. +
  9. 120.2B multilingual math corpus
  10. +
+
+
+ DEEPSEEKMATH-BASE 7B · 500B CPT +
+ +
    +
  • 56% DeepSeekMath
  • +
  • 20% GitHub code
  • +
  • 10% arXiv
  • +
  • 10% 中英 Common Crawl
  • +
  • 4% AlgebraicStack
  • +
+
+

领域模型仍保留代码和自然语言;“数学强化”并不等于 100% 数学。

+
+
+
+ +
+

12 KIMI K2 → K3

+

K2 先提高每个 Token 的利用率,K3 再把文本、视觉与长上下文从头合并

+

+ K2 的贡献是把“高质量 Token 稀缺”变成 rephrasing 的受控问题;K3 沿用这条文本 pipeline, + 扩进大规模 vision corpus,并选择 native multimodal pretraining。 +

+ +
+
+ KIMI K2 · 2025 +

15.5T curated Token

+
    +
  • Web Text · Code · Mathematics · Knowledge
  • +
  • 知识:多风格 / 多视角 + chunk-wise AR + fidelity
  • +
  • 数学:learning-note style + 翻译
  • +
  • MuonClip · 4K 主训练 · WSD
  • +
  • 生产中每 corpus 最多改写两次
  • +
+
+ 继承 pipeline
扩大模态与长度
+
+ KIMI K3 · 2026 +

总训练 Token 未披露

+
    +
  • 同四文本域 + large-scale vision corpus
  • +
  • caption · interleaved · OCR · perception · video · visual coding
  • +
  • 绝对坐标 + [0,1] 归一化坐标
  • +
  • SVG · 3D · Webpage · Game · CAD code-render pair
  • +
  • 8K → 64K → 256K → 1M
  • +
+
+
+ +
+
+ NATIVE MULTIMODAL + vision token+text token+code tokenone next-token objective +
+

语言和视觉从训练开始共同优化,而不是在一个完成的语言模型后面再接 connector 做 post-hoc alignment。

+
+ +
+ K3 FIGURE 7 · 2.5× +

这是新模型族的 overall scaling efficiency,不是“改写数据让模型快 2.5×”

+

+ 报告明确说 architecture、data、training improvements 共同定义 K3 family,并重新搜索 batch、LR、TPP 和 shape; + 比较发生在 held-out OOD validation loss–FLOPs 曲线。它不是吞吐、参数、单组件或所有 benchmark 的 2.5×。 +

+
+
+ +
+

13 MULTIMODAL DATA TAXONOMY

+

多模态数据不是“图片 + 一句 caption”,而是六种监督结构

+

+ Caption 教物体与属性,interleaved document 教跨段关系,OCR / perception 教读取和定位, + video 教时间,visual code 则提供可执行程序与渲染结果之间的结构对应。 +

+ +
+ {multimodalTypes.map(([type, pair, teaches, risk]) => ( +
{type}

{pair}

学到:{teaches}

风险:{risk}

+ ))} +
+ +
+
PROGRAMSVG · HTML · Game · CAD · 3D
+ render +
PIXELSlayout · shape · frame · schematic
+ verify / edit +
SUPERVISIONcode ↔ visual ↔ coordinate
+
+ +
+ MM1 与 K3 的互补读法 +

+ MM1 用较受控实验说明 caption、interleaved、text-only mixture 非常关键,并报告 image encoder、resolution、visual Token 数 + 在其设置中比 connector 更重要;K3 则展示 frontier native-multimodal taxonomy。二者规模和数据不同,不能直接比榜单。 +

+
+
+ +
+

14 FOUR INDEPENDENT EXPERIMENTS

+

亲手改变阈值、权重和课程,看“更多数据”为什么不是一个单调旋钮

+

+ 四个实验分别付体量、唯一性、混合和变换账;数值是为解释关系设计的确定性教学模拟。 + K2、K3、DeepSeek 的公开数字只在对应预设和证据说明中出现。 +

+ +
+ +
+

15 EVIDENCE & AUDIT

+

一条数据结论要进入正文,至少要携带单位、范围和未知项

+ +
+
A / FULL TEXT

正文 / 表 / 附录已读

K3、K2、DeepSeek LLM / Math / V2 / V3 / V4 的数据章节属于这一层。

+
B / OFFICIAL ABSTRACT

官方摘要已核对

只能支持摘要明确写出的模型、预算与作者结果;不能补造正文细节。

+
C / DISCOVERY LEAD

只知道值得查

Grok、搜索结果或二手综述只能进入研究队列,不能承担正文数字。

+
U / UNDISCLOSED

公开未知

最终工业 mixture、完整 source map、阈值与 contamination audit 不以猜测填空。

+
+ +
+
+ KNOWN +
    +
  • K2 15.5T 与 rephrasing 表
  • +
  • DeepSeek LLM 91-dump dedup 表
  • +
  • V2 8.1T、V3 14.8T、V4 32/33T
  • +
  • DeepSeekMath 120.2B 与 500B mixture
  • +
  • K3 文本 / 视觉 taxonomy 与 context stages
  • +
+
+
+ PUBLICLY UNKNOWN +
    +
  • K3 总训练 Token
  • +
  • K2 / K3 最终 source-level mixture
  • +
  • K3 各视觉域数量与 synthetic 比
  • +
  • DeepSeek 各代完整许可 / source map
  • +
  • 工业过滤阈值、误删率与污染清单
  • +
+
+
+ +
+ 看到“X T 高质量 Token”,逐项追问 +
    +
  1. unique 还是 seen?
  2. 哪个 tokenizer?
  3. 原始 pool 多大?
  4. 过滤按文档还是 Token?
  5. +
  6. 去重范围多大?
  7. 各语言 / 域保留多少?
  8. synthetic 如何标 lineage?
  9. 污染怎样定义?
  10. +
  11. 许可与 PII 如何处理?
  12. 在哪个模型 / 预算上消融?
  13. 额外 pipeline compute 是否计入?
  14. 没有公开什么?
  15. +
+
+
+ +
+

16 2019 → 2026

+

数据技术的主线:能清洗 → 能比较 → 能按模型和阶段安排

+ +
+ {history.map(([year, title, note], index) => ( +
{String(index + 1).padStart(2, "0")}

{title}

{note}

+ ))} +
+
+ +
+

17 PRIMARY-SOURCE READING CHAIN

+

31 个节点:先读流水线,再读去重 / mixture,最后进入 DeepSeek 与 Kimi

+

+ 初学路径:C4 / CCNet → Pile → Dedup → DoReMi → DCLM → DeepSeek LLM / Math / V3 → Kimi K2 / K3。 + 治理、污染、多模态和动态选择可以作为四条平行支线。 +

+ +
+ {paperChain.map(([year, title, url, note], index) => ( + + + {String(index + 1).padStart(2, "0")} + {title} +

{note}

+
+ ))} +
+ +
+ NEXT / CHAPTER 06 +

数据决定模型看见什么;MoE 决定每个 Token 会调用哪一部分参数。

+

下一章进入稀疏计算:路由、专家特化、负载均衡与集群通信。

+ 进入 MoE 专题 → +
+
+
+
+ + +
diff --git a/src/pages/progress/index.astro b/src/pages/progress/index.astro index d2f4105..21de459 100644 --- a/src/pages/progress/index.astro +++ b/src/pages/progress/index.astro @@ -12,6 +12,7 @@ const workstreams = [ { label: "Kimi K3 深读", value: 66, next: "扩写 pre-training / infra 逐图笔记" }, { label: "Transformer 基础", value: 52, next: "加入矩阵形状动画与手算练习" }, { label: "Scaling Laws", value: 74, next: "加入真实拟合复现、置信区间与更多模型族对照" }, + { label: "数据工程与预训练配方", value: 73, next: "逐图精读 FineWeb / DCLM,加入真实去重与 mixture traces" }, { label: "DeepSeek 专题", value: 71, next: "补 R1 / DAPO 的逐图训练轨迹与复现对照" }, { label: "推理与测试时扩展", value: 76, next: "真实模型采样曲线、PRM 案例与逐篇图表精读" }, { label: "稀疏计算与 MoE", value: 74, next: "补充真实集群 traces 与专家特化案例" }, @@ -41,7 +42,7 @@ const workstreams = [
OVERALL
专题平均 {average}%
READABLE
{published} 个首版可读专题
ACTIVE
{researching} 个研究/写作中
-
UPDATED
2026-07-29 02:08 CST
+
UPDATED
2026-07-29 03:01 CST
MODE
持续迭代,不锁死版本
@@ -51,7 +52,7 @@ const workstreams = [

01 WORKSTREAMS

-

十二条工作流同时推进,但不混淆“有页面”和“已核验”

+

十三条工作流同时推进,但不混淆“有页面”和“已核验”

内容首版优先打通全局脉络;随后每轮迭代选择一个专题推进到论文/工程层,并做独立事实复核。 @@ -88,14 +89,15 @@ const workstreams = [

K3 报告已结构化拆解

47 页报告目录、151 条参考来源和架构/后训练/系统主线已经提取。

16 专题知识图

从语言模型基础到评测安全,包含先修依赖和三条贯穿案例。

编辑式网站系统

响应式导航、章节模板、侧栏、进度、论文链和证据提示组件。

-

十六个原创交互视图

K3、注意力、DeepSeek、长上下文、MoE、推理三页签,以及训练系统与 Scaling 各四页签实验。

-

八篇首版长文

K3 导读、Transformer 基础、DeepSeek 谱系、Scaling、长上下文、MoE、推理与训练系统专题。

+

二十个原创交互视图

K3、注意力、DeepSeek、长上下文、MoE、推理,以及训练系统、Scaling 与数据工程的多页签实验。

+

九篇首版长文

K3、Transformer、DeepSeek、Scaling、数据工程、长上下文、MoE、推理与训练系统专题。

Scaling Laws 深度专题

九张账、29 个一手节点、DeepSeek/Kimi 双谱系与曲面—部署—复用—涌现四联实验。

+

数据工程深度专题

十二张账、31 个一手节点、DeepSeek/Kimi 双谱系与流水线—去重—混合—改写四联实验。

长上下文深度专题

五张成本账、26 篇一手论文、10+ 机制图与 8 策略交互实验室。

MoE 深度专题

六张账、19 篇一手论文、DeepSeek/K3 主线与路由—容量—通信交互实验室。

推理深度专题

八张账、30 篇一手论文链、DeepSeek/Kimi 双主线与三页签互动实验室。

训练系统深度专题

九张账、37 个一手节点、DeepSeek/Kimi 双谱系与显存—网格—气泡—通信实验室。

-

182 篇关键论文索引

覆盖 12 个专题,支持全文搜索、标签筛选与 Kimi/DeepSeek 聚光主线。

+

202 篇关键论文索引

新增数据专题标签和 20 个一手节点,继续支持全文搜索与 Kimi/DeepSeek 聚光主线。

公开仓库与自托管发布

源码公开到 git.k1412.top,网站由不可变镜像、Compose Manager 与 HTTPS 交付。

@@ -111,6 +113,7 @@ const workstreams = [
优先级专题本轮交付完成闸门
P0Scaling Laws 二轮

真实拟合复现 → 置信区间 → 更多模型族与下游任务外推

可复现实验 + 逐图笔记
+
P1数据工程二轮

FineWeb / DCLM 逐图 → 真实去重误伤 → mixture traces 与污染案例

逐图笔记 + 案例库
P1大规模训练系统二轮

真实集群 traces → 故障恢复 → 精确 topology / kernel 配置

案例库 + 实测边界
P1长上下文二轮深化

真实模型配置 → 内核细节 → 长上下文评测与失败案例

配置比较器 + 逐图论文笔记
P1MoE 二轮深化

真实负载 traces → 专家特化可解释性 → 共享专家语义

案例库 + 集群证据
@@ -157,6 +160,8 @@ const workstreams = [
推理按八张账组织

把答案、覆盖、选择、过程、预算、优化、分布与系统证据分开核算。

训练系统按九张账组织

把模型状态、激活、并行、气泡、通信、专家、上下文、数值与可靠性分开核算。

Scaling Laws 按九张账组织

把观测量、模型、数据、算术、配比、配方、外推、经济目标与能力阶段分开核算。

+
数据工程按十二张账组织

把来源、解析、语言、质量、唯一性、污染、混合、变换、Tokenizer、Packing、课程与价值分开核算。

+
Grok 数据线索与正式账本永久分离

1264 行正式研究账本只接受回查一手来源后的结论;203 行 Grok 产物保留为未核验发现队列。

diff --git a/src/pages/reasoning/index.astro b/src/pages/reasoning/index.astro index 93db1cd..c9227cd 100644 --- a/src/pages/reasoning/index.astro +++ b/src/pages/reasoning/index.astro @@ -699,7 +699,7 @@ const paperChain = [

不要按模型榜单读,按“旧方法留下了哪堵墙”读

下面 30 篇构成本专题首版主干。课程中的机制、公式与数字优先回到这些一手来源; - 更完整的 182 篇跨专题索引位于论文库。 + 更完整的 202 篇跨专题索引位于论文库。

{paperChain.map(([year, title, href, note], index) => (