PabJev-4b / docs /CALIBRATION.md
roudone's picture
Upload PabJev-4b (qwen3.5 4b base, short150 best step-150 decision model)
2a4e414 verified
|
Raw History Blame Contribute Delete
5.13 kB

温度校准与概率校准结果

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。