Home
avatar

ychhh

SmolLM2: When Smol Goes Big — Data-Centric Training of a Small Language Model

SmolLM2 阅读笔记

2026-10-13开始讨论;2026-10-14补充逐阶段数据流程。持续阅读中,不标记精读完成。 来源:arXiv v1全文、COLM入口、官方模型及数据卡。未逐图视觉检查,未复现训练。 Zotero bib未检索到对应条目,citekey和pdf留空,不自造。

自读安排:先关注什么

你先自己阅读;遇到不懂的术语、公式、实验或结论,直接在聊天里问。下面是关注点,不要求提前写完答案。

原文入口:PDF · HTML v1。本文后续统一在本文件更新,不按每轮聊天新建一份。

第一遍:把数据与训练流程读通

建议顺序:摘要/引言 → 第3.1节 → 第3.2—3.4节 → 第4节 → 第5节 → 第6节。遇到细节先记疑问,附录按需要查。

阅读位置要关注什么读完希望能说明什么
摘要、第1节为什么小模型要特别重视数据?这篇的贡献在哪里?用自己的话说清研究问题,不只记参数与分数
第3.1节网页消融与数学/代码退火实验的起点、预算、控制变量作者怎样判断收益来自数据,而非训练更多
第3.2节、Table 1FineWeb-Edu与DCLM分别擅长什么,为什么混合?“高质量”是否只有一个标准
第3.3节、Figure 1数学内容的难度、推导、格式,教师标注与分类器的分工为什么有数学内容不等于适合学解题
第3.4节、Table 2代码教育性、不同语言的过滤阈值及筛选后数据量数据质量与覆盖率怎样取舍
第4节、Figure 2、Table 3四阶段改了哪些数据、比例与学习率?什么观察触发调整?区分独立消融证据与阶段过程观察
第5节SmolTalk、SFT、DPO各自的用途基础模型与指令模型的数据有什么区别
第6节更小模型的数据策略有什么不同?为什么不能把一个配方直接推广到所有规模

第一遍暂不必深挖

  • 全部benchmark名称和每一个得分:先了解其测什么能力。
  • 分布式训练框架和优化器的所有超参数:先能读懂实验设计。
  • 附录里的全部标注prompt:先看主文流程,卡在具体步骤时再查。

第二遍:我们根据你的问题补齐

优先回查实验设置、数据配比口径、关键图表和附录。最终梳理四个问题:如何选数据、如何配数据、如何验证、哪些结论还不能成立。

自己阅读时的记录区

以下待你填写,或在你实际表达后由我代为整理,不预设你的理解。

  • 阅读到:
  • 暂时的理解:
  • 不懂的术语或步骤:
  • 觉得证据不足或可能有另一种解释的地方:
  • 想尝试的小实验:

问答与修订记录

编号日期你的问题我的解释/原文证据待确认或后续补充
Q012026-10-13“这篇论文讲了什么”已给出数据筛选、阶段配方与后训练的概览,见下文尚未逐节精读,不标完成
Q022026-10-14“每个阶段对数据做了哪些处理,分为哪些流程,得到了什么结论”按数据构建、配方实验、四阶段预训练、上下文扩展、SFT/DPO和更小模型调整拆解,见下文不把阶段观察写成单因素因果结论;尚未记录用户已理解
Q032026-10-14“画个图,然后整理当前的比例放入阅读笔记”已绘制四阶段及长上下文配比图,并区分原文明示比例、网页内部比例和换算值Stage 3未明示网页/代码绝对占比;无法计算完整11T总体配比

后续更新方式:每次讨论后保留关键问题,核验解释对应的原文位置,再把有用结论写入相关主题;发现此前解释不准确时记录修正,不只堆聊天原文。只有你明确表达后才记录“已理解”。

2026-10-14:逐阶段的数据流程与结论

本节为助手基于原文整理;不是用户自述理解。主要依据arXiv v1 Sections 3–6及官方数据卡。本文新绘配比图已完成SVG、PNG和draw.io视觉检查;原论文Figure 2尚未逐项视觉复核。

先区分两条线

构建数据集:提取、评分、过滤、去重、去污染,得到候选数据。

使用数据训练模型:选择来源、采样配比、引入时机、学习率与任务格式。四个预训练阶段主要是第二条线,不代表每到一阶段都从头重新清洗所有网页。

整体路线:候选数据与消融 → 四阶段预训练 → 长上下文扩展 → SmolTalk指令微调 → UltraFeedback偏好对齐。

A. 数据准备与配方实验

