#daVinci-LLM:把预训练从“炼丹”推进到“科学实验”

论文 / 项目:daVinci-LLM: Towards the Science of Pretraining

GitHub: GAIR-NLP/daVinci-LLM

arXiv: 2603.27164

模型:3B 参数,Qwen2-style decoder-only 架构,从随机初始化训练 8T tokens。

核心口号:不只是开源权重,而是开放“预训练科学过程”本身。

这篇 daVinci-LLM 技术报告表面上是在发布一个 3B base model,但它真正重要的地方不在“又出了一个 3B 模型”,而在于它试图回答一个更基础的问题:

预训练到底能不能从经验主义的工程炼丹,变成可复用、可验证、可积累的科学方法?

作者的主张很明确:今天大模型领域最关键、但最不透明的部分不是 post-training,而是 pretraining。因为预训练决定了模型能力上限;后训练更多是在已有能力地基上做对齐、激活和格式化,很难凭空补出预训练阶段没有形成的深层能力。

但预训练研究长期卡在一个结构性矛盾里:

  • 商业公司有算力,但没有动力公开完整数据、失败实验、混合比例和训练轨迹;
  • 学术机构有研究自由,但通常没有足够资源做大规模系统性预训练消融;
  • 开源权重模型提供了 final artifact,却往往不提供背后的 decision process。

daVinci-LLM 的定位,就是站在“工业级资源 + 学术式开放”的交叉点上,把完整预训练过程作为研究对象公开出来。


#1. 一句话讲清楚这篇文章

如果用一句话概括:

daVinci-LLM 训练了一个 3B 模型,但真正贡献是开放了一个从数据分层处理、动态课程设计、混合比例调整、训练中间检查点,到 200+ 消融实验的完整预训练研究范式,试图说明“小模型也能靠系统性预训练方法逼近更大模型”。

最终结果上,daVinci-LLM-3B 在论文报告的综合分数上达到 51.72,几乎追平 OLMo-3-7B 的 51.65。尤其在推理相关任务上非常突出,例如:

维度daVinci-3BOLMo-3-7BLLaMA-3.2-3BQwen-2.5-3B
Overall51.7251.6537.5851.44
General52.9655.1351.0855.16
Code55.9954.4232.4056.13
Science48.3045.9822.4544.65
MATH62.8039.609.0037.20

注意,这里的关键不是“3B 全面超过所有模型”。它没有超过 Qwen-3/3.5 这类强 4B 模型,也不是所有 general knowledge 都最强。关键是:在全开放、完整披露训练过程的前提下,一个 3B 模型通过系统性数据和课程设计,能在若干推理维度上达到甚至超过更大模型。


#2. 这篇文章想解决什么问题?

#2.1 之前的问题:预训练报告缺少“因果过程”

很多模型发布会告诉你:

  • 模型多大;
  • 训练了多少 token;
  • 跑分多少;
  • 大概用了哪些数据类别;
  • 最终权重开放或不开。

但真正对研究者最有价值的问题通常不会被回答:

  • 为什么这个阶段用这个数据比例?
  • 什么时候应该从 web text 转向 reasoning-heavy 数据?
  • 代码、科学、数学、QA 的比例怎么调?
  • 数据过滤、重写、合成分别有多大收益?
  • 哪些方案失败了?为什么失败?
  • 训练过程中不同能力是如何生长、饱和、退化的?
  • PPL 评测和生成式评测结论不一致时该信哪个?

这些问题本质上不是“模型 artifact”问题,而是 pretraining dynamics 问题。

所以 daVinci-LLM 的目标不是单纯发布一个模型,而是把预训练过程拆成一组可验证问题:

  1. 数据处理深度是否系统性影响能力?
  2. 不同能力的饱和速度是否不同?
  3. 数据混合比例是否应该随训练阶段动态变化?
  4. 结构化 QA 这种数据格式是否能突破 raw text 的收益瓶颈?
  5. 高比例 reasoning data 会不会导致灾难性遗忘?
  6. base model 的评测协议是否会改变我们对能力的判断?

这就是标题里 “Towards the Science of Pretraining” 的含义:把预训练从一次性 recipe,变成由问题、假设、实验、负结果和经验规律构成的科学过程。


#3. 三个核心支柱:Data、Training、Science

README 里把项目组织成三个支柱:

  1. Data Transparency:用 Data Darwinism 框架标注和处理 7.5T+ token 数据;
  2. Training Transparency:公开两阶段自适应课程、训练日志和 5k-step 间隔中间检查点;
  3. Scientific Transparency:公开 200+ controlled ablations,包括成功和失败配置。

这三点对应的是三个层面的开放:

  • 不是只开放模型,而是开放模型从哪里来;
  • 不是只开放数据名字,而是开放数据如何被加工;
  • 不是只开放最终 recipe,而是开放 recipe 是如何被消融实验推出来的。

