
复现价值:先检查尺子,再讨论模型
上一项基线把一个直觉落到了真实日志上:DistilBERT 对固定的256条情感文本答对233条,平均置信度却约为98.17%。现在保持每条预测不动,只改变统计方式。问题很具体:同一批概率,用五个箱和二十个箱测量,校准误差会差多少?如果换一把尺子就能得到更漂亮的数字,报告者应该交代哪些信息?
这里的校准,是让一组相近置信度预测的平均正确率与其平均置信度相符。它不意味着某一条九成把握的句子存在可直接观测的“九成正确性”。单条记录只有此次预测对或错;概率与频率的关系要借助群体及抽样假设讨论。本篇新增的产物是分箱敏感性表、全部配对抽样索引、逐箱统计和独立复算记录,不是再训练一次模型。
论文报告:Guo等在2017年讨论了现代神经网络的校准及温度缩放,并用分箱统计衡量预测置信度与准确率的偏离。本次实际验证:仅在固定公开检查点的256条探索预测上比较四种等宽分箱。作者推断:解释观察到的抵消与稀疏现象,可以帮助设计后续概率质量实验;这些结果不代表所有模型,也没有复现论文的完整实验矩阵。
核心思想:绝对值放在哪里很重要
期望校准误差通常简称 ECE。把置信度从零到一划成若干等宽区间,在每个区间比较平均概率和正确率,再按样本数加权。它是一种有限样本统计量,其值依赖分区方式。
这里, 是箱数, 是总样本数, 是第 箱的样本数; 是箱内平均最大类别概率, 是箱内预测正确指示值的均值。输入 logits 的形状为 ,经过 softmax 后沿类别维取最大值,得到长度为256的置信度向量。空箱没有可估计的正确率,保存为空值,对加权和贡献零,不能显示成“准确率为零”。
这与先求所有样本的有符号平均差再取绝对值不同。若同一个箱里同时存在过度自信和不够自信的样本,它们可能相互抵消;拆成两个箱后再分别取绝对值,抵消可能减少。对严格嵌套的分区,三角不等式给出:
其中, 是原箱, 遍历将它完整划分的子箱, 为置信度, 为零或一的正确性。五箱细分成十箱、十箱细分成二十箱满足这一结构,所以精确算术下 ECE 不会下降。但十五箱与十箱不构成这种细分关系,不能只凭箱数较多推断数值大小。浮点误差还可能制造极小的负差,必须与真正的统计差别区分。
官方代码阅读路线
从论文的定义和公式开始,再看作者仓库的 _ECELoss:它先从 logits 计算 softmax,再取最大类别概率和 argmax;随后构造等宽边界,用每箱比例乘绝对均值差。固定提交的默认参数是十五箱,区间采用左开右闭。本地沿用基线的左闭右开约定,最后一箱包含右端点;本次四种分箱均无样本恰好落在内部边界,因此这里的端点约定不解释观察差异。
源码地图明确了区别:神经网络前向来自固定版本 Transformers;基础推理与输入校验模块沿用上篇已公开源码;分箱对照、配对抽样和审计是本篇独立教学实现。没有把作者 GPU 温度拟合流程改个文件名就称作本次实验,也没有执行温度拟合。阅读顺序建议为协议、配置、测量函数、独立检查、绘图脚本,最后回看模型前向和原始日志。
最小实验:只改变一个变量
模型固定为 DistilBERT SST-2 检查点,模型 revision 为 714eb0fa89d2f80546fda750413ed43d93601a13,数据 revision 为 8d51e7e4887a4caaa95b3fbebbf53c0490b58bbb。验证集按既定身份哈希排序,前256条是探索池;另外256条校准池和360条协议审计池均不在本篇推理。SST-2在历史系列中使用过,检查点作者也报告过该验证集结果,不能将它包装成未见测试。
四个候选箱数为5、10、15、20,运行分析之前写入配置与协议。十箱用于衔接基线,十五箱便于理解作者实现的默认口径;四项全部报告,不根据结果选一个“最可信”的箱数。冻结标签映射、样本顺序、模型概率、截断、精度和设备条件。没有新标签、没有人工语义分类,也没有访问IMDb。

正式分析复用上一项真实推理的逐样本 logits 与概率,文件身份通过 SHA-256 锁定。本次另外实际执行了八条原探索样本的 CPU 推理重放,用来检查源码仍可运行。它不是新增八条测试数据,也不增加正式比较的分母。推理为 float32、四线程,输出形状为八行二列;前向耗时约0.070秒,导入后流程约0.605秒,进程峰值常驻内存约800MB。完整256条正式推理的原始日志随源码保留,不能把旧日志日期冒称今天的新运行。
评测协议与实际结果
配对自助重采样的意思是:每次从256个样本索引中有放回抽取256次,四种分箱共同使用这一份索引。固定种子113,重复2000次,保存每次索引及四个 ECE。区间使用排序后线性插值的2.5%和97.5%分位数。这样比较的是相同抽样扰动下的分箱差别,避免四种方法各抽各的而混入额外噪声。
| 等宽箱数 | ECE | 重采样95%区间 | 非空箱数 | 最右箱样本数 |
|---|---|---|---|---|
| 5 | 0.082843 | [0.050882, 0.117772] | 3 | 248 |
| 10 | 0.083705 | [0.053621, 0.119951] | 5 | 242 |
| 15 | 0.083705 | [0.055056, 0.120464] | 6 | 238 |
| 20 | 0.083705 | [0.055361, 0.120251] | 8 | 233 |
二十箱减五箱为0.000862,约0.0862个百分点;配对区间约为[0,0.012778],原始下端是浮点量级的负数。不能根据这个结果宣称分箱造成了巨大的校准变化,也不能把四个高度重叠的单独区间当作正式的差异检验。十、十五、二十箱的点估计相同,并不意味着逐箱组成相同。日志显示,五箱中置信度位于0.6至0.8的七条预测,平均有符号差约为负0.138;拆成十箱后,三条低侧样本的差约为负0.359,四条高侧样本的差约为正0.028。正负抵消减少,解释了这次小幅增加;继续细分没有引入新的相反符号抵消变化。

