M7 全链路评估报告(基线 v2 · 最终模型)
附注(2026-08-24,M8 调优闭环):本报告为 M8 前基线。金标已由 M8 自动仲裁修订 (34 条分歧逐条判定,
data/m8_revise_log.csv可追溯)、选择型得分点改由选项规则判定 (CC-003)、MRC/相似度重训后,最新指标见 m8-tuning-report.md。 本页保留快照性质,指标数字不再更新。日期:2026-08-23 · 模型:MRC mengzi-bert-base(最终版)+ 相似度 text2vec-base-chinese(最优验证快照最终导出版,19:16 刷新) 链路:真实 Rust 网关
POST /api/score(spawn_blocking 混合评分引擎)→ Python 运行时 ONNX 推理(CPU EP) 脚本:scripts/m7_e2e_eval.py· 明细:models/artifacts/e2e_eval.jsonv1(快照版相似度模型)基线:Pearson .9574 / Point-Acc .784;v2 全面持平略优。
1. 评测设计
- 数据:
data/processed/mrc_test.jsonl中 origin=full 的真实完整学生答案, 按 (question_id, context) 聚合为 155 份答案卷;每卷仅保留被测得分点 (与金标同口径),专家总分 = Σ 金标命中点权重。 - 抽样:按专家得分率排序后等距抽取 36 卷,覆盖 0 分~满分全分数段; 覆盖语文/历史/地理/政治四科。
- 判定口径:Point-Acc=有答判定一致率;等价给分率=金标命中点中获得任一分数 的比例;ScoreCorr=预测总分与专家总分 Pearson;MAE 同口径。
2. 基线结果(最终模型,MRC 阈值 0.5 默认配置)
| 指标 | §13 目标 | v1(快照版相似度) | v2(最终模型) | 结论 |
|---|---|---|---|---|
| ScoreCorr(Pearson,系统总分 vs 专家) | ≥ 0.85 | 0.9574 | 0.9592 | ✅ 显著超标 |
| 等价给分率 | ≥ 0.80 | 0.9739 | 0.9739 | ✅ |
| Point-Acc(点级有答判定) | ≥ 0.85 | 0.7844 | 0.7904 | ⚠️ 未达(见 §3) |
| MAE(总分绝对误差) | — | 1.89 | 1.85 | 参考 |
混淆矩阵(点级,n=167):TP=112 FP=32 FN=3 TN=20 —— 查全极强(召回 97.4%)、查准不足(精度 77.8%)。 给分来源(v1 口径):137 点经 MRC(+335.4 分)、30 点走相似度兜底(+9.0 分); 兜底 cos 中位数 0.43,行为保守正常。
3. 关键发现与调优实验
3.1 阈值扫描:has_answer 0.5 → 0.75(环境变量 RUBRICSPAN_MRC_THRESHOLD)
| 指标 | 0.5(默认) | 0.75 |
|---|---|---|
| Point-Acc | 0.784 | 0.778 |
| 等价给分率 | 0.974 | 0.957 |
| ScoreCorr | 0.9574 | 0.9580 |
| MAE | 1.89 | 1.67 |
| TP/FP/FN/TN | 112/33/3/19 | 110/32/5/20 |
结论:维持默认 0.5。 提高阈值几乎不减少误报(33→32)反而损失正确命中 (FN 3→5)——残余误报是高置信判定(如 >0.98),不是低置信噪声。
3.2 高置信分歧的本质(BC-001/BC-002)
抽检最大偏差卷 SAS-CHN-137(pred 12/12 vs 金标 3/12):系统对"选D""选A" 等内容以 >0.98 置信抽取到原文片段。分歧源于三方面叠加:
- 选择型得分点的固有歧义:"选A得1分/选D得2分"类点在讲解式作答中可同时 出现字面内容;
- 打标口径保守:LLM 打标按"严格对应得分点语义"标注,系统按"字面命中 + 别名表"判定;
- 别名表覆盖有限:超出 alias 枚举的改写由 MRC 泛化兜住,但金标未必承认。
→ 处置:登记 bad-cases BC-002,需人工抽检仲裁(区分漏标与误判)后决定 是否进入再打标/增量微调闭环;在此之前 Point-Acc 78% 应理解为该口径下的下界。
3.3 相似度兜底的长度效应(BC-003)—— 实验否决句级方案
假设:全文均值池化使"同题长答案"对任意得分点的 cos 整体抬升;改用 句级最大值应拉开命中/未命中分布。
实测(scripts/m7_sim_sentence_experiment.py,167 个点对,快照版权重):
| 方案 | AUC | 召回@0.60 | 误报率@0.60 |
|---|---|---|---|
| 全文均值池化(现状) | 0.697 | 0.574 | 0.308 |
| 句级最大值 | 0.599 | 0.730 | 0.789 |
结论:否决句级最大值方案,维持全文均值池化。 句级 max 让同题的所有短句 都高分(误报率飙至 78.9%),全文池化的"按比例稀释"反而是有效的隐式正则。 长度自适应阈值可作后续备选,但当前兜底给分仅 +9 分、影响面小,优先级降低。
4. §13 达标总览(截至本报告)
| 层面 | 指标 | 状态 |
|---|---|---|
| 模型级(M2 评审) | Point-Acc .894 / 等价命中 .943 | ✅ |
| 模型级(M2 评审) | EM .482 / Token-F1 .758 / ScoreCorr .765 | ⚠️ 未达,待调优决策 |
| 量化(M2-7) | INT8 精度损失 < 1% | ✅(EM −0.79 / F1 −0.69 / Point-Acc −0.42 pt) |
| 系统级(本报告) | ScoreCorr .959 / 等价给分率 .974 | ✅ |
| 系统级(本报告) | Point-Acc .790 | ⚠️ 待人工仲裁闭环 |
模型级 ScoreCorr 0.765 与系统级 0.959 的差距说明:混合链路(别名多候选 + 兜底 + 加权汇总)整体显著优于单点抽取质量,架构层面的融合是有效的。
5. 复现
python scripts/m7_e2e_eval.py --sample 36 # 默认网关 :8080
RUBRICSPAN_MRC_THRESHOLD=0.75 <重启网关后重跑> # 阈值实验
python scripts/m7_sim_sentence_experiment.py # BC-003 句级对比
python scripts/m7_arbitration_sheet.py # 仲裁清单再生6. 后续动作
相似度模型训练完成后重导出刷新✅ 已完成(v2 基线即最终模型);- 人工仲裁 34 条高置信分歧样本(
docs/reports/arbitration-sheet.md)→ 决定再打标/微调闭环; /offline页面 INT8 换装后的浏览器冒烟复测(资产已验证可被 ONNX Runtime 正常加载);- 模型级 EM/F1/ScoreCorr 调优决策(补训 schedule / 数据增强),随 bad-case 闭环一并处理。