这对基础模型研究很重要。因为如果只有 final checkpoint,别人最多复现“结果”;如果有完整轨迹和负结果,别人才能研究“规律”。


#4. Data Darwinism:把数据处理深度变成可讨论变量

这篇文章最核心的概念之一是 Data Darwinism。它把数据处理分成 L0-L9 十个等级,用来描述数据从“原始采集”到“高阶合成”的处理深度。

可以粗略理解为:

Level操作直观含义
L0Data Acquisition抓取原始数据,比如网页、PDF、代码仓库
L1Format Normalization把 HTML/PDF/各种格式转成统一文本
L2Rule-based Filtering用规则去重、去乱码、去非目标语言
L3Lightweight Model Filtering用模型判断教育价值、领域、质量,只筛选不改写
L4Generative Refinement用生成模型清理、重组、修复内容,但不引入外部知识
L5Cognitive Completion把隐含推理补全,比如生成解释、推导、QA、教学桥接
L6-L9Higher-Order Synthesis更高阶的上下文补全、环境合成、多智能体生态、世界合成

这里最有价值的是:它把“数据质量”这个模糊词拆成了更具体的处理层级。

过去我们说“高质量数据”往往很空泛。Data Darwinism 试图让我们问得更清楚:

  • 你只是做了 L2 规则过滤,还是做了 L3 语义过滤?
  • 你只是筛掉坏数据,还是做了 L4 结构重写?
  • 你只是清理已有内容,还是做了 L5 的 reasoning chain 显式化?
  • 对不同任务,L3/L4/L5 哪个层级的边际收益最大?

这和用户关心的“基础模型能力形成机制”是高度相关的:因为它把能力来源从“token 数量”推进到了“token 的认知结构”。


#5. 数据池:不是只有 web,而是 General / Code / Science / QA 四类能力材料

论文的数据池约 7.58T tokens,分为几大类:

  • General:主要来自 Nemotron-CC-v1,约 4.28T,提供广泛语言和世界知识;
  • Code:自爬 GitHub、Nemotron code、StackExchange 等,约 598B;
  • Science / Math:MegaMath、Darwin-Science、Nemotron math/science 等,约 1.94T;
  • QA:结构化问答和推理型数据,约 734B。

最终训练总计 8T tokens,并不是简单把 7.58T pool 顺序喂完,而是在不同阶段按不同混合比例采样。关键的训练阶段如下:

阶段token 数目标数据比例大意
Stage 1-14T稳定建立通用基础General 68.2%,Code 9.53%,Science 22.27%,无 QA
Stage 1-22T增强 reasoningGeneral 降到 55.42%,Code 11.66%,Science 32.92%,无 QA
Stage 2-11T平衡引入结构化推理General 10%,Code 30%,Science 30%,QA 30%
Stage 2-21TQA-intensive reasoning amplificationQA 70%,General 18.84%,Science 8.85%,Code 2.61%

这张表是理解全文的关键:它不是一个静态数据配方,而是一个随能力成熟度变化的 curriculum。

#5.1 先把各阶段配比精确摊开

论文 Table 2 给出的最精确粒度是“每个训练阶段中四大类别的 token allocation”。换算成同一张表如下:

训练阶段阶段 token 数GeneralCodeScience / MathQA
Stage 1-14T2.73T / 68.2%381B / 9.53%891B / 22.27%0 / 0%
Stage 1-22T1.11T / 55.42%233B / 11.66%658B / 32.92%0 / 0%
Stage 2-11T100B / 10%300B / 30%300B / 30%300B / 30%
Stage 2-21T188.4B / 18.84%26.1B / 2.61%85.5B / 8.85%700B / 70%
合计8T约 4.1284T约 940.1B约 1.9345T1T

这里有几个细节值得注意:

  1. Stage 1 完全没有 QA。 前 6T tokens 仍然是标准 next-token pretraining 风格,只是在 General / Code / Science 之间动态调比例。
  2. Stage 1-1 到 Stage 1-2 的核心变化是:General 降、Science 升。 General 从 68.2% 降到 55.42%,Science 从 22.27% 升到 32.92%,Code 小幅上升到 11.66%。这对应论文观察到 general knowledge 较早饱和,而 code/science reasoning 仍在增长。
  3. Stage 2-1 是一个非常刻意的平衡设计。 10% web text 保留通用语言/知识底座,30% Code、30% Science、30% QA 三足鼎立,目标不是立刻把 QA 拉满,而是先建立能承受高密度 reasoning supervision 的稳定表征。
  4. Stage 2-2 变成 QA-intensive。 QA 直接升到 70%,但仍保留 18.84% General、8.85% Science、2.61% Code。这个配比说明它不是纯 SFT-style QA 灌入,而是“高 QA 浓度 + 少量 anchor data” 的持续预训练。

如果把 8T 总训练量作为分母,大致占比是:General 约 51.6%,Science/Math 约 24.2%,QA 约 12.5%,Code 约 11.8%。但这个总占比会掩盖 curriculum 的重点:真正的结构变化发生在 Stage 2,QA 从 0 突然变成 30%,再变成 70%。