左图来自保存的重采样结果;右图展示二十箱下全部非空箱,标注分母,并绘制正确率的逐箱 Wilson 区间。所有图中数字都由日志生成,方法示意图的图标不承担定量证据。二十箱的非空箱分母依次为1、2、1、4、3、3、9、233,合计256条。
失败排查:小箱不是更细致的真相
最重要的排查顺序不是先调图的样式,而是确认概率对象、分母和边界。先核验概率由同一组 logits 得到,预测类别与正确性映射一致;再确认各箱样本数之和仍是256,每条样本恰好归入一个箱。二分类最大概率至少为二分之一,前半段的大量空箱是结构现象,不是数据丢失。直接删掉空箱后把其余箱重新等权平均,会悄悄换掉指标。
接着看每箱证据。一个只有一条样本的箱,其观测正确率只能为零或一;画成精确的点而不标分母,很容易夸大解释。Wilson 区间只针对箱内正确率,不是平均置信度的区间,更不是整个校准函数的同时置信带。本文采用独立行重采样;若文本间存在相关性或近重复,区间可能低估不确定性,因此这里只将它作为在经验数据分布下的敏感性说明,不宣称覆盖率保证。
独立脚本没有导入测量函数,而是从两维 logits 重建概率和预测,使用区间比较重新分箱,用有符号残差之和计算 ECE,再逐个核对8000个重采样值及区间端点。输入哈希、脚本、命令、退出码均保留。这是自动算术核验,不是人工金标或语义审核。分析耗时约4.45秒、峰值常驻内存约63.7MB;统计与模型推理资源分别记录,绘图资源未单独测量。
源码与复现入口
已公开并匿名核验固定版本源码目录、README和SOURCE_MAP。本篇提供完整推理入口、固定资源获取与校验模块、统计脚本、绘图脚本、依赖记录及源码地图。最小命令如下,在源码目录执行即可,无需重新下载模型:
python analyze.py && python check_analysis.py
预期得到四种分箱的结果、全部重采样索引和独立审计记录。需要验证真实模型路径时,按 README 获取固定资源后运行八条 smoke;下载缓存必须通过资源锁校验。包内不分发原始情感文本或模型权重,也不依赖作者电脑上的绝对路径。代码与统计记录可公开浏览,压缩包只承担本地归档,不作为博客唯一源码入口。
还要防止把重采样误认为重新收集数据。抽样索引出现重复是算法设计的一部分:同一行在某次重复中被抽中三次,就贡献三次权重;没有被抽中的行暂时不贡献。它没有创造新的独立文本,更不能补回原数据没有覆盖的语言风格。保存全部索引的好处是,别人可以不相信随机数生成器的版本承诺,直接用同一份索引复核每一个统计值。
另一个值得保留的负结果是,分箱变细以后,总体指标几乎不动,最右箱的准确率却从约九成一变成约九成四。这不是同一群样本变得更可靠了,而是区间从较宽范围缩到更高置信度范围,成员已经更换。因此跨分箱比较某个“最后一箱”的正确率时,不能套用同一群体的解释;需要同时展示边界、身份和数量。所有逐箱成员都能从公开概率与明确边界恢复,无需分享原始句子。
对于工程读者,最实用的交付约定是让指标名称携带协议:说明是最大类别概率校准、等宽分箱、样本加权以及端点归属。对于研究生,更关键的是说明估计对象:这里估计的是模型在这份经验样本上的分箱偏差,不是潜在总体校准函数的精确积分。扩大数据后是否保持相同结论,仍须新实验检验。
研究问题与总结
这个受控对照没有发现分箱选择能大幅改变本组 ECE,但发现了高置信样本高度集中、低分母区间解释脆弱的明确边界。后续可检验的问题是:当预测类别保持不变、只改变概率分布时,负对数似然与 Brier 分数是否给出相同排序?这个问题需要预先指定变换,并完整报告候选,而不是先改概率再挑最支持结论的度量。
本篇能留下的结论有限而清楚:同一组预测的 ECE 依赖统计协议;本次五箱与更细箱的差别很小,细分也没有带来可靠的新样本证据。研究记录应同时保存概率、分母、区间约定、抽样方法和失败边界,让读者能改动测量协议独立复算,而不是只接收一个保留三位小数的结论。
参考资料
检索与代码核验日期:2026-10-29。
- Guo, Pleiss, Sun, Weinberger. 2017. On Calibration of Modern Neural Networks,ICML/PMLR。本文依据其分箱指标定义,不声称重现全部实验。
- Geoff Pleiss,论文作者 temperature_scaling 固定提交源码,MIT许可;默认箱数与区间比较对应此实现。
- Hugging Face,DistilBERT SST-2 固定模型卡,检查点身份、标签与任务范围。
- Stanford NLP,SST-2 数据固定版本,数据划分与获取入口;原始文本不随本篇分发。
作者作品推广
以下是作者自有产品推广。除了写科研博客,我也独立开发日常小工具,欢迎按自己的需要了解:日常收支小记用于记录收支、安排预算与储蓄目标,在 App Store 了解;一事微光帮助根据时间和精力选择小行动,并记录完成后的感受,在 App Store 了解。更多技术文章和个人作品可访问作者网站。这些作品与本篇实验结论相互独立,不代表论文作者或研究机构的推荐。