Demystifying Data Organization for Enhanced LLM Training¶
会议: ACL2026
arXiv: 2605.30334
代码: 无
领域: LLM预训练 / 数据组织
关键词: 数据排序, 课程学习, 预训练效率, STR, SAW
一句话总结¶
这篇论文系统研究 LLM 训练中“样本出现顺序”的影响,复用已有样本级质量/难度分数,提出边界强化、循环复习、连续课程和局部多样性四条数据组织原则,并用 STR 与 SAW 在预训练和 SFT 中稳定提升性能。
研究背景与动机¶
领域现状:LLM 数据工作通常集中在数据采集、去重、过滤、混合、合成和选择。很多 pipeline 已经会为每个样本计算质量、难度、教育价值或可学习性分数,用来决定“哪些样本进入训练集”。
现有痛点:这些分数往往只被用于一次性筛选,而训练顺序本身被简单处理成随机 shuffle 或朴素 curriculum。对于当前 LLM 常见的一轮或少数几轮训练范式,样本顺序会直接影响优化轨迹:早期样本决定模型如何进入训练状态,末期样本决定最终能力停在哪个区域,中间分布突变会带来遗忘或优化震荡。
核心矛盾:数据选择回答的是“训练什么”,数据组织回答的是“以什么顺序训练”。前者已经有大量研究,后者却常被忽略;而在固定 token budget 下,错误排序可能让同一批数据产生明显不同的学习效果。
本文目标:作者希望把样本级分数从“筛选工具”扩展为“排序信号”,总结可泛化的数据组织原则,并提出几乎不增加额外计算成本的排序策略,覆盖通用预训练、数学 SFT 和代码 SFT。
切入角度:论文不重新设计数据评分器,而是复用数据效率方法已经算好的分数。这样可以把问题聚焦在顺序函数 \(f_o\) 上:给定数据和分数,如何构造一个训练序列,使模型既能稳定起步,又能在最后看到高价值样本,还能避免灾难性遗忘和局部同质化。
核心 idea:不改变数据规模,只改变样本排列;让训练序列同时满足末端高价值、周期复习、属性连续和局部多样性。
方法详解¶
论文先把数据工作拆成评分、选择和组织三个阶段。评分函数 \(g\) 为每个样本产生分数向量 \(\gamma\);选择函数 \(f_s\) 按比例或 top-\(K\) 选出训练子集;数据组织函数 \(f_o\) 不改变样本数量,而是根据 \(\gamma\) 构造排列 \(\pi\),得到 \(\mathcal{D}_{ord}=[x_{\pi(1)},x_{\pi(2)},\dots,x_{\pi(K)}]\)。普通 Curriculum Learning 只是把样本按分数升序排序,本文则进一步研究更细的顺序结构。
整体框架¶
整体 pipeline 可以理解为:先复用已有数据选择分数,然后围绕训练序列设计多个排序算子,最后在 FineWeb-Edu、QuRatedPajama、DeepMath-103K 和 OpenCodeInstruct 上验证。作者把经验总结成四条 guidance,并分别用 SEG、FO、ZIG、JIT 验证单个原则,再组合成 STR 和 SAW 两个主方法。
STR 与 SAW 是最终推荐策略。STR 结合 G1、G2 和 G4:保持全局分数趋势,在局部过渡区域做 folding review,并加入局部多样性。SAW 在 STR 基础上加入 G3,用 Zig-zag 替换 transition region 中的 folding,使分数曲线更连续。
关键设计¶
-
Boundary Sharpening 与 SEG:
- 功能:控制训练开头和结尾的数据属性,让模型稳定起步并以高质量/高难样本收尾。
- 核心思路:SEG 把排序后的数据离散成若干 segment,根据分数 rank 把样本分配到不同训练阶段。预训练中,作者发现“低分起步、高分收尾”更好;SFT 中,开头和结尾都使用高分数据更优。
- 设计动机:训练末期的样本直接影响最终可达到的能力,如果最后阶段只剩低质量或低难样本,模型会在关键尾段停滞。相比之下,开头高分样本单独使用收益不明显,因为固定数据量下它会把低分样本推到后面。
-
Cyclic Scheduling / Curriculum Continuity 与 FO、ZIG:
- 功能:避免朴素 curriculum 从简单样本一路走到困难样本后遗忘基础能力,同时减少分布突变对优化器的冲击。
- 核心思路:FO 把排序数据按 stride 分成多个 folding layer,每个周期覆盖完整分数谱,使模型周期性复习早期基础样本。ZIG 在 FO 基础上把奇数周期反向,形成类似三角波的连续分数轨迹,减少周期边界处的属性断崖。
- 设计动机:CL 在后半程进入高分区域后,对低分样本的 PPL 会反弹,说明基础知识被遗忘。FO 能复习,但周期切换可能出现梯度范数尖峰;ZIG 通过连续过渡稳定训练动态。
-
Local Diversity 与 JIT,以及组合策略 STR/SAW:
- 功能:在保持全局课程趋势的同时,避免一个 mini-batch 或局部窗口内样本过于相似。
- 核心思路:JIT 将排序后的数据划分为窗口或 bucket,并在局部窗口内 shuffle,保持桶之间相对顺序但恢复局部异质性。STR 在稳定区保持单调趋势,在 transition region 注入 FO;SAW 用 ZIG 替换 STR 中的 FO,使区域之间更平滑。
- 设计动机:严格排序会让相邻样本分数高度相近,降低梯度多样性。JIT 的扰动分析显示,它能让模型找到更平坦的 minima,对权重噪声更不敏感。
损失函数 / 训练策略¶
这篇论文不是提出新的模型损失,而是提出训练数据顺序策略。训练目标仍沿用对应模型的预训练语言建模目标或 SFT 任务目标;核心变量变成数据序列。实验里,通用预训练采用 Mistral 架构,SFT 使用 Qwen3 官方预训练权重,数据包括 FineWeb-Edu、QuRatedPajama、DeepMath-103K 和 OpenCodeInstruct。对每种策略,作者比较随机排序、CL、DELT、单原则策略和跨原则策略,并在 50B-token 设置上做 scaling-up。
实验关键数据¶
主实验¶
| 策略 | FineWeb-Edu Avg. | DeepMath Avg. | OpenCode Avg. | 说明 |
|---|---|---|---|---|
| Random | 37.09 | 1.30 | 55.37 | 随机顺序基线 |
| CL | 37.61 | 1.78 | 58.30 | 朴素升序 curriculum,有收益但不稳定 |
| DELT | 37.35 | 2.42 | 59.70 | 复习式 baseline,SFT 上较强 |
| STR | 38.65 | 2.48 | 60.83 | 结合边界、复习和局部多样性,代码 SFT 最好 |
| SAW | 38.78 | 2.53 | 60.48 | 再加入连续性,预训练和数学 SFT 最好 |
消融实验¶
| 配置 | FineWeb-Edu | QuRatedPajama | DeepMath | OpenCodeInstruct | 说明 |
|---|---|---|---|---|---|
| CL | 37.61 | 36.12 | 1.78 | 58.30 | 朴素排序 |
| CL (JIT) | 38.20 | 36.46 | 1.78 | 59.50 | 局部扰动改善预训练和代码 SFT |
| FO | 38.12 | 36.62 | 2.42 | 60.90 | 周期复习显著强于 CL |
| FO (JIT) | 38.25 | 36.85 | 2.74 | 60.96 | JIT 进一步提升数学 SFT |
| ZIG | 38.29 | 36.74 | 2.69 | 60.11 | 连续过渡缓解 FO 的突变 |
| ZIG (JIT) | 38.32 | 36.88 | 2.76 | 61.34 | 单原则组合里最稳,OpenCode 最高 |
关键发现¶
- 数据顺序在一轮/少轮训练中是一阶因素。只改变顺序,不改变数据集合,就能把 FineWeb-Edu 平均分从 Random 的 37.09 提到 SAW 的 38.78。
- 结尾比开头更关键。SEG 实验显示,预训练中以高分数据收尾持续带来增益;只在开头使用高分数据收益很小,因为低质量数据会被推迟到训练尾部。
- 周期复习能缓解遗忘。FO-3 的 PPL 曲线在第二周期重新看到简单数据时再次下降,而 CL 在后半程对低分样本的 PPL 反弹。
- 连续性影响优化稳定性。FO 在 cycle 边界有梯度范数尖峰,ZIG 通过奇数周期反向降低分数属性突变。
- scaling-up 结果支持可扩展性。在 50B-token 预训练中,FineWeb-Edu 上 Random 从 160M 到 1.7B 的均值为 40.52、44.16、46.83、47.72;STR 为 43.13、47.65、48.45、49.85;SAW 为 43.10、46.83、48.06、50.11,排序收益没有随规模消失。
亮点与洞察¶
- 这篇论文最重要的提醒是:数据分数不应只服务于筛选。既然算分已经很贵,把同一个分数继续用于组织训练顺序,边际成本很低。
- STR/SAW 的思想比具体算法更可迁移。任何已有数据选择 pipeline,只要能输出样本级分数,都可以尝试末端高分、周期复习、局部扰动这些操作。
- “局部多样性”是一个容易被课程学习忽略的点。过于整齐的 curriculum 看起来合理,但会让局部 batch 梯度同质化;JIT 在不破坏全局趋势的情况下补回随机性的好处。
- 论文把 pre-training 和 SFT 放在同一套数据组织框架下比较,这比只在小型 curriculum benchmark 上验证更有参考价值。
局限与展望¶
- 方法依赖已有样本级分数。如果分数质量低、和目标任务不相关,STR/SAW 可能会把错误信号组织得更“精致”,但不一定带来真实收益。
- 实验主要覆盖语言数据。作者也承认未来需要在其他模态中做无偏评估,例如多模态预训练、语音数据或代码-文本混合语料。
- 大模型结果包含 scaling law 外推。表 7 给出 GPT-3、Llama、Llama 2、Llama 3.1 级别的 test loss extrapolation,但这不是完整训练这些模型后的实测结果。
- 排序策略可能和 optimizer、batching、数据混合比例、去重策略强耦合。未来工作可以研究在线自适应排序,而不是一次性离线生成序列。
相关工作与启发¶
- vs Curriculum Learning: CL 通常按难度从易到难排序,本文指出这种单调顺序会导致后期遗忘基础样本,并且末端低质量数据会损害最终能力。
- vs DELT: DELT 已经有 folding learning 的复习思想,本文把它系统化为 G2,并进一步加入连续性和局部多样性,形成 STR/SAW。
- vs 数据选择方法: 数据选择改变样本集合,本文的数据组织不改变集合,只改变排列。它可以叠加在 SemDeDup、FineWeb-Edu 这类数据 pipeline 后面。
- vs 数据混合策略: 数据混合关注不同来源或领域的比例,本文关注同一选定集合内部的时间顺序;两者结合可能是后续训练 recipe 的重要方向。
评分¶
- 新颖性: ⭐⭐⭐⭐☆ 问题切入很实用,排序原则系统化清楚;单个技巧并非全新,但组合成 LLM 训练 recipe 很有价值。
- 实验充分度: ⭐⭐⭐⭐⭐ 覆盖通用预训练、数学 SFT、代码 SFT、不同语料和 scaling-up,消融也比较细。
- 写作质量: ⭐⭐⭐⭐☆ 结构完整,但表格非常密集,部分公式和算法符号对非数据训练方向读者不够友好。
- 价值: ⭐⭐⭐⭐⭐ 对实际 LLM 训练 pipeline 很有直接启发,尤其适合低额外成本改进已有数据工程。