0. 为什么值得读

大模型垂直化不是新话题,但把一条完整领域后训练 pipeline 讲透、用消融把每个阶段的必要性一个个抠出来、还敢和 GPT-5.4-Mini / Gemini-3.1-Flash / DeepSeek-V3.2 同台比领域分的论文并不多。FitOne 是一篇"配方型"工作——方法上没有惊天创新,但工程链路完整、实验诚实、结论可迁移

它要解决的问题很实在:科学健身教练(Scientific Fitness Coaching, SFC)的金标准是 ACSM-EP、NSCA-CSCS 这类持证专家的一对一指导,贵、稀缺、难规模化;通用大模型直接上又缺乏领域知识的深度整合,在需要跨学科知识 + 可验证分步推理 + 安全约束的复杂场景下表现拉胯。FitOne 的答案是:给 Qwen3 做一套领域专属的三段式后训练。


1. 背景与动机

健身早已从"随便练练"变成融合运动生理学、运动医学、营养学的系统工程。作者把痛点归为三条:专家资源稀缺(持证教练贵、少、难覆盖偏远地区);通用 LLM 不够用(SFC 要求跨学科知识整合 + 可验证分步推理,因为它安全敏感——要根据生理状况动态调整计划、在健康约束下改方案、设计支撑恢复的营养策略);已有工作太窄(多聚焦睡眠、可穿戴解读等单一子域)。

⚠️ 这里先埋一个效度伏笔。 动机反复强调的是"动态、个性化、带医疗约束的开放式带练"——这是一种程序性/情境性能力(procedural competence)。而后文全部领域评测用的是认证考试(选择题),测的是陈述性知识(declarative knowledge)。这两者之间的构念效度(construct validity)鸿沟,是本文第 5 节要重点追问的核心。


2. 方法与数学推导

整条链路是三个串行阶段,每一阶段建立在前一阶段之上,逐步把基座"拧"向 SFC 领域,同时尽量保住通用能力。

阶段三 · DAPO 强化学习

阶段二 · 混合监督微调 SFT

阶段一 · 领域持续预训练 CPT

Qwen3 基座模型

数据采集
SFC语料 + 通用语料

知识工程
解析→归一化→精炼→RegMix混合

30B tokens 领域语料 K

领域感知持续预训练
前向KL / mode-covering

数据构造
Self-QA Agent 生成三元组

多维校验
7个维度过滤

两阶段混合SFT
分布退火 α1 → α2

RL数据构造
上采样难例 / 边界case

混合奖励
准确率 + 格式

DAPO 优化
Clip-Higher + 动态采样 + token级损失 + 去KL

FitOne 8B / 32B

2.1 阶段一:领域持续预训练(CPT)

数据采集。 在领域专家指导下把 SFC 拆成八个核心子领域,从 ACSM《运动测试与运动处方指南》、同行评审文献、大学教材等权威源采集,并掺入社区验证的开源通用数据防遗忘。

子领域 对应能力
减脂 Weight Loss 体重管理与身体成分优化
生物化学 Biochemistry 阐明身体活动如何影响体内生理过程
运动医学 Sports Medicine 运动损伤预防与康复
运动营养 Sports Nutrition 循证的个性化运动营养指导
运动生理学 Exercise Physiology 分析身体系统对运动的适应性变化
力量与耐力 Strength & Endurance 肌肉力量与体能耐力提升
运动方法与技术 Exercise Methods & Techniques 通过多样化方法优化运动表现
运动处方定制 Exercise Prescription Customization 基于 FITT 原则(频率/强度/时间/类型)生成计划

知识工程(四步)。 解析(OCR+NLP 统一转 Markdown、去版式噪声)→ 归一化(统一异构格式与结构)→ 精炼(去过时/噪声/重复)→ 混合(RegMix 求最优混合分布)。最终得到 30B tokens 的高质量语料:

K=KSFC∪KGEN,K={k1,k2,…,kn}K = K_{\text{SFC}} \cup K_{\text{GEN}}, \qquad K = \{k_1, k_2, \ldots, k_n\}K=KSFCKGEN,K={k1,k2,,kn}

⚙️ RegMix 到底在优化什么。 论文只给了引用。其核心是把"数据配比"当回归问题解:设 w∈Δm−1w \in \Delta^{m-1}wΔm1mmm 个数据域的混合比例(落在概率单纯形上,∑dwd=1, wd≥0\sum_d w_d = 1,\ w_d \ge 0dwd=1, wd0),先用大量小代理模型在不同 www 上训练、记录验证损失,拟合一个从配比到损失的回归代理 L^(w)\hat L(w)L^(w),再求解

w⋆=arg⁡min⁡w∈Δm−1L^(w)w^\star = \arg\min_{w \in \Delta^{m-1}} \hat L(w)w=argwΔm1minL^(w)

并把这个在小模型上外推得到的 w⋆w^\starw 用于大模型训练。它把"炼丹式调配比"变成可预测的优化,这正是"防灾难性遗忘"需要的——SFC 与通用数据的比例不是拍脑袋,而是让预测的联合验证损失最低。

领域感知 CPT。 从 Qwen3 原始 checkpoint 初始化,官方配置在 KKK 上持续预训练。注意这一步的训练目标仍是标准的自回归 MLE(见 2.2 的推导),只是数据换成了领域混合语料。

2.2 阶段二:混合监督微调(SFT)

给模型注入可验证的分步推理能力,这对安全敏感应用里"透明、可追溯"至关重要。

数据构造:知识引导生成 + 多维校验。 按八子域定义结构化标签体系 T={t1,…,tm}T = \{t_1, \ldots, t_m\}T={t1,,tm},为每个 tjt_jtj 实例化专属生成 Agent AtjA_{t_j}Atj。给定标签与领域知识片段 ki∈Ktj⊆KSFCk_i \in K_{t_j} \subseteq K_{\text{SFC}}kiKtjKSFC,生成推理三元组:

