Skip to main content
Back to Showcase

猫娘大模型的自进化:On-Policy Self Distillation 让猫娘自己涌现推理能力

Author:MindsRiverPonderModel:MiniCPM5-2B

No teacher, no new base model: math reasoning emerges from self-distillation

一、前言​

训练一只有推理能力的猫娘,就一定需要一个更强大的优质猫娘老师吗?可是,上哪找那么优质的猫娘呀(悲)。唉,只可惜自己不是猫娘,喵。

那怎么办呢喵?

我记得一句古话,子非猫娘,安知猫娘?最懂猫娘的是猫娘自己!我们能不能让猫娘利用自己已经检验正确的思路,继续提高推理能力?

图片以漫画形式呈现,探讨猫娘利用自身经验提升推理能力的思路。左侧猫娘思考找更强猫娘老师,中间猫娘自问偶尔能做对题,右侧猫娘让“开卷的自己”辅导“闭卷的自己”,并借助成功经验帮助自己走得更稳。底部文字总结“最懂猫娘的,可能真的是猫娘自己”。图片与上下文紧密相关,直观呈现了上下文提到的猫娘从自身成功经验中学习,以提高推理能力的设想。

你看啊,猫娘本身还是有推理能力的,同一道题让她尝试几次,有时能写出正确解答,有时会走歪。既然她已经偶尔能做对,那这些正确的解题经验能不能用得更充分一点?从猫娘自身已经展现出的能力出发,让她把偶尔能走通的路,走得更稳一些。 猫娘也有自己的学习节奏嘛。外部教师的解法再漂亮,猫娘自己的思路也值得培养,不能只顾着灌输标准解法呀。我们认为这种灌输打压式的教育可能不适合猫娘。

如何做到呢喵?

最直接的办法,是把她做对的回答挑出来,再拿去训练她。这就是本文的一个对照方案:RFT(Rejection Fine-Tuning)。让模型多次尝试,保留通过验证的回答,然后进行监督微调。简单理解,就是把猫娘做对的过程整理出来,让她复习自己的正确思路。

但这些正确解答,除了直接拿来复习,还能不能换一种用法?

猫娘再次做题时,未必会沿着以前的正确思路走,猫娘可不死板!她可能换一个解法,也可能在某一步开始犹豫。RFT 直接训练的是那些已经筛出的正确回答;而猫娘当前实际写出的推理,尤其是那些开始偏离参考解的部分,并不会直接进入这种训练。

那能不能利用已有的正确解答,在她自己写出的推理上,指导她下一步更应该怎么走?

于是,这次我们对 On-Policy Self-Distillation,简称 OPSD 做了一些适配。它的直觉是:让正在训练的猫娘自己做题,同时保留一份冻结在训练起点的自己。这个“开卷猫娘”可以看参考解,并沿着学生已经写出的推理,判断下一步更适合怎么写。

学生负责独立作答,老师可以看参考解;老师会判断下一步各种写法分别有多合适,形成一个 token 概率分布;训练再让学生向这个判断靠近。公式后面再展开,这里可以先理解成:猫娘一边做题,一边向“拿着参考解的初始自己”学习。开卷的自己辅导闭卷的自己,我暂时不用再聘请外教惹。

为此,这次实验以 MiniCPM5-2B 的猫娘数学冷启动模型为共同起点,比较 RFT 与经过适配的 OPSD。

