想象这样一间后厨:米其林三星主厨 o1 掌勺三十年,最拿手的是把复杂菜品拆解成步骤——先备料、再热锅,每一步都自言自语讲出理由,最后装盘。现在,一家小餐馆想拥有同样的手艺。把主厨的刀抢过来?不行,他的厨具(参数)从不外借。把成品菜端走?也不行,客人要的是“会做”而不是“看过”。于是大家想出一个办法:让主厨在旁边反复做菜,把每一次“备菜→推理→装盘”的全过程录成菜谱,再从几百份菜谱里挑出品相最好的,交给一位学徒照着练习。这个过程,就叫蒸馏(Distillation)。 OpenAI 的 o1 模型,就是那位深藏不露的主厨——它通过强化学习练出了惊人的“长链推理”能力。但它的内部参数不公开,直接调用又贵又慢。蒸馏技术要做的,就是把它推理时的“思路过程”采样出来、过滤干净、教给一个小模型。小模型虽然体格小,却因为“照着好菜谱练过”,能在数学、代码等任务上表现出接近 o1 的推理水平。本篇文章,就把这套“名厨菜谱传承术”的完整流程讲给你听:从蒸馏原理、推理链采样、数据过滤,到训练策略、效果评估、迭代优化,再到最后的落地部署。
对 AI 从业者来说,掌握 o1 推理蒸馏,意味着能用极低成本把最前沿的推理能力“移植”进自家小模型,是算法工程师在生产环境落地强推理能力的关键技能,也是模型压缩与部署岗位的硬通货。
可视化演示
展示o1模型思维链蒸馏、暗知识蒸馏的温度调节与分布迁移、以及不同规模蒸馏模型的性能对比。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+_captions.cot+'
蒸馏原理
米其林三星主厨 o1 的后厨里,每道菜都凝结着几十年的火候功力。想在小餐馆复刻他的手艺,既不能抢他的刀(拿不到权重),也不能只端走成品(答案不含推理)。蒸馏的想法很朴素:让主厨在旁边做菜,把从备菜到装盘的每一步都记录成文字菜谱——而 o1 的“菜谱”,就是它那长长的一条思维链(Chain of Thought,简称 CoT,即模型解题时一步步写下中间思考的文字过程)。
知识蒸馏(Knowledge Distillation)本质上是“教师-学生”架构:大模型当教师,小模型当学生。传统的 Hinton 蒸馏,学生学的是教师输出的概率分布——就像学徒站在旁边看主厨怎么“抖勺”,学那勺盐的微妙手感。到了 o1 时代,蒸馏的载体从抽象的概率分布变成了具体可读的文本推理链:教师输出什么、先想什么后想什么,全部摊开成一页页菜谱,学生逐字逐句地模仿。
这套架构里,知识迁移的对象有三个层次:第一层是最终答案(菜的外观);第二层是中间推理步骤(备菜、下锅的顺序);第三层是“思考习惯”——比如自我检查、多方案比较、发现矛盾就回头重算(主厨尝一口觉得咸了立刻补救的手法)。能力压缩的本质,是把教师模型在强化学习中习得的这套长链推理模式,固化成学生模型的参数;学生参数容量决定压缩上限,就像学徒的腕力决定了他能学到主厨几成颠勺功夫。
所以在蒸馏的世界里,抢刀没用、端菜也没用,真正值钱的永远是“主厨边做边说的那套思路”。搞清楚这一点,后面的采样、过滤、训练,都是围绕如何把这份思路完整地抄下来。
- logits 向量教师模型最后一层输出的未归一化分数,代表它对每个词“这一步该说什么”的原始偏好
- 温度稀释所有分数除以温度参数 τ,把过于尖锐的“自信”抹平,露出更深层的偏好结构
- 软标签分布对稀释后的分数做 softmax,得到一个概率分布 σ(·),相当于“口味打分分布”
- 分布距离KL 散度逐项计算两个分布的差异,值越小代表学生学得越像教师
推理链采样
想让学徒学会那道招牌菜,光一份菜谱不够——主厨做同一道菜十次,有九次成功,也可能失手一次。所以要让主厨反复做、反复录:这就是从 o1 里“采样”推理链。由于 o1 的参数不公开,我们只能通过 API 请求它的输出,相当于在厨房外探头探脑地记录主厨的口述。
实际采样时,最关键的是设计“请主厨开口讲步骤”的提示词。o1 的官方 API 出于安全考虑,往往只给你一段推理摘要而不给完整思考过程,所以工程上常退而求其次:用 Qwen、DeepSeek-R1 这类开放的强推理模型生成长 CoT,或者用精心构造的系统提示(比如“请逐步思考并输出中间过程”)引导模型展开推理。每条采样都设一个较长的最大生成长度,确保中间步骤完整落盘。
多次采样是提升数据质量的重要手段:同样一道题采 n 次,只要有一次成功,成功的那条链就能进训练池。数学上用 pass@k 描述这种“多试几次”的收益——它衡量的是从 n 条采样结果里随机挑 k 条去试,至少有一条能答对的概率。采样温度也要精心控制:温度调高,链条五花八门、多样性好但噪声大;温度调低,链条稳定可重复、但容易千篇一律。实践中常用中等温度(如 0.6~1.0)搭配稍高的重复采样次数。
多录几遍菜谱的收益,数学上清清楚楚:试菜十次哪怕只成功三次,也比只录一次稳得多。但注意,录下来的厨艺垃圾也必须倒掉——这就轮到过滤环节登场了。
- 总采样数为每个问题独立采样 n 条推理链,相当于让主厨把菜做 n 遍
- 正确链数量其中 c 条链的最终答案正确,且 c 不超过 n
- 全败概率从 n 条里挑 k 条,恰好全挑中那 n−c 条错误链的可能性,用组合数表示
- 补集转化1 减去“全败”就是“至少中一次”,即 pass@k
数据过滤筛选
菜谱录像带堆成山,不能全给学徒看。有的录像里主厨手一抖放错了盐,有的录像只拍了个成品镜头、中间过程全剪了——这些都得扔。蒸馏中的数据过滤,就是站在厨房门口的“试菜主管”,拿着标准答案逐条核对。
过滤的第一道关卡是答案正确性:推理链的最终答案必须与标准答案一致。这道关卡看似简单,却能滤掉一大半噪声——一个最终答案都算错的链子,中间步骤再花哨也是带偏学徒。第二道关卡是推理步骤验证:检查链中的中间计算是否自洽、有没有跳步、前后是否矛盾。比如“12×8=96“的链里如果出现”先算 12×8=86“再”核对后得到 96“,就是明显的倒推作弊,要剔除。第三道关卡是多样性去重:同一种解法的链反复出现会让学生”模式坍缩”——学是学会了,但只会这一招,换个题型就抓瞎。
过滤的严格程度直接影响训练效果。经验上,保留率通常在 20%~60% 之间:滤得太松,错误模式混进训练集;滤得太狠,数据量不足、学生没见过足够多的题型变化。条件合并起来就是一条链能否进入训练集的完整门槛。
试菜主管把好菜谱挑出来,学徒才有东西可练。过滤这事,宁可错杀也不可放过——毕竟教坏一个学徒,比多练十遍更难纠正。
- 答案匹配链条最终答案与标准答案完全一致,这是入场的最基本门票
- 步骤检查链中每一步推理(如中间算式、逻辑结论)都自洽,前后不矛盾
- 长度门槛思考链太短说明是“灵光一现”式跳步,低于 L_min 的链直接丢弃
- 三重合取三个条件同时满足才被收录进训练数据集
蒸馏训练策略
学徒拿到一摞合格菜谱,接下来就是照着练。练的不是把菜名背下来,而是每一步的“刀法”:什么时候下锅、什么时候调味、为什么停顿一下检查火候。对应到模型上,这一步叫监督微调(Supervised Fine-Tuning,SFT)——用过滤后的推理链作为标准答案,让小模型逐词学习“在某个问题上,下一步应该输出什么”。
损失函数用的是逐 token 的交叉熵:把一条推理链拆成一个个 token(词元,即模型处理文本的最小单位),对每个 token 都做一次预测,预测得越准损失越小。训练时只计算推理链部分的损失,让模型把全部精力放在学会“如何思考”上。这里有个关键细节:输入是问题,输出是完整推理链,模型要学的映射是“问题 → 思考过程”,而不是“问题 → 答案”。
训练策略上还有三个旋钮要调。一是数据配比:纯推理数据训练容易让模型“偏科”、忘掉通用对话能力,所以通常混入 20%~50% 的通用数据(聊天、指令数据)一起训练。二是训练轮次:蒸馏 SFT 一般只训 1~3 轮,轮次过多会过拟合到菜谱的细枝末节,换个问法就不会了。三是学习率:比通用微调更低(如 1e-5 量级),免得把学生参数冲得太狠。
学徒一遍遍练刀法,练的是“条件反射式”的思考节奏:看到问题,先拆解,再运算,最后自查。SFT 就是这个把菜谱“练进肌肉记忆”的过程——训练结束后,遇到没见过的问题,模型也会本能地按着推理链的节奏走。
- 样本平均对所有过滤后的推理链求平均损失,N 是训练集大小
- 逐 token 展开把第 i 条链展开成 T_i 个 token,逐个计算预测误差
- 条件概率模型 θ 在已知问题 x_i 和已生成内容 y_{i,<t} 的条件下,输出 y_{i,t} 的概率
- 负对数似然取负对数后,正确 token 概率越接近 1,损失越接近 0
效果评估方法
学徒练了三个月,能不能出师?得让食客盲测打分。模型蒸馏的效果评估,就是组织一场场“盲测”:用一批标好答案的基准测试集,让教师、学生、基线模型同台竞技,看谁的推理能力真的涨了。
常用的基准测试集,数学类有 GSM8K(小学数学应用题)、MATH(竞赛数学),代码类有 HumanEval(函数实现),综合推理还有 GPQA、BBH 等。评估不能只看一个数,要分维度看:一是推理准确率,学生在这些基准上的得分;二是推理链质量,链长是否合理、步骤是否冗余(一个 7B 模型如果每道题都输出 2000 字思考,说明在“假装努力”);三是效率成本指标,包括生成速度(token/秒)、延迟、显存占用——毕竟蒸馏的一大初衷就是让小模型跑得快、跑得起。
业界常用“能力恢复率”来量化学生追上了教师多少。它把基线的水平当作 0%、教师的水平当作 100%,看学生站在了从 0 到 100 的哪个刻度上。这个指标比单纯看准确率更公平,因为它扣掉了“本来就会”的部分。
盲测分数相近,不代表招牌菜之外的家常菜也会做。评估时一定要加上分布外(Out-of-Distribution,即与训练数据差异较大的)测试,看看学生是真正学会了推理,还是只背熟了那几道考题。
- 基线起点未经过蒸馏的同尺寸小模型的准确率,是“0 刻度”
- 两个终点蒸馏后学生的准确率,以及教师模型的准确率
- 分子学生相对基线的实际提升量,代表“蒸馏带来的增量”
- 分母教师相对基线的差距,代表“理论上可恢复的天花板”
- 百分比增量除以天花板,得到学生追回了多少能力
迭代优化循环
学徒出师后自己掌勺,偶尔也会做出几道连师傅都没教过的好菜。这时候聪明的做法是:把他做成功的菜也录成新菜谱,传给下一届学徒。这就是迭代蒸馏——也叫专家迭代(Expert Iteration),用学生自己的输出去扩充训练数据,形成“采样→过滤→训练→再采样”的滚雪球循环。
单轮蒸馏的局限在于:训练数据完全来自教师的固定分布,学生只是被动模仿,教师没展示过的思路学生永远学不会。迭代蒸馏把学生变成“半个师傅”:每一轮训练完,用当前学生模型在训练题上重新采样推理链,经过同样的过滤标准(答案正确 + 步骤自洽),合格的新链汇入数据池,下一轮 SFT 就在扩大的池子上进行。数据池像滚雪球一样越滚越大、越来越多样,学生的推理能力也随之爬升。
迭代中还要配合错误分析反馈:把评估集里做错的题挑出来,针对性地重新采样、多采几遍,甚至用更强的提示词引导模型重新尝试这些“硬骨头”。更激进的做法是参考 DeepSeek-R1 的方案,在迭代 SFT 之后再接一个强化学习阶段,用奖励信号进一步打磨推理步数。但要注意,迭代不是无限刷分的魔法——学生模型的参数容量是天花板,滚雪球滚到一定程度就会饱和。
一代学徒教会下一代学徒,手艺在传递中不断沉淀。迭代蒸馏的价值,正是让学生的能力不再被“教师的固定输出”锁死,而是顺着自己的成长曲线持续逼近容量上限。
- 数据池扩充每一轮都在旧数据基础上加入新采样的推理链
- 评估门槛新链只有评估得分达到阈值 γ 才被收录,保证池子里的水是干净的
- 再训练在扩容后的数据池上重新最小化 SFT 损失,得到下一代学生
应用部署实践
学徒终于开店了。分店的菜单可能比主厨的少几道招牌硬菜,但上菜快、成本低、翻台率高——这正是蒸馏落地的意义:把 o1 级别的推理能力,塞进能跑在普通服务器甚至手机上的小模型。
场景适配选择是第一步:不是所有任务都需要完整推理链。数学解题、代码生成、风控审核这类“过程即价值”的任务最适合蒸馏推理链;而简单问答、闲聊则用小模型直出即可,不必背上长 CoT 的推理负担。基座选型上,7B 量级模型是性价比甜点,3B 及以下适合端侧。部署时还可以把蒸馏和量化压缩叠加:INT8/INT4 量化把模型体积再压 3~8 倍,配合 vLLM 等推理框架,延迟能压到原来的零头。一次推理的成本,粗略看与学生模型的参数量成正比——这正是蒸馏最直接的商业回报。推理成本不是故事的全部,蒸馏的红线必须清醒:蒸馏不产生新知识,学生永远跳不出教师的知识边界;教师模型带有的偏见、有害内容甚至越狱技巧,也会原封不动地混进菜谱被学徒继承。落地前一定要做合规评估和安全过滤。
分店开起来了,菜单虽小,胜在翻台快、成本低。记住:蒸馏的最终目标不是造出第二个 o1,而是让无数小餐馆都能端出“有主厨思路”的家常菜。
- 成本比一次推理中,学生与教师的花费之比
- 规模比该比值约等于两者参数量之比,参数量是主要成本驱动因素
- 近似关系用“约等于”而非恒等,因为注意力计算与序列长度有关,这里只看主项
AI 应用场景
端侧数学辅导助手
阶段:模型训练与优化
解决的问题:传统做法是把数学题传到云端调用 o1 API,延迟高、成本贵,学生隐私也有隐患。用蒸馏技术把 o1 的长链推理教给 7B 小模型后,推理过程可以在手机或平板上本地运行,解题步骤完整可见,实时反馈不卡顿。
具体案例:某在线教育平台把 3 万条从强推理模型采样的数学解题链,按答案正确性过滤后 SFT 进 7B 模型,并叠加 INT8 量化。上线后,应用题解答准确率从 42% 提升到 78%,单次调用成本下降约 90%,解题过程的“分步讲解”也成了产品的付费亮点。
代码助手离线化
阶段:模型部署与推理
解决的问题:IDE 插件对代码补全和重构的延迟要求极高,每次请求都走云端大模型既慢又受网络限制。蒸馏后的小模型把“先分析函数意图、再设计实现步骤、最后写码”的推理链本地化,离线也能给出带思路的代码建议。
具体案例:一家企业把内部代码库上累积的 5 万条代码推理轨迹蒸馏到 3B 模型,部署在开发者的本地开发机里。实测代码生成任务 HumanEval 得分从 18% 升到 51%,补全延迟从 1.2 秒降到 120 毫秒,敏感的源代码也无需离开本机。
可审计的金融风控推理
阶段:模型评估与治理
解决的问题:银行风控、医疗预筛要求决策“过程可解释”,传统的黑盒大模型给不出依据,审核没法通过。蒸馏出的模型天然输出推理链,每一条拒绝或通过的理由都白纸黑字,方便审计和追责。
具体案例:某金融科技公司用蒸馏出的 7B 模型处理贷前审核,模型在给出信用结论前先输出“收入负债比测算→历史还款行为比对→风险等级判定”的推理链。审核人员可直接阅读推理过程,异常案例定位效率提升 3 倍。
Python 演示
# 模拟 o1 推理模型蒸馏: 教师采样 -> 过滤 -> SFT -> 评估import randomfrom collections import Counter def make_problems(n=40, seed=42): rnd = random.Random(seed) problems = [] for _ in range(n): op = rnd.choice(["+", "-", "*"]) a = rnd.randint(3, 20) b = rnd.randint(2, 9) ans = {"+": a + b, "-": a - b, "*": a * b}[op] problems.append((f"{a} {op} {b}", ans)) return problems def teacher_trace(prob, ans, rnd, error_rate=0.3): # 模拟 o1: 生成带步骤的推理链, 有 30% 概率出错 a, op, b = prob.split() if rnd.random() < error_rate: wrong = ans + rnd.choice([-5, -2, -1, 1, 2]) return f"{prob} = {wrong};随口报数, 未做验证" return (f"{prob} = {ans};拆分 {a} 与 {b}, 按 {op} 逐步运算, " f"核对量级后输出 {ans}") def extract_answer(trace): # 从推理链中提取最终答案 head = trace.split(";")[0] return int(head.split(" = ")[-1]) def main(): rnd = random.Random(7) train = make_problems() # 1. 教师采样: 每道题生成 10 条推理链 raw_traces = [] for prob, ans in train: for _ in range(10): raw_traces.append((prob, ans, teacher_trace(prob, ans, rnd))) # 2. 拒绝采样过滤: 只保留最终答案正确的链 kept = [(p, a, t) for p, a, t in raw_traces if extract_answer(t) == a] # 3. SFT 模拟: 学生记住每道题最常见的正确推理链 mem = {} for p, a, t in kept: mem.setdefault(p, []).append(t) student = {p: Counter(ts).most_common(1)[0][0] for p, ts in mem.items()} # 4. 效果评估 teacher_acc = sum(extract_answer(t) == a for _, a, t in raw_traces) / len(raw_traces) hits = 0 for p, ans in train: trace = student.get(p) if trace is not None and extract_answer(trace) == ans: hits += 1 student_acc = hits / len(train) print(f"教师原始正确率: {teacher_acc:.0%}") print(f"过滤保留率: {len(kept)}/{len(raw_traces)} = {len(kept) / len(raw_traces):.0%}") print(f"学生蒸馏后正确率(训练分布内): {student_acc:.0%}") print() for p, ans in train[:3]: print(f"问题 {p}:") print(f" 学生输出: {student[p]}") if __name__ == "__main__": main()
raw_traces.append((prob, ans, teacher_trace(prob, ans, rnd)))教师采样:对每道题反复生成 10 条推理链,链条中约 30% 会算错kept = [(p, a, t) for p, a, t in raw_traces if extract_answer(t) == a]核心过滤逻辑:只保留最终答案与标准答案一致的推理链student = {p: Counter(ts).most_common(1)[0][0] for p, ts in mem.items()}模拟 SFT 的效果:学生把每道题最常见的正确推理链“背”下来teacher_acc = sum(extract_answer(t) == a for _, a, t in raw_traces) / len(raw_traces)评估教师在原始采样上的正确率(含噪声)student_acc = hits / len(train)评估学生在训练分布内的正确率,通常高于教师的原始正确率,体现过滤的价值
常见误区
误区我以为是拿 o1 的问答对(问题+最终答案)当训练数据,让小模型记住这些题目的答案就行了。答案背得够多,考试不就能过关吗?
正解蒸馏迁移的核心是“思考过程”而不是“答案”。同样一道题,o1 会先分解条件、尝试多种思路、最后自我检查才给出答案——这条完整的推理链才是训练数据。答案本身只是过滤时用来判断链条好坏的一个信号。只看答案的训练集,就像只给学徒看成品菜的照片,他永远学不会做菜。
为何常见:早期蒸馏确实以“答案标签”为主(分类任务里只有类别没有过程),很多人把旧经验直接套到 o1 时代,忽略了推理链这个新载体。
误区费那么大劲调 API 采样,数据越多训练效果越好,为什么要丢掉那么多?保留率才 50%,太浪费了。
正解低质量推理链是有害的,不是“无效”那么简单。教师模型采样时本来就有一定出错率,如果不过滤,学生会在训练中同时学到“正确推理”和“胡编乱造”两种模式,推理能力被噪声稀释。DeepSeek 在 R1 的蒸馏实验中也发现,使用高质量过滤数据训练的 32B 模型,效果远好于使用全量原始采样训练的大得多的模型。宁可保留 3 万条精链,也不要 10 万条脏数据。
为何常见:大数据时代“数据越多越好”的惯性思维深入人心,但蒸馏场景里数据的“信噪比”比数量更关键。
误区看海报上说蒸馏后模型在 GSM8K 上拿了 90 分,跟 o1 差不多了,那是不是以后不用调 o1 了?
正解要分清“某个基准接近”和“整体能力接近”。蒸馏学生有三个天花板:一是知识天花板,它只学过教师展示过的内容,教师不会的新知识它更不会;二是容量天花板,参数少意味着能容纳的推理模式有限,复杂多步推理、长上下文追忆都会吃力;三是泛化天花板,训练分布外的题目可能大幅滑坡。能力恢复率能到 80% 已经是很优秀的蒸馏结果,但“接近 o1”只存在于特定评测集上。
为何常见:海报往往只挑最好看的指标展示,而评估方法那一节反复强调的多维度对比、分布外测试,在日常沟通中最容易被忽略。
误区把 o1 的推理链采样、过滤、SFT 一遍,模型就能稳定输出长链推理了,之后不需要再管它。
正解单轮蒸馏的模型往往“形似而神不似”——能输出步骤,但遇到需要深度思考的新题容易绕圈子或中途放弃。真正生产级的蒸馏是迭代的:每轮用当前学生采样新数据、过滤、扩充数据池再训练,必要时叠加强化学习(如 R1 路线)让模型学会更长的有效推理。推理能力是“练”出来的,不是“背”一遍就能固化下来的。
为何常见:SFT 流程短、见效快,容易让人低估长链推理的难度;等到模型在复杂题目上崩了,才意识到单轮蒸馏的局限。
面试题
Q1. 知识蒸馏最核心的思想是什么?
- A.让小模型复制大模型的全部参数
- B.让小模型学习大模型的输出分布← 正确答案
- C.把大模型部署到更小的设备上
- D.用更多数据重新训练大模型
答案:B。蒸馏的本质是“教师-学生”模式,学生学的是教师的输出分布或推理过程,而不是复制参数(参数通常不可得),也不是部署层面的搬运。就像学徒学主厨的手法,而不是抢主厨的刀。
Q2. 在 o1 推理模型蒸馏中,迁移的“知识”主要指什么?
- A.模型的随机种子
- B.训练框架的配置参数
- C.长链推理的思维过程← 正确答案
- D.GPU 的显存布局
答案:C。o1 蒸馏把教师模型在强化学习中习得的“长链推理过程”(CoT)作为知识载体,采样成文本链让学生学习。随机种子、框架配置、显存布局都是训练环境信息,与推理能力无关。
Q3. 采样得到推理链后,训练前必须先做哪一步?
- A.过滤掉答案错误的链条← 正确答案
- B.直接拼接所有原始数据
- C.删除链中的所有中间步骤
- D.加密存储到数据仓库
答案:A。教师采样有噪声,低质量链条会教坏学生,所以必须先按答案正确性、步骤自洽性过滤。直接全量训练、删除中间步骤都会破坏推理链的价值,加密存储更是与训练无关。
Q4. SFT 蒸馏阶段最常用的损失函数是什么?
- A.均方误差损失函数
- B.对比学习的 InfoNCE
- C.生成对抗网络的对抗损失
- D.逐 token 的交叉熵损失← 正确答案
答案:D。推理链是文本序列,SFT 用逐 token 交叉熵:让模型在给定问题与已生成前缀时,最大化下一个正确 token 的概率。MSE 面向回归、InfoNCE 面向对比表征、对抗损失面向生成对抗,都不适用于序列监督学习。
Q5. 关于蒸馏数据的多样性,以下说法正确的是?
- A.重复链越多越能提升效果
- B.重复链过多会导致模式坍缩← 正确答案
- C.多样性只影响训练速度
- D.过滤去重一定会降低准确率
答案:B。同一解法的链条反复出现,学生会“模式坍缩”——只会一种思路,换题型就失效。去重与多样性控制是过滤的关键环节,它不降低准确率,反而提升泛化能力;训练速度也不是多样性影响的主要方面。
Q6. 能力恢复率 Gain 的分母表示什么?
- A.测试集的总体样本数量
- B.训练的迭代轮次总数
- C.小模型蒸馏前后的准确率差
- D.教师与基线模型的准确率差← 正确答案
答案:D。分母 = 教师准确率 − 基线准确率,代表教师领先基线的“身位”,即理论上可恢复的能力天花板;分子是学生相对基线的提升。两者相除才知道学生追回了多少差距。
Q7. 关于推理链蒸馏中的“长度门槛”,下列理解正确的是?
- A.链条越长越好,应无限放开
- B.门槛太短会放行跳步猜测链← 正确答案
- C.长度门槛替代答案正确性检查
- D.门槛只影响推理速度
答案:B。长度门槛 L_min 用于拦截“灵光一现”式的跳步链——太短的链条往往缺少完整推理。但它只是辅助条件,不能替代答案正确性与步骤自洽检查;链条也不是越长越好,冗余废话同样会污染训练。
Q8. 一条完整的推理链蒸馏流程包含哪些环节?
- A.大模型采样推理链← 正确答案
- B.按质量过滤筛选← 正确答案
- C.在小模型上 SFT← 正确答案
- D.复制教师权重参数
答案:ABC。标准流程是“采样→过滤→SFT”三步循环:教师采样生成原始链,过滤保证数据质量,SFT 让学生学习推理过程。复制权重违背蒸馏前提——教师参数通常不可得,而且也不叫蒸馏。
Q9. 蒸馏后的小模型可能在哪些方面明显不如教师?
- A.复杂多步推理的深度← 正确答案
- B.世界知识的覆盖广度← 正确答案
- C.单次生成的响应速度
- D.长尾问题的鲁棒性← 正确答案
答案:ABD。学生存在容量天花板:复杂推理深度受参数限制,世界知识只覆盖教师展示过的内容,长尾问题泛化差。但响应速度学生反而更快(参数少、计算量小),所以 C 不是“不如”的方面。
Q10. 关于蒸馏数据的过滤标准,正确的做法包括哪些?
- A.校验最终答案正确性← 正确答案
- B.检查推理步骤自洽性← 正确答案
- C.设定最小链长门槛← 正确答案
- D.保留全部噪声链增广
答案:ABC。过滤三件套:答案正确、步骤自洽、长度达标,缺一不可。噪声链不是“数据增强”,而是“毒药”,会让学生同时学到错误推理模式,所以 D 的做法会显著拉低蒸馏效果。