Lecture 10 · 数据混合:不同来源的数据各占多少 · Data Mixing

Training Data for AI · Lecture 10。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

个人整理的学习笔记,非官方讲义;课程来源与整理说明见课程介绍。配套示例未逐一运行验证。

本篇目录

对应 Maps to:Stanford CS525 Winter 2026 Training Data for AI,3/4 客座讲座的前半部分:Mayee Chen(Stanford)Efficient Data Mixing for Language Models(81 页 slides);学生报告 Phi-4 Technical Report(Seyone Chithrananda)里关于数据配比的部分。阅读:OLMix: A Framework for Data Mixing Throughout LM Development(Chen et al. 2026)。 依据说明:Chen 的 slides 文字完整可读,是本讲的骨架(离线方法的设计选择研究、在线方法的统一框架 Aioli、开发过程中的”复用比例”)。OLMix、Aioli、DoReMi、RegMix、Data Mixing Laws 的关键数字核对过各论文的摘要;slides 里只以图的形式出现的结论(例如”代理模型 15M 以上就够”),讲义里标明是”slides 的结论”。GPT-3、Llama 3 的数据配比来自它们的技术报告;Phi-4 的配比来自学生报告的 slides。第 6 节”统一的视角”和第 7 节”延伸与前沿”是我补充的。 配套代码 Code:code/lecture10/(numpy;3 个脚本 + 2 个模块;最长的约 40 秒) 预计阅读时间:2.5 小时(含运行代码)


0. 本讲导航 · How to read this lecture

0.1 学习目标 Learning goals

  1. 说清楚数据混合问题:给定几个数据领域和一个训练预算,每个领域占多少;为什么它重要、为什么难。
  2. 知道几种常用的启发式(按数据量、均匀、温度采样、人工上采样),以及它们各自的问题。
  3. 理解离线混合方法的统一模板(代理模型群 → 回归 → 优化),以及 OLMix 研究过的设计选择:代理多大、多少个、什么回归模型、怎样处理重复。
  4. 理解在线混合方法(DoReMi、Skill-it、Aioli):边训练边调比例,以及”线性混合优化”这个统一框架。
  5. 理解真实开发中的混合问题:数据领域一直在变,以及 OLMix 的”复用比例”。
  6. 能读懂代码里的合成世界,知道它的结论哪些能推广、哪些不能。

0.2 先修与本讲范围 Prerequisites & scope

默认你已经会 Assumed本讲不展开 Not covered
第 6 讲:扩展律、DCLM 的”固定训练、只换数据”的方法论多语言混合的细节(只在 §7 提一下)
第 7 讲:数据重复的价值(RD∗≈15.4R^*_D \approx 15.4)合成数据怎样生成(第 11 讲)
交叉熵、bits-per-byte、Spearman 相关后训练阶段的数据配比(第 8 讲讲过 Tulu 3 的消融)

0.3 本讲地图 Map

§1  混合问题:是什么、为什么重要、为什么难                      ← 代码 01 演示 1、2
§2  启发式:按数据量、均匀、温度、上采样;重复的代价             ← 代码 01 演示 3
§3  离线方法:代理群 → 回归 → 优化(RegMix、DML、OLMix)       ← 代码 02
§4  在线方法:DoReMi、Skill-it、Aioli 与线性混合优化            ← 代码 03 演示 1
§5  开发过程中的混合:领域会变,复用比例                         ← 代码 03 演示 2
§6  一个统一的视角;这个合成世界能说明什么
§7  延伸与前沿
§8–12  小结、常见误区、练习、延伸阅读、下一讲预告

0.4 关于数字

论文的数字来自 slides 和论文摘要。代码的数字来自一个合成的多领域世界 mix_world.py:

  • 成分:6 种”语言成分”(通用、百科、对话、代码、数学、噪声),每种有自己的词汇(大部分不重叠,0–3 号是共享的”功能词”)和自己的”语法”(三元转移概率)。
  • 领域:6 个数据来源,每个是成分的一种混合,有自己的数据量——网页 200 万 token(大,但有 14% 左右的噪声),维基 5000、书 15000、代码 30000、数学 2500、论坛 10000(小而干净)。
  • 任务:8 个下游任务(知识问答、阅读、对话、写代码、讲代码、应用题、证明、科学),每个也是成分的混合,用交叉熵(比特 / token)评测;8 个任务的平均就是我们要最小化的目标。
  • 模型:一个三元计数语言模型(Witten–Bell 平滑),“训练”只要几毫秒。模型大小 width 控制它能区分多少种上下文;预算 RR 是训练的 token 数。目标模型 width 40、RR = 20 万。超过一个领域的数据量就得重复,重复的 token 按 Muennighoff 的公式打折(R∗=15.4R^* = 15.4)。

这个世界有意保留了数据混合的几个核心性质(预算有限、领域之间有迁移也有冲突、小领域会被重复、小模型和大模型的判断可能不同),但它没有优化过程、训练和数据顺序无关。§6 会说清楚这意味着什么。代码固定了随机种子,同一台机器上重复运行输出逐字相同。


1. 混合问题:是什么、为什么重要、为什么难

1.1 混合无处不在

我们想要一个”什么都会”的语言模型:总结文档、写代码、解数学题。预训练数据于是来自很多领域:网页、数学、代码、书、论文、百科……每个领域占多少? 这就是数据混合(data mixing)问题。

Chen 的 slides 强调:“只要你整理了不止一个数据集,就要决定它们的比例。“混合的维度也不只是”来源”:

  • 语言:多语言模型里英语占多少、低资源语言上采样多少;
  • 上下文长度:短文档和长文档的比例;
  • 质量分数:第 7 讲 Nemotron-CC 把数据按质量分成 5 个等级——每个等级占多少也是一个混合问题;
  • 后训练数据:Tulu 3 的 SFT 数据里数学、代码、指令遵循、安全各占多少(第 8 讲)。

几个真实的例子:

模型数据配比备注
GPT-3(2020)Common Crawl 60%、WebText2 22%、Books1 8%、Books2 8%、Wikipedia 3%按”质量”人工上采样:训练中 Wikipedia 被看了约 3.4 遍,Common Crawl 只看了 0.44 遍
Llama 3(2024)通用知识约 50%、数学与推理 25%、代码 17%、多语言 8%用小模型上的扩展律实验来决定
Phi-4(2024)合成数据 40%、网页改写 15%、过滤后的网页 15%、代码 20%、购买的数据 10%学生报告强调”遍数 vs 独特 token”:合成数据被重复很多遍,网页提供大量独特 token

