Scaling Laws for Optimal Data Mixtures
Paper: arXiv:2507.09404 Code: apple/ml-l3m(论文附录说明 NMM 训练在 L3M code base;代码搜索未找到论文专属 scaling-law fitting / mixture-optimization 脚本) Code reference:
main@e6376a30(2025-09-22)
1. Motivation (研究动机)
这篇论文要解决的是大模型预训练里一个很实际但通常被经验化处理的问题:不同数据域应该按什么比例混合。现代 foundation model 的训练集并不是单一来源。LLM 里会混合 CommonCrawl、C4、GitHub、arXiv、Wikipedia、Books、StackExchange 等文本域;native multimodal model 会混合 text-only、interleaved document、image-caption;large vision model 也会混合噪声 alt-text、高质量 image-text、synthetic recaptioned 数据。论文把这些来源抽象成 个 source domains ,训练时用一个 simplex 向量 表示每个域被采样的概率。经验上, 对 downstream 能力、target-domain loss、训练成本都有很大影响,但工业界和开源社区常用的做法仍然偏 trial-and-error:先猜几个 mixture,训练若干模型,再靠验证集或 downstream task 选一个看起来不错的比例。
这种 trial-and-error 在小模型上尚可忍受,一旦进入 7B/8B 甚至更大规模,问题就变成了昂贵的组合优化。首先,数据域数量 一多,simplex 上的候选 mixture 数量会快速膨胀;其次,每个候选 mixture 都需要完整训练或至少训练到可比较的 checkpoint,消耗大量 FLOPs;最后,最优 mixture 可能依赖目标域:如果目标是平均训练域 loss,最佳比例可能和目标是 OpenHermes 这类高质量 alignment proxy 时不同。论文的核心动机就是把 mixture selection 从“训练很多大模型再试错”转化为“用少量小规模训练拟合 scaling law,再在 scaling law 上求解最优 ”。
论文的重要性在于它把传统 scaling law 从只预测 (参数量)和 (训练 token 数)的 loss,扩展到同时考虑 (domain weights)。传统 Chinchilla-style scaling law 一般写成 ,假设训练数据分布固定;但 mixture optimization 的困难恰恰在于训练分布不固定。本文提出的问题是:给定目标域 ,能否学习一个函数 ,它不仅能预测某个 mixture 下的 loss,还能在未见过的 mixture 和更大的 scale 上外推?如果可以,就可以直接解 ,而不是穷举大规模训练。
这篇工作的另一个动机是建立“跨模态”的证据。已有 data mixture 或 data selection 方法往往只在一种 setting 下验证:有些只研究 LLM continual pretraining,有些只研究 CLIP 数据过滤,有些只固定 只拟合 mixture 到 loss 的关系。本文选择了三个差异很大的场景:LLM pretraining、native multimodal model (NMM) pretraining、large vision model (LVM) pretraining。这样设计的意义是证明 mixture-aware scaling law 不是某个数据集或某种模型结构的偶然现象,而是一种可迁移的建模框架。
Figure 1 解读:左侧说明本文的预测任务:用小规模模型和若干已见过的 domain weights 拟合 ,然后预测更大模型、更多 token、未见过 mixture 的 loss。颜色代表不同 ,横轴 FLOPs 按 计算。右侧说明实际用途:用小模型估计 data-mixture scaling law,再在更大预算(例如 8B 参数)上求 。灰色区域代表 baseline 或随机 mixture 的性能区间;additive 和 joint 两种 scaling laws 都能给出更好的 mixture。
论文想强调的不是“某个固定 mixture 比另一个好”,而是一个流程:先用少量小规模 runs 学到 loss 曲面,再在这个曲面上做优化。这使 data mixture selection 变成一个可复用的建模问题。对预训练工程来说,这个流程有三个直接价值:第一,节省 trial-and-error 大模型训练成本;第二,可以针对不同 target domain 重新求最优 mixture,而不必重新大规模扫描;第三,可以让 mixture decision 与 compute budget 显式关联,尤其 joint scaling law 允许 随模型规模和 token 数变化。
2. Idea (核心思想)
本文的核心 insight 是:domain mixture 对 loss 的影响可以被低维参数化,并且这种参数化可以和 model/data scaling law 合并。如果固定 ,target-domain loss 随 的变化仍然近似服从 Chinchilla-style power law;因此可以把原本的系数 看成 的函数。真正的设计选择是:怎样用足够简单、可拟合、又能外推的形式描述这些函数。
论文提出两种主 law。第一种是 additive scaling law:只让 irreducible / bias-like term 随 变化,而 保持为全局常数。它的形式是 这里 是 mixture-dependent term。直觉上,某个域的权重越大,它对 target loss 的“有效覆盖”越强; 控制该域对目标域的贡献强度, 控制边际收益曲线。这个形式的好处是参数数量只有 ,比直接为每个 mixture 拟合一条独立 scaling law 更稳定;它的代价是 与 没有交互,所以 additive law 下求得的 与 scale 无关。
第二种是 joint scaling law:保留同样的 mixture-dependent bias term,同时让 和 也依赖 : 其中 joint law 的关键是允许 和 :某个数据域的最佳权重可以随模型变大或 token 变多而改变。例如 NMM 实验里,论文观察到 interleaved data 随 增大重要性下降,而更大的模型更依赖 text。additive law 不能表达这种 scale-dependent optimal mixture,只能捕捉跨 scale 的平均行为;joint law 更表达力强,但参数量增加到 ,拟合更困难。
论文的方法论可以概括为四步。第一,设计一组小规模训练 runs,覆盖不同 ,其中 来自 simplex 上的网格,并设每个域权重不低于 0.1,避免极端稀疏 mixture 让拟合不稳定。第二,在每个 target domain 上记录实际 loss 。第三,用 Huber loss 拟合 additive 或 joint law 的参数。第四,对拟合好的 law 解 simplex 上的优化问题,得到 ,并把这个 用于大规模训练验证。
这个思路与 RegMix、DoReMi、Doge 等数据混合方法的差别在于,它不是学习“某个固定 scale 的 mixture-to-loss 回归器”,而是显式把 mixture 与 scaling law 结合,使外推目标包括两种方向:未见过的 和更大的 。因此它更接近一种 data mixture 的 scaling theory,而不是单次实验的 data selection heuristic。
3. Method (方法)
3.1 问题设定与目标 loss
论文假设有 个训练数据域 。给定 domain-weight vector ,训练样本来自混合分布 也就是以概率 从第 个域采样。训练 loss 和 target-domain loss 定义为 训练过程用 Adam 等优化器近似最小化 ,处理 tokens 后得到参数 。论文要预测的是 也就是“一个 参数模型,用 tokens、按 mixture 训练后,在目标域 上的 loss”。注意 不必是训练域之一。LLM 实验里 OpenHermes 就是一个 target domain proxy:它不属于 SlimPajama 预训练域,但可用于估计更偏 alignment / downstream 能力的 mixture。
3.2 从 Chinchilla law 到 mixture-aware law
如果固定 ,论文沿用 Chinchilla-style 形式: 但在 mixture setting 里,每个固定 都可能有自己的 。直接为每个 独立拟合这些参数不可外推,因为未见过的 没有参数。本文因此把这些参数进一步建模为 的低维函数。additive law 只让 mixture 影响 bias-like term;joint law 让 mixture 也影响 和 两项的系数,从而表达 compute-dependent data mixture。
additive law 的参数为 一共 个。它的优点是拟合稳定、少量 runs 即可估计;缺点是最优 对 不敏感。joint law 的参数为 一共 个。joint law 可以退化为 additive law:令 且对所有 有 即可。因此如果优化充分,joint law 在训练 runs 上的误差应不高于 additive law;但更多参数也意味着更需要稳健拟合。
3.3 拟合:Huber loss + Basin-hopping
给定 个 input-target pairs ,论文通过最小化 Huber loss 拟合参数: Huber 函数为 其中 。用 Huber 而不是纯 MSE 的原因是 scaling-law fitting 对少数异常点比较敏感;Huber 在小误差区域像二次损失,在大误差区域近似线性,可以降低 outlier 对参数的支配。
论文指出传统 scaling law 只有约 5 个参数,常用多初值 L-BFGS 搜索局部最优;但这里最多 ,joint law 可达 37 个参数,单纯网格初始化 + L-BFGS 变得笨重。因此作者做了两点调整:一是用 random search 采样初始参数 ;二是用 Basin-hopping 作为外层全局搜索,并以内层 L-BFGS 找局部最小值。Figure 2 在 NMM 的 Interleaved target 上展示了这个选择的意义:在 的设置下,Basin-hopping 用更少 L-BFGS calls 达到较低 fitting loss。
Figure 2 解读:横轴是 L-BFGS 调用次数,纵轴是 Huber fitting loss。Basin-hopping 不是替代 L-BFGS,而是把 L-BFGS 作为内层子程序,并用随机游走探索多个 local minima。由于 mixture-aware law 参数多、loss landscape 更复杂,单纯重复 L-BFGS 初值搜索效率较低;Basin-hopping 更快找到低损失区域。
3.4 从 fitted law 求最优 mixture
拟合出 后,单 target domain 的最优 mixture 由 simplex 上的优化给出: 论文使用 mirror descent: 这种更新天然适合 simplex,因为先做 exponentiated-gradient step,再归一化,能保持非负性和和为 1 的约束。若要同时优化多个 target domains,论文为每个目标域拟合一个 scaling law ,然后求 如果任务重要性不同,可以在求和中加入 weights 。这正是 LLM average-loss mixture 和 OpenHermes-target mixture 的区别:前者优化多个训练域平均 loss,后者优化一个高质量 target domain loss。
3.5 伪代码:论文算法流程
下面伪代码描述论文方法本身。代码搜索未找到论文专属 scaling-law fitting 实现,因此这一段是 paper-level algorithmic pseudocode,而不是从公开 repo 逐行转写。
import torch
def sample_simplex_grid(k: int, min_weight: float = 0.1):
# Paper uses evenly spaced simplex points with each h_i >= 0.1.
# Actual grid density is experiment-specific.
candidates = []
for h in enumerate_simplex_points(k):
if torch.all(h >= min_weight) and torch.isclose(h.sum(), torch.tensor(1.0)):
candidates.append(h)
return candidates
def additive_law(N, D, h, params):
E, A, B, alpha, beta, C, gamma = params
mixture_term = 1.0 / torch.sum(C * h.pow(gamma))
return E + mixture_term + A / (N ** alpha) + B / (D ** beta)
def joint_law(N, D, h, params):
E, alpha, beta, C, gamma, C_A, gamma_A, C_B, gamma_B = params
mixture_term = 1.0 / torch.sum(C * h.pow(gamma))
A_h = torch.sum(C_A * h) ** gamma_A
B_h = torch.sum(C_B * h) ** gamma_B
return E + mixture_term + A_h / (N ** alpha) + B_h / (D ** beta)
def huber_residual(pred, observed, delta=1e-3):
x = observed - pred
return torch.where(x.abs() < delta, 0.5 * x.pow(2), delta * (x.abs() - 0.5 * delta))
def fit_scaling_law(records, law="joint"):
# records: [(N_j, D_j, h_j, L_T_j), ...]
# Paper uses random initialization + Basin-hopping with L-BFGS inner minimization.
best_params, best_loss = None, float("inf")
for init in random_parameter_initializations(law):
params = basin_hopping_with_lbfgs(
init,
objective=lambda z: torch.stack([
huber_residual(
joint_law(N, D, h, z) if law == "joint" else additive_law(N, D, h, z),
L_T,
)
for N, D, h, L_T in records
]).mean(),
)
loss = evaluate_objective(params)
if loss < best_loss:
best_params, best_loss = params, loss
return best_params
def optimize_mixture(params_by_target, N, D, steps=2000, eta=1e-2):
k = params_by_target[0].num_domains
h = torch.ones(k) / k
for _ in range(steps):
h.requires_grad_(True)
objective = sum(joint_law(N, D, h, params) for params in params_by_target)
grad = torch.autograd.grad(objective, h)[0]
h_hat = h.detach() * torch.exp(-eta * grad.detach())
h = h_hat / h_hat.sum()
return h3.6 公开代码检索与实现映射
代码搜索步骤:检查论文正文和参考文献中的 GitHub 线索;用 Web search 查询 Scaling Laws for Optimal Data Mixtures github、L3M El-Nouby github、Scaling Laws for Optimal Data Mixtures code;最终找到公开代码库 apple/ml-l3m。论文附录明确说明 NMM training conducted in the L3M code base。该 repo 的 main@e6376a30 (2025-09-22) 是本笔记使用的代码锚点。
代码搜索结论需要区分两层:
- 公开 L3M repo 覆盖的是训练框架:
README.md说明 L3M 是 config-heavy 的大型多模态训练库,每个训练 run 对应一个 YAML config;MetaModel把模型拆成 preprocessor、trunk、postprocessor、head,并通过data_dict在模块间读写。 - 论文专属 scaling-law fitting / Basin-hopping / mirror-descent mixture optimization 未在该 repo 中找到:因此上面的 scaling-law 伪代码来自论文公式,不声称对应到公开实现文件。
- 论文的训练超参数来自论文表格,而不是 L3M sample configs:例如
configs/text/001_llm_hfdata.yaml是默认 LLM 示例,里面的 batch size、LR、scheduler 与论文主实验表格不一致,不能拿它替代论文配置。
论文公式与 released code 实现差异:公开 apple/ml-l3m 是通用训练框架,包含模型组装、训练循环、loss、optimizer/scheduler 接口,但没有释放本文特定的 scaling-law fitting 脚本、simplex grid、Basin-hopping 参数或 optimal-mixture mirror descent 代码。因此本文方法部分的 scaling-law pseudocode 只能按论文公式复现;NMM 训练循环与 cross-entropy loss 可参考 released L3M。
L3M 训练框架中与论文相关的关键路径如下:
run/launcher.py:加载configs/defaults.yaml与目标 YAML,用 Hydra/OmegaConf merge CLI overrides,然后初始化分布式环境并调用runner.main(cfg)。run/runner.py:实例化model.meta_model、创建 optimizer、处理 scheduler lengths、实例化 criterion、支持 resume checkpoint,并调用 engine 训练。src/l3m/model/meta_models.py:MetaModel.forward顺序执行preprocessor -> trunk -> postprocessor -> head,所有模块读写同一个data_dict。src/l3m/engine.py:训练循环对 batch 做 gradient accumulation,在 autocast 下执行model(chunked_batch),再执行criterion(output, model=model),反向传播、梯度裁剪、optimizer step、W&B logging 与 periodic eval/checkpoint。src/l3m/loss/llm_cross_entropy_loss.py:LLMCrossEntropyLoss对 logits/target 做 shift、flatten、FP32 cross entropy,可选 renorm non-padded tokens 与 z-loss。
基于 released L3M 的训练循环可以概括为:
# Based on apple/ml-l3m main@e6376a30:
# run/launcher.py, run/runner.py, src/l3m/engine.py,
# src/l3m/model/meta_models.py, src/l3m/loss/llm_cross_entropy_loss.py
def l3m_training_entry(config_path, cli_overrides):
cfg = merge_yaml("configs/defaults.yaml", config_path, cli_overrides)
init_distributed(cfg)
setup_loggers(cfg)
model = instantiate(cfg["model"]["meta_model"])
if cfg["experiment"]["fsdp"] is not None:
model = init_fsdp2(model, cfg)
optimizer, _ = create_optimizer(model, cfg["optim"])
lr_scheduler = instantiate_scheduler(cfg["optim"], optimizer)
criterion = instantiate(cfg["loss"])
for iteration, batch in enumerate(train_loader):
batch = move_to_device(batch, device)
optimizer.zero_grad(set_to_none=True)
for micro_batch in chunk_batch(batch, cfg["optim"]["gradient_accumulation_steps"]):
with autocast(dtype=cfg["experiment"]["dtype"]):
output_dict = model(micro_batch) # MetaModel writes logits back to data_dict
loss, metrics = criterion(output_dict, model=model)
loss = loss / cfg["optim"]["gradient_accumulation_steps"]
loss_scaler.backward(loss)
loss_scaler(optimizer, clip_grad=cfg["optim"]["grad_clip"], model=model)
step_scheduler(lr_scheduler, iteration)
log({"train_loss": float(loss), **metrics})这段映射对理解论文的 NMM 实验有帮助:论文里的 early-fusion NMM 可以在 L3M 中表达为 tokenizer/patchifier 作为 preprocessor,Transformer 作为 trunk,language-modeling head 作为 head,cross entropy 作为 loss。它不等同于本文的 scaling-law optimizer;后者是训练后对多组 runs 的 loss 做外部拟合与混合权重优化。
4. Experimental Setup (实验设置)
4.1 三个验证场景
论文选择三个场景验证 mixture-aware scaling law 是否能跨 scale 和未见 mixture 外推。
LLM pretraining:主实验使用 LLaMA-style architectures,固定 depth 为 24,通过改变 hidden width 得到 412M、834M、1.1B、1.4B、3B、7B 等规模。数据使用 SlimPajama 的 个 domain:Arxiv、Book、C4、GitHub、Commoncrawl、Stackexchange、Wikipedia,按作者分发版本使用,不做额外过滤。更小规模分析使用 Pile 的最多 个 domain:Wikipedia、StackExchange、GitHub、PG-19、arXiv、FreeLaw、OpenWebText、PubMed Central,并使用 GPT2-style transformer(90M 到 3B)。
Native multimodal model (NMM) pretraining:模型是 early-fusion 架构,跟随 Shukor et al. 2025 的设计:没有单独 vision encoder,而是一个单 Transformer 处理 interleaved text/image token sequence。文本 token 来自标准 LLM tokenizer;图像 resize 到 ,用 patch size patchify 后线性投影为 image tokens。训练 mixture 有 类:text-only DCLM、interleaved multimodal documents from Obelics、paired image-caption datasets(DFN、COYO、private HQITP)。附录说明训练在 L3M code base 中完成,文本 token 用 causal attention,image tokens 用 bidirectional attention。
Large vision model (LVM) pretraining:模型跟随 AIMv2 recipe,用 multimodal objective 同时预测 image 和 text tokens;架构是 vision encoder 与 multimodal decoder 以 late-fusion 方式 stitched together。训练 mixture 有 类:noisy internet alt-text(COYO-700M、DFN2B)、HQ-ITP-1(134M samples)、HQ-ITP-2(400M samples)、synthetic data(recaptioned DFN2B 和 HQ-ITP-2)。这个设置检验 scaling law 是否能处理不同质量图像文本数据和 synthetic 数据。
4.2 外推实验规模与 FLOPs
论文用小规模训练拟合 law,再在更大模型和更多 token 上验证。FLOPs 统一按 估计。核心实验设置如下:
| Modality | Split | Model sizes | Training tokens | # domain weights | FLOPs |
|---|---|---|---|---|---|
| LLM | Train | 412M / 834M / 1.1B / 1.4B | 4-20B / 7-26B / 7-36B / 13-46B | 60 / 40 / 40 / 20 | |
| LLM | Eval | 3B / 7B | 20-100B / 150B | 4 / 1 | / |
| NMM | Train | 106M / 275M / 616M / 932M | 20-100B | 32 / 31 / 30 / 34 | |
| NMM | Eval | 2.3B / 8B | 100-160B | 8 / 4 | / |
| LVM | Train | 89M / 157M / 306M / 531M | 17-50B / 17-50B / 17-100B / 17-170B | 32 / 32 / 15 / 16 | |
| LVM | Eval | 1.1B | 17-334B | 8 |
这个表的一个关键点是:小规模 fitting runs 的总 FLOPs 与后续大规模 eval runs 是同一数量级。也就是说,本文不是免费得到最优 mixture;它的优势在于小规模 runs 同时提供了 loss surface,可以外推多个 target scales 和 unseen mixtures,而不是只为一个候选 mixture 训练一个大模型。
4.3 训练超参数与实现细节
LLM 主实验的超参数来自论文附录表格:参数规模 412M、834M、1.1B、1.4B、3B、7B;width 分别为 1024、1536、1792、2048、3072、4864;depth 都是 24;learning rate 分别为 6e-4、4e-3、3.4e-4、3e-4、2e-4、1.2e-4;optimizer 是 fully decoupled AdamW,;minimum LR 为 0;warmup 2k iterations;weight decay 1e-4;batch size 2M tokens。这里要注意:这些是论文表格值,不是公开 L3M 示例 config 默认值。
NMM 附录实现细节:训练规模从约 100M 到 8B,保持 depth 24,通过 width scaling 改变规模;优化器是 fully decoupled AdamW,,weight decay ;batch size 为 2,000 samples,总计约 2M tokens,context length 1024;gradient clipping 1.0;warmup 1k iterations;之后使用 constant learning rate schedule 以减少实验数量。vision inputs 使用 patches;augmentation 包括 RandomResizedCrop(224px,scale [0.4, 1.0])和 RandomHorizontalFlip();训练使用 bfloat16、FSDP、activation checkpointing、gradient accumulation、sequence packing。
为了减少实验成本,主实验多用 constant learning rate scheduler。原因是 constant LR 可以从同一个训练 run 中收集多个不同 的点,而不是每个 都重新训练一个 run。作者也做了 cosine scheduler 验证:在 Pile 设置下,用 90M、200M、350M、700M 训练,外推到 1.3B;在 1B 模型上 additive law 平均 MRE 为 0.76%,joint law 为 0.54%,说明 cosine schedule 下 scaling law 仍然有效。
5. Experimental Results (实验结果)
5.1 scaling law 能否从小规模外推到大规模?
Figure 3 是论文最核心的验证图:它比较 LLM、NMM、LVM 三个场景中实际 observed loss 与 scaling law predicted loss。蓝色点是用于拟合的小规模 runs,其他点是更大模型 / 更多 token 的 eval runs。结论是 additive 和 joint laws 都能较准确地对齐 observed loss,并且能外推到未见过的 domain weights 和 larger scale。
Figure 3 解读:三个子图分别对应 LLM、NMM、LVM。每个点代表某个 下的模型 loss,曲线或预测点来自 fitted scaling law。该图展示的不是单一 target domain,而是每个 modality 的平均 loss;具体 domain-level MRE 在表格中报告。视觉上看,small-scale fitting 区域学到的 law 能延伸到更大 FLOPs 区间,这是本文后续求 的前提。
MRE 结果如下,数值格式为 Additive / Joint:
| Modality | Target domain | Train MRE% | Val MRE% |
|---|---|---|---|
| Language | Arxiv | 0.50 / 0.39 | 2.09 / 1.62 |
| Language | Book | 0.29 / 0.24 | 0.80 / 1.19 |
| Language | C4 | 0.29 / 0.24 | 0.31 / 0.34 |
| Language | GitHub | 0.65 / 0.54 | 1.17 / 2.51 |
| Language | Commoncrawl | 0.29 / 0.24 | 0.58 / 0.90 |
| Language | Stackexchange | 0.51 / 0.38 | 0.36 / 0.47 |
| Language | Wikipedia | 0.92 / 0.57 | 4.45 / 2.09 |
| Multimodal | Image-Caption | 0.47 / 0.43 | 0.95 / 0.95 |
| Multimodal | Interleaved | 0.14 / 0.10 | 0.48 / 0.42 |
| Multimodal | Text | 0.12 / 0.10 | 0.44 / 0.37 |
| Vision | Noisy image-text | 0.35 / 0.23 | 1.20 / 0.63 |
| Vision | Synthetic | 1.89 / 0.83 | 6.19 / 5.94 |
| Vision | High-quality 1 | 1.19 / 0.34 | 2.02 / 1.18 |
| Vision | High-quality 2 | 0.64 / 0.31 | 0.79 / 1.06 |
这些数值有两点值得读者注意。第一,joint law 通常 train MRE 更低,因为它更 expressive;但 validation 上不总是 joint 最优,例如 Language Book、C4、GitHub、Commoncrawl、Stackexchange 和 Vision High-quality 2 上 additive 更好。这说明更强表达力可能带来过拟合风险,尤其在 runs 数量有限时。第二,MRE 的 domain 差异很大:LLM C4 的 val MRE 低到 0.31/0.34,而 Wikipedia additive val MRE 达 4.45,Vision Synthetic 也高达 6.19/5.94。这意味着 scaling law 虽然整体有效,但对某些分布复杂或稀缺的 target domain 仍需谨慎。
5.2 用 scaling law 直接选择 data mixture 是否有效?
LLM 结果验证了“先拟合 target-domain loss,再求最优 ,最后训练大模型”的完整 pipeline。作者用 additive law(因为它在 LLM 设置中 MRE 最低)估计两个 mixture: 最小化 7 个训练域平均 loss; 最小化 OpenHermes loss。随后训练两个 7B、150B-token 模型,并与 uniform mixture 和 SlimPajama base distribution 比较。
Figure 4a–4b 解读:左图关注训练域平均 loss, 最优;右图关注 OpenHermes, 最优。这说明“最佳 mixture”不是唯一全局常数,而是 target-dependent。一个针对训练域平均 loss 的 mixture 未必最适合高质量 alignment proxy;相反,把 OpenHermes 当 target domain 拟合 scaling law 后得到的 更能提升 OpenHermes 和 downstream evaluation。
7B downstream evaluation 结果如下:
| Weights | CORE | MMLU | Arc-easy | Arc-challenge | BoolQ | PIQA | SIQA | HellaSwag | WinoGrande |
|---|---|---|---|---|---|---|---|---|---|
| 56 | 32 | 71 | 40 | 60 | 79 | 52 | 72 | 65 | |
| 58 | 37 | 70 | 40 | 67 | 79 | 53 | 72 | 65 | |
| Uniform | 53 | 30 | 70 | 40 | 46 | 78 | 51 | 70 | 65 |
| Base | 52 | 25 | 70 | 43 | 51 | 79 | 53 | 71 | 65 |
总体上, 最强:CORE 58、MMLU 37、BoolQ 67 都是表中最佳。 在 Arc-easy 上最高(71),但整体不如 OpenHermes-targeted mixture。这个结果支持一个重要实践建议:如果有高质量 proxy domain,可以把它直接作为 target domain 拟合 scaling law,而不是只优化训练域平均 loss。
NMM 结果显示,作者用三类 multimodal data domain 的小模型 runs 拟合 additive 和 joint laws,再固定 100B tokens 预测每个模型规模下平均 domain loss 最低的 ,并训练优化 mixture 的模型。Figure 1 右侧把这些 optimized mixtures 与 uniform、prior-work mixture、randomly sampled mixtures 比较。结果是 optimized mixtures 一致优于 alternatives;additive 和 joint laws 表现相近,因此 additive law 是一个强且更实用的 baseline,因为它只需要一个 scale-independent mixture。
LVM 结果也验证了方法:在 AIMv2 的 4-domain mixture 上拟合 law 后,估计平均 loss 最低的 optimal weights,训练 1B 模型,并与 uniform weights 比较;optimal weights 模型更好。LVM setting 的意义在于它不是文本域 mixture,而是质量和来源都不同的 image-text domains,包括 noisy、high-quality、synthetic 数据。方法在这里有效,说明 mixture-aware law 不依赖 LLM-only 假设。
5.3 需要多少 data-mixture runs?
论文进一步问:拟合这些 law 需要多少不同 ?作者在 Pile LLM setting 中让 在 4 到 8 之间变化,把 domain weights 随机划分为 和 ,只用 个 training histograms 拟合,再在 held-out histograms 上计算 MRE。
Figure 5 解读:横轴是用于拟合的 domain-weight histograms 数量 ,纵轴是 eval MRE。NMM 和 LLM 大约 10 runs 就能接近最优 MRE;LLM 需要约 20 runs。这个趋势符合参数量随 线性增加的直觉。样本很少时,additive law 由于参数更少,eval MRE 可能低于 joint law。
这个结果对实践很关键:如果一个团队面对 或 个主要数据桶,10 个左右 small-scale mixture runs 可能已能拟合出有用的 scaling law;如果数据桶达到 6-8 个,则应准备约 20 个 mixture runs,或者先合并相近 domains 降低维度。论文没有声称任意高维 mixture 都能用很少 runs 拟合;它明确展示了 增加会提高样本需求。
5.4 optimal mixture 如何随 scale 变化?
joint law 允许 随 compute budget 变化。论文在 multimodal data 上分析了平均 loss 的 optimal mixture 随 的演化:interleaved data 随 增大重要性下降,而 bigger models 更依赖 text。additive law 不能表达这种动态,只能捕捉跨 scale 的平均行为。
Figure 6 解读:该图展示 joint law 预测的 multimodal optimal domain weights 随 变化。它给出的不是一个固定推荐比例,而是一个 mixture trajectory。这个图是 joint law 的主要价值所在:当训练预算变化时,最佳 text / image-caption / interleaved 比例也可能变化;如果实际预训练计划从 1B 扩展到 8B,直接沿用小模型最优 mixture 可能不是最优。
5.5 其他 laws、cosine schedule 与限制
作者比较了 simple、additive、joint、full 四种 law 的平均 MRE:
| Modality | Simple | Additive | Joint | Full |
|---|---|---|---|---|
| NMM | 0.70 | 0.62 | 0.58 | 0.60 |
| LLM | 1.70 | 1.39 | 1.30 | 1.21 |
| LVM | 2.31 | 2.55 | 2.21 | 2.04 |
simple law 的 dependency 更弱;full law 进一步让 也依赖 。结果显示 full law 有时 MRE 最低,但论文主推 additive/joint,因为它们在表达力、稳定性和实用性之间更平衡。尤其 additive law 参数更少,在 runs 数量有限时更稳;joint law 则用于分析 scale-dependent mixture。
论文的限制(Limitations)也很明确。第一,研究主要聚焦 pretraining,continual pretraining 和 finetuning 中 mixture 同样重要,但没有系统验证。第二,law 预测的是 generic target loss,而不是直接预测 downstream task performance;虽然 loss 与 downstream 有相关性,但未来可以直接建模任务指标。第三,论文默认每个 domain 有近似无限数据流、没有重复采样,这对 LLM 大规模网页数据比较合理,但对高质量稀缺数据不现实。第四,本文假设 mixture 在训练过程中固定,未来可以研究 curriculum learning 或动态 。
综合来看,这篇论文的贡献不是某个单独公式,而是一套可执行的 mixture-selection pipeline:用 small-scale runs 拟合 ,验证其对 unseen 和 larger 的外推,最后在 simplex 上求 并训练大模型确认收益。对于需要在多个数据域之间分配预训练预算的 LLM/VLM 团队,这比纯 heuristic 或大模型 trial-and-error 更系统;但在应用时必须保留 target-domain 选择、domain 粒度、数据重复、动态 mixture 和公开实现缺失等 caveat。