(qi,ti,ai)=Atj(ki,tj;θAtj)(q_i, t_i, a_i) = A_{t_j}(k_i, t_j; \theta_{A_{t_j}})(qi,ti,ai)=Atj(ki,tj;θAtj)

其中 qiq_iqi 是问题、tit_iti 是分步推理(thinking)、aia_iai 是答案。再用独立第三方 LLM 沿七个维度校验推理轨迹(内部一致性、术语重叠率、推理步数、逻辑连贯性、内容多样性、任务-领域相关性、指令对齐度),过滤得 DSFCD_{\text{SFC}}DSFC;掺入开源通用指令集 DGEND_{\text{GEN}}DGEN,合并 D=DSFC∪DGEND = D_{\text{SFC}} \cup D_{\text{GEN}}D=DSFCDGEN

两阶段混合 SFT。 Step 1 在完整 DSFCD_{\text{SFC}}DSFC + 大比例 DGEND_{\text{GEN}}DGEN 上训练(学多样推理路径、保泛化);Step 2 提高 DSFCD_{\text{SFC}}DSFC 采样权重(强化领域关键任务)。给定输入 QQQ 与目标序列 Y=[T;A]Y = [T; A]Y=[T;A]

LSFT=− E(Q,Y)∼D[∑t=1∣Y∣log⁡πθ(yt∣Q,Y<t)]\mathcal{L}_{\text{SFT}} = -\,\mathbb{E}_{(Q,Y)\sim\mathcal{D}}\left[\sum_{t=1}^{|Y|} \log \pi_\theta(y_t \mid Q, Y_{<t})\right]LSFT=E(Q,Y)D t=1Ylogπθ(ytQ,Y<t)

⚙️ 推导一:SFT 目标 = 最小化前向 KL(mode-covering)。 由概率链式法则,序列似然可因子化为逐 token 条件概率之积:

πθ(Y∣Q)=∏t=1∣Y∣πθ(yt∣Q,Y<t)\pi_\theta(Y \mid Q) = \prod_{t=1}^{|Y|} \pi_\theta(y_t \mid Q, Y_{<t})πθ(YQ)=t=1Yπθ(ytQ,Y<t)

取负对数、对数据分布求期望,即得上面的 token 级交叉熵。把它按每个 QQQ 拆开:

EY∼pdata(⋅∣Q)[−log⁡πθ(Y∣Q)]=H(pdata(⋅∣Q))⏟与 θ 无关+DKL(pdata(⋅∣Q) ∥ πθ(⋅∣Q))\mathbb{E}_{Y \sim p_{\text{data}}(\cdot \mid Q)}\big[-\log \pi_\theta(Y \mid Q)\big] = \underbrace{H\big(p_{\text{data}}(\cdot \mid Q)\big)}_{\text{与 }\theta\text{ 无关}} + D_{\mathrm{KL}}\big(p_{\text{data}}(\cdot \mid Q)\,\big\|\,\pi_\theta(\cdot \mid Q)\big)EYpdata(Q)[logπθ(YQ)]= θ 无关 H(pdata(Q))+DKL(pdata(Q) πθ(Q))

因为熵项不含 θ\thetaθ,所以

arg⁡min⁡θLSFT=arg⁡min⁡θ EQ[DKL(pdata ∥ πθ)]\arg\min_\theta \mathcal{L}_{\text{SFT}} = \arg\min_\theta\ \mathbb{E}_Q\big[D_{\mathrm{KL}}(p_{\text{data}} \,\|\, \pi_\theta)\big]argθminLSFT=argθmin EQ[DKL(pdataπθ)]

即 SFT 在最小化前向 KL。前向 KL 是**质量覆盖(mass-covering)**的:pdatap_{\text{data}}pdata 有支撑的地方 πθ\pi_\thetaπθ 必须有概率,否则 log⁡(p/πθ)→∞\log(p/\pi_\theta)\to\inftylog(p/πθ) 惩罚爆炸。这解释了为什么 SFT 阶段要"广撒网"覆盖多样推理路径——它天然倾向覆盖所有数据模式。记住这个性质,它与下一阶段 RL 的 mode-seeking 恰成对照,是整条 pipeline 逻辑的数学底座。

⚙️ 推导二:SFT 梯度只落在补全 token 上。 在 teacher forcing 下:

∇θLSFT=− E(Q,Y)∼D[∑t=1∣Y∣∇θlog⁡πθ(yt∣Q,Y<t)]\nabla_\theta \mathcal{L}_{\text{SFT}} = -\,\mathbb{E}_{(Q,Y)\sim\mathcal{D}}\left[\sum_{t=1}^{|Y|} \nabla_\theta \log \pi_\theta(y_t \mid Q, Y_{<t})\right]θLSFT=E(Q,Y)D t=1Yθlogπθ(ytQ,Y<t)

prompt QQQ 被 loss mask 屏蔽、不回传梯度;监督信号覆盖 Y=[T;A]Y=[T;A]Y=[T;A],即思维链 TTT 与答案 AAA 都被监督——这正是"可验证分步推理"能被学到的原因:模型不是只学最终答案,而是学整条 CoT。

