# 温度校准与概率校准结果 ## 1. 最终部署结论 本发布模型是 short150 best(step 150)。独立温度校准流程已经完成真实 logits 收集、global/per-type 拟合、select 选择和 test 验收。 **最终选择是 raw `T=1.0`,线上不应用拟合温度。** `model_manifest.json`、`checkpoint_state.json` 和服务端均保持 temperature=1;`client.py` 直接执行 `softmax(logits)`。 温度公式为 `p = softmax(logits / T)`。如果只修改 manifest 而不修改 softmax 前的计算,不会产生校准效果。本包刻意拒绝非 1 温度,以固定已验证的发布契约。 ## 2. 拟合得到但未采用的候选 | 范围 | 候选温度 T | 是否部署 | |---|---:|---| | global | 1.27782223 | 否 | | choice | 1.43393793 | 否 | | noul | 1.27202315 | 否 | | score | 0.99092258 | 否 | | 最终 raw(global 与所有题型) | **1.0** | **是** | 校准数据共 29,875 条问题,invalid=0;fit/select/test 分别为 17,842 / 6,068 / 5,965。OpenJev 与 stage-2 在 fit/select 中各使用 0.5 domain-macro 权重,避免大 domain 支配结果。测试集只用于最终验收,没有根据 test 重新调温。 ## 3. select:为什么保留 raw | 方案 | Accuracy ↑ | NLL ↓ | Brier ↓ | ECE ↓ | Calibration ↑ | |---|---:|---:|---:|---:|---:| | **raw T=1(最终)** | **0.928301** | 0.225644 | **0.105183** | **0.023519** | **95.4508** | | global T=1.277822 | 0.928301 | 0.217776 | 0.106195 | 0.026693 | 95.0431 | | per-type | 0.928301 | **0.215359** | 0.106267 | 0.027746 | 94.9723 | 选择规则要求 global 相对 raw 的 NLL、Brier、Calibration score 均不退化;per-type 还需要相对 global 有明确收益。候选温度虽然改善了混合 NLL,但 Brier 与 Calibration 退化,因此未通过门槛。温度缩放不改变 argmax,所以三种方案的 Accuracy 相同。 ### Domain 条件性 - OpenJev select 上,global 温度改善了 NLL、Brier、ECE 和 Calibration。 - stage-2 select 上,同一个 global 温度使这四项全部退化。 - 真实服务请求没有可靠的 domain 路由标签,因此不能把 OpenJev-only 的收益直接推广到混合流量,也不能据此声称所有数据域都永远不需要校准。 ## 4. 最终 test(raw T=1) | Accuracy | NLL | Brier | ECE | Calibration | Score MAE | Score within-1 | |---:|---:|---:|---:|---:|---:|---:| | 0.928121 | 0.187029 | 0.090812 | 0.017322 | 96.1804 | 0.084364 | 0.996835 | 这些数字来自独立温度校准数据集,**不是**下节的 231 条 JevBench 服务结果,不能直接混排比较。 机器可读证据: - `reference_results/temperature_calibration.json`:候选、选择原因、select/test 汇总; - `reference_results/temperature_report.json`:完整校准报告; - `reference_results/calibration_data_manifest.json`:原数据划分和哈希追溯。 `calibration_data_manifest_sha256` 是**路径清理前的原始来源 manifest** 哈希;发布副本因内部路径脱敏而有不同哈希,其值另记为 `published_calibration_data_manifest_sha256`,并纳入根目录 `SHA256SUMS`。 原始 29,875 条校准记录及真实 logits cache 不随模型发布;本包保留聚合结果,不提供一键重拟合入口。`evaluate.py` 在新数据上计算的也是当前 T=1 模型的指标,不会自动拟合新温度。 ## 5. JevBench 服务 Calibration(T=1) 在单张 A800、vLLM 0.30.0、BF16 backbone、FP32 pointer head、并发 1 下,231/231 条概率有效: | 指标 | 数值 | |---|---:| | Calibration score(0–100,越高越好) | **90.7539** | | 10-bin ECE(越低越好) | **0.071062** | | 平均 gold-distribution fidelity(越高越好) | **0.886139** | | public raw / pseudo-sealed raw | 90.3684 / 91.1564 | | 无效概率 / 超时 | 0 / 0 | 计算口径: - ECE 使用 10 个置信度桶,桶内使用真实平均 confidence 和真实 accuracy,不用桶中心代替; - fidelity 为 `mean(1 - JS(gold || predicted) / ln 2)`; - Calibration 为 `100 × [0.5 × (1-ECE) + 0.5 × mean_fidelity]`; - 无有效概率的样本不会被剔除,fidelity 记 0;只有标签、全都没有有效概率时 Calibration 为 0。 ### Reliability bins | confidence 区间 | n | 平均置信度 | 实际准确率 | accuracy - confidence | |---|---:|---:|---:|---:| | [0.3, 0.4) | 2 | 0.379246 | 0.000000 | -0.379246 | | [0.4, 0.5) | 4 | 0.456742 | 0.500000 | +0.043258 | | [0.5, 0.6) | 8 | 0.543263 | 0.750000 | +0.206737 | | [0.6, 0.7) | 8 | 0.637047 | 0.500000 | -0.137047 | | [0.7, 0.8) | 13 | 0.752515 | 0.846154 | +0.093639 | | [0.8, 0.9) | 11 | 0.852498 | 0.545455 | -0.307044 | | [0.9, 1.0] | 185 | 0.989939 | 0.945946 | -0.043993 | 并发 4 的连续批处理会改变部分 BF16 数值:参考运行中一道边界题翻转,Calibration=91.0260、ECE=0.065394。严格精度回归应使用并发 1,并发 4 主要用于吞吐测试,不能通过事后调温掩盖批组成差异。 完整逐题概率和 reliability bins 见 `reference_results/short150_c1.json`;第二次并发 1 运行与其完整概率逐项 `max_abs=0.0`。