数据处理流程得到的东西/实验观察来源
英文网页采用已有FineWeb-Edu与DCLM;分别训练、再试混合两者强项互补,早期选择网页内部60/40混合Section 3.2, Table 1
数学FineMath网页提取 → 教师标注与分类器粗筛 → 扩大候选召回、重提取并保留数学格式 → 更细评分 → 质量过滤、去重、英语筛选、去污染形成3+/4+质量子集,重点是适当难度的分步推理FineMath数据卡, Section 3.3
代码Stack-EduStarCoder2Data中选15种语言 → Llama3-70B给教育性标签 → 为各语言训练StarEncoder分类器 → 根据实验选阈值多数阈值3,Java为2;筛选后代码评测优于原始数据Stack-Edu数据卡, Section 3.4

教师与分类器的分工:[解释] 大模型给样本生成质量标签,分类器学习标签后用于大批量筛选;不能理解成每一页都由大模型直接判分。

FineMath的“数学质量”:[数据卡] 偏向清楚的推导和分步解题,而不是越高级的论文越好。提取要保留LaTeX,去重与去污染解决不同问题:前者减少内部重复,后者减少与评测集重叠。

来源差异待核验:论文数学去污染段列GSM8K/MATH/MMLU,官方数据卡还列ARC;不把数据卡扩展说明反写成论文原文。论文将FineMath4+规模约写为10B,数据卡为9.6B,可按四舍五入理解,但应保留口径。

实验怎么做:[论文Section 3.1] 网页消融固定1.7B模型、超参数和350B tokens。数学/代码从3T检查点做退火实验;数学使用60B候选数据+40B原配方,代码按文中200B设置评估。消融是正式训练之外的对照,不是四阶段中的第五段。

B. 四阶段预训练

比例指训练token采样占比;网页内部比例和全体数据占比是两层。

配比图

(可编辑源文件与位图预览仅在本地笔记库中。)

图中蓝色两段分别表示FineWeb-Edu和DCLM。带“换算”的比例由两层比例相乘得到,不是论文另列的一组实验结果。Stage 3使用灰色,是因为原文只明确数学约10%和网页内部40/60,没有给出网页与代码各自的绝对占比。

四阶段比例速查

阶段训练区间原文明示的全体配比网页内部配比换算到全体数据主要来源变化
10–6T(6T)网页90%,代码10%;未单列专项数学源FineWeb-Edu/DCLM=60/40FineWeb-Edu 54%,DCLM 36%代码使用StarCoderData
26–8T(2T)网页75%,代码20%,OpenWebMath 5%FineWeb-Edu/DCLM=60/40FineWeb-Edu 45%,DCLM 30%开始显式加入数学源
38–10T(2T)数学约10%;网页、代码绝对占比未明示FineWeb-Edu/DCLM=40/60无法换算网页两源在全体中的比例数学加入InfiMM-WebMath;代码改用Stack-Edu并补小语种原始子集、Notebook
410–11T(1T)网页58%,代码24%,数学14%,Cosmopedia v2 4%FineWeb-Edu/DCLM=40/60FineWeb-Edu 23.2%,DCLM 34.8%引入FineMath 4+等高质量数学源,学习率衰减到0

换算示例:阶段1中FineWeb-Edu占全体数据的 90% × 60% = 54%;阶段4中DCLM占全体数据的 58% × 60% = 34.8%。

不能计算完整11T总体配比。 虽然四阶段token量分别约为6T、2T、2T和1T,但Stage 3缺少网页和代码绝对占比;直接给一个11T加权平均值会填入论文没有报告的数据。

长上下文尾段比例

部分占尾段tokens组成
长文档40%DCLM 10% + FineWeb-Edu 10% + Dolma Books 20%
原阶段4配方60%按阶段4原配方继续采样

[推导] 若将这60%的阶段4配方完全展开,尾段总配比为:FineWeb-Edu 23.92%、DCLM 30.88%、Dolma Books 20%、代码14.4%、数学8.4%、Cosmopedia v2 2.4%。其中前两个数字同时包含专门加入的长文档部分和阶段4配方中的网页部分;这是算术展开,论文没有单独列出这张表。

[边界] 长上下文训练从阶段4最后约75B tokens之前的检查点继续,因此上表描述阶段4尾段的改配方,不是11T之外新增40%+60%的一轮训练。