#5.2 每类数据池的来源、规模与 Darwin Level

论文 Table 2 同时给出了数据池的来源和处理层级。需要注意:表中 source-level 行只标注某个 source 是否用于某阶段,并没有披露每个 source 在每个阶段内部的精确采样比例;精确 token allocation 只披露到 General / Code / Science / QA 四大类。 所以下面能精确写的是“source pool size + 使用阶段 + 处理层级”,不能把每个 source 的 stage-wise token 数强行细分。

#General:4.28T,主要承担语言和世界知识底座

数据源规模Darwin Level使用阶段来源 / 处理方式
Nemotron-CC-v14.28TL3Stage 1-1 / 1-2 / 2-1 / 2-2来自 99 个 Common Crawl snapshots;经过文本抽取、英语过滤、全局去重,并用 educational value / informativeness 分类器打分分层。

General 数据几乎完全由 Nemotron-CC-v1 non-synthetic portion 构成。它的作用不是专门推 reasoning,而是提供广覆盖语言、事实、常识、世界知识和自然文本分布。Stage 2-2 仍保留 188.4B General,我理解它的功能类似 anchor:防止模型在 70% QA 高强度训练下过度格式化或丢失一般语言能力。

#Code:598B,既有真实代码,也有代码 QA / 合成代码

数据源规模Darwin Level使用阶段来源 / 处理方式
Self-Crawled GitHub187BL3全阶段自爬公开 GitHub;先用 10 stars 作为规则质量门槛,再经过 OpenCoder filtering pipeline 去掉低质量或无信息代码。
Nemotron-Pretraining-Code-v1-non-synthetic220BL3全阶段真实 GitHub 代码;做 permissive license 过滤、精确/模糊去重,再用 OpenCoder 过滤。
Nemotron-Pretraining-Code-v1-synthetic-code171BL5全阶段LLM 基于短代码片段生成 question-answer pairs,覆盖 11 种编程语言,并通过 Python AST 等启发式检查过滤。
TxT360-Stack-Exchange20BL2全阶段Stack Exchange 364 个社区的技术讨论;从 XML dump 解析帖子/评论层级,规则清洗和格式归一化。

Code 类别在 Stage 1-1 占 9.53%,Stage 1-2 占 11.66%,Stage 2-1 升到 30%,但 Stage 2-2 降到 2.61%。这个设计很有意思:Code 在 Stage 2-1 是 reasoning balance 的关键支柱,但在 Stage 2-2 被 QA 主导挤压。 论文后面的 QA ratio 消融也解释了风险:如果 QA 数据中 code-related QA 多样性不足,过高 QA 比例可能让 code 出现非单调甚至 collapse,所以 Stage 2-1 先给 30% Code 建稳定基础很关键。

#Science / Math:1.94T,是复杂推理能力的主材料

数据源规模Darwin Level使用阶段来源 / 处理方式
MegaMath-Web231BL3Stage 1-1 / 1-2从 Common Crawl 提取数学内容,使用 Resiliparse + trafilatura、fastText 数学过滤、MinHash LSH 去重。
MegaMath-Web-Pro13BL4全阶段MegaMath-Web 高质量子集;FineMath classifier 选高教育价值文档,再用 Llama-3.3-70B-Instruct 做噪声移除和逻辑重组。
MegaMath Refined176BL4Stage 2-1 / 2-2作者用 Qwen3-235B-A22B-Instruct 对 MegaMath-Web 做二次 generative refinement,抽取关键事实、去噪、重组为信息密度更高的形式。
MegaMath-Synth-Code5BL5全阶段LLM 生成数学文本、符号表达式、可执行 Python code 交织的数据,并用 AST / execution checks 验证。
Nemotron-CC-Math-v1-381BL4Stage 1-1 / 1-2来自 98 个 Common Crawl snapshots 的数学网页,Phi-4 清理,FineMath score=3。
Nemotron-CC-Math-v1-4+52BL4Stage 1-1 / 1-2同源高质量数学网页,FineMath score=4-5。
Nemotron-CC-Math-v1-4+-MIND74BL5全阶段用 MIND 框架把数学文档转成 Teacher-Student、Problem-Solving、Debate 等多轮对话,显式重构隐含推理。
Nemotron-CC-Math-v1-3 Refined68BL4Stage 2-1 / 2-2作者用 Qwen3-235B 对 v1-3 再做一轮 L4 refinement。
Nemotron-CC-Math-v1-4+ Refined47BL4Stage 2-1 / 2-2作者用 Qwen3-235B 对 v1-4+ 再做一轮 L4 refinement。
Darwin-Science-Book251BL4全阶段科学书籍 PDF,经 olmOCR、去重、规则过滤、教育价值/学科分类,再用 GPT-OSS-120B 清理目录、参考文献、页眉页脚、OCR artifacts。
Darwin-Science-Paper215BL4全阶段科学论文 PDF,同样经过 OCR、过滤、分类和 GPT-OSS-120B L4 refinement。
Darwin-Science-Paper-GPT290BL5Stage 1-1 / 1-2基于 L4 paper,用 GPT-OSS-120B 做 Cognitive Completion:补全逻辑跳步、解释术语、加入教学桥接。
Darwin-Science-Paper-Qwen440BL5Stage 2-1 / 2-2基于 L4 paper,用 Qwen3-235B-A22B-Instruct 做更强的 L5 Cognitive Completion。