注意 GPT-3 这一行:比例和数据量是两回事。一个领域分到的 token 数可以比它拥有的独特 token 多(要重复),也可以少(只用一部分)。

1.2 形式化

Chen 的 slides(沿用 OLMix 的记号)这样定义问题:

  • 有 mm 个领域 D1,…,DmD_1, \dots, D_m(网页、代码、数学、法律……);
  • 要训练一个 SS 个参数的目标模型,看 RR 个 token;
  • 混合比例 p∈Δm−1p \in \Delta^{m-1}(非负、和为 1),领域 ii 分到 R⋅piR \cdot p_i 个 token;
  • 训练出 LM(S,R,p)\mathrm{LM}(S, R, p),在 nn 个下游任务上测 bits-per-byte fi(LM(S,R,p))f_i(\mathrm{LM}(S, R, p));
  • 目标:

p⋆=arg⁡min⁡p∈Δm−11n∑i=1nfi(LM(S,R,p)).p^\star = \arg\min_{p \in \Delta^{m-1}} \frac{1}{n} \sum_{i=1}^{n} f_i\big(\mathrm{LM}(S, R, p)\big).

研究问题:“怎样用尽量少的额外训练算力,找到让下游表现好的混合比例。”

1.3 为什么重要:代码 01 演示 1

在我们的世界里,6 个领域、预算 20 万 token:

比例网页维基书代码数学论坛平均损失比自然分布好
自然分布(按数据量)0.9700.0020.0070.0150.0010.0052.97760.0%
均匀(stratified)0.1670.1670.1670.1670.1670.1672.95495.9%
温度 τ=20.7330.0370.0630.0900.0260.0522.935710.9%
温度 τ=30.5390.0730.1050.1330.0580.0922.926613.2%
温度 τ=50.3680.1110.1380.1590.0970.1272.929812.4%
在目标模型上搜索(参照)0.5330.0890.0770.0980.0890.1152.918415.4%

“比自然分布好”是可学习部分减少的百分比:8 个任务的熵下界平均是 2.5925 比特(任何模型都做不到更低),自然分布的可学习部分是 2.9776−2.5925=0.3852.9776 - 2.5925 = 0.385 比特,搜出来的比例把它减少了 15.4%。

几点观察:

  • 差别是真实的:从最差的启发式到最好的比例,可学习的损失差了 15%。对比第 6 讲:DCLM 里换一个质量过滤器,差别也是这个量级。
  • 自然分布最差:小来源几乎分不到预算,数学、证明这类任务没有数据可学。
  • 均匀也不好:把 1/6 的预算给只有 2500 个 token 的数学,等于重复 13 遍。
  • 搜出来的比例让数学重复了 7.1 遍、维基 3.6 遍,网页只用了 5% 的数据——小而干净的来源值得重复几遍,但不是无限多遍。

“在目标模型上搜索”在这里训练了 400 个目标规模的模型。现实里训练一个目标模型就要几百万美元,这条路走不通。整个数据混合的研究就是在问:怎样用便宜得多的办法接近它?

1.4 为什么难:此消彼长(代码 01 演示 2)

Chen 的 slides 第 5 页有一组柱状图:每换一种混合,数学、代码、通用三类任务的改进各不相同,有正有负,幅度从 −40 到 +40。我们在世界里做同样的实验:从温度 τ=3 的比例出发,多给某个领域 10%(其他领域按比例缩小),看 8 个任务的损失怎样变(毫比特 / token,负数 = 变好):

多给知识问答阅读对话写代码讲代码应用题证明科学平均
+网页−11−10−5+33+15−10−5−9−0.4
+维基−17+7+14+14+13+10+0−8+4.1
+书+12−14−26+19+1+8+22+18+5.1
+代码+27+21+32−98−38+78+88+57+20.7
+数学+16+10+14+41+29−61−53−17−2.7
+论坛+24+3−7+6+1−11+1+13+4.1
  • 预算是零和的:多给代码,写代码的损失降了 98,但其他所有任务都变差了。
  • 领域和任务不是一一对应的:网页帮助问答、阅读、数学,却伤害代码任务;书帮助对话和阅读,却伤害证明。
  • 没有一个比例对所有任务都最好。“最好的混合”取决于你在意哪些任务、怎样加权(这里是简单平均)。

这就是为什么混合比例不能拍脑袋,要靠实验——而实验很贵。


2. 启发式与重复的代价

2.1 四种常用的启发式

  1. 自然分布(按数据量):pj∝Njp_j \propto N_j。“有多少用多少”,不需要任何决定。问题:大领域(网页)淹没小领域。
  2. 均匀(stratified sampling):pj=1/mp_j = 1/m。Aioli 的论文把它当作基线,发现很多复杂方法都不能稳定地超过它。问题:小领域被重复太多遍。
  3. 温度采样:pj∝Nj1/τp_j \propto N_j^{1/\tau}。τ = 1 是自然分布,τ → ∞ 是均匀。多语言模型常用(mT5 取 α=1/τ=0.3\alpha = 1/\tau = 0.3)。它在两个极端之间折中,在我们的世界里 τ = 3 已经很接近最好的比例。
  4. 按质量人工上采样:GPT-3 的做法——觉得哪个来源质量高,就让它多被看几遍。依赖直觉,难以推广到几十个领域。

2.2 重复:小领域能放多少(代码 01 演示 3)

小领域的问题是数据量:数学只有 2500 个 token,给它 10% 的预算就要重复 8 遍。第 7 讲讲过 Muennighoff 的结论:重复 4 遍以内的数据几乎和新数据一样有用,之后价值递减。Chen 的 slides 引用这个结论说”重复超过 4–5 遍就没什么价值了”。

我们在世界里比较”重复的数学数据”和”同样多的新数学数据”(后者是假想的:如果真有无限多的数学数据):

数学比例遍数有效遍数应用题(重复)应用题(新数据)平均(重复)
0.012511.03.23763.23962.9463
0.02522.03.20513.19532.9377
0.0543.73.15903.12792.9267
0.186.63.11883.04222.9236
0.21610.63.08102.95042.9269
0.43214.33.06182.87392.9507

(完全不放数学时,应用题的损失是 3.2985。)

  • 重复 4 遍的数学数据拿到了”同样多的新数据”在应用题上收益的 82%,16 遍时 62%,32 遍时 56%。
  • 8 个任务的平均损失在重复约 8 遍时最好;再多,花在数学上的预算从别的领域拿走的比它带来的多。
  • 如果真有更多新的数学数据,数学任务会一直变好。瓶颈是独特数据量,不是比例本身——这正是第 11 讲合成数据想解决的问题(Phi-4 的合成数据被重复很多遍,仍然比 4 遍时好)。