阶段数据处理/使用变化作者观察能支持到什么程度
1:0–6T网页为主,StarCoderData占10%;网页内部FineWeb-Edu/DCLM=60/40;暂不单独加入数学源通用表现符合预期,数学和代码仍弱通用数据起步后暴露专项短板;不等于网页完全不含数学
2:6–8T网页75%、代码20%、OpenWebMath 5%;网页内部仍60/40多数语言代码提高,数学改善有限只少量加旧数学源未解决该设置下的瓶颈
3:8–10T加入InfiMM-WebMath使数学约10%;网页内部改40/60;主要代码源改Stack-Edu;小代码语言补原始子集,加入Jupyter多项指标提高;发生原因未明的loss spike,随后多数指标恢复质量、覆盖与训练进度共同改变,不能单独归因于某个源
4:10–11T引入FineMath4+等;数学14%、代码24%、网页58%、Cosmopedia v2为4%;学习率衰减到0数学、代码明显改善支持最终阶段的整体策略;不能拆成单个比例的独立效果

来源:原文Sections 4.2–4.5、Table 3。T=万亿tokens;区间是同一主模型的累计训练进度,不是四个独立模型。

[分析] 留到后期使用专项数据,是为了兼顾数据量、重复次数和目标能力;这是一条实际有效的训练路线,没有证明全局最优或任意模型都适用。

C. 长上下文扩展

[论文Section 4.6] 从第4阶段末尾的中间检查点出发,把上下文由2k扩到8k;使用40%长文档(DCLM、FineWeb-Edu及Dolma书籍)和60%第4阶段配方,并调整RoPE。它对应最后一段训练的改配方,不应自行算成11T之外额外完整训练一轮。

[论文Section 4.7] 长上下文测试改善、原有基准几乎没有退化。[分析] 不能将改RoPE、换长文档和继续训练各自的贡献拆开归因。

D. 指令数据、SFT与DPO

SmolTalk构建:[官方数据卡] 新合成的多轮对话、约束遵循、摘要、改写,与经过消融选择的数学、代码、系统提示、函数调用和长上下文公开数据混合。数据卡还说明,为避免只用短样本损害长上下文能力,加入LongAlign。

生成后的处理:[论文Section 5.1] 对话生成后做质量/安全过滤、奖励模型评分和语义去重;约束任务排除冲突指令/错误响应并对IFEval去污染。生成总量、过滤后总量和最终混入量是不同口径,不能混用。

训练:[论文Sections 5.2–5.3] SmolTalk用于SFT;UltraFeedback用于DPO。前者学习如何按指令回答,后者利用偏好对提高回答表现。官方指令模型卡

结论边界:[分析] 不是把教师回答生成出来就直接训练,关键还包括任务覆盖、过滤和消融。DPO与预训练配比不是同一个优化问题。

E. 135M/360M没有照搬1.7B

[论文Section 6] 更小模型重新做数据实验,采用单阶段高质量混合;过滤低质量DCLM,早期即加入数学、代码等。后训练使用更适合其容量的Smol-SmolTalk,去除部分复杂任务和困难样本。

[分析] 这提醒我们:数据策略与模型容量相关,1.7B有效的课程不必对更小模型有效。

本次得到的认识与仍待解决的问题

  • [分析] 数据质量应对应任务、难度和模型;不是只有一条通用质量分。
  • [分析] 构建数据与安排训练需分别记录;过滤阈值、混合比例、加入时机是不同变量。
  • [分析] 阶段成绩不能替代独立消融。正好可用这篇学习工业配方的证据边界。
  • [待核验] 对图2及关键附录做视觉核对;继续逐项读实验以区分具体组件贡献。
  • 本轮没有执行实验,也没有将用户问题标为“已理解”。

初始概览(助手整理,供回查)

以下保留此前概览;它不是你的阅读结论。后续根据自读问题、原文核验和讨论持续修订。

一句话理解

[论文报告] Hugging Face用数据筛选、专门数据集和分阶段训练,把较小的语言模型训练得更有用;主角是1.7B模型,累计训练约11T tokens。[原文摘要、Sections 3–5]

核心数据与流程

数据用途官方入口
FineWeb-Edu / DCLM提供不同特点的英文网页文本见原文Section 3.2
FineMath筛选带有适当难度、推导和解题内容的数学网页数据卡
Stack-Edu从代码语料中筛选具有教育价值和较好说明的内容数据卡
SmolTalk用于对话和指令微调,包括通用及专项任务数据卡

[助手解释] “数据中心”表示研究重心放在数据构建、选择和训练安排上。它不是不研究架构,也不是简单把所有高分样本混起来。

四个预训练阶段

阶段累计tokens区间主要变化
10–6T网页为主,代码10%,不专门加入数学数据
26–8T网页75%、代码20%、数学5%
38–10T引入更多数学及经过筛选的代码,调整两类网页的内部比例
410–11T学习率衰减;网页58%、代码24%、数学14%、Cosmopedia v2为4%

[论文报告:Sections 4.2–4.5] 数学、代码短板会推动下一阶段的数据调整。该流程并非从头重训四个独立模型,而是同一训练进程的阶段演进。