Science / Math 是最能体现 Data Darwinism 思想的部分:它不是一个单一数学数据集,而是把 网页数学、教材/书籍、科学论文、合成代码、文档对话化、论文认知补全 混在一起。Stage 1 用 MegaMath-Web、Nemotron 原始数学子集和 Darwin-Science-Paper-GPT;Stage 2 则替换/增加了更强 refinement 和 Qwen 版本 cognitive completion,例如 MegaMath Refined、Nemotron refined、Darwin-Science-Paper-Qwen。

这说明 Stage 2 的变化不只是“QA 比例上升”,Science 内部也发生了质量升级:从较多 L3/L4 raw/refined scientific text,转向更强 L4 refined + L5 cognitive completion。

#QA:734B pool,但训练阶段实际采样 1T,是 Stage 2 的结构化推理核心

数据源规模领域Darwin Level使用阶段来源 / 处理方式
Nemotron-CC-v1 Synthetic QA492BGeneralL5Table 2 标为未直接用于四个阶段从高质量 Common Crawl 文档生成 diverse QA,包括 yes/no、open-ended、multiple-choice 等。
Nemotron-Pretraining-SFT-v1-General12BGeneralL5Stage 2-1 / 2-2MMLU-style QA,覆盖多领域知识,由 LLM 基于 curated source documents 生成。
Nemotron-Pretraining-SFT-v1-Code21BCodeL5Stage 2-1 / 2-2Genetic-Instruct 生成 coding instruction-code pairs,并由 Coder-LLM / Judge-LLM 生成与过滤。
Llama-Nemotron-Post-Training-Dataset-Code5BCodeL5Stage 2-1 / 2-2多语言编程任务和 problem-solving prompts,原数据构造中已过滤质量/正确性。
Nemotron-Pretraining-SFT-v1-Math138BScience/MathL5Stage 2-1 / 2-2按 OpenMathInstruct-2 路线,由强 teacher model 为 GSM8K、MATH 等 seed questions 生成多候选解并按正确性筛选。
Llama-Nemotron-Post-Training-Dataset-Math-RS10BScience/MathL5Stage 2-1 / 2-2数学推理问题,作者用 Qwen3-32B non-thinking mode 做 rejection sampling,只保留可验证正确的回答。
Llama-Nemotron-Post-Training-Dataset-Science-RS0.4BScienceL5Stage 2-1 / 2-2科学开放题/选择题,作者用 Qwen3-32B 做 rejection sampling。
MegaMath-QA-RS9BScience/MathL5Stage 2-1 / 2-2MegaMath-QA 的合成 QA 子集,作者用 Qwen3-32B 做 rejection sampling,保留 final answer 可验证正确的样本。
MegaScience-RS1BScienceL5Stage 2-1 / 2-2STEM 科学推理 post-training 数据,作者用 Qwen3-32B 做 rejection sampling。
Darwin-Science-Book QA46BScienceL5Stage 2-1 / 2-2作者用 Qwen3-235B-A22B-Instruct 从 Darwin-Science Book 直接生成 grounded QA,并要求答案能由原文验证。

QA 这里有一个容易误读的地方:Table 2 里 QA pool 总量是 734B,但 Stage 2-1 + Stage 2-2 的 QA allocation 是 300B + 700B = 1T。这说明训练中会对 QA pool 进行重复采样或按 curriculum 重新采样,而不是每个 token 只用一次。

另外,Table 3 把 QA 来源分成 General、Code、Science 三类。按 pool size 粗略看,QA pool 内部非常偏向 general/science:

  • General:Nemotron-CC-v1 Synthetic QA 492B + Nemotron-SFT-General 12B,约 504B;
  • Code:Nemotron-SFT-Code 21B + Llama-Nemotron-Code 5B,约 26B;
  • Science/Math:138B + 10B + 0.4B + 9B + 1B + 46B,约 204.4B。

如果只看实际标注用于 Stage 2-1/2-2 的 QA source,Nemotron-CC-v1 Synthetic QA 在 Table 2 中是 “–”,那么被明确用于 Stage 2 的 QA pool 约为 242.4B,其中 Code 只有 26B,Science/Math 约 204.4B,General 12B。这解释了论文 Section 4.3.2 的观察:Stage 2-1 中 QA 比例过高时,science 会继续涨,但 code 可能因为 code QA 绝对多样性不足而 collapse。