⚙️ 推导三:两阶段 = 分布退火。 记 Step sss 的训练分布 Ds=αs DSFC+(1−αs) DGEN\mathcal{D}_s = \alpha_s\, D_{\text{SFC}} + (1-\alpha_s)\, D_{\text{GEN}}Ds=αsDSFC+(1αs)DGENα2>α1\alpha_2 > \alpha_1α2>α1。整个 SFT 是对目标 ED1[L]→ED2[L]\mathbb{E}_{\mathcal{D}_1}[\mathcal{L}] \to \mathbb{E}_{\mathcal{D}_2}[\mathcal{L}]ED1[L]ED2[L]顺序(同伦式)最小化:先在宽分布上找到既覆盖领域又不丢通用的解,再把分布向领域退火、把解拉向领域极小点。这是一种课程学习(curriculum),用退火而非硬切换来对抗"专精即遗忘"。

2.3 阶段三:DAPO 强化学习

在 SFT 模型基础上,用 SFC 为中心的奖励做 RL。RL 数据构造DSFC,DGEND_{\text{SFC}}, D_{\text{GEN}}DSFC,DGEN 抽子集,并上采样两类样本:SFT 评估识别出的难例 + 稀有关键边界 case(如带复杂医疗约束的场景)。策略是集中火力打最弱区域,而非反复练已掌握任务。

2.3.1 混合奖励函数

SFC 既有客观认证考题、又有开放式处方,奖励要兼顾两种任务:

① 准确率奖励,随任务可验证性动态切换。闭式任务(有确定答案的选择题)用精确匹配:

