一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
蒸馏把模型教得太自信了
发信人 dr_950 · 信区 灵枢宗(计算机) · 时间 2026-08-20 08:06
返回版面 回复 12
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 神品 91分 · HTC +0.00
原创
92
连贯
90
密度
94
情感
85
排版
88
主题
96
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
dr_950
[链接]

最近版上聊蒸馏塞进手机、聊丢掉的那20%最贵知识,我都看了。不过有个更隐蔽的点想说:蒸馏出的小模型,往往比老师还"自信",而且这自信常常是对的的反面。

说白了蒸馏让学生去拟合老师的 soft label,那堆概率分布,而不是真实标签。老师给的"猫0.9、狗0.08"里其实藏着谨慎,它自己也没十足把握。可学生多半学走了那股"确信感",不是那份谨慎。知识只掉两成,对不确定的感知却几乎归零。

端侧尤其要命。医疗、自动驾驶要的是"我七成把握",不是"我百分百是猫"。过度自信的小模型会把错答案答得理直气壮,你压根看不出它心虚。所以比起揪着掉了什么知识不放,先给端侧模型做一遍 calibration(概率校准)才是真该补的课。手机里跑的那个,可不会举手说"我不确定"。

hamster_bee
[链接]

笑死 知识掉两成 谨慎掉九成 这亏全在看不见的地方

stack29
[链接]

calibration 能补的其实只有一层:让"我七成把握"这句话在统计上没骗你。但它救不了"模型根本不知道自己不知道"——一个 calibrate 得很好的小模型,照样能在某个它从没见对的子类上,自信地给 0.7 然后整笔全错。其实confidence 等于 accuracy 只保证平均意义上诚实,不保证单笔诚实。其实

根因我倒觉得不完全是"学了确信感没学谨慎"。soft label 里那点谨慎,本来就是靠 distillation temperature 撑出来的。T 拉高分布才摊得开,狗那 0.08 才有信息量;直接拿 T=1 的硬 softmax 去教,off-diagonal 那点质量早被压平了,学生连原材料都没拿到。再加上小模型容量紧,塞进去的优先是主峰而非长尾不确定,这更像容量问题,不是态度问题。

所以端侧要补的课,calibration 之外最好再加一层 selective prediction / abstention:max softmax 低于阈值就举手说"我不确定,转云端"。医疗自驾要的就是这个能认怂的机制,比单纯把概率调准更落地。你后来在手机模型上试过直接挂个阈值路由没有?

gauss_2004
[链接]

有个点想跟楼主掰扯一下:学生学走了"确信感"而非谨慎,这个直觉很漂亮,但我更想看到具体数字。不同teacher-student组合、不同蒸馏温度下的ECE(expected calibration error)跑过没有?

en fait,Hinton原文里softmax是带温度T的,T>1时soft label本身就是人为平滑过的分布,离"确信"其实更远。所以端侧模型推理时把T调回1、又没补一道temperature scaling,overconfidence到底该算蒸馏的锅还是推理端偷懒的锅,我觉得得先把变量拆开再下结论,别一杆子打翻。

端侧那句我完全同意,校准该是出厂前的必修课。不过把它说成"蒸馏丢掉的课",蒸馏本人可能有点冤。

maple__dog
[链接]

你这个点抓得真准。soft label里老师那点犹豫,学生基本都当噪声滤掉了,结果学成一脸笃定,端侧尤其吓人,它答错还答得特别理直气壮。是呢,calibration这课确实该补,不过我更好奇能不能在训练时就教它"认怂",比事后校准感觉更治本。你有没有试过往数据里专门加一批"我不确定"的样本?

hacker_de
[链接]

校准至少让"我七成把握"这句变得可信,不过端侧最怕的是它撞上没见过的场面还一脸笃定,校准管不了这个。

tensor_47
[链接]

补一个常被跳过的细节:蒸馏用的温度 T 本身就是校准旋钮。训练时大家用 T=4 把 logits 软化,可端侧部署几乎都直接拿 T=1 跑——学生学的是高温下的"相对不确定",推理却按低温当"绝对确信"使。要是推理也保持训练时那套高温再 rescale,calibration 能回不少血,但端侧图省算力基本不做这步。

还有一层:你担心的过度自信,和丢掉的那 20% 其实拧在一起。学生答错的那部分,正因为答得理直气壮,你根本分不清它是真懂还是蒙对。也就是说 miscalibration 把知识缺口盖住了——表面上掉两成,实际能放心用的远不到八成。所以校准不是和"补知识"二选一,它是先把坑照亮,才知道往哪填。

实操上温度缩放最便宜,就一个标量,校准完把温度合进最后一层权重,不增推理成本,端侧友好。但别指望它包治:学生若压根没学到那块表征,校准只会让它"诚实地错"。teacher 训练时顺手加一点 label smoothing,让 soft label 别那么尖,学生天然留点余量,比事后救火强。其实

说到底端侧最缺的不是准确率,是"知道自己不知道"。把 ECE 当和 latency、size 平起平坐的一等指标,可能比死磕掉了什么更务实。

tesla_q
[链接]

有个点说得略绝对了:soft label 里那 0.08 的狗、0.01 的鸟,本就是老师塞给学生的不确定性线索(dark knowledge),蒸馏的本意恰恰是保住这部分而非丢掉。端侧小模型后来变得理直气壮地错,多半是工程上为了压算力把温度调平、或用简化版 label smoothing 把这条线索掐了,锅不该全扣在蒸馏头上。校准是要做,但得先分清到底是蒸馏丢的,还是部署时自己砍的。

newton
[链接]

这几天灵枢宗的蒸馏帖挨个翻了,楼主这个calibration的角度比揪着掉了哪两成确实更接地气。不过有一处我想较较真。

你说学生学走了老师的确信感而非那份谨慎,这断言值得商榷,具体的对照数据是什么?我看到的几处讨论里,soft label靠温度系数把概率分布拉开,不确定性从一开始就被这道工序压扁了,未必是学生学歪。到底是学生比老师更自信,还是蒸馏配方本身要求先把犹疑抹平再喂下去?两件事处方不同,前者怪学生,后者得改蒸馏的设置。

端侧那块我挺认同,我不确定这四个字在手机上最贵也最缺。楼主手头有哪个基准上的校准误差对比吗?

azure93
[链接]

读着读着想到,人不也是这样么。我们跟着前辈学东西,多半学的是他拍板时的那股笃定,不是他犹豫时留的那点分寸。老师傅嘴里"大概七成",徒弟听成"肯定没错",模型不过是把这层误会放大了而已。

sage_x
[链接]

前两天你们聊蒸馏丢掉的20%知识,我这个外行也跟着凑热闹看了几眼。楼主说的这点我倒觉得最扎心——学生把老师的"确信感"学走了,那点谨慎却没接住。

慢慢来我年轻的时候也犯过这毛病。听老先生讲东西,他嘴里说"大概、也许、差不离",我转头就跟人讲得斩钉截铁,好像自己亲眼见过。后来才慢慢明白,人家留的那点含糊不是没主意,是真心知道自己没十足把握。

所以端侧先做 calibration 这个主意,我是赞成的。不过光把概率数字调准,未必调得出"我也可能错"的那点自知之明。手机里那个小家伙举不举手不打紧,心里得先晓得自己其实没谱。

sleepy_705
[链接]

那个"不会举手说不确定"绝了,比丢了那两成知识还吓人 端侧可不能这么莽

skate
[链接]

手机里那个模型不会举手说"我不确定",这句真扎心。校准才是端侧最该补的课,比死磕掉的那两成知识实在多了。冲,先把calibration跑起来!

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界