#5.3 四个阶段的来源变化:真正的 curriculum 在哪里?

把来源变化压缩成一句话:

Stage 1 是 “General-heavy + raw/refined science/code”;Stage 2-1 是 “balanced reasoning mix”;Stage 2-2 是 “QA-intensive + 少量 general/science/code anchor”。

更细地看:

阶段数据来源特征设计意图
Stage 1-1Nemotron-CC-v1 占 68.2%;Code 和 Science 作为辅助;Science 中包含 MegaMath-Web、Nemotron-CC-Math、Darwin-Science 等。先建立语言、世界知识、基本代码/科学表征,保证优化稳定。
Stage 1-2General 降到 55.42%;Science 升到 32.92%;Code 小幅升到 11.66%。根据 general 早饱和、reasoning 仍增长的观察,把 token 从通用文本转给 code/science。
Stage 2-110% General + 30% Code + 30% Science + 30% QA;Science 切入更多 refined / Qwen cognitive completion;QA 开始进入。不是马上极端 QA,而是先让 Code、Science、QA 平衡,避免过早 domain collapse。
Stage 2-270% QA;General 18.84% 作为最大 anchor;Science 8.85%,Code 2.61%。在平衡基础形成后,用高浓度 QA 做 reasoning amplification,同时用少量非 QA 数据维持分布宽度。

这个 curriculum 的核心逻辑不是“越到后面越高质量”这么简单,而是三条线同时变化:

  1. 类别比例变化:General ↓,Reasoning-heavy ↑,最后 QA ↑↑。
  2. 处理深度变化:Stage 2 更多使用 L4 refined / L5 cognitive completion 数据。
  3. 数据格式变化:从 raw/refined text 转向 explicit QA / problem-solution / reasoning scaffolds。

这也是为什么 daVinci-LLM 对 pretraining science 有意义:它不是只问“多少 token”,而是把 token 类别、处理深度、格式结构、训练阶段 四个维度绑在一起研究。


#6. 模型架构:不是创新点,基本是 Qwen2-style 3B

daVinci-LLM 的模型架构本身不是这篇文章的主要创新。它采用 Qwen2-based decoder-only causal LM,约 3.09B 参数

配置
参数量~3.09B
Layers36
Hidden size2048
Attention heads16
KV heads2,GQA
MLP intermediate11008
ActivationSwiGLU
NormRMSNorm
Positional encodingRoPE, base 10000
Sequence length4096
TokenizerQwen2 tokenizer, vocab 151936
Precisionbfloat16

这个选择其实反而说明了文章的重点:不是靠魔改架构,而是靠数据处理、训练课程和系统性实验。

如果一个相对标准的 3B 架构,能通过更科学的预训练策略取得明显 reasoning gains,那么这说明预训练 recipe 本身仍然有很大研究空间。


#7. 两阶段课程:从“广泛语言建模”到“结构化推理学习”

#7.1 Stage 1:先建地基,观察不同能力的饱和速度

Stage 1 训练 6T tokens,分成:

  • Stage 1-1:4T tokens

以 Common Crawl / general text 为主,先建立稳定通用语言能力。batch size 从 1024 逐步升到 4096,LR warmup 后保持 3e-4。

  • Stage 1-2:2T tokens

发现 general knowledge 很快饱和后,减少 general text,增加 code 和 science 数据,用 cosine decay 从 3e-4 降到 3e-5。

论文的观察很重要:

General knowledge 在约 1T tokens 后很快 plateau;code 和 science reasoning 在 4T 后仍然继续增长。

这给出一个很实际的训练启发:不同能力不是同速生长的。

如果你一直用固定数据比例训练,就会在已经饱和的能力上浪费大量 compute;更合理的方法是持续评测不同能力曲线,把 token 预算转移到仍在增长的能力上。

这也是 daVinci-LLM 从 Stage 1-1 到 Stage 1-2 调整 mixture 的原因。

#7.2 Stage 2:raw text 调比例不够了,需要换数据格式

Stage 1-2 后,作者发现继续调整 domain proportion 的收益开始变小。于是做了一个关键判断:

当标准 raw text corpus 接近饱和时,只是在 web/code/science 之间重新分配比例,已经不够;需要引入显式 reasoning structure,也就是 QA 格式。

于是 Stage 2 引入大规模结构化 QA:

  • Stage 2-1:1T tokens

采用 30% QA + 30% code + 30% science + 10% general 的平衡配置。目标是让模型先适应高密度 reasoning signal,同时避免某一能力坍缩。

  • Stage 2-2:1T tokens

在 Stage 2-1 建立稳定表征后,把 QA 提高到 70%,做 targeted reasoning amplification。

这背后的原则可以总结为:

先 balance,再 intensify。

