Post

Format Switch 的收益是 Ratio 调整的 8-60 倍: daVinci-LLM 200 次消融揭示的预训练数据工程三大定律

Format Switch 的收益是 Ratio 调整的 8-60 倍: daVinci-LLM 200 次消融揭示的预训练数据工程三大定律

某 3B 模型(从零训练 8T tokens)整体 51.72 分与 7B 参数的 OLMo-3 打平。关键不是用了更多数据——而是 200 次消融发现的三条定律:处理深度是与数据量并列的 scaling 维度,格式切换的收益是比例调整的 8-60 倍,不同能力域的饱和速率可以差 4 倍以上。


1. 预训练数据工程为何被严重低估

Scaling law 文献集中在参数量与 token 总量的最优配比(Chinchilla 路线),但大家都回避了一个问题:同样 1T tokens,经过不同层级处理后效果差多少?

原因很简单——做一次完整的数据处理消融太贵了。需要在相同参数、相同 schedule、相同 evaluation 下跑完多组 500B+ token 实验,纯靠算力堆。这篇工作的价值在于:用 200+ 次 500B token 子实验系统性地回答了这个问题,并且最终用 8T token 的完整训练验证结论可迁移。

关键结论:数据处理深度(Data Processing Depth)是一个与数据总量同等重要的 scaling 维度。Chinchilla 告诉你”给 3B 模型配 150B token”——但没有告诉你那 150B token 处理到什么层级。


2. L0-L9 数据达尔文主义分级

论文提出了一套从 L0 到 L9 的数据处理深度分类法(Data Darwinism)。核心思想:每一层处理都在原始数据上叠加更多”认知加工”:

Level名称关键操作信息增量
L0Data Acquisition爬虫 / API 抓取原始 bytes
L1Format NormalizationOCR / HTML parsing / 编码统一可读文本
L2Rule-based FilteringMinHash LSH 去重、长度/语言过滤去噪
L3Lightweight Model FilteringfastText / 小分类器打分,只做选择质量信号
L4Generative RefinementLLM 重写/结构化清洗,保留语义格式信号
L5Cognitive CompletionFrontier LLM 补全隐含推理链推理信号
L6+Beyond(理论层级)外部参考验证、代码执行、多 agent 校验事实信号

关键区分:L2-L3 是选择性操作(从池子里挑好的),L4-L5 是生成性操作(把现有数据变得更好)。这个区分决定了收益曲线的形状。

graph LR
    L0[L0 Acquisition] --> L1[L1 Normalization]
    L1 --> L2[L2 Rule Filtering]
    L2 --> L3[L3 Model Filtering]
    L3 --> L4[L4 Generative Refinement]
    L4 --> L5[L5 Cognitive Completion]
    L5 --> L6[L6+ Beyond]
    
    style L2 fill:#e8f4e8
    style L3 fill:#e8f4e8
    style L4 fill:#fff3e0
    style L5 fill:#fff3e0

3. 消融 1:处理深度的边际收益呈非线性跳跃

500B token 对照实验,固定模型架构和训练 schedule,仅变化数据处理层级:

数据层级Avg CodeAvg SciOverallvs L2
L2 Rule-Based48.4740.1446.66
L3 Model-Based49.6340.2846.93+0.27
L4 Generative Refined50.1542.2547.83+1.17

整体看,L2→L4 只有 +1.17,似乎不大。但拆开看具体 benchmark:

  • MATH 单项:L3→L4 跳了 +7.0 分——是 L2→L3 增益的 26 倍

这意味着:L3 的 fastText 过滤只是在相同分布里挑更好的样本,边际递减很快;而 L4 的 LLM 重写实际上改变了数据的认知格式——把隐含的推理步骤显式化、把混乱的排版结构化——这对数学推理能力的提升是质变而非量变。

工程启示:如果你的 pipeline 停在 L3(大多数开源项目的现状),你在推理类任务上可能损失了数十个百分点的潜力。


4. 消融 2:格式切换 vs 比例调整——最震撼的发现

这是整篇论文最具颠覆性的对比实验:

干预手段Code 提升Science 提升
调整数据比例(Stage 1→3)+2.62-0.24
引入 QA 格式(Stage 2)+20.34+15.75

比值:格式切换 / 比例调整 = 8x(Code)到 60x(Science)

这个数字值得反复强调。社区花了大量精力在”代码数据占比从 10% 调到 15%”这类工作上,收益只有个位数;而把同样的知识从”连续文本”转换为”问答格式”,收益是前者的一到两个数量级。