诚实的说明:重复的价值递减在这个世界里是”写进去的”——我们直接用了 Muennighoff 的有效数据公式 D′=U [1+R∗(1−e−(e−1)/R∗)]D' = U\,[1 + R^*(1 - e^{-(e-1)/R^*})](ee 是遍数)。另外,数据稀疏时重复会让计数模型”过于自信”(平滑的回退变少),这是一个额外的、模型自己产生的代价。所以演示 3 说明的是”如果重复的价值这样衰减,混合比例应该怎样变”,而不是证明重复的价值会这样衰减。


3. 离线方法:代理群 → 回归 → 优化

3.1 统一的模板

RegMix(Liu et al. 2024)、Data Mixing Laws(Ye et al. 2024)等方法都遵循同一个模板(Chen 的 slides 称之为 offline mixing schema):

1. 建群(swarm):抽 K 个混合比例 p_1, …, p_K,在每个比例上训练一个小的"代理模型"(proxy),
                  记下每个任务的损失 f_i(p_k);
2. 回归(regression):拟合 f̂_i(p) ≈ f_i(p),从比例预测损失;
3. 优化(optimization):p* = argmin_p (1/n) Σ_i f̂_i(p),可以加约束;
4. 用 p* 训练目标模型。

两个代表:

  • RegMix:训练 512 个 100 万参数的小模型(各看 10 亿 token),用 LightGBM 回归;按预测的最好比例训练一个 10 亿参数、看 250 亿 token 的模型,它超过了 64 个其他候选比例训练的同样大小的模型。RegMix 还报告了一个反直觉的发现:网页数据和下游表现的相关性比维基百科这样的”高质量”来源更强。
  • Data Mixing Laws:发现损失和比例之间有可预测的函数关系,形如 fi(p)=ci+kiexp⁡(∑jtijpj)f_i(p) = c_i + k_i \exp\big(\sum_j t_{ij} p_j\big);再和”训练步数、模型大小”的扩展律嵌套,用小规模实验预测大模型。在 RedPajama 上为一个 10 亿参数、看 1000 亿 token 的模型优化比例,效果相当于用默认比例多训练 48% 的步数。

3.2 OLMix 的设计选择研究

问题在于:模板的每一步都有很多选择,而已有的工作各选各的,很少给出理由。OLMix 列出了 7 个问题:

阶段问题
建群1. 代理模型多大? 2. 多少个代理? 3. 比例从什么分布里抽?
回归4. 用什么回归模型? 5. 回归目标的粒度(每个任务一个还是平均)?
优化6. 数据有限时怎样混合(重复)? 7. 用什么数值方法求解?

实验设置:1B 参数的目标模型(按 5 倍 Chinchilla 的 token 数训练),把 DCLM-Baseline 按话题分成 24 个领域,在 52 个数学、代码、问答任务上测 BPB。我们在世界里重做其中四个。

研究问题 1:代理模型要多大?

已有的工作用 100 万到 4 亿参数的代理。代理和目标对”哪个比例更好”的排序一致吗?slides 举了一个例子:代理的排序是 p2>p4>p1>p3p_2 > p_4 > p_1 > p_3,目标是 p2>p1>p3>p4p_2 > p_1 > p_3 > p_4,Spearman 相关只有 0.4。slides 的结论是:对 1B 的目标模型,15M 以上的代理就够了。

代码 02 演示 1 在 40 个比例上比较代理和目标的排序(Spearman 相关):

代理大小 width预算 20k预算 50k预算 200k
10.500.450.44
20.530.520.52
50.590.660.72
100.630.720.81
200.700.840.94
400.710.920.99
  • 最小的代理(只看前一个词)的排序相关只有 0.44–0.50——和 slides 里”0.4”的例子差不多。
  • 代理越大、预算越接近目标,排序越一致。和目标同样大小、同样预算(只有数据抽样的种子不同)时是 0.99,这是噪声决定的上限。
  • 预算和模型大小一样重要:width 40 但预算只有 20k 的代理只有 0.71。原因是预算小的代理看不到”小领域被重复很多遍”的效果——演示 4 会看到后果。

一个具体的阈值(“15M”)只在具体的设置下成立;可推广的是方法:先在一组比例上检查代理和目标的排序是否一致,再决定用多小的代理。

研究问题 4:用什么回归模型?

已有的工作各自提出一个回归模型,并都声称拟合得很好:LightGBM(RegMix)、高斯过程(ADMIRE-BayesOpt)、对数线性(Data Mixing Laws)、BiMix、AutoScale。OLMix 的发现:拟合质量和群的大小纠缠在一起(群小时谁好谁坏会变);24 个领域、K≥75K \ge 75 时,对数线性模型拟合得最好;K=128K = 128 时,对数线性模型提出的比例在下游最好。

OlmixBase 因此选了每个任务一个对数线性模型:

f^i(p)=ci+exp⁡(Ai⊤p).\hat f_i(p) = c_i + \exp\big(A_i^\top p\big).

cic_i 是”混合得再好也去不掉的损失”,exp⁡(Ai⊤p)\exp(A_i^\top p) 是能通过调比例减少的部分。拟合方法:对 cic_i 网格搜索,固定 cic_i 后 log⁡(fi−ci)=Ai⊤p\log(f_i - c_i) = A_i^\top p 是线性回归。

代码 02 演示 2 比较四种回归(代理 width 10、预算 50k;5 个随机群的平均;优化时加 k=4k = 4 的重复约束):

回归模型留出 R²(K=28)留出 R²(K=112)目标损失(K=28)目标损失(K=112)
线性0.7120.8152.95672.9482
对数线性(OLMix)0.8600.9222.93172.9317
对数特征(边际递减)0.8590.9002.92752.9276
3 近邻(不外推)0.5060.7162.94462.9344

(参照:温度 τ=3 是 2.9266,在目标模型上搜索是 2.9184,自然分布是 2.9776。)

  • 对数线性的留出 R² 最高,和 OLMix 一致。线性模型学不到边际递减;k 近邻(代表 LightGBM 这类不外推的方法)在群小的时候几乎没有预测力。
  • 拟合得好不等于提出的比例好。“对数特征”模型 f^i=bi0+∑jbijlog⁡(pj+ϵ)\hat f_i = b_{i0} + \sum_j b_{ij} \log(p_j + \epsilon) 的 R² 略低,提出的比例却更好。原因:exp⁡(A⊤p)\exp(A^\top p) 是凸函数,它的最小点常常落在边界上——把某个领域推到 0 或推到上限(我查看过对数线性提出的比例:书或论坛经常被设为 0)。对数特征模型天然认为”一个领域从 0 加到 5% 的作用很大”,不会轻易把它清零。
  • 最重要的一点:在这个世界里,这几种方法都没有明显超过它们的出发点——温度 τ=3。我们从 τ=3 周围抽群,回归和优化之后,最好的结果(2.9275)和 τ=3(2.9266)几乎一样。混合方法的价值要和一个好的启发式比,而不是只和自然分布比。