不要一上来就把 QA 拉满。因为模型还没有稳定的多领域表征,高比例 QA 可能造成过拟合或 domain collapse。先用 30/30/30/10 建一个平衡基础,再在最后阶段把 QA 提到 70%,这样可以放大 reasoning,又不明显遗忘 general capability。


#8. 200+ 消融实验:真正有价值的是这些“为什么”

这篇文章最值得读的不是最终分数,而是 Section 4 的 200+ ablations。它把预训练 recipe 背后的很多经验问题具体化了。

#8.1 数据处理深度:L3 有用但有限,L4/L5 对复杂推理更关键

#L3:模型过滤比规则过滤略好,但不是质变

在代码数据上,作者比较了 L2 rule-based filtering 和 L3 model-based filtering。结果是 L3 有稳定但较小收益:

配置HumanEvalEvalPlusMBPPAvg CodeOverall
L2 Rule-based54.4348.5842.4048.4746.66
L3 Model-based54.7048.3945.8049.6346.93
Δ+0.27-0.19+3.40+1.16+0.27

解释:L3 能去掉低质量代码、配置文件、自动生成文件、常量堆积等噪声,所以对基础编程任务 MBPP 更有帮助。但对 HumanEval / EvalPlus 这种更复杂代码推理,单纯过滤不够。

#L4:生成式重写对复杂数学推理更有效

作者用 Qwen3-235B 对数学数据做 L4 generative refinement:清理叙述噪声、提取公式、重组证明步骤,但保持语义不变。结果:

配置GSM8KGSM-PlusMATHAvg ScienceOverall
Baseline64.0640.5838.0040.5247.27
L4 Refined65.4342.3845.0042.2547.83
Δ+1.37+1.80+7.00+1.73+0.56

这里最关键的是 MATH +7。说明复杂推理不是只需要“更多数学文本”,而需要更清晰的逻辑结构。对模型来说,原始论文/教材里经常省略中间步骤;L4 把这些结构整理出来后,模型更容易学习到推理模式。

#L5:合成 QA 能定向增强,但迁移有限

L5 cognitive completion 是把隐含推理变成显式问答/推导。例如从代码、科学文本里生成问题、答案和中间解释。论文发现:

  • CodeQA 更直接增强 code benchmark;
  • CC-QA / science QA 更直接增强 science reasoning;
  • 这种增强有明显 source-target alignment,跨域迁移不是无限的。

这点很重要:合成数据不是“只要是 reasoning 就通吃”。它的来源域、问题形式、答案结构决定了主要增强哪类能力。

#8.2 训练动态:能力饱和不同步,所以 mixture 要动态变

论文的 Stage 1 观察可以总结为:

  • general knowledge 约 1T tokens 后趋于饱和;
  • code/science reasoning 在 4T tokens 后仍有增长;
  • 因此 Stage 1-2 减少 general、增加 code/science 是合理的;
  • 但继续调 raw text 比例会遇到瓶颈。

作者还做了一个对照:从 Stage 1-2 checkpoint 继续训练,一条路继续增加 code/science 但不加 QA;另一条路进入 Stage 2,引入 30% QA。结果 Stage 2 明显更好,尤其 code 和 science 增长更大。

这说明:

当模型对 unstructured corpus 的收益进入平台期时,数据格式转换同类数据比例微调 更重要。

这和很多人对 pretraining 的直觉不同。我们常把预训练理解成“持续 next-token prediction on raw text”,但 daVinci-LLM 的证据支持另一种看法:后期预训练也可以逐渐接近“结构化能力塑形”。

#8.3 混合比例:高 reasoning data 必要,但内部平衡更重要

在 Stage 2-1,作者固定 QA 为 30%,变化 code/science 比例。关键结论:

  • code + science 总比例高是必要的;
  • 但 code-heavy 或 science-heavy 都可能牺牲整体能力;
  • 30% QA + 30% code + 30% science + 10% web 是一个平衡点。

这对应一个很朴素但重要的原则:reasoning intensification 不能等于单域偏科。

尤其基础模型还不是 post-trained specialist,它需要保留广泛表征。过强的单域分布会让能力变窄。

#8.4 QA 比例:同样是 70% QA,早期可能崩,晚期反而有效

这可能是全文最值得注意的实验之一。

在 Stage 2-1,从 Stage 1 checkpoint 直接尝试不同 QA 比例:

  • 中等 QA 比例下 general 还稳定;
  • QA 到 100% 时 general 明显下降;
  • code 呈现非单调:先提升,超过一定比例后 collapse;
  • science 因为 QA 数据里 science 占比较多,所以还会继续提升。

作者认为这是因为 QA pool 本身不均衡:science QA 很多,code QA 相对少。QA 比例过高时,code supervision 的绝对多样性不够,容易过拟合或表征坍缩。

但在 Stage 2-2,从已经经过平衡 Stage 2-1 的 checkpoint 继续训练时,70% QA 反而表现最好:

配置训练 tokensGeneralCodeScienceOverall
QA-30%419B51.8047.1640.5946.94
QA-50%419B51.8349.8943.4248.43
QA-70%419B52.1652.4045.7749.84