为什么 Science 方向的比值高达 60 倍?因为 ratio 调整对 Science 几乎无效(-0.24,甚至略微下降),而格式切换带来了 +15.75 的巨大提升。这暗示科学文本在连续形态下的”可学习性”很低——模型很难从一堆论文段落中自发提取因果链;但一旦转为 QA 形态,学习效率暴增。


5. 两阶段 Curriculum 与饱和检测

论文的训练流程分四个子阶段,基于每个能力域独立的饱和曲线动态切换数据配方:

graph TD
    S1["Stage 1-1: Foundation (4T tokens)"]
    S2["Stage 1-2: Reasoning Enhancement (2T tokens)"]
    S3["Stage 2-1: Balanced Foundation (1T tokens)"]
    S4["Stage 2-2: QA-Intensive (1T tokens)"]
    
    S1 -->|"General saturates ~1T"| S2
    S2 -->|"Code/Sci still climbing"| S3
    S3 -->|"Safe transition"| S4
    
    S1 --- D1["CC 68% / Code 9.5% / Sci 22.3%"]
    S2 --- D2["CC 55.4% / Code 11.7% / Sci 32.9%"]
    S3 --- D3["QA 30% / Code 30% / Sci 30% / CC 10%"]
    S4 --- D4["QA 70% / Sci 8.9% / Code 2.6%"]

各阶段的设计逻辑:

  • Stage 1-1 (4T):标准 foundation 配方,CC 占大头。观察到 general domain 在约 1T token 时 loss 趋平。
  • Stage 1-2 (2T):降低 CC 比例,提升 Code 和 Science。此时 Code 和 Science 的 loss 仍在稳定下降。
  • Stage 2-1 (1T):过渡阶段。引入 QA 格式数据但比例温和(30%),防止分布骤变导致 catastrophic forgetting。
  • Stage 2-2 (1T):QA 数据占 70%。MATH 从 22 分飙升到 62.8 分。

关键发现:Stage 2-2 的 1T QA-intensive tokens 提供的边际增益,超过了 Stage 1 最后 2T general text 的贡献。

这直接挑战了”堆量”路线——不是所有 token 都平等的,在正确的时间切入正确格式的数据,1T 可以顶 2T 甚至更多。


6. 饱和速率的能力域差异

不同能力域的饱和特征差异巨大:

  • General domain:约 1T tokens 饱和
  • Code:约 4T tokens 饱和(4 倍于 general)
  • Science:6T tokens 仍在上升(天花板未知)

这意味着用单一 loss 曲线指导数据配方是错误的——当 overall loss 趋平时,可能只是 general domain(占比最大)饱和了,而 code 和 science 域仍有大量空间。正确做法是为每个目标能力域独立监控饱和曲线,并据此调整 curriculum。

实操建议:在训练 dashboard 上为每个域单独画 evaluation metric 曲线。当某个域连续 3 个 checkpoint 不再上升时,降低该域数据占比,把算力让给仍在上升的域。


7. L5 Source-Target Alignment:跨域迁移很弱

L5 层级(Cognitive Completion)的消融揭示了一个重要约束:

合成数据来源 → 评估目标提升
CodeQA → Code+4.3
CC-QA → Science+5.1
CodeQA → Science微弱

结论:synthetic data 必须 domain-matched。用代码领域的 QA 合成数据去提升科学推理,效果微乎其微。这与”通用推理能力可迁移”的直觉相悖,但实验数据很清楚。

原因推测:L5 补全的是”某个领域特定的隐含推理模式”——代码的 debugging chain 和科学的因果推理链是不同的认知结构,彼此不可替代。


8. 工程实践启示

基于这 200 次消融,提炼三条可操作的规则:

定律一:处理深度优先于数据量。 如果你只有 500B token 的预算,把数据从 L2 提升到 L4 的收益 > 在 L2 水平上多加 500B token。优先投资 LLM-based data refinement pipeline。

定律二:格式工程优先于比例工程。 在你花时间 A/B test “代码占比 12% vs 15%” 之前,先确认你的数据是否已经做了格式转换(连续文本→QA/CoT)。格式切换的收益是比例调整的一到两个数量级。

定律三:按域独立管理饱和。 不要用 overall loss 做 curriculum 决策。为 code、science、general 三个域分别监控 saturation curve,基于各自的饱和节奏调整配方。General 域在 1T 就该开始降权,Science 域可能到 6T+ 还值得投入。

额外提醒:如果你在做合成数据(L5),确保 source domain 和 target domain 匹配。”随便用 GPT-4 生成一堆 QA 对”不如”用 GPT-4 针对目标域文档生成 domain-specific QA”。


参考文献

  • daVinci-LLM: Data Processing Depth and Curriculum Learning for Pretraining. arXiv:2603.27164
This post is licensed under CC BY 4.0 by the author.