研究问题 2:要多少个代理?

已有的工作差别很大:21 个领域用 512 个代理(RegMix),7 个领域用 20 个。OLMix 的实验:m∈{6,12,18,24}m \in \{6, 12, 18, 24\},K∈{1,…,5}×(m+1)K \in \{1, \dots, 5\} \times (m+1)。结论:样本复杂度是线性的,O(m)O(m) 个代理就能学到好的比例。

代码 02 演示 3(m=6m = 6):

KK/(m+1)对数线性对数特征
712.95252.9554
1422.93372.9447
2842.93172.9275
5682.93172.9269
112162.93172.9276

K=m+1K = m + 1 时,回归的参数和数据一样多,提出的比例很差;到 2(m+1)2(m+1)–4(m+1)4(m+1) 之后就不再改进了。我们只看了 m=6m = 6,没有验证”随 mm 线性增长”;但”几倍于领域数就够”是一致的。代理的总成本 ≈ KK × 一个代理的成本;领域从 6 个变成 60 个,代理也要多 10 倍——这是 §5”复用比例”的动机。

研究问题 6:重复约束

Chen 的 slides 用一张图说明问题:网页、数学、代码三个领域各有一定的数据量(可用 token),一个混合比例”请求”的 token 数如果超过可用量,就要重复——重复 2.5 遍”还行”,重复 8 遍”糟糕”。已有的方法都假设”数据无限”(只受算力约束),没有办法控制重复。OLMix 在优化里加一个约束:

pj≤k⋅NjR∀j,p_j \le \frac{k \cdot N_j}{R} \quad \forall j,

NjN_j 是领域 jj 的可用 token,RR 是目标模型的预算,kk 是允许的最多遍数(约 4–5)。slides 的结论:“重复约束对提出的比例影响很大。”

为什么代理模型自己发现不了这个问题?因为代理的预算小。在代理的预算下,给一个小领域 20% 只意味着看它一两遍;到了目标的预算,同样的比例就是十几遍。代码 02 演示 4(对数线性,K=28K = 28):

约束 kk维基比例数学比例论坛比例维基遍数数学遍数目标损失
不约束0.1590.2830.1106.322.63.1187
160.2380.1600.1289.512.83.0598
80.1940.1000.2117.78.02.9600
40.0980.0500.1393.94.02.9317
20.0430.0250.0691.72.02.9376

不加约束时,优化在代理(50k 预算)上看到”数学和维基多多益善”,提出的比例在目标上意味着数学重复 23 遍,损失 3.1187——比自然分布(2.9776)还差。加上 k=4k = 4 的约束后是 2.9317。这是本讲代码里最清楚的一个结论,和 OLMix 完全一致。

更一般的教训:代理和目标的差别不只是”模型更小”。凡是随规模变化的东西——重复、过拟合、容量——代理都可能看不到,需要单独建模(像这里的约束)或单独测量。

3.3 OlmixBase

把这些选择放在一起,OLMix 的离线基线(OlmixBase)是:30M 参数的代理、O(m)O(m) 个代理、每个任务一个对数线性模型、带重复约束的优化。代码 03 里的”OlmixBase 式”方法用的是同样的配方(width 10、预算 1/4 的代理,K=4(m+1)K = 4(m+1),对数线性,k=4k = 4)。


4. 在线方法:边训练边调比例

4.1 离线 vs 在线

Chen 的 slides 对比了两种设置:

离线(静态比例)在线(动态比例)
优点容易启动;最后的比例容易迁移到别的训练根据当前的模型状态调整比例(有很强的证据表明数据的顺序有影响);只需要一次训练
缺点要训练很多模型;静态的比例可能”把性能留在桌上”难以实现,和训练框架不太兼容;得到的比例难以迁移

在线混合把训练分成 TT 轮,每轮的比例 ptp^t 可以不同;目标是最后一轮之后各领域损失的平均最小。

4.2 DoReMi

DoReMi(Xie et al. 2023)是最有影响的在线方法之一,它的想法来自分布鲁棒优化(group DRO):

  1. 用某个参考比例(例如均匀或按数据量)训练一个小的参考模型;
  2. 训练一个同样大小的代理模型;每一步,计算每个领域上代理的损失比参考模型高多少(超额损失,取正部),按指数更新领域权重:

αjt+1∝αjtexp⁡(ηmax⁡{ℓj(θt)−ℓj(θref),0});\alpha^{t+1}_j \propto \alpha^t_j \exp\Big(\eta \max\{\ell_j(\theta^t) - \ell_j(\theta_{\mathrm{ref}}), 0\}\Big);

  1. 把整个训练过程中的权重取平均,作为静态比例去训练大模型。

为什么要减去参考模型?如果只看原始损失,高熵的领域(噪声多、本来就学不好)会一直被加权。超额损失衡量的是”还有多少能学的”。DoReMi 用 2.8 亿参数的代理为 80 亿参数的模型定比例:在 The Pile 上所有领域的困惑度都改进了(包括被降权的领域),平均少样本准确率提高 6.5 个百分点,达到基线准确率所需的训练步数少 2.6 倍。它不需要任何下游任务的数据。

类似的方法还有 DoGE(按领域梯度之间的对齐程度加权)和 Skill-it(Chen et al. 2023:把数据组织成”技能”,按技能之间的依赖关系安排顺序)。

4.3 统一的框架:线性混合优化(Aioli)

Aioli(Chen et al. 2024)发现,这些在线方法都在解同一个问题,只是对”比例怎样影响损失”做了不同的假设:

min⁡p1m∑i=1mfiT+1(p)s.t.fit+1(p)=fit(p)−∑j=1mAijt pjt.\min_{p} \frac{1}{m} \sum_{i=1}^{m} f_i^{T+1}(p) \quad \text{s.t.} \quad f_i^{t+1}(p) = f_i^t(p) - \sum_{j=1}^{m} A^t_{ij}\, p^t_j.