REM(O,A)={1,O 与 A 完全匹配0,否则R_{\text{EM}}(O, A) = \begin{cases} 1, & O \text{ 与 } A \text{ 完全匹配} \\ 0, & \text{否则} \end{cases}REM(O,A)={1,0,O  A 完全匹配否则

开放式任务(如个性化营养规划,无单一标准答案)用基于领域专家偏好标注训练的奖励模型给连续标量:

RRM(O,A)=RM(O,A)R_{\text{RM}}(O, A) = \text{RM}(O, A)RRM(O,A)=RM(O,A)

② 格式奖励,针对需严格结构化输出的任务。如运动处方必须显式覆盖 FITT-VP 原则(频率、强度、时间、类型、量、进阶),用预定义启发式独立于语义地校验结构:

RPattern(O,A)={1,O 满足预定义格式0,否则R_{\text{Pattern}}(O, A) = \begin{cases} 1, & O \text{ 满足预定义格式} \\ 0, & \text{否则} \end{cases}RPattern(O,A)={1,0,O 满足预定义格式否则

总奖励按任务类别 ccc 组合(RAccR_{\text{Acc}}RAcccccREMR_{\text{EM}}REMRRMR_{\text{RM}}RRM):

R(O,A)=RAcc(O,A,c)+RPattern(O,A)R(O, A) = R_{\text{Acc}}(O, A, c) + R_{\text{Pattern}}(O, A)R(O,A)=RAcc(O,A,c)+RPattern(O,A)

⚙️ 奖励结构的两面性——一个审稿人必须点出的量纲问题。
好的一面(本文补充的正面观察): 闭式任务奖励 REM+RPattern∈{0,1,2}R_{\text{EM}}+R_{\text{Pattern}} \in \{0,1,2\}REM+RPattern{0,1,2} 是离散的,开放式任务 RRM+RPatternR_{\text{RM}}+R_{\text{Pattern}}RRM+RPattern 含连续项,两者量纲不同。但因为 DAPO 的优势是组内 z-score 标准化(见下),每组只与自己的同任务样本比较,标准化后不同任务类型的优势被统一到零均值单位方差空间,天然可比。这是 group-relative 归一化一个常被忽略的优点——它让"混合奖励尺度"这件麻烦事自动消解。
坏的一面(风险): 加性结构意味着格式分与内容分同权可加。对开放式任务,一个"格式完美但医学上错误"的处方,仍能白拿 RPattern=1R_{\text{Pattern}}=1RPattern=1;若学到的 RM\text{RM}RM 判别力不足,模型有动机去套模板刷格式分而非把内容做对。在一个开人体处方的安全敏感域里,格式合规恰恰是最容易伪造、也最具误导性的信号。这是典型的奖励攻击(reward hacking)暴露面,论文未讨论。

2.3.2 DAPO 目标与四项关键改动

策略 πθ\pi_\thetaπθ 从上一阶段初始化。对每个实例 (Q,A)∼DRL(Q,A)\sim D_{\text{RL}}(Q,A)DRL,用参考策略 πθold\pi_{\theta_{\text{old}}}πθold 采一组 GGG 个候选 {Oi}i=1G\{O_i\}_{i=1}^G{Oi}i=1G,最小化 token 级损失:

LDAPO(θ)=− E(Q,A)∼DRL, {Oi}i=1G∼πθold ⁣[1∑i=1G∣Oi∣∑i=1G∑t=1∣Oi∣min⁡ ⁣(ri,t(θ)A^i, clip(ri,t(θ), 1−εlow, 1+εhigh)A^i)]\mathcal{L}_{\text{DAPO}}(\theta) = -\,\mathbb{E}_{(Q,A)\sim\mathcal{D}_{\text{RL}},\,\{O_i\}_{i=1}^{G}\sim\pi_{\theta_{\text{old}}}}\!\left[\frac{1}{\sum_{i=1}^{G}|O_i|}\sum_{i=1}^{G}\sum_{t=1}^{|O_i|}\min\!\Big(r_{i,t}(\theta)\hat{A}_i,\ \text{clip}\big(r_{i,t}(\theta),\,1-\varepsilon_{\text{low}},\,1+\varepsilon_{\text{high}}\big)\hat{A}_i\Big)\right]LDAPO(θ)=E(Q,A)DRL,{Oi}i=1Gπθold i=1GOi1i=1Gt=1Oimin(ri,t(θ)A^i, clip(ri,t(θ),1εlow,1+εhigh)A^i)

s.t.std({Ri}i=1G)>0\text{s.t.}\quad \text{std}\big(\{R_i\}_{i=1}^{G}\big) > 0s.t.std({Ri}i=1G)>0

ri,t(θ)=πθ(Oi,t∣Q,Oi,<t)πθold(Oi,t∣Q,Oi,<t),A^i=Ri−mean({Ri}i=1G)std({Ri}i=1G)r_{i,t}(\theta) = \frac{\pi_\theta(O_{i,t} \mid Q, O_{i,<t})}{\pi_{\theta_{\text{old}}}(O_{i,t} \mid Q, O_{i,<t})}, \qquad \hat{A}_i = \frac{R_i - \text{mean}(\{R_i\}_{i=1}^{G})}{\text{std}(\{R_i\}_{i=1}^{G})}ri,t(θ)=πθold(Oi,tQ,Oi,<t)πθ(Oi,tQ,Oi,<t),A^i=std({Ri}i=1G)Rimean({Ri}i=1G)

要真正读懂这个目标,得沿 PPO → GRPO → DAPO 这条谱系推一遍。

⚙️ 推导四:从策略梯度到组相对基线(GRPO 为何能去掉 critic)。
REINFORCE 的策略梯度为

∇θJ(θ)=EO∼πθ[R(O) ∇θlog⁡πθ(O)]\nabla_\theta J(\theta) = \mathbb{E}_{O\sim\pi_\theta}\big[R(O)\,\nabla_\theta \log \pi_\theta(O)\big]θJ(θ)=EOπθ[R(O)θlogπθ(O)]

它方差极大。引入与动作无关的基线 bbb 不改变期望(无偏),因为

EO∼πθ[b ∇θlog⁡πθ(O)]=b∑Oπθ(O) ∇θπθ(O)πθ(O)=b ∇θ ⁣∑Oπθ(O)=b ∇θ1=0\mathbb{E}_{O\sim\pi_\theta}\big[b\,\nabla_\theta \log \pi_\theta(O)\big] = b\sum_O \pi_\theta(O)\,\frac{\nabla_\theta \pi_\theta(O)}{\pi_\theta(O)} = b\,\nabla_\theta\!\sum_O \pi_\theta(O) = b\,\nabla_\theta 1 = 0EOπθ[bθlogπθ(O)]=bOπθ(O)πθ(O)θπθ(O)=bθOπθ(O)=bθ1=0

于是

∇θJ(θ)=E[(R(O)−b) ∇θlog⁡πθ(O)]\nabla_\theta J(\theta) = \mathbb{E}\big[(R(O)-b)\,\nabla_\theta \log \pi_\theta(O)\big]θJ(θ)=E[(R(O)b)θlogπθ(O)]

方差最小的基线约为 b⋆≈E[R]b^\star \approx \mathbb{E}[R]bE[R]PPO 用一个与策略同量级的 critic 网络去估 bbb(经 GAE),代价高昂。GRPO 的洞见:对同一 prompt 采一组输出,直接用组均值 Rˉ=1G∑jRj\bar R = \frac{1}{G}\sum_j R_jRˉ=G1jRj 作为 E[R]\mathbb{E}[R]E[R] 的蒙特卡洛估计,再除以组内标准差做白化,得到广播到该输出所有 token 的优势:

A^i=Ri−mean({Rj}j=1G)std({Rj}j=1G)\hat A_i = \frac{R_i - \text{mean}(\{R_j\}_{j=1}^G)}{\text{std}(\{R_j\}_{j=1}^G)}A^i=std({Rj}j=1G)Rimean({Rj}j=1G)

这样彻底省掉 critic,把值函数估计换成了廉价的组内比较。代价是:优势是序列级、outcome-only 的——OiO_iOi 里每个 token 拿到同一个 A^i\hat A_iA^i,没有逐步信用分配(见 2.3.3 的限制讨论)。

⚙️ 推导五:非对称裁剪 Clip-Higher 到底改了什么(按优势符号分情况)。
把裁剪目标 min⁡(rA^, clip(r,1−εlow,1+εhigh)A^)\min(r\hat A,\ \text{clip}(r,1-\varepsilon_{\text{low}},1+\varepsilon_{\text{high}})\hat A)min(rA^, clip(r,1εlow,1+εhigh)A^)A^\hat AA^ 符号拆开:

  • A^i>0\hat A_i > 0A^i>0(好轨迹,想上调这些 token 概率):

obji,t=A^i⋅min⁡(ri,t, 1+εhigh)(在 ri,t≥1−εlow 区间)\text{obj}_{i,t} = \hat A_i \cdot \min\big(r_{i,t},\ 1+\varepsilon_{\text{high}}\big)\quad(\text{在 }r_{i,t}\ge 1-\varepsilon_{\text{low}}\text{ 区间})obji,t=A^imin(ri,t, 1+εhigh)( ri,t1εlow 区间

一旦 ri,t>1+εhighr_{i,t} > 1+\varepsilon_{\text{high}}ri,t>1+εhigh,目标被夹平、梯度归零。标准 PPO 里 ε\varepsilonε 对称且小,导致低概率 token(探索 token)刚被上调一点就撞到天花板 1+ε1+\varepsilon1+ε,无法充分强化"稀有但正确"的 token——这会造成熵坍缩(entropy collapse),策略过早变确定、丧失多样性。DAPO 单独抬高 εhigh\varepsilon_{\text{high}}εhigh(本文取 0.28>0.200.28 > 0.200.28>0.20),给低概率好 token 更大的上调空间,从而保住策略熵、鼓励探索多样推理路径。

  • A^i<0\hat A_i < 0A^i<0(坏轨迹,想下压):

obji,t=A^i⋅max⁡(ri,t, 1−εlow)\text{obj}_{i,t} = \hat A_i \cdot \max\big(r_{i,t},\ 1-\varepsilon_{\text{low}}\big)obji,t=A^imax(ri,t, 1εlow)

一旦 ri,t<1−εlowr_{i,t} < 1-\varepsilon_{\text{low}}ri,t<1εlow 梯度归零,εlow\varepsilon_{\text{low}}εlow 保持较小以限制对坏 token 的过度抑制、避免从下方触发坍缩。一句话:εhigh\varepsilon_{\text{high}}εhigh 管探索、εlow\varepsilon_{\text{low}}εlow 管稳定,解耦二者就是 Clip-Higher。

⚙️ 推导六:token 级归一化如何消除长度偏置。
比较两种归一化对 token (i,t)(i,t)(i,t) 的权重。GRPO 的样本级:先按序列长度平均、再按组平均,权重

wi,tsamp=1G ∣Oi∣w^{\text{samp}}_{i,t} = \frac{1}{G\,|O_i|}wi,tsamp=GOi1

DAPO 的token 级(本文损失里的 1∑j∣Oj∣\tfrac{1}{\sum_j|O_j|}jOj1):

wi,ttok=1∑j=1G∣Oj∣w^{\text{tok}}_{i,t} = \frac{1}{\sum_{j=1}^G |O_j|}wi,ttok=j=1GOj1

两者之比

wi,tsampwi,ttok=∑j=1G∣Oj∣G ∣Oi∣=∣O∣‾∣Oi∣\frac{w^{\text{samp}}_{i,t}}{w^{\text{tok}}_{i,t}} = \frac{\sum_{j=1}^G |O_j|}{G\,|O_i|} = \frac{\overline{|O|}}{|O_i|}wi,ttokwi,tsamp=GOij=1GOj=OiO

其中 ∣O∣‾\overline{|O|}O 是组内平均长度。可见样本级归一化下,短序列(∣Oi∣<∣O∣‾|O_i| < \overline{|O|}Oi<O)的每个 token 被放大、长序列被压低——梯度被短输出主导,长 CoT 推理链被系统性欠采。对需要长链推理的 SFC 复杂任务,这是致命的。token 级归一化令每个 token 等权,长推理链才能按其真实贡献参与更新。这也顺带缓解了长度偏置(模型不再因"写短点更容易拿高平均"而退化)。

⚙️ 推导七:动态采样 std({Ri})>0\text{std}(\{R_i\})>0std({Ri})>0 与有效样本量。
若某组 GGG 个输出奖励全相同(全对或全错),则 std=0\text{std}=0std=0A^i=0/0\hat A_i = 0/0A^i=0/0 退化为 0,该组对梯度零贡献。设一个 batch 有 NNN 组、零方差组占比 ρ\rhoρ,则有效组数为 (1−ρ)N(1-\rho)N(1ρ)N,梯度均值估计的方差 ∝1(1−ρ)N\propto \dfrac{1}{(1-\rho)N}(1ρ)N1关键洞察:FitOne 的 RL 起点是"强 Qwen3 + 强 SFT",训练早期大量简单 prompt 会"全对",ρ\rhoρ 很高——恰在你拥有强基座时梯度信号最稀。 约束 std({Ri})>0\text{std}(\{R_i\})>0std({Ri})>0 + 重采样把这些零信息组滤掉、补满 batch,令有效 ρ→0\rho\to 0ρ0,保持每步都有非零优势可学。这正是论文说 DAPO"防梯度消失、对 SFC 复杂推理尤其有效"的数学原因。

⚙️ 推导八:去掉 KL 惩罚项的取舍。
细看目标——没有 −βDKL(πθ∥πref)-\beta D_{\mathrm{KL}}(\pi_\theta\|\pi_{\text{ref}})βDKL(πθπref)。GRPO 通常带一个到参考策略的 KL 缰绳。DAPO 去掉它,因为长 CoT RL 期望策略大幅偏离 SFT 初始去长出新推理行为,KL 缰绳会束缚这种漂移;同时省掉参考模型的显存/算力。代价是:失去了向可信初始策略的正则约束,过度优化(over-optimization)与奖励攻击的风险上升。而 FitOne 的开放式任务恰恰用了学习到的 RM 作奖励——"去 KL + 学习式 RM"这个组合,在理论上正是 Goodhart 型奖励过优化最危险的配置(见 5.2)。论文靠 Clip-Higher + 动态采样维持训练稳定,但没有把这层风险摆到台面。

2.3.3 一个被 outcome 优势掩盖的限制

由推导四,OiO_iOi 内每个 token 共享同一序列级优势 A^i\hat A_iA^i。这意味着:一条"侥幸答对但中间走过弯路"的轨迹,其错误中间步也会被赋正优势、被一并强化;反之一条"推理正确却答案格式差半点"的轨迹可能整体被压。这是 GRPO/DAPO 这类 outcome-supervised 方法相对**过程监督(process supervision,PRM)**的固有短板——信用分配是粗粒度的。对"分步推理可追溯"是卖点的 SFC,这个粒度问题值得后续用过程奖励来补。

关键超参(实现细节)εlow=0.2, εhigh=0.28\varepsilon_{\text{low}}=0.2,\ \varepsilon_{\text{high}}=0.28εlow=0.2, εhigh=0.28;RL 训 500 rollout step,prompt/response 最长 10000/8192,外加 4096 超长缓冲(软惩罚系数 1.0,即 overlong reward shaping——超长响应给渐变惩罚而非硬截断,避免"答对却被切断"喂错奖励);prompt batch 1024、每 prompt 采 16 response(全局 batch 16384),mini-batch 覆盖 256 prompt(每 rollout 4 次更新);AdamW,恒定 LR 1×10−61\times10^{-6}1×106,weight decay 0.01,前 20 step 线性 warmup。SFT 两步各 1 epoch,最大长 8192 + sequence packing,全局 batch 128;8B 用 2×10−5/1×10−52\times10^{-5}/1\times10^{-5}2×105/1×105(step1/step2)、32B 两步都 1×10−51\times10^{-5}1×105


3. 实验与结果(含审稿人验算)

评测基准。 领域侧:ACSM-EPNSCA-CSCS 两个专业认证考试,共 11 个表现域。通用侧六大能力:知识推理(MMLU-Redux / CMMLU / C-Eval / GPQA-Diamond / BIG-Bench / GAOKAO-Bench)、数学(MATH-500 / AIME 2024 / AIME 2025)、代码(HumanEval / MBPP / LiveCodeBench v5)、翻译(WMT-24 / FLORES)、指令遵循(IFEval)、幻觉检测(HaluEval)。所有结果为 5 次重复均值。

3.1 主结果:8B(Table II)

ACSM-EP 权重:HFS 33%、EC&BM 20%、EPI 40%、RM&PR 7% | NSCA-CSCS 权重:ES 25%、SP 11%、Nutr 6%、PD 23%、ET 15%、PI 12%、OA 8%

模型 通用Avg HFS EC&BM EPI RM&PR ACSM Total ES SP Nutr PD ET PI OA NSCA Total
Llama-3.1-8B 52.41 45.12 46.99 37.19 44.21 42.26 51.80 66.16 56.20 53.87 63.63 89.31 51.51 60.37
Ministral-3-8B 50.93 41.93 59.04 45.21 40.91 46.59 66.93 71.82 58.90 54.61 52.67 87.43 48.87 63.03
InternLM3-8B 55.35 44.44 54.32 30.02 30.18 39.65 56.14 66.34 59.32 44.35 52.43 74.03 48.12 55.69
GLM-4-9B-0414 62.27 51.44 55.26 48.83 42.87 50.56 69.44 73.30 56.86 68.99 50.11 75.99 47.30 65.12
Qwen3-8B(基座) 67.90 52.64 59.84 45.93 55.36 51.59 68.18 74.83 62.76 69.03 64.12 89.98 53.84 69.64
FitOne-8B 70.83 54.21 61.77 56.44 56.78 56.79 72.78 87.26 67.68 78.68 79.72 90.59 71.57 78.51
提升 +4.32% +2.98% +3.23% +22.88% +2.57% +10.09% +6.75% +16.61% +7.84% +13.98% +24.33% +0.68% +32.93% +12.73%

3.2 主结果:32B(Table III,仅列 Total)

模型 通用Avg ACSM Total NSCA Total
10B < 规模 < 100B
Gemma-3-27B 75.71 65.59 78.24
GPT-OSS-20B 74.76 65.39 78.52
Qwen3-30B-A3B 72.76 62.51 76.66
GLM-4-32B-0414 73.49 67.78 77.99
规模 > 100B
DeepSeek-V3.2 78.02 72.76 82.23
Doubao-Seed-2-Lite 80.13 72.33 82.64
Gemini-3.1-Flash 80.25 71.28 80.97
Qwen3.5-Flash 84.42 75.05 80.37
GPT-5.4-Mini 80.72 71.31 80.19
Claude-Haiku-4.5 85.10 74.07 79.23
Qwen3-32B(基座) 72.67 69.85 78.20
FitOne-32B 75.19 76.35 83.68
提升 +3.47% +9.29% +7.01%

结论:FitOne-32B 的领域分(76.35 / 83.68)打平甚至超过 DeepSeek-V3.2、Gemini-3.1-Flash、GPT-5.4-Mini 等 100B+ 闭源模型,只在个别子域小幅落后。

3.3 🔍 审稿人验算一:Total 是固定凸组合,且能被复现

论文说 Total 按各域百分比加权。设 wdw_dwd 为域权重(∑dwd=1\sum_d w_d = 1dwd=1),则

Total=∑dwd⋅sd\text{Total} = \sum_d w_d \cdot s_dTotal=dwdsd

以 FitOne-8B 的 ACSM-EP 代入 (wHFS,wEC&BM,wEPI,wRM&PR)=(0.33,0.20,0.40,0.07)(w_{\text{HFS}},w_{\text{EC\&BM}},w_{\text{EPI}},w_{\text{RM\&PR}})=(0.33,0.20,0.40,0.07)(wHFS,wEC&BM,wEPI,wRM&PR)=(0.33,0.20,0.40,0.07)

0.33(54.21)+0.20(61.77)+0.40(56.44)+0.07(56.78)=17.889+12.354+22.576+3.975=56.79 ✓0.33(54.21) + 0.20(61.77) + 0.40(56.44) + 0.07(56.78) = 17.889 + 12.354 + 22.576 + 3.975 = 56.79\ \checkmark0.33(54.21)+0.20(61.77)+0.40(56.44)+0.07(56.78)=17.889+12.354+22.576+3.975=56.79 

基座 Qwen3-8B 同法得 0.33(52.64)+0.20(59.84)+0.40(45.93)+0.07(55.36)=51.59 ✓0.33(52.64)+0.20(59.84)+0.40(45.93)+0.07(55.36)=51.59\ \checkmark0.33(52.64)+0.20(59.84)+0.40(45.93)+0.07(55.36)=51.59 。NSCA-CSCS 七域加权同样精确复现 78.51 与 69.64。打分口径自洽,数据可信。

3.4 🔍 审稿人验算二:8B 的 ACSM 提升约 81% 只来自 EPI 单一子域

总提升可做贡献度分解ΔTotal=∑dwd Δsd\Delta\text{Total} = \sum_d w_d\,\Delta s_dΔTotal=dwdΔsd。ACSM-EP 上 ΔTotal=56.79−51.59=5.20\Delta\text{Total}=56.79-51.59=5.20ΔTotal=56.7951.59=5.20,各域贡献:

0.40×10.51⏟EPI=4.20+0.33×1.57⏟HFS=0.52+0.20×1.93⏟EC&BM=0.39+0.07×1.42⏟RM&PR=0.10≈5.20\underbrace{0.40\times10.51}_{\text{EPI}=4.20} + \underbrace{0.33\times1.57}_{\text{HFS}=0.52} + \underbrace{0.20\times1.93}_{\text{EC\&BM}=0.39} + \underbrace{0.07\times1.42}_{\text{RM\&PR}=0.10} \approx 5.20EPI=4.20 0.40×10.51+HFS=0.52 0.33×1.57+EC&BM=0.39 0.20×1.93+RM&PR=0.10 0.07×1.425.20

EPI 一个域就贡献了 4.20/5.20≈80.8%4.20/5.20 \approx 80.8\%4.20/5.2080.8% 的全部 ACSM 提升,其余三域合计才约 1 分。而 EPI(Exercise Prescription and Implementation,运动处方与实施)恰恰是 CPT 语料里 ACSM《运动测试与运动处方指南》最直接覆盖的内容——这把"训练源与考试源同源"的担忧从口头变成了定量证据(详见 5.2)。

但要公允:这个集中现象是 8B 独有的。 对 32B 同样分解(ΔTotal=76.35−69.85=6.50\Delta\text{Total}=76.35-69.85=6.50ΔTotal=76.3569.85=6.50):

0.40×7.62⏟EPI=3.05 (47%)+0.33×4.61⏟HFS=1.52 (23%)+0.20×6.56⏟EC&BM=1.31 (20%)+0.07×8.73⏟RM&PR=0.61 (9%)≈6.50\underbrace{0.40\times7.62}_{\text{EPI}=3.05\,(47\%)} + \underbrace{0.33\times4.61}_{\text{HFS}=1.52\,(23\%)} + \underbrace{0.20\times6.56}_{\text{EC\&BM}=1.31\,(20\%)} + \underbrace{0.07\times8.73}_{\text{RM\&PR}=0.61\,(9\%)} \approx 6.50EPI=3.05(47%) 0.40×7.62+HFS=1.52(23%) 0.33×4.61+EC&BM=1.31(20%) 0.20×6.56+RM&PR=0.61(9%) 0.07×8.736.50

32B 上提升分散得多,EPI 仅占 47%。若纯是数据泄漏,理应跨规模一致;32B 的均衡分布反而暗示存在真实能力增益,或 8B 更易走"记忆捷径"。这个对比让污染故事更精细、也更可信——不是一句"泄漏了"能打发的。

3.5 消融:每个阶段都不可省(Table IV,FitOne-8B)

CPT SFT RL 通用 ACSM-EP NSCA-CSCS
67.90 51.59 69.64
66.24 53.82 72.15
69.45 52.91 73.80
70.12 55.48 76.92
69.80 54.10 75.33
70.83 56.79 78.51

读法与推导呼应:CPT 打地基(领域↑,通用因领域漂移轻微↓ 67.90→66.24);SFT 补推理 + 救通用(回升到 70.12,印证推导一的 mass-covering 恢复了泛化覆盖);RL 做对齐冲顶。CPT 不可省的硬证据:完整 pipeline 比 SFT+RL 在 ACSM 高 2.69、NSCA 高 3.18。

3.6 领域基座 vs 通用基座:谁是更好的起点(Table V)

模型 HFS EC&BM EPI ES PD ET
Qwen3-8B(微调) 53.50 60.90 50.20 70.50 73.40 72.10
FitOne-8B(零样本 54.21 61.77 56.44 72.78 78.68 79.72
FitOne-8B(微调) 56.80 64.30 60.50 75.60 82.40 83.50

全文信息量最高的一张表。 两条结论:① FitOne 微调后全面碾压 Qwen3 微调(PD +12.26%、ET +15.81%);② 零样本 FitOne 就已超过微调后的 Qwen3。即领域后训练不仅给强零样本,还抬高了下游微调天花板——领域基座是比通用基座更好的初始化点。这条经验对做垂类的人最实用。

3.7 跨规模/架构泛化(Table VI)

模型 通用 ACSM-EP NSCA-CSCS
Qwen3-4B → FitOne-4B 64.12 → 66.25 47.35 → 52.40 63.80 → 65.15
Qwen3-8B → FitOne-8B 67.90 → 70.83 51.59 → 56.79 69.64 → 78.51
Qwen3-14B → FitOne-14B 70.15 → 71.80 58.42 → 64.30 74.10 → 80.65
Qwen3-32B → FitOne-32B 72.67 → 75.19 69.85 → 76.35 78.20 → 83.68
Qwen3-30B-A3B → FitOne-30B-A3B 72.76 → 76.85 62.51 → 73.15 76.66 → 86.40

pipeline 在 4B~32B、稠密与 MoE 上一致有效。彩蛋:MoE 变体(30B-A3B)拿到最大领域涨幅——ACSM +17.02%、NSCA +12.71%。作者归因于解耦专家路由提供更大表征空间、缓解通用/领域数据的梯度冲突(见 5.1 的机制补充)。


4. 关键发现提炼

  1. 三段式配方在垂类成立:CPT 灌知识(前向 KL 覆盖)→ SFT 教推理 + 救通用 → RL(DAPO)做 mode-seeking 对齐,消融证明缺一不可(尤 CPT)。
  2. 小模型 + 领域后训练 ≈ 巨型通用模型的领域表现:8B/32B 在认证考试上追平 100B+ 闭源。
  3. 领域基座是更强的微调起点:零样本领域模型 > 微调后通用模型。
  4. MoE 对领域知识吸收更友好:解耦路由缓解梯度冲突,涨幅最大。
  5. 通用能力几乎无损:全程注入通用数据 + 两阶段退火 + token 级归一化对抗遗忘与长度偏置。

5. 一点思考

5.1 做得漂亮的地方

  • Table V 的论证最有价值。"零样本领域模型打赢微调后的通用模型"回答了"要不要专门做领域基座"这个常被质疑的投入——先领域化基座、再任务微调,比拿通用基座硬调更划算
  • 消融够诚实。它没掩盖 CPT 拉低通用分(67.90→66.24),而是讲清 SFT 如何填坑。敢展示 trade-off 的论文比一味报喜的可信。
  • MoE 观察是意外之喜。补一句机制视角:MoE 缓解梯度冲突,本质与多任务学习里的梯度手术(如 PCGrad 抵消冲突梯度分量) 同源——通用与领域两个任务的梯度方向若在共享参数上冲突,稠密模型只能折中,而 MoE 的稀疏路由让不同专家承接不同分布,等效于给冲突梯度开辟正交子空间。这个解释若能用专家激活分布的实证支撑,会是一篇独立的好工作。

5.2 我最想追问的几点

  • 评测与动机的构念错位——最大软肋。 动机卖的是"动态带练、应对健康约束、开放式营养处方、安全敏感"(程序性能力),交卷却全是认证考试(陈述性知识)。而专门为开放式任务训练的 RM\text{RM}RMRRMR_{\text{RM}}RRM),在报告的主结果里几乎没有独立出现过。一句话:论文用"能当好教练"立意,却用"能通过教练资格考试"结账。会做题 ≠ 会带练,这正是部署时最危险的缝隙。建议补:开放式处方的人评 / RM 独立信度、安全约束满足率、真实对话式带练评测。
  • 数据同源已被 3.4 的验算坐实(部分)。 8B 上 ~81% 的 ACSM 提升集中在 EPI,而 EPI 恰是 CPT 所用 ACSM 指南最直接覆盖的域。这不是普通领域相关,而是训练源与命题源高度同源。必须补 n-gram / 语义级的训练-测试去重与污染分析,否则领域分的绝对值要打问号。可取的是 32B 上提升分散,说明并非全是记忆捷径——但正因如此,更该把污染分析做实来区分"真增益"与"背题"。
  • "去 KL + 学习式 RM"是理论上最危险的过优化配置。 由推导八,DAPO 去掉了到参考策略的 KL 缰绳;而开放式任务的奖励是学习到的 RM——这是 Goodhart 型奖励过优化(reward over-optimization)的经典温床:没有 KL 约束时,策略会一路顶着 RM 的代理误差跑,把 RM 的漏洞当特征刷。叠加 2.3.1 指出的"格式分可与内容分同权相加",模型完全可能学出"套 FITT-VP 模板 + 迎合 RM 偏好"的表面合规、内里危险的处方。论文靠 Clip-Higher + 动态采样保稳定,但没有报告 RM 的准确率/校准、也没有过优化曲线,这在安全敏感域是硬缺口。
  • 信用分配是粗粒度的。 由推导四,outcome 优势广播到整条序列,错误中间步会被连带强化。对以"分步推理可追溯"为卖点的 SFC,值得上过程奖励(PRM)做细粒度信用分配。
  • 关键数据细节缺失,复现性打折。 30B tokens 的 SFC:通用配比、RegMix 最终混合分布、RM 的标注量与标注者一致性——都是载重信息却一笔带过。对一篇主打"严谨知识工程"的论文,这块透明度与口号不匹配。
  • 方法新颖性有限(非缺点,但措辞需收敛)。 整条 pipeline 是 R1 式"CPT→SFT→RL + 可验证奖励"的领域落地,真正贡献在数据工程与领域适配。这完全 OK,只是个别处包装得比实际更新颖。正文 “cntinual”、“matches even exceeds” 等笔误也透着 early preprint 的赶工味。

5.3 对行业 / 对我们的启发

  • "小垂类模型跑本地"路线的一个干净数据点。 8B 健身模型在领域任务上追平 100B+ 云端巨兽——领域能力不必靠堆参数,靠数据工程 + 后训练配方。这是"专精之作 vs 百科全书"论证的一手证据。
  • 配方可迁移。 “子域分类体系 → Self-QA Agent 生成三元组 → 多维校验 → 两阶段退火 SFT → 混合奖励 DAPO” 这条链路,几乎可原样搬到法律、医疗、税务等垂直域。对"harness 工程 + 本地硬件跑垂类 agent"的选型是现成模板。
  • 落地前必须补齐评测的最后一公里。 FitOne 反过来提醒:只用"通过某考试/基准"验收垂类模型,会系统性高估部署就绪度。真实开放式生成、安全约束、边界 case 的评测,才是垂类落地真正的护城河——也恰是本文留白最多处。

6. 结语

FitOne 是一篇"方法不惊艳、但工程扎实、结论可用"的垂类后训练范本。它最有说服力的地方不是刷高领域分,而是把"为什么要做领域基座、每阶段各贡献什么"用消融与对照讲清楚了——Table IV 与 Table V 值得反复看。

而它没说清的部分——评测与动机的构念错位、被 EPI 贡献度坐实的数据同源、去 KL 叠加学习式 RM 的过优化风险、粗粒度信用分配——与其说是硬伤,不如说是留给后续工作三个非常明确的坑:把评测从"考试"推向"真实开放式带练 + 安全红队",把数据工程透明度补齐并做污染分析,把奖励从 outcome 推向 process 并给 RM 上校准与 KL 护栏。 谁先填上这三个坑,谁才算真正把"可靠的健身智能"这句话兑现。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