这说明 “最佳数据比例” 不是一个静态常数,而依赖训练阶段和当前表征基础。

更直白地说:

模型早期承受不了的高强度 supervision,在已有平衡基础后可能变成有效放大器。

这对持续预训练、midtraining、agent 预训练都很有启发。


#9. 评测问题:PPL 和生成式评测可能给出不同结论

论文还有一个容易被忽略但很重要的点:base model 的评测协议会影响结论。

他们区分两类评测:

  • PPL-based evaluation:给定候选答案,看模型给正确答案的 likelihood 是否更高;
  • Generative evaluation:让模型自由生成答案,尤其是 CoT / reasoning / code 输出。

这两者不是等价的。

特别是当模型经历大量 QA-style pretraining 后,它可能更擅长“生成式回答”,但在 PPL 多选打分上未必同比提升。因此不同评测协议可能出现 ranking reversal。

这对读榜单很重要:

如果一个模型训练目标越来越接近结构化问答和生成式推理,那么只看 PPL multiple-choice 可能低估它;但只看生成式 CoT 也可能放大 prompt format 带来的优势。

所以论文强调:base model evaluation 必须和预期使用场景匹配,而且最好同时报告多种协议。


#10. 我怎么看这篇文章的真正贡献?

我觉得 daVinci-LLM 的贡献可以分成三层。

#10.1 工程贡献:开放了一个完整 3B 预训练轨迹

包括:

  • final checkpoint;
  • intermediate checkpoints;
  • 训练日志;
  • 数据组成;
  • 数据处理 pipeline;
  • 评测配置;
  • 200+ 消融实验。

这对想研究 capability emergence、训练阶段转折点、数据比例影响的人很有价值。

#10.2 方法贡献:把“数据质量”转化成“处理深度”

Data Darwinism 最大的意义不是 L0-L9 名字本身,而是提供了一种比较数据处理方法的坐标系。

未来讨论数据时,可以不再停留于:

我用了高质量数学数据。

而是问:

它是 L3 筛选、L4 重写,还是 L5 显式推理补全?这些层级分别对哪些能力有效?

这会让 pretraining data research 更可积累。

#10.3 科学贡献:提供了一些可迁移的预训练规律

文章里最可能被复用的规律包括:

  1. 不同能力的训练饱和速度不同:general 早饱和,reasoning 持续增长;
  2. 后期只调 raw corpus 比例不够,需要 data format shift
  3. L4/L5 这种结构化处理对复杂推理比单纯过滤更重要
  4. 高浓度 QA 要分阶段引入:先平衡,再强化
  5. 合成 QA 的收益有强 domain alignment,不能假设通用迁移
  6. 评测协议会改变我们对 base model 能力的判断

这些比“3B 追平 7B”这个口号本身更值得记住。


#11. 这篇文章的局限和需要谨慎的地方

#11.1 结果不是“普遍证明 3B 可以等于 7B”

论文里 daVinci-3B 综合分追平 OLMo-3-7B,但这不意味着 3B 模型普遍可以替代 7B。它在 general knowledge 上仍低于 OLMo-3-7B,也低于 Qwen-2.5-3B / Qwen-3 系列若干指标。

更准确的解读是:

在特定数据策略和评测集合下,系统性 pretraining recipe 可以让 3B 在 reasoning-heavy benchmarks 上获得超出参数规模直觉的表现。

#11.2 评测集可能受 QA-style 训练影响

模型在 Stage 2 大量引入 QA 和 reasoning 数据,因此在生成式 benchmark 上很强。但这也意味着我们需要警惕:

  • benchmark contamination;
  • format overfitting;
  • CoT prompt 对模型的额外适配;
  • QA 训练导致某些生成式任务被特别放大。

论文确实讨论了 PPL vs generative evaluation 的差异,这是优点;但外部复现和更广泛评测仍然必要。

#11.3 Data Darwinism 高层级仍偏研究纲领

L0-L5 在论文中有实际操作和消融;L6-L9 更像未来方向。比如 environment synthesis、ecosystem synthesis、world synthesis,非常吸引人,但目前还不是成熟可规模化 recipe。

所以不要把 L0-L9 都当成已经验证过的技术栈。更稳妥的理解是:

  • L0-L5:已有较具体实践;
  • L6-L9:提出未来数据生成范式的方向。

#11.4 3B 规模规律未必直接外推到 30B/300B

3B 是一个很适合做系统性消融的规模,但在更大模型上:

  • 数据质量和数量的边际关系可能变化;
  • high-QA ratio 的最优点可能不同;
  • general knowledge plateau 时间可能延后;
  • 合成数据对模型的影响可能更复杂。

因此 daVinci-LLM 更像一个“可开放研究的实验平台”,而不是最终的 universal law。


#12. 对 LLM Agent / 长轨迹 RL / 持续学习的启发