约束是一个线性混合律:下一轮领域 ii 的损失 = 这一轮的损失 − Σ(领域 jj 对领域 ii 的作用 AijA_{ij} × 领域 jj 的比例)。定理:选择特定的 AtA^t,用指数梯度下降解这个问题,就恢复出 DoReMi、DoGE、Skill-it 的更新规则。例如 DoReMi 对应 AtA^t 是对角矩阵,Aiit∝max⁡{ℓi(p)−ℓi(pref),0}A^t_{ii} \propto \max\{\ell_i(p) - \ell_i(p_{\mathrm{ref}}), 0\}。

这给了一个评价在线方法的新角度:一个方法好不好,取决于它隐含的混合律参数准不准。slides 报告:线性混合律本身拟合得很好(R2=0.93R^2 = 0.93),但各方法手工设定的 AtA^t 和拟合出来的最优 At⋆A^{t\star} 差得比较远,参数不准的方法往往表现差。

Aioli 于是在训练中直接估计 AtA^t:

  1. 试探(explore):在当前模型上用几组扰动过的比例各训练一小段,记下各领域验证损失的变化;
  2. 拟合(fit):用这些(比例,损失变化)拟合 AtA^t;
  3. 优化(optimize):pjt+1∝pjtexp⁡(η∑iA^ijt)p^{t+1}_j \propto p^t_j \exp\big(\eta \sum_i \hat A^t_{ij}\big)。

论文的结果:已有的方法没有一个能稳定地超过均匀采样(有的方法比均匀差多达 6.9 个困惑度点);Aioli 在 6 个数据集上都超过均匀采样,平均好 0.27 个困惑度点;在”先用短训练学比例、再用于长训练”的设置里,比已有方法好多达 12 个困惑度点。

4.4 在世界里比较(代码 03 演示 1)

方法网页维基书代码数学论坛平均损失额外成本
自然分布0.9700.0020.0070.0150.0010.0052.9776—
均匀0.1670.1670.1670.1670.1670.1672.9549—
温度 τ=30.5390.0730.1050.1330.0580.0922.9266—
离线:OlmixBase 式0.5540.1000.0000.0960.0500.2002.930728 个代理
在线:DoReMi(参考 = 均匀)0.1260.1670.2230.1790.1510.1532.96362 个代理
在线:原始损失(无参考)0.7850.0400.0210.0340.0310.0902.93541 个代理
在线:Aioli 式(用下游验证集)0.5870.0720.0980.0830.0830.0772.9209试探 1.4 倍预算
在目标模型上搜索(参照)0.5330.0890.0770.0980.0890.1152.9184400 个目标模型
  • DoReMi 没有超过它的出发点(均匀)。它让每个训练领域”学得一样充分”,而这不等于下游任务最好——它甚至把网页降到了 12.6%,而网页是唯一的大量新数据。这正是 Aioli 报告的现象。
  • 只看原始损失:网页(噪声多、损失天然高)被大幅加权。DoReMi 论文的担心是”追逐学不会的噪声”;在我们的世界里,这个担心被”网页数据多”抵消了,结果反而不坏。哪种效应占上风取决于数据。
  • Aioli 式的方法直接测量”多给一点每个领域,下游损失降多少”,得到 2.9209,接近搜索的上限 2.9184。代价有两个:每轮的试探要额外花算力;下游任务被当作验证集,它们对这个方法来说不再是”没见过”的评测(第 14 讲会讨论这种”在评测上调参”的风险)。
  • 一个重要的局限:我们的计数模型和数据顺序无关,所以”在线”的好处只来自”在一次训练里找到了好比例”。真实的模型里顺序是有影响的(课程式安排、遗忘、学习率调度),那是在线方法的另一部分动机,这个世界演示不了。

5. 开发过程中的混合:领域会变

5.1 数据一直在变

Chen 的 slides 指出了一个被忽视的实际问题:在模型开发过程中,数据领域本身一直在变。以 OLMo 2 → OLMo 3 为例:

  • 有的领域没变:arXiv、Wikipedia / Wikibooks;
  • 有的被删除:Algebraic Stack、peS2o;
  • 有的是新增的:olmOCR 处理的科学 PDF;
  • 有的被修订:StarCoder → Stack-Edu,OpenWebMath → FineMath 3+。

形式化:领域集合 DD(mm 个)更新成 D′D'(m′m' 个),更新的类型有四种——新增、删除、拆分、修订。已知旧比例 p~∈Δm−1\tilde p \in \Delta^{m-1},要求新比例 q⋆∈Δm′−1q^\star \in \Delta^{m'-1}(同样带重复约束)。

最直接的做法是全部重算:每次更新都在 D′D' 上重新跑一遍离线方法,成本 O(m′)O(m')。开发过程中数据可能更新几十次,这就太贵了。

5.2 复用比例(mixture reuse)

OLMix 的想法:没受影响的领域,保持它们之间原来的相对比例;只为受影响的领域重新计算。 slides 的例子:

  1. 旧领域是 [科学, 政治, 文学, 代码],旧比例 p~=[0.2,0.35,0.25,0.2]\tilde p = [0.2, 0.35, 0.25, 0.2];现在”代码”被拆成”Python”和”其他代码”;
  2. 没受影响的三个领域冻结相对比例:[0.2,0.35,0.25][0.2, 0.35, 0.25] 归一化成 [0.25,0.4375,0.3125][0.25, 0.4375, 0.3125],合并成一个”虚拟领域” DfixD_{\mathrm{fix}};
  3. 在一个小得多的问题上重新计算:DfixD_{\mathrm{fix}}(1 个)+ 受影响的领域 DcompD_{\mathrm{comp}}(Python、其他代码)。建一个小群(例如 [0.7,0.05,0.25][0.7, 0.05, 0.25]、[0.45,0.4,0.15][0.45, 0.4, 0.15]……,训练代理时 DfixD_{\mathrm{fix}} 按冻结的比例展开),拟合对数线性模型,优化;
  4. 假设优化得到 [0.6,0.25,0.15][0.6, 0.25, 0.15],展开回去:[0.6×(0.25,0.4375,0.3125),0.25,0.15]=[0.15,0.2625,0.1875,0.25,0.15][0.6 \times (0.25, 0.4375, 0.3125), 0.25, 0.15] = [0.15, 0.2625, 0.1875, 0.25, 0.15]。

重复约束也要跟着展开:虚拟领域的比例 r1r_1 要保证其中每个真实领域都不超过 kk 遍,即 r1≤min⁡j∈DfixkNj′/(R⋅冻结比例j)r_1 \le \min_{j \in D_{\mathrm{fix}}} k N'_j / (R \cdot \text{冻结比例}_j)。

关键的赌注(slides 的 “key bet”):改变 Python 和其他代码的比例,会改变科学、政治、文学之间的相对重要性吗?“大概不会。“——所以可以复用。