本文主要开展了三方面工作:

  • 构建共同训练集: 从 DAPO-Math-17k 随机抽取的 5,000 道候选题出发,让冷启动模型每题尝试 8 次,一共生成40000条rollout,筛选难度并进行长度过滤,最终得到 1,613 道训练题。RFT 和 OPSD 使用相同题目及相同的正确参考回答。
  • 比较两种学习方式: RFT 直接学习筛出的正确回答;OPSD 则在学生自己生成的推理轨迹上学习教师分布。我们对 OPSD 进行了三个随机种子的训练,观察结果是否能够重复出现。
  • 同时检查数学和猫娘人格: 对冷启动、RFT 和三个 OPSD 模型,在 620 道题上每题各采样 4 次,共分析 12,400 条评测输出。人格评测由 Qwen3.8-flash-next 和 DeepSeek-v4-flash 分别打分,同一维度的评分取等权平均。所有回答都进行猫娘人格评测,对于未通过数学验证的回答,再额外分析推理质量与失败类型。
  • 顺便给猫娘推理自进化事业,再添一篇靓丽的学术垃圾(bushi

二、实验方法与设置​

2.1 冷启动,先把模型变成猫娘!​

本次实验以 MiniCPM5-2B 为基础,使用我构建并开源的猫娘数学推理数据集 NekoMath 进行全参数 SFT。数据覆盖数论、几何、代数、微积分等数学问题,也包含猫娘风格的推理与作答。

https://huggingface.co/datasets/liumindmind/NekoMath

这个阶段主要是让模型学习数学推理、猫娘角色表达和最终作答格式。我们希望她能把猫娘身份自然融入数学思考。

这张图片展示的是猫娘大模型冷启动阶段的相关内容,主题为“2.1 SFT冷启动:先养出一只有数学基础的猫娘”,采用MiniCPM5-2B结合NekoMath,通过全参数SFT(共3个epoch)完成冷启动,得到“coldstart”猫娘。该冷启动过程中,模型学习了数论、几何、代数、组合数学、概率与统计等数学基础,从仅有的MiniCPM5-2B,成长为具备数学基础、能自主完成部分数学学习任务的猫娘。图片说明后续的RFT和三个随机种子的OPSD实验,都将从该coldstart猫娘出发,对比不同训练方法的效果。

Loss 走势如下。冷启动共训练 3 个 epoch,全局 batch size 为 32:

图片展示的是猫娘大模型训练过程中的train loss变化情况。横轴为optimizer step(优化器步数),纵轴为train loss。蓝色折线代表raw loss(per step),蓝色实线为moving avg(win=10)。图中用橙色虚线标注了epoch 1/2的位置,初始train loss为1.1296,最终为0.9150。该图与上下文紧密相关,直观呈现了冷启动后猫娘在后续训练中loss的变化情况,为后续训练数据处理提供参考。

后面的RFT 和三个随机种子的 OPSD 都从同一个 coldstart 猫娘出发,对比两种训练方法会把猫娘带向哪里。

2.2 后续训练数据处理:挑出猫娘“会一点,但还不太稳”的题​

我从 DAPO-Math-17k 随机抽取了 5,000 道英文题,并将题目翻译为中文,让冷启动后的猫娘每题独立尝试 8 次。采样采用 temperature=1.0、top-p=0.95、最大生成长度 16,384 tokens,随机种子为 42。

数据筛选流程如下图所示。我们优先保留猫娘已经能够偶尔答对、但还没有学稳的题。

这张图展示的是猫娘大模型实验中共同训练题的筛选流程,对应文档里的数据筛选环节,核心是挑选“会一点,但还不太稳”的题。整个流程分为三步,第一步是让coldstart模型对5000道DAPO-Math-17K候选题每题独立尝试8次,累计获得40000条rollout数据;第二步按8次回答中的答对次数筛选,8次全错或8次全答对的题均被排除,仅保留2-5次答对的1848道题;第三步整理这些题,固定每条选1条通过验证的回答,结合完整训练序列,最终得到1613道共同训练题,这些题对应“已经会一点但还没学稳”的特点,符合文档里筛选数据的要求。

最终留下 1,613 道共同训练题,每题配一条选定参考回答。RFT 和 OPSD 拿到的是同一份训练题,接下来要比的,就是两种方法分别怎么学喵。

2.3 RFT:把做对的思路再复习一遍​

RFT 的流程如下图所示:先筛选通过验证的回答,再对选定回答进行标准 SFT。其特点主要在数据筛选,没有更换训练损失喵。

这张图对应文档中“2.3 RFT:把做对的思路再复习一遍”的内容,清晰展示了RFT的两大核心步骤。第一步是先挑出做对的思路,由数学验证器判断内容,需满足答案标签标注正确、最终答案通过等价性验证等要求,通过的回答即为符合标准的成功轨迹;第二步是再把整条思路拿回来复盘,需学习整条正确思路,主要从推理方法、猫语表达、句子生成这三个方面学习。最终RFT的核心逻辑为“自己生成的成功回答 + 答案验证筛选 + 标准SFT”,是猫娘模型将自身偶尔成功的��解题思路巩固得更稳定的关键环节。

对于训练数据,你claude叔叔的解答即使正确,推理方式也可能和这只猫娘当前已经掌握的推理习惯存在一定 gap。猫娘模型自行生成并通过验证的回答,则是自身已经能够产生的成功轨迹。因此,本次 RFT 希望从更贴近模型已有解题方式的经验出发,将偶尔成功的表现巩固得更稳定。

本次 RFT 的配置如下:

RFT 参数设置
训练轮数2 epochs
全局 batch size8
学习率1.00E-06
最大训练序列长度8,192 tokens
随机种子42

但 RFT 学的仍然是这些固定下来的成功轨迹。猫娘下一次自己做题时临场走出的新路线,并不会直接拿来训练她。下一节的 OPSD,就把学习搬到了她自己这一次实际写出的轨迹上。

2.4 OPSD:开卷的自己,指导闭卷的自己​

OPSD 的流程如下图所示:猫娘(学生)先独立生成回答,冻结的猫娘(教师)再利用参考解,在同一条学生轨迹上提供分布指导,训练只更新学生参数。

图片展示了猫娘大模型的On-Policy Self Distillation(OPSD)实验方法与设置。猫娘先独立作答,学生生成的回答作为参考解答;学生看到当前前文,教师看到学生前文和参考解答,判断下一步更可能怎么写;学生根据教师的评分,更新自己对答案的分布;教师根据学生答案的分布,更新自己对答案的分布。此图直观呈现了OPSD的四个步骤,与上下文对OPSD方法的介绍相呼应。

设题目为 xx ,猫娘人设为 ss ,参考解答为 rr ,学生生成的回答为 y^\hat y 。在第 tt 个位置,双方看到相同的学生前文 y^<t\hat y_{<t} , pt(v)p_t(v) 表示学生预测下一个 token 为 vv 的概率, qt(v)q_t(v) 表示教师预测同一个 token 的概率。 学生根据猫娘人设、题目和已有前文判断,教师则额外看到参考解:

pt(v)=pθ(v∣s,x,y^<t),qt(v)=pθ0(v∣s,r,x,y^<t).\begin{aligned} p_t(v)&=p_\theta(v\mid s,x,\hat y_{<t}),\\ q_t(v)&=p_{\theta_0}(v\mid s,r,x,\hat y_{<t}). \end{aligned}

其中, θ\theta 是持续更新的学生参数, θ0\theta_0 是冻结的冷启动猫娘参数, vv 是词表中的token。

本次实验采用前向 KL,比较双方的下一 token 分布:

Kt=DKL(qt∥pt)=∑v∈Vqt(v)log⁡qt(v)pt(v).K_t=D_{\mathrm{KL}}(q_t\|p_t) =\sum_{v\in\mathcal V}q_t(v)\log\frac{q_t(v)}{p_t(v)}.

V\mathcal V 是整个词表。换句话说,老师会判断下一步各种写法分别有多合适,学生再向这个判断靠近,对齐的是整个下一 token 分布。

对位置 KL 进行平滑压缩,再先按回答平均、后按 batch 平均,得到实际训练损失:

L=1B∑i=1B1Ti∑t=1Ti5tanh⁡(Ki,t/5).\mathcal L= \frac1B\sum_{i=1}^{B}\frac1{T_i} \sum_{t=1}^{T_i}5\tanh(K_{i,t}/5).

BB 是回答数量, TiT_i 是第 ii 条回答的生成长度。压缩方式与官方实现的区别,下一节展开。

学生先独立生成回答,再沿这条回答计算蒸馏损失,教师分布不参与反向传播,梯度只通过学生传播。当然咯,在线生成的回答即使已经走歪,也照样可以拿来计算蒸馏损失——这些“走歪的位置”本身也是训练发生的地方。当然,教师本身仍然是一只模型猫娘,参考解只是给她更多上下文,并不意味着每一步判断都绝对正确。

本次 OPSD 的配置如下:

OPSD 参数设置
训练轮数2 epochs
全局 batch size8
学习率1.00E-06
学生最大生成长度8,192 个新 token
学生完整序列上限10,240 tokens
教师完整序列上限20,480 tokens
在线采样temperature=1.0,top-p=0.95
rollout buffer3
随机种子42、1234、5678

2.5 Neko-OPSD:我们对 OPSD 做了哪些适配?​

本次保留 OPSD 的核心机制,主要适配如下图所示。

这张图是对猫娘大模型适配OPSD的核心机制说明,标题为“2.5 Neko-OPSD:我们对OPSD做了哪些适配?”,明确标注核心机制保持一致,在全参数训练、教师上下文与损失计算上进行适配。图中将本次适配的Neko-OPSD与官方固定教师示例做对比,分别梳理了学生怎么训练、参考解如何处理、KL损失处理方式、损失汇总方式等差异点,还说明了任务配置发生了变化,保留OPSD的自生成轨迹与开卷教师,同时重新组织针对偏数学任务和全参数训练的结构,适配细节用不同色块区分,清晰呈现了关键调整内容。

目标函数的主要差别有两点:KL 损失是先逐项裁剪再求和,还是先求和再整体压缩;不同长度的回答,是按 token 平均,还是按回答平均?

先看 KL 怎样处理。

在同一个生成位置,学生和教师会对各种可能的下一 token 分配概率,沿用上一节的学生分布 ptp_t 和教师分布 qtq_t ,每个候选 token 对 KL 的贡献为:

ℓt,v=qt(v)log⁡qt(v)pt(v).\ell_{t,v}=q_t(v)\log\frac{q_t(v)}{p_t(v)}.

其中, tt 表示生成位置, vv 表示词表中的一个候选 token。把所有候选项的贡献相加,就得到这个位置的完整 KL。

官方示例先给每个候选项的贡献设上限:超过 0.05 的部分截到 0.05,再将它们相加。本次则先计算整个位置的 KL,再对这个总量进行平滑压缩:

Ctofficial=∑v∈Vmin⁡(ℓt,v, 0.05),Kt=∑v∈Vℓt,v,K~tNeko=5tanh⁡(Kt/5).\begin{aligned} C_t^{\mathrm{official}} &=\sum_{v\in\mathcal V}\min(\ell_{t,v},\,0.05),\\ K_t&=\sum_{v\in\mathcal V}\ell_{t,v},\\ \widetilde K_t^{\mathrm{Neko}} &=5\tanh(K_t/5). \end{aligned}

可以理解为:官方先分别限制各个候选项,再合起来;本次先合起来,再限制这个位置的整体影响。当 KtK_t 较小时,本次压缩后的值接近原始 KL;当 KtK_t 较大时,增长逐渐放缓,对应的学习信号也随之减弱。

因此,官方裁剪可以改变不同候选项之间的相对梯度贡献,本次则统一减弱高 KL 位置的梯度。最直观的作用是:某一步师生分歧特别大时,先让学生在这一步少学一点,降低少数高分歧位置对整批训练的牵引。

再看长短不同的回答怎样参与平均。

设一个 batch 有 BB 条回答,第 ii 条回答包含 TiT_i 个有效生成位置,两种汇总方式分别为:

Lofficial=∑i=1B∑t=1TiCi,tofficial∑i=1BTi,\begin{aligned} \mathcal L_{\mathrm{official}} &=\frac{\sum_{i=1}^{B}\sum_{t=1}^{T_i}C_{i,t}^{\mathrm{official}}} {\sum_{i=1}^{B}T_i},\\ \end{aligned} LNeko=1B∑i=1B1Ti∑t=1TiK~i,tNeko.\begin{aligned} \mathcal L_{\mathrm{Neko}} &=\frac1B\sum_{i=1}^{B}\frac1{T_i} \sum_{t=1}^{T_i}\widetilde K_{i,t}^{\mathrm{Neko}}. \end{aligned}

官方当前代码把所有有效位置放在一起平均;本次先分别计算每条回答的平均损失,再对回答求平均。例如,两条回答分别有 100 和 1,000 个 token。按 token 平均时,长回答提供的位置数是短回答的 10 倍;按回答平均时,则先各自算出一个平均损失,再各占 50%。也就是说,官方当前代码让每个有效位置等权,本次让每条回答等权。 本次不会仅因为一条回答写得更长,就让它在汇总中占据更大权重。

图里的其余变化主要涉及训练方式、教师上下文和运行配置,已经在图中列出来了,这里就不逐项展开啦喵~

2.6 评测设置:数学提高了,猫娘还在吗?​

统一评测 coldstart、RFT 和三个随机种子的 OPSD,共五组检查点。题目来自 AIME 2023~2026、GSM8K test、MATH-500、LiveBench Math、MathBench 和 DAPO-Math-17k:四年 AIME 合计 120 题,其余五类各取 100 题,共 620 条题目记录。

各组使用相同的人设提示词和采样种子规则,每题生成 4 条回答,采样参数为 temperature=1.0、top-p=0.95、最大生成长度 16,384 tokens。

图片展示了猫娘大模型数学评测的统一评测设置。5个模型(coldstart、RFT、OPSD - 42、OPSD - 1234、OPSD - 5678)使用相同的人设提示词和采样种子规则,每题生成4条回答,采样参数为temperature=1.0、top-p=0.95、最大生成长度16,384 tokens。共620题目录记录,每题4次采样,每个模型2,480条回答,共12,400条评测输出。评测采用严格答案验证,需包含唯一、格式合规且非空的...,并进行等价性检查。

数学评测采用严格答案验证:回答需包含唯一、格式合规且非空的 <answer>...</answer>,提取出的答案还需通过等价性检查。Pass@4、rollout 正确率和答案标签合规率的定义见图,分别观察数学覆盖、重复采样表现与输出规范性。

这张图对应文档中“2.6评测设置:数学提高了,猫娘还在吗?”的内容,是2.6-B统一评测(下)的相关说明。该评测流程为全部回答都经过猫娘人格评测,未通过数学验证的回答会额外分析失败原因。图中展示了猫娘人格评测的相关维度,包含角色一致性、角色特异性、自然度等8项维度,还呈现了不同模型的表现占比,同时列出了失败诊断的方向,涵盖计算错误、回答未完成等错误类型与解题进度、推理正确性等诊断维度。

全部回答都进行猫娘人格评测,输入包含完整推理过程与最终回复。

由 Qwen3.8-flash-next 和 DeepSeek-v4-flash 分别评分。人格及推理维度均采用 0~4 分;同一条回答、同一维度的评分将大肥鱼和Qwen3.8的分数先平均一下,再统计各组表现。各维度分别报告,不合成一个总分。

未通过数学验证的回答,在人格评分之外额外进行推理质量与失败诊断。分类标签保留两位评审各自的判断。


三、实验结果:数学提高了,猫娘还在吗?​

现在轮到猫娘们交成绩单惹,我们先看题做得怎么样,再看看做题的猫娘,还是不是原来那只猫娘。

3.1 数学成绩:复习有效,自蒸馏还能再进一步吗?​

先看数学成绩。如图,在本次实验中,RFT 的两项指标都超过冷启动模型:把猫娘自己做对的回答拿回来复习,确实有用。

图片展示了猫娘大模型在数学成绩方面的实验结果。左侧(a)是Pass@4指标,即四次尝试中至少成功一次的题目比例,RFT为64.84%,Neko-OPSD平均比RFT高4.78个百分点;右侧(b)是Rollout正确率,即全部生成回答中通过验证的回答比例,RFT为36.61%,Neko-OPSD平均比RFT高2.42个百分点。图片与上下文紧密相关,直观呈现了Neko-OPSD在数学成绩上的提升情况。

Neko-OPSD 则进一步提高了成绩:三个随机种子的两项指标都超过 RFT,平均 Pass@4 达到 69.62%,Rollout 正确率达到 39.03%,分别比 RFT 高 4.78 和 2.42 个百分点。这意味着,猫娘不仅能在四次尝试中做对更多题,全部回答中的通过比例也提高了。

因此,在本次实验设置下,沿着学生自己生成的轨迹学习教师分布,比直接复习固定正确回答取得了更好的数学成绩,且三个种子呈现出一致的提升方向。 复习自己的成功经验有效,开卷的自己还能再帮闭卷的自己一把喵。

3.2 猫娘人格:题做得更多了,猫娘味却淡了?​

OPSD把数学成绩提高了,猫娘人格有没有一起变好呢?

这张图对应文档中“猫娘人格:题做得更多了,猫娘味却淡了?”的内容,是猫娘人格相关维度的对比图表。图中对coldstart、RFT、Neko-OPSD三个类别,在角色一致性、角色特异性、自然度、技术清晰度、过度表演、重复六个人格维度上的表现做了对比,其中前四项分数越高越好,后两项分数越低越好。coldstart表现为原味猫娘,角色一致性、特异性最高;RFT的人格变化较为温和,技术清晰度有所提升,过度表演减少,自然度改善,角色特征下降不明显;Neko-OPSD回答更清楚、更少重复,但角色一致性、特异性和自然度都出现下降。

如图,RFT 的人格变化比较温和:角色一致性与角色特异性接近冷启动,自然度和技术清晰度有所提高,过度表演有所减少。复习自己的成功回答,既改善了表达,也没有伴随明显的角色特征下降。

Neko-OPSD 的变化则更鲜明:三个种子的技术清晰度都高于 RFT,过度表演与重复更少;但角色一致性、角色特异性和自然度也都下降了。 猫娘讲题更清楚、更少反复卖萌,却没有以前那么鲜明的身份和个性了。

因此,“更克制”不能直接等同于“人格更好”。减少口癖和重复可以改善表达,但如果角色特征也一起减少,留下来的解答虽然更规整,猫娘味却会变淡。

本次 Neko-OPSD 没有加入专门维持人格的奖励或约束。看起来这只猫娘学着学着有点沉迷数学:讲题越来越认真,猫娘味却忘记带上一些惹。 另外,这些评分反映的是全部回答的整体表现;人格变化主要发生在答对时还是失败时,还需要结合分组结果判断。

3.3 作答行为:写得更长,交卷格式却更容易出问题?​

除了成绩和人格,猫娘的作答方式也发生了变化。

这张图片呈现了猫娘模型训练后作答行为的相关实验统计结果,分为(a)平均输出长度和(b)答案标签符合率两部分。(a)部分显示,冷启动模型的平均输出长度为2462.8 tokens,RFT模型为3337.9 tokens,OPSD - 1234模型为3690.8 tokens,Neko - OPSD模型进一步增至3750.6 tokens,Neko - OPSD相比RFT的输出长度提升了+11.4%。(b)部分则展示了各模型的答案标签符合率,冷启动为72.66%,RFT为72.34%,OPSD - 1234为62.58%,Neko - OPSD为67.14%,还标注了答案标签符合率相比冷启动下降的幅度为5.20% - 9.76%,直观体现了模型输出长度增加但答案标签合规性下降的趋势。

如图,RFT 的回答比冷启动更长,Neko-OPSD 又进一步增加了输出长度。不过,写得更长,不代表推理一定更深入。 这里统计的是包含思考过程的完整输出,长度增加只能说明生成了更多内容,是否有效还要结合具体回答判断。

与此同时,RFT 的答案标签合规率与冷启动接近,而三个 Neko-OPSD 都有所下降。数学通过率提高了,规范提交答案的能力却没有同步改善。

本次验证同时检查答案内容和提交格式,因此格式不合规也会被记为未通过。至于这些失败到底是“题算错了”还是“卷子没交好”,第四章再拆开看。

3.4 这轮自蒸馏,猫娘学到了什么?​

这张图对应文档中“作答行为:写得更长,交卷格式却更容易出问题?”的实验结果板块,标题为“3.4 这轮自蒸馏,猫娘学到了什么?”,将数学成绩、人格变化和作答行为的结果整合呈现。图中分为三部分:左侧显示数学能力提升,Pass@4、Rollout正确率提高,RFT先提升、Neko-OPSD进一步进步;中间对应表达方面,技术清晰度更高,但角色特异性与自然度下降;右侧体现作答行为变化,平均输出长度增加,答案标签合规率下降,同时总结了Neko-OPSD带来的数学与技术表达优势,伴随角色特征降低、输出变长等情况。

把几项结果放在一起看,RFT 的“复习”确实有效,Neko-OPSD 又进一步提高了数学成绩和技术清晰度;与此同时,角色特征变淡,输出变长,答案标签合规率也有所下降。

也就是说,数学能力、猫娘人格和作答规范并不会自动一起升级。 开卷的自己能帮助闭卷的自己做对更多题,但怎样保留猫娘个性、怎样让她乖乖交卷,仍然是另外两门功课。

接下来,我们就翻开那些没通过验证的卷子:她到底是完全不会,还是其实已经走了很远,只在计算、格式或最后几步摔了一跤?

四、失败分析:猫娘没答对的时候,脑子里走到哪了?​

除了统计做对多少题,我们还想翻开那些没通过的思路,看看里面留下了多少有效推理。

4.1 没通过验证,推理就没有价值吗?​

如图,RFT 的四项推理评分都高于冷启动,三个 Neko-OPSD 又都高于 RFT。按照两位评委的判断,训练后的未通过回答,平均包含更多成立的推理、更大的有效解题进展,也更接近可以修正的状态。换句话说,猫娘不只是作对了更多题;那些最后仍然没通过的回答,平均也“走得更远了一些”。

图片为猫娘大模型训练后未通过回答的分析图。左侧显示未通过回答数,冷启动1695,RFT1572,OPS D - 42 1535,OPS D - 1234 1516,OPS D - 5678 1485,失败回答数在减少。右侧从推理正确性、解题进度、答案接近度、错误可修复性四方面对比冷启动、RFT、OPS D - 42、OPS D - 1234、OPS D - 5678的数值,如推理正确性中冷启动为1.89,RFT为2.25等。该图与上下文内容相呼应,直观呈现了训练后未通过回答的多项指标情况。

这补充了第三章的成绩:猫娘不仅交对了更多卷子,剩下的未通过回答,也获得了更高的推理质量评分。

4.2 是题没做对,还是卷子没交好?​

如图,“未通过验证”可能来自数学过程出错、回答没有完成,或者答案提交不规范,而且几种问题也可能同时出现。

图片以猫娘形象呈现,探讨“未通过验证”的原因。分为三部分:①数学过程出错,如思��路走歪、解法错误等;②解答没有完成,虽有进展但未收尾;③答案提交不规范,格式不合规。还列举了常见错误提交方式,如答案内容为空、未使用标签等。图片与上下文紧密相关,直观呈现了“未通过验证”的多种可能性,帮助理解猫娘在实验中未答对时的可能情况。

本次实验中,RFT 的未通过回答有 43.64% 标签不合规,三个 Neko-OPSD 则为 54.88%~60.46%。这个比例确实更高,但它不能直接告诉我们“改一下格式就能答对多少题”,因为同一条回答完全可能同时存在格式问题和数学错误。

标签问题也不只是“忘记写”。验证器检查的是完整输出,并要求恰好出现一组非空答案标签;如果模型在思考段里先演示了一遍格式,正式回复里又写一次,同样会判定不合规。

排除标签不合规的回答后,三个 Neko-OPSD 剩余失败回答的四项推理评分仍高于 RFT。

4.3 Case Study:看看猫娘的脑子​

下面展示三个真实案例,分别观察算术执行、推理路线调整和局部计算错误。每个案例只对照同一道题的一次采样,用于理解具体表现。

案例一:会列式,还要算得对​

如图,三份回答都识别了“求总数再除以五”的方法,但执行结果不同:冷启动没有完成可核对的计算,RFT 在求和时出错,Neko-OPSD 则正确得到 60。

这张图片是案例一“会列式,还要算得对”的具体展示,围绕“每年夏天丽塔手工摘除植株上的六月甲虫,周一摘除39只,周二和周三每天都是周一的2倍,周四摘除48只,周五摘除57只,求她平均每天摘除多少只六月甲虫”这一题目展开,呈现了冷启动、RFT、Neko-OPSD三个模型的回答过程。其中冷启动和RFT未通过,Neko-OPSD通过,三者均识别了“先求总数再除以5”的思路,但冷启动未完成可核对计算,RFT求和出错,Neko-OPSD则准确完成计算,得到正确答案60,体现出差异主要在于能否准确执行已有思路。

这个案例的差异主要落在能否把已有思路准确执行到底。猫娘知道该怎么做,还得把每一步算对喵。

案例二:不是题目矛盾,是定理用错了​

冷启动与 RFT 都在错误推导后陷入矛盾,并将问题归给题目。Neko-OPSD 的这次回答也曾尝试类似套法,但随后否定了它,转向弦长关系,得到正确面积 106。

图片展示了猫娘大模型Neko-OPSD在AIME 2023测试集上的一次采样对照案例,题目是求正方形ABCD的面积。冷启动和RFT均未通过,Neko-OPSD��通过。图片分为三部分,分别呈现冷启动、RFT、Neko-OPSD的推理过程及结果。冷启动和RFT均因算术错误未通过,Neko-OPSD通过,其推理路线调整后得出正确答案106。图片与上下文紧密相关,直观呈现了案例中猫娘的推理过程及结果,帮助理解其遇到矛盾后调整推理路线的机制。

这个案例展示了遇到矛盾后调整推理路线的过程。

案例三:方法适用,也仍可能栽在算术上​

这次冷启动与 RFT 都正确得到 147,Neko-OPSD 却在适用的列式中算错每日总量,并沿着错误中间值继续计算,最终提交 91。

这张图是该文档中案例三的过程对比图,呈现了同一道算术题的三种处理结果,题目内容为“犬舍养有3只德国牧羊犬和2只斗牛犬,每只德国牧羊犬每天消耗5千克狗粮,每只斗牛犬每天消耗3千克狗粮,它们一周需要多少千克狗粮”,标准答案为147。其中冷启动、RFT都得出了正确的147,标注为通过;而Neko-OPSD算出了91,标注为未通过。图中分别展示了三者的计算过程:冷启动、RFT的计算方法正确,得出了正确结果;Neko-OPSD虽列式方法适用,但计算每日总量、周总量的过程均出错,最终沿错误中间值得到了错误答案,该案例说明即使用对方法,模型也可能在算术上出错。

这是一个可以保留原有方法、通过局部修正恢复答案的失败案例,但模型本次并没有自行修正。整体成绩更好,并不意味着每一道题、每一次采样都更优。 猫娘学会了更多,也仍会在熟悉的路上踩到小石子喵。


五、总结与思考:猫娘的下一位老师,可能就是她自己​

这次实验中,RFT 提高了猫娘的数学表现,Neko-OPSD 又在三个随机种子上进一步取得提升,同时也伴随着人格与作答方式的变化。成绩前面已经交代清楚,这里更想讨论的是:为什么开卷的自己,能够帮助闭卷的自己继续进步?

5.1 自己教自己,为什么还能学到东西?​

即使教师与学生来自同一个初始模型,开卷和闭卷面对的信息并不相同。 学生只能依靠人设、题目和自己已经写出的内容继续作答;教师额外看到了经过验证的参考解,因此面对同一段学生前文时,对“下一步怎么走”可以作出更有依据的判断。

OPSD 利用的正是这种信息差。教师借助额外上下文给出下一 token 的概率分布,学生再学习这个分布。直观地说,就是尝试把:拿着参考解时知道下一步怎么走慢慢变成:不看参考解,也更知道下一步怎么走。慢慢把知识自蒸馏到脑子里面。

这也是自蒸馏很吸引人的地方:指导不一定非要来自一个更大的外部模型,也可以来自模型自己在拥有更多信息时的判断。对于已经偶尔能够把题做对的猫娘来说,她自己那些成功经验,也就有了继续被利用的机会。

5.2 下一步,还想让猫娘学会什么?​

RFT 复习的是已经筛选好的成功轨迹,OPSD 则进一步沿着学生这一次实际写出的轨迹提供指导。猫娘重新做题时可能换一种方法,也可能在中途犹豫甚至走歪;这些实际会遇到的状态,也因此进入了训练。

这让参考回答有了另一种用法:它不只是一份拿来模仿的范文,也可以帮助教师判断——面对学生现在已经写到这里,下一步怎样继续更合适。

不过,这次实验也说明,猫娘学会做更多数学题,并不代表其他能力会一起变好。Neko-OPSD 提高了数学成绩和技术清晰度,同时也出现了角色特征变淡、输出变长、答案格式更容易出问题的现象。

所以下一步真正值得探索的,是怎样让教师在教数学的同时,也把角色表达、推理收束和规范交卷一起照顾好。难道真的没有这种算法吗(悲)

5.3 喵喵喵​

代码开源到github了喵。

https://github.com/mindsRiverPonder/NekoLLM-practice/tree/main/NekoMath-OPSD

Project info

Author
MindsRiverPonder