[论文报告:Section 5] 基础模型之后,使用SmolTalk进行SFT,再进行DPO,得到指令模型。官方模型卡

怎样知道数据有用

[论文报告:Section 3.1] 对网页数据做对照时固定模型、训练超参数和tokens;数学、代码则从已有训练检查点出发,用退火实验评估候选数据。

[助手解释] 这是学习公平数据实验的重要例子。先固定其他条件,再比较数据;模型参数小,并不意味着实验的训练tokens或成本也小。

这篇与RegMix的区别

[分析] RegMix建立回归预测器搜索配方;SmolLM2主要根据消融与阶段评估人工迭代数据。前者研究一种自动优化方法,后者记录一条实际模型训练路线。两者都不能直接保证换模型、任务后仍适用。

局限与边界

  • [分析] 相邻阶段同时改变训练量、数据源、配比,最后还改变学习率。因此阶段得分上升不能全部归因于某个配比;需要看独立消融。
  • [分析] 提供有效配方不等于证明最优,更不等于跨规模通用配方。
  • [论文报告:Section 6] 更小的135M/360M版本采用不同的数据策略,不能把1.7B四阶段方案机械套用。
  • [分析] 对比模型和评估任务有限,不能把作者当时的结果写成今天所有任务的领先结论。

你的问题与理解

  • 2026-10-13:“这篇论文讲了什么”。
  • 尚未记录其他个人判断,后续根据你的实际问题补充。

可以借鉴的练习

[计划,未执行] 选择一个固定数据池,对比随机、简单规则和质量评分筛选;固定来源分布、训练tokens与评估协议。先做样本审计,有训练资源再检验收益。无GPU的统计结果不能宣称模型能力提升。

后续精读

  1. 网页数据消融如何选择混合比例?
  2. FineMath的教师标注、分类器、过滤和去污染分别做什么?
  3. Stack-Edu如何为不同编程语言选择阈值?
  4. 四阶段决策中,哪些有独立消融、哪些只是过程观察?

导航:00-阅读路线与笔记导航。

2026-10-15 讨论补充:贡献、人工配比与证据边界

核心问题

怎样通过数据筛选、混合及分阶段训练,提升小语言模型的能力?主模型为1.7B参数,预训练约11T tokens。小模型不等于训练成本低:原文报告主训练使用256张H100。本次只阅读原文,没有复现。

贡献是什么

  • [原文] 数据资源:构建并公开FineMath、Stack-Edu、SmolTalk,分别服务数学、代码和指令后训练,给出筛选与合成流程。
  • [原文] 实证发现:控制模型配置和训练预算,比较数据来源、过滤阈值及混合方式,验证数据选择的影响。
  • [原文] 完整模型成果:结合分阶段数据配方、预训练和后训练,发布模型及评测。
  • [解读] 本文主要是数据资源、实证研究和模型训练报告的贡献,不是提出新的自动配比优化算法。记录完整流程主要属于可复现性价值;工作量本身不能代替创新。

人工怎样调整配方

阶段观察与调整
Stage 1,0—6T网页内部FineWeb-Edu
=60
;代码占总量10%;未单独加入数学。阶段末发现代码、数学较弱。
Stage 2,6—8T网页75%、代码20%、OWM数学5%。代码改善,数学提升不明显。
Stage 3,8—10T加入InfiMM-WebMath,数学合计约10%;网页内部比例改为40
,依据额外退火消融;代码转向Stack-Edu并补充部分来源。正文不足以严谨确定该阶段全部网页/代码总占比。
Stage 4,10—11T网页58%、代码24%、数学14%、Cosmopedia v2 4%;加入更高质量数据,学习率同时衰减。末尾长上下文扩展另改配方,不能将上述比例直接视为全部11T训练的固定配比。

没有“数学低几分就增加几个百分点”的公式。比例由训练观察、额外消融、既有经验、可用数据量与重复次数共同决定。相邻阶段同时变化训练量、数据来源、配比和学习率,因此阶段分数变化不能完全归因于某一个因素,也不构成最优配比证明。

对研究创新的判断

“哪项能力弱就加哪类数据”是合理的常规起点,本身不是独特创新。研究问题应继续落到:补什么内容、多少、何时补、是否有重复与能力回退,以及如何通过受控实验识别原因。少卡研究可以围绕其中一个具体失败机制展开,但新颖性需要独立文献核查。

下一篇:DataComp-LM / DCLM

接下来关注如何固定模型、训练流程和预算,比较不同数据筛选方法。重点区分“筛选器像人工判断”与“筛出的数据能改善训练”这两个目标。

本节来源

本节不新增会议接收状态断言,既有元数据保持原样。

大模型 数据 多阶段训练 论文阅读