5.3 结果

OLMix 的评测:从 DCLM 的 24 个话题领域出发,经过 5 次更新(新增 6 个来源、新增 15 个编程语言领域、把 olmOCR 科学 PDF 拆成 21 个话题、修订 olmOCR、删除 AlgebraicStack),最后是 64 个领域;1B 模型、52 个任务。

  • 复用比例拿到了全部重算 95–98% 的改进,总代理数少 67–74%(216–272 个 vs 832 个);
  • 在 216–272 个代理的预算下,复用比自然分布好 11.6% 和 12.0%,全部重算(预算不够、每次只能用很小的群)只好 10.8%;
  • 论文摘要的说法:和每次全部重算的效果相当,算力少 74%,比”不做混合”好 11.6%。

5.4 在世界里(代码 03 演示 2)

我们模仿这个过程:从 6 个领域出发,依次 新增 stack_edu(干净的教育类代码)、把网页 拆分 成新闻 / 聊天 / 技术三个话题、把数学 修订 成 math_v2(更多、更干净)、删除 论坛,最后 8 个领域。每次离线计算用 K=4(m+1)K = 4(m+1) 个代理。

更新领域数全部重算:代理复用:代理
初始62828
新增 stack_edu73212
拆分 web → 3 个话题94020
修订 math → math_v294012
删除 forum8360
最终 8 个领域上的比例代理总数平均损失比自然分布好
自然分布02.97480.0%
温度 τ=302.919814.4%
每次全部重算1762.915115.6%
复用比例722.919014.6%
在目标模型上搜索(参照)—2.902518.9%

(3 次重复的平均;三次各自的损失:全部重算 2.9117 / 2.9129 / 2.9207,复用 2.9160 / 2.9256 / 2.9154。)

  • 复用少用了 59% 的代理,拿到了全部重算 93% 的改进——和 OLMix 的”少用 67–74%、拿到 95–98%“是同一个故事。
  • 和温度 τ=3 比,两种方法都只在 3 次中的 2 次更好,优势很小、不稳定,和 §3 的结论一致。
  • 复用依赖”key bet”。当新领域和旧领域高度重叠(例如把一个新的网页快照加进来),旧领域之间的相对比例可能就不再合适了;定期做一次完整的重算是合理的折中。

6. 一个统一的视角(补充)

把本讲的方法放在一起看,数据混合是一个黑盒优化问题:自变量是比例 pp,目标函数是”训练一个模型再评测”,每次求值非常贵。各种方法的区别在于怎样省求值:

方法怎样省依赖的假设
启发式(温度等)不求值数据量和价值之间有简单的关系
离线(RegMix、DML、OLMix)在小模型上求值,用回归插值小模型的排序和大模型一致;回归的函数形式对
在线(DoReMi、Aioli)在一次训练里边训练边求值局部的(线性)混合律;DoReMi 还假设”各领域学得一样充分”等于好
复用(OLMix)只为变化的部分求值没变的领域之间的相对比例仍然合适

这个合成世界能说明什么、不能说明什么。

能说明的(因为世界保留了这些性质):预算是零和的、领域和任务之间是多对多的关系;小领域会被重复,重复的价值递减;小代理的排序不可靠,预算的差别和模型大小的差别一样重要;回归的函数形式会影响提出的比例;不加重复约束会出大错;复用比例能省很多代理。

不能说明的:

  • 训练动态:计数模型和数据顺序无关,没有遗忘、没有学习率调度,所以”在线方法因为顺序而更好”这一面完全看不到;
  • 泛化和容量:真实的模型能从上下文推断当前是哪个领域,也能在领域之间做更抽象的迁移(例如数学推理帮助代码);我们的模型只有两个词的上下文;
  • 重复的价值是写进世界的(Muennighoff 的公式),不是涌现出来的;
  • 规模:6–9 个领域、8 个任务,比真实的 24–64 个领域、52 个任务小得多;方法之间的差别(几个毫比特)也比真实情况更容易被噪声淹没。

所以”在这个世界里,方法很难超过温度 τ=3”不应该被理解成”真实世界里混合方法没用”——RegMix、OLMix 在真实模型上都报告了明显的改进。它提醒我们的是:比较混合方法时,一定要和一个调好的启发式比较。


7. 延伸与前沿 · Beyond the original lecture

本节是我补充的。

  • 中期训练与退火(annealing)。很多现代模型在预训练的最后阶段换一个混合比例:把学习率降到 0 的同时,大幅上采样高质量的数学、代码、指令数据(Llama 3 的退火阶段、OLMo 2 的 Dolmino 中期训练数据)。Llama 3 还用”在一个训练了一半的模型上,用少量某类数据做退火,看评测涨多少”来评估一个数据集的价值——这比从头训练代理便宜得多。
  • 混合和过滤一起设计。Chen 的 slides 把”数据混合和其他数据整理的协同设计”列为下一步。第 7 讲的 Nemotron-CC 把质量分数分桶,每个桶就是一个”领域”;过滤的阈值和混合的比例其实是同一个决定。
  • 多语言的混合。温度采样会让低资源语言重复很多遍;UniMax(Chung et al. 2023)先把预算均匀地分给各语言,再给每种语言的遍数设上限、多出来的预算重新分配——这和 OLMix 的重复约束是同一个思路。
  • 混合的目标是什么。用验证集困惑度、下游 BPB,还是下游准确率?Phi-4 的学生报告提出:后训练会改变”最好的预训练比例”的含义(合成数据多的模型在后训练之后和其他比例的差距缩小)。端到端地优化”预训练比例 → 后训练之后的表现”仍是开放问题。
  • 用梯度直接优化比例。第 13 讲的元梯度(metagradients)可以对每个样本的权重求梯度,原则上把”混合比例”推广到”每个样本的权重”。

8. 小结 · Summary

  1. 混合问题:mm 个领域、预算 RR,选比例 pp 让下游的平均损失最小。它重要(在我们的世界里,好坏比例的可学习损失差 15%),也难(预算零和、领域和任务多对多、每次求值都要训练一个模型)。
  2. 启发式:自然分布淹没小领域;均匀让小领域重复太多遍;温度采样是折中;GPT-3 式的人工上采样依赖直觉。比例和数据量要一起看:小领域的瓶颈是独特数据量。
  3. 离线方法:代理群 → 回归 → 优化。OLMix 的设计选择研究:代理太小排序不可靠(slides:1B 目标用 15M 以上的代理);O(m)O(m) 个代理就够;对数线性回归拟合最好;一定要加重复约束 pj≤kNj/Rp_j \le kN_j/R。
  4. 在线方法:DoReMi 按超额损失加权、取平均权重;Aioli 证明 DoReMi、DoGE、Skill-it 都在解”线性混合优化”,区别只在混合律参数;Aioli 在线估计参数。已有方法很难稳定地超过均匀采样。
  5. 开发中的混合:领域会被新增、删除、拆分、修订;OLMix 的复用比例冻结没受影响的领域的相对比例,只为受影响的部分重算——少用 67–74% 的代理,拿到 95–98% 的改进。
  6. 方法论:比较混合方法时要和调好的启发式比;代理看不到随规模变化的东西(重复、容量),要单独处理。