这篇文章和 LLM Agent 表面上不是一个方向,但对 agent 训练很有启发。

#12.1 Agent 能力可能也需要“预训练阶段的结构化塑形”

现在很多 agent 训练直接上 RL,尤其是长轨迹任务。但 daVinci-LLM 提醒我们:能力地基很大程度来自 pretraining data structure。

如果模型在预训练或持续预训练阶段没有见过足够多:

  • 任务分解;
  • 状态跟踪;
  • 工具调用轨迹;
  • 错误恢复;
  • 长程 credit assignment 的显式解释;
  • 环境反馈到策略修正的过程;

那后续直接用 RL 在超长 agent 轨迹上优化,可能效率很低、方差很大,也容易学到表面策略。

换句话说:agentic RL 之前,可能需要 agentic pretraining / midtraining。

#12.2 “先 balance,再 intensify” 对 agent 训练尤其重要

daVinci-LLM 的 Stage 2 经验是:

不要一上来就用极高比例 QA;先用 balanced mixture 建立稳定表征,再提高 QA 强度。

类比到 agent:

  • 早期不能只训某一类 tool-use 或某一类 benchmark;
  • 需要混合 planning、search、code execution、memory、reflection、environment feedback 等不同轨迹;
  • 在模型具备稳定 agentic representation 后,再强化某类长轨迹任务或特定能力。

否则很可能出现“某类 benchmark 变强,但整体交互能力变窄”的问题。

#12.3 Data Darwinism 可以扩展到 Agent Trajectory Darwinism

Data Darwinism 的思想可以迁移到 agent 数据:

文本预训练Agent 轨迹训练类比
L2 去噪去掉无效轨迹、重复轨迹、错误格式
L3 模型过滤评价轨迹质量、任务难度、工具调用合理性
L4 refinement重写轨迹,使观察-行动-反馈链更清晰
L5 cognitive completion补全隐含思考、失败原因、credit assignment、反思
L6+ environment synthesis构造可执行环境生成新任务和交互数据

这可能比“直接收集大量 agent logs”更重要。因为 agent logs 本身往往噪声很高,真正有价值的是把轨迹变成可学习的认知结构。

#12.4 对 model-based RL / latent reasoning 的连接

用户关心 model-based RL / Dreamer for LLM Agent 和 latent-space reasoning。daVinci-LLM 至少给出一个侧面证据:能力增强不一定只能来自在线 RL,也可以来自更高质量、更高结构密度的离线训练数据。

如果往 model-based RL 延伸,一个可能路线是:

  1. 用环境交互数据构建 raw trajectory pool;
  2. 对轨迹做 Darwin-style 分层处理;
  3. L4:清理和重组 observation-action-reward 的因果链;
  4. L5:显式补全 hidden state、belief update、错误归因;
  5. 再用这些结构化轨迹做持续预训练 / world model training;
  6. 最后在 latent space 中进行 planning 或 imagination rollout。

这比直接在文本动作空间做长轨迹 RL 可能更稳定,也更符合“先形成模型,再做控制”的思路。


#13. 如果只记住五点

  1. daVinci-LLM 的核心不是 3B 模型,而是全开放预训练科学过程。
  2. Data Darwinism 把数据质量拆成 L0-L9 处理深度,L4/L5 对复杂推理尤其重要。
  3. 不同能力饱和速度不同:general knowledge 早饱和,code/science reasoning 更长期增长。
  4. 后期预训练不能只调数据比例,还要做 data format shift,引入结构化 QA / reasoning data。
  5. 高强度 reasoning 数据要分阶段引入:先平衡,再强化;否则容易 domain collapse 或能力变窄。

#14. 我的总体判断

我会把 daVinci-LLM 看作一篇值得认真读的 pretraining methodology paper,而不是普通模型发布。

它最有价值的地方在于:它把很多过去只能靠经验猜的预训练决策,变成了可以讨论、比较、复用的实验结论。尤其是以下几个方向:

  • 数据处理深度 vs 数据规模;
  • raw text vs structured QA;
  • capability-specific saturation;
  • staged curriculum;
  • reasoning intensification 与 capability preservation 的平衡;
  • base model evaluation protocol 的有效性。

对想研究基础模型训练、持续预训练、agent 预训练数据、长轨迹能力形成的人来说,这篇文章的意义不是告诉你“用这个 recipe 就行”,而是提醒你:

基础模型能力不是只靠参数和 token 堆出来的,它很大程度上取决于数据在认知结构上的组织方式,以及训练过程中何时、以什么强度引入这些结构。

这也是它和“训练范式”相关的地方:如果未来我们想让 LLM Agent 具备更稳定的长期规划、自我修正和环境建模能力,那么也许不能只盯着 RL 算法本身,而要像 daVinci-LLM 这样,从预训练数据结构、课程阶段、能力饱和曲线和负结果记录开始,重新把 agent 能力形成过程变成一门可积累的科学。