9. 常见误区 · Common pitfalls

  1. “高质量的小数据集,比例越大越好。” 比例大意味着重复多;超过 4–5 遍之后价值迅速递减(代码 01 演示 3、代码 02 演示 4)。
  2. “代理模型说好的比例,目标模型也会说好。” 太小的代理排序相关只有 0.4–0.5;预算不同也会让排序不一致(代码 02 演示 1)。
  3. “回归拟合得越好,提出的比例就越好。” 函数形式会把最优点推到边界上(代码 02 演示 2)。
  4. “混合方法比自然分布好,所以它有用。” 自然分布是很弱的基线;要和均匀、温度采样比(代码 02、03)。
  5. “让每个领域都学得一样好就是最好的混合。” DoReMi 的目标是领域上的最坏情况,不是下游任务(代码 03 演示 1)。
  6. “混合比例定一次就行了。” 开发过程中领域一直在变;每次都全部重算太贵,完全不重算又会过时(§5)。
  7. “数据混合只是预训练的事。” 语言、质量等级、上下文长度、后训练数据、中期训练,到处都是混合问题。

10. 练习 · Exercises

练习 1(温度采样和重复) 我们世界里 6 个领域的数据量是:网页 2,000,000、维基 5,000、书 15,000、代码 30,000、数学 2,500、论坛 10,000;预算 RR = 200,000。(a) 用代码 01 演示 1 表里的比例,算出数学在 τ = 2、3、5 和均匀时各被看几遍。(b) 如果预算增加到 200 万,τ = 3 的比例不变,数学要被看多少遍?这说明了温度采样的什么问题?

参考答案

(a) 遍数 = p⋅R/Np \cdot R / N。τ = 2:0.026×200000/2500≈2.10.026 \times 200000 / 2500 \approx 2.1;τ = 3:0.058×80≈4.60.058 \times 80 \approx 4.6;τ = 5:0.097×80≈7.80.097 \times 80 \approx 7.8;均匀:0.167×80≈13.30.167 \times 80 \approx 13.3。

(b) 0.058×2000000/2500≈460.058 \times 2000000 / 2500 \approx 46 遍。温度采样只看各领域数据量的相对大小,不看预算——同一个比例在小预算下合理,在大预算下就会让小领域被重复几十遍。这正是 OLMix 要加 pj≤kNj/Rp_j \le kN_j/R 的原因:约束里有 RR。

练习 2(重复约束的可行性) 用 k=4k = 4。(a) RR = 20 万时,每个领域的上限是多少?加起来是否大于 1?(b) RR = 200 万时呢?网页至少要占多少?(c) GPT-3 的 Wikipedia 被看了约 3.4 遍、WebText2 约 2.9 遍——在 k=4k = 4 的约束下,它们还能再上采样吗?

参考答案

(a) 上限 =4Nj/200000= 4N_j / 200000:维基 0.1、书 0.3、代码 0.6、数学 0.05、论坛 0.2、网页 1(取 1 为上限)。除网页外的上限之和是 1.25 > 1,即使不用网页也可行。

(b) 上限缩小 10 倍:维基 0.01、书 0.03、代码 0.06、数学 0.005、论坛 0.02,和是 0.125。所以网页至少占 0.875——预算越大,小领域能贡献的比例越小,最后几乎全是网页。数据受限时,增加”大而还过得去”的数据来源(第 7 讲的 Nemotron-CC)或者合成数据(第 11 讲)是唯一的出路。

(c) 只能再增加一点:Wikipedia 从 3.4 遍到 4 遍,比例最多从 3% 增加到约 3%×4/3.4≈3.5%3\% \times 4/3.4 \approx 3.5\%;WebText2 从 22% 到约 22%×4/2.9≈30%22\% \times 4/2.9 \approx 30\%。

练习 3(复用比例的算术) (a) 按 §5.2 的例子,旧比例 [0.2,0.35,0.25,0.2][0.2, 0.35, 0.25, 0.2](科学、政治、文学、代码),代码被拆成 Python 和其他代码;在折叠后的问题上优化出 [0.6,0.25,0.15][0.6, 0.25, 0.15]。写出新的 5 个领域的比例,并检查和为 1。(b) 假设 k=4k = 4、RR = 1000 亿,科学、政治、文学各有 200 亿、100 亿、50 亿 token。虚拟领域的比例 r1r_1 最大是多少?(c) 举一个”key bet”不成立的例子。

参考答案

(a) [0.6×0.25,0.6×0.4375,0.6×0.3125,0.25,0.15]=[0.15,0.2625,0.1875,0.25,0.15][0.6 \times 0.25, 0.6 \times 0.4375, 0.6 \times 0.3125, 0.25, 0.15] = [0.15, 0.2625, 0.1875, 0.25, 0.15],和为 1。

(b) 每个真实领域的上限 kNj/RkN_j/R:科学 4×200/1000=0.84 \times 200/1000 = 0.8,政治 0.4,文学 0.2。虚拟领域里它们的冻结比例是 0.25、0.4375、0.3125,所以 r1≤min⁡(0.8/0.25,0.4/0.4375,0.2/0.3125)=min⁡(3.2,0.914,0.64)=0.64r_1 \le \min(0.8/0.25, 0.4/0.4375, 0.2/0.3125) = \min(3.2, 0.914, 0.64) = 0.64。文学(数据最少、冻结比例又不小)决定了上限。

(c) 例如新增的领域是”新闻网站的另一批快照”,和”政治”高度重叠:多了这批数据之后,政治相对于科学、文学的最佳比例应该下降,但复用会保持原来的相对比例。又如修订把”科学”里的低质量部分移到了一个新领域——科学的价值变了,它就不再是”没受影响”的领域。

练习 4(对数线性模型的最优点) 两个领域,比例 p=(x,1−x)p = (x, 1-x)。任务 1 的拟合是 f^1=c+exp⁡(2−3x)\hat f_1 = c + \exp(2 - 3x),任务 2 是 f^2=c+exp⁡(−1+2x)\hat f_2 = c + \exp(-1 + 2x)。(a) 只关心任务 1 时,最优的 xx 是多少?(b) 两个任务平均时呢?(c) 由此解释代码 02 演示 2 里”对数线性模型常常把某个领域推到 0”。

参考答案

(a) exp⁡(2−3x)\exp(2 - 3x) 随 xx 单调递减,最优 x=1x = 1——在边界上(领域 2 的比例是 0)。

(b) 对 12[e2−3x+e−1+2x]\frac{1}{2}[e^{2-3x} + e^{-1+2x}] 求导并令它为 0:3e2−3x=2e−1+2x3e^{2-3x} = 2e^{-1+2x},取对数 ln⁡3+2−3x=ln⁡2−1+2x\ln 3 + 2 - 3x = \ln 2 - 1 + 2x,x=(3+ln⁡1.5)/5≈0.681x = (3 + \ln 1.5)/5 \approx 0.681。内点。

(c) 对数线性模型里,每个任务的预测损失是 Ai⊤pA_i^\top p 的单调函数,单个任务的最优点总在单纯形的顶点上;只有当不同任务”拉向不同的方向”时,平均损失的最优点才会在内部。如果某个领域对所有任务的系数都”不够好”(例如书在我们的世界里对一部分任务有帮助、对另一部分有害,拟合出的系数偏正),模型就会把它推到 0——即使真实的损失曲线在 0 附近很陡(从 0 加到 5% 收益很大)。能表达”边际递减”的形式(例如对数特征)就不会这样。

练习 5(重复的价值衰减得更快会怎样) 把 mix_world.py 里的 R_STAR 从 15.4 改成 4(重复的价值衰减得更快),重新运行代码 01 演示 3。先预测:重复 4 遍、16 遍时,重复数据拿到的”新数据收益”的比例会怎样变?平均损失最好的遍数会变吗?

参考答案(实际运行结果,在代码副本里运行)

重复 4 遍时的比例从 82% 降到 74%,16 遍时从 62% 降到 48%,32 遍时从 56% 降到 44%。平均损失在 8 遍(2.9285)和 16 遍(2.9275)之间几乎一样(R∗=15.4R^* = 15.4 时最好的是 8 遍的 2.9236)——最好的平均损失变差了,但最优遍数没有变小(16 遍反而略好,不过只差 0.001,在噪声范围内)。原因是:重复的价值低了,数学任务从重复中得到的收益少了;但”给数学的预算从其他领域拿走”的代价也没变,两边一起变化,最优点几乎不动。这说明”最优的重复上限 kk“不只取决于 R∗R^*,也取决于其他领域的边际价值。在真实的开发中,R∗R^*(以及 kk)应该在你自己的模型和数据上测量(第 7 讲的方法)。

练习 6(讨论:混合的目标) 你在为一个”编程助手”模型定预训练比例,评测集是 20 个代码任务和 5 个通用对话任务。(a) 直接用这 25 个任务的平均 BPB 做优化目标,有什么风险?(b) Aioli 式的方法把下游任务当作验证集,会带来什么问题?怎样缓解?

参考答案(要点)

(a) 任务数量决定了权重:20 个代码任务会主导平均,对话能力可能被牺牲;BPB 不一定和最终用户关心的指标(代码能否通过测试、对话是否有用)单调相关(第 12 讲会讨论上游损失和下游指标的关系);预训练之后还有后训练,“后训练之后最好”的比例可能不同(Phi-4 的经验)。可以先按能力类别加权(例如代码 0.7、对话 0.3),并保留一组从未用于调比例的评测。

(b) 用来调比例的任务就不再是独立的评测,报告的分数会偏高(“在测试集上调参”,第 1 讲 ImageNet 的测试集复用问题、第 14 讲)。缓解:把下游任务分成”调比例用的验证集”和”最终报告用的测试集”;验证集用和测试集同分布但不同的题;只用验证集的 BPB 而不是准确率(减少过拟合到具体题目的可能)。


11. 延伸阅读 · Further reading

原课阅读与讲座

  • Chen et al., OLMix: A Framework for Data Mixing Throughout LM Development(2026):arXiv:2602.12237。
  • Chen et al., Aioli: A Unified Optimization Framework for Language Model Data Mixing(ICLR 2025):arXiv:2411.05735。
  • Abdin et al., Phi-4 Technical Report(2024):arXiv:2412.08905。

slides 里引用的方法

  • Xie et al., DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining(NeurIPS 2023):arXiv:2305.10429。
  • Liu et al., RegMix: Data Mixture as Regression for Language Model Pre-training(ICLR 2025):arXiv:2407.01492。
  • Ye et al., Data Mixing Laws: Optimizing Data Mixtures by Predicting Language Modeling Performance(ICLR 2025):arXiv:2403.16952。
  • Fan et al., DoGE: Domain Reweighting with Generalization Estimation(2023):arXiv:2310.15393。
  • Chen et al., Skill-it! A Data-Driven Skills Framework for Understanding and Training Language Models(2023):arXiv:2307.14430。
  • Liu et al., Rethinking Data Mixture for Large Language Models: A Comprehensive Survey and New Perspectives(2025):arXiv:2505.21598。

本讲补充

  • Brown et al., Language Models are Few-Shot Learners(GPT-3,2020),表 2.2 的数据配比。
  • Llama Team, The Llama 3 Herd of Models(2024),§3.1 的数据配比和退火。
  • Chung et al., UniMax: Fairer and More Effective Language Sampling for Large-Scale Multilingual Pretraining(2023)。

和本目录其他课程的联系


12. 下一讲预告 · Next lecture

本讲反复碰到同一堵墙:小而干净的数据(数学、维基)很有价值,但数量有限,重复几遍之后就没用了。如果能造出更多这样的数据呢?

第 11 讲:合成数据。 客座讲者 Zitong Yang 的”合成数据三部曲”:合成后训练(从 Alpaca 到 OpenThoughts 的能力蒸馏)、合成继续预训练(EntiGraph:从 130 万 token 的小语料里”长”出 4.55 亿 token,让模型学会冷门书籍里的知识)、合成自举预训练(SBP:不要老师模型,从文档之间的关系里合成新文档)。学生报告:改写网页(WRAP)、Phi-4 的合成数据,以及一个反例——在图像分类上,检索真实图片比生成合成图片更好。代码会在一个”实体知识”世界里比较改写、EntiGraph 和重复,并模拟模型在自己生成的数据上反复训练时的”崩塌”。

← 返回课程目录