research(jev-intent): 修复轮重造语料并全量对照
来源 C 改为 DeepSeek Flash 生成+独立复核,撤回模板拼接结论。来源 B 157 条人工标注后跑 Jev x2 与 Flash 全量对照,结论为缺数据。
This commit is contained in:
+92890
-81052
File diff suppressed because it is too large
Load Diff
@@ -1,49 +1,57 @@
|
||||
# TypeSafe Jev 接管校正意图分类 · 离线对照(2026-09-19)
|
||||
|
||||
- 任务:`docs/tasks/TASK-rectification-jev-intent-classifier-research-20260919.md`
|
||||
- 基线:`origin/staging` @ `d9722d56`
|
||||
- 基线:`origin/staging` @ `69a44fe7`
|
||||
- Jev 模型:`jev-1.13.0`(不用 jev-latest)
|
||||
- 生成器 / 复核:`agent-template-v1` / `agent-rule-v1`
|
||||
- 真值 sha256:synthetic `79d53a958b3b42ed18c79e3bbcff4b31deb22b65eedcd89b39326a7fefc9b0e8`;simulated `a8611e75bf56024fa984fb204d34a5e16405f18b3eaa5a3bee91f96e43918bf7`;disputed `b4aed8567bd6b3fdd5cc98c73d9139197d62a96120a0ee29f474b8f08c050def`
|
||||
- 来源 B:0 条(本地,不提交原文)
|
||||
- 真值 sha256:synthetic `79d53a958b3b42ed18c79e3bbcff4b31deb22b65eedcd89b39326a7fefc9b0e8`;simulated `53f13012fdc8f3721335bbe2961edf8c506a2f705b62bd9d302fce83ce2ef88d`;disputed `e80c5cd69c521a099d743e4a4632ad6bc103c3b5a505f5b376a7c9cebedb7646`
|
||||
- 来源 B:157 条已标注(本地,不提交原文)
|
||||
|
||||
## 模型
|
||||
|
||||
- 生成模型:`deepseek-flash` / 版本 `deepseek-flash` / 不是线上会话模型(只用于造来源 C)
|
||||
- 复核模型:`deepseek-flash` / 版本 `deepseek-flash` / 不是线上会话模型(只用于独立复核,看不到目标标签)
|
||||
- 对照模型:`deepseek-flash` / 版本 `deepseek-flash` / **= 线上会话模型**(DeepSeek Flash,顶生产 `classifyRectificationTurnIntent` 提示词)
|
||||
- Jev:`jev-1.13.0` / 不是线上会话模型
|
||||
|
||||
## 结论
|
||||
|
||||
**不可接**。来源 C 上 Jev 的绝对门槛未过:高置信错误率 7.0% > 3%;低置信召回 34.1% / 34.2% < 60%(错了却仍高置信);点选题 answer_class 准确率 65.0%(写库字段)。来源 B 不足 30 条,代表性检验只报数、不判定。 相对 −3pp(同一样本):choice Jev 89.5% vs 现行 92.5%(门槛 89.5%,过);collect Jev 91.0% vs 现行 95.5%(门槛 92.5%,未过);none Jev 100.0% vs 现行 97.0%(门槛 94.0%,过)。
|
||||
**缺数据**。来源 B 与来源 C 同层 intent 准确率差 > 10pp,模拟语料不代表真人,来源 C 门槛结论降为缺数据。来源 B 与来源 C 同层 intent 准确率:choice B 94.1% vs C 99.0%(差 4.9%,n_B=17);collect B 94.4% vs C 92.2%(差 2.1%,n_B=107);none B 78.8% vs C 96.0%(差 17.2%,n_B=33)。 有层差 > 10pp,结论降为缺数据。 同时来源 C 绝对门槛未过:低置信召回 23.1% / 45.5% / 25.0% < 60%(错了却仍高置信)。 相对 −3pp(同一样本):choice Jev 99.0% vs 现行 98.8%(门槛 95.8%,过);collect Jev 92.2% vs 现行 97.5%(门槛 94.5%,未过);none Jev 96.0% vs 现行 94.0%(门槛 91.0%,过)。
|
||||
|
||||
若接:不接。现行分类器继续用会话选定的贵模型。若还要观察中文口语,只允许 (b) 影子双跑只记日志,不得按 confidence 写库。曲线上 θ=0.9 时高置信错误仍未清零。
|
||||
若接:不得上线。先补真机样本或重造更像真人的来源 C,再测。
|
||||
|
||||
## T3 指标(Jev,来源 C)
|
||||
|
||||
| 层 | n | intent | answer_class | dated | 高置信错误 | 低置信覆盖 | 低置信召回 | no/unsure 互判 | 自洽率 | 中位 ms | P95 ms | 次均 input tok |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| choice | 400 | 88.0% | 65.0% | 100.0% | 4.2% | 12.5% | 34.1% | 5 | 98.5% | 923 | 1344 | 1122 |
|
||||
| collect | 400 | 90.5% | 83.6% | 97.0% | 7.0% | 13.5% | 34.2% | 22 | 98.0% | 901 | 1026 | 987 |
|
||||
| none | 100 | 100.0% | — | 100.0% | 0.0% | 4.0% | — | 0 | 100.0% | 923 | 1018 | 923 |
|
||||
| choice | 400 | 99.0% | 95.8% | 100.0% | 0.0% | 2.2% | 23.1% | 0 | 99.8% | 908 | 1194 | 1127 |
|
||||
| collect | 400 | 92.2% | 95.7% | 98.8% | 2.8% | 8.0% | 45.5% | 6 | 98.0% | 909 | 1086 | 991 |
|
||||
| none | 100 | 96.0% | — | 100.0% | 1.0% | 2.0% | 25.0% | 0 | 100.0% | 909 | 981 | 922 |
|
||||
|
||||
来源 A(测试夹具,n=10)intent 90.0%,answer_class 85.7%,高置信错误 0.0%。
|
||||
|
||||
## 现行模型对照
|
||||
|
||||
模型:`deepseek-flash`。DeepSeek Flash 顶现行 `classifyRectificationTurnIntent` 提示词;来源 C 分层随机 33%(seed 20260919),来源 A 全量。不是线上会话模型。
|
||||
模型:`deepseek-flash`。DeepSeek Flash = 线上会话模型,顶现行 `classifyRectificationTurnIntent` 提示词;来源 C 全量第一次,第二次分层 33%(seed 20260920);来源 A 全量;来源 B 已标注全量一次。
|
||||
|
||||
| 层 | n | intent | answer_class | dated | 自洽率 | 中位 ms |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| choice | 133 | 92.5% | 83.0% | 100.0% | 100.0% | 638 |
|
||||
| collect | 133 | 95.5% | 95.8% | 97.7% | 95.5% | 611 |
|
||||
| none | 33 | 97.0% | — | 100.0% | 100.0% | 705 |
|
||||
| choice | 400 | 98.8% | 99.5% | 100.0% | 100.0% | 685 |
|
||||
| collect | 400 | 97.5% | 99.6% | 99.0% | 99.2% | 686 |
|
||||
| none | 100 | 94.0% | — | 100.0% | 100.0% | 672 |
|
||||
|
||||
同一样本上 Jev vs 现行(相对门槛用这一表):
|
||||
|
||||
| 层 | n | Jev intent | 现行 intent | 差(Jev−现行) | 门槛现行−3pp |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||||
| choice | 133 | 89.5% | 92.5% | -3.0% | 89.5% |
|
||||
| collect | 133 | 91.0% | 95.5% | -4.5% | 92.5% |
|
||||
| none | 33 | 100.0% | 97.0% | 3.0% | 94.0% |
|
||||
| choice | 400 | 99.0% | 98.8% | 0.2% | 95.8% |
|
||||
| collect | 400 | 92.2% | 97.5% | -5.2% | 94.5% |
|
||||
| none | 100 | 96.0% | 94.0% | 2.0% | 91.0% |
|
||||
|
||||
## 代表性检验(来源 B vs 来源 C)
|
||||
|
||||
来源 B 不足 30 条,代表性检验只报数、不判定。
|
||||
来源 B 已标注 157 条(点选 17 / 采集 107 / 无焦点 33;未标注 0),长度 P25/中位/P75/最长 = 12/21/28/172。人工标注,未用模型代标。Jev 在来源 B 上 intent:点选 94.1%、采集 94.4%、无焦点 78.8%;全集 91.1%。无焦点层差 17.2pp > 10pp。
|
||||
|
||||
来源 B 与来源 C 同层 intent 准确率:choice B 94.1% vs C 99.0%(差 4.9%,n_B=17);collect B 94.4% vs C 92.2%(差 2.1%,n_B=107);none B 78.8% vs C 96.0%(差 17.2%,n_B=33)。 有层差 > 10pp,结论降为缺数据。
|
||||
|
||||
## 置信度–准确率曲线与 θ
|
||||
|
||||
@@ -53,52 +61,52 @@
|
||||
[
|
||||
{
|
||||
"theta": 0.3,
|
||||
"jev_share": 0.9877777777777778,
|
||||
"fallback_share": 0.012222222222222223,
|
||||
"jev_acc": 0.8278965129358831,
|
||||
"high_conf_errors_in_used": 45
|
||||
"jev_share": 0.9911111111111112,
|
||||
"fallback_share": 0.008888888888888889,
|
||||
"jev_acc": 0.9405829596412556,
|
||||
"high_conf_errors_in_used": 12
|
||||
},
|
||||
{
|
||||
"theta": 0.4,
|
||||
"jev_share": 0.9522222222222222,
|
||||
"fallback_share": 0.04777777777777778,
|
||||
"jev_acc": 0.8366394399066511,
|
||||
"high_conf_errors_in_used": 45
|
||||
"jev_share": 0.9744444444444444,
|
||||
"fallback_share": 0.025555555555555557,
|
||||
"jev_acc": 0.9498289623717218,
|
||||
"high_conf_errors_in_used": 12
|
||||
},
|
||||
{
|
||||
"theta": 0.5,
|
||||
"jev_share": 0.88,
|
||||
"fallback_share": 0.12,
|
||||
"jev_acc": 0.8661616161616161,
|
||||
"high_conf_errors_in_used": 45
|
||||
"jev_share": 0.9522222222222222,
|
||||
"fallback_share": 0.04777777777777778,
|
||||
"jev_acc": 0.9568261376896149,
|
||||
"high_conf_errors_in_used": 12
|
||||
},
|
||||
{
|
||||
"theta": 0.6,
|
||||
"jev_share": 0.8266666666666667,
|
||||
"fallback_share": 0.17333333333333334,
|
||||
"jev_acc": 0.8884408602150538,
|
||||
"high_conf_errors_in_used": 45
|
||||
"jev_share": 0.9222222222222223,
|
||||
"fallback_share": 0.07777777777777778,
|
||||
"jev_acc": 0.9698795180722891,
|
||||
"high_conf_errors_in_used": 12
|
||||
},
|
||||
{
|
||||
"theta": 0.7,
|
||||
"jev_share": 0.7677777777777778,
|
||||
"fallback_share": 0.23222222222222222,
|
||||
"jev_acc": 0.9015918958031838,
|
||||
"high_conf_errors_in_used": 45
|
||||
"jev_share": 0.8977777777777778,
|
||||
"fallback_share": 0.10222222222222223,
|
||||
"jev_acc": 0.9752475247524752,
|
||||
"high_conf_errors_in_used": 12
|
||||
},
|
||||
{
|
||||
"theta": 0.8,
|
||||
"jev_share": 0.6822222222222222,
|
||||
"fallback_share": 0.31777777777777777,
|
||||
"jev_acc": 0.9267100977198697,
|
||||
"high_conf_errors_in_used": 45
|
||||
"jev_share": 0.8222222222222222,
|
||||
"fallback_share": 0.17777777777777778,
|
||||
"jev_acc": 0.9837837837837838,
|
||||
"high_conf_errors_in_used": 12
|
||||
},
|
||||
{
|
||||
"theta": 0.9,
|
||||
"jev_share": 0.5333333333333333,
|
||||
"fallback_share": 0.4666666666666667,
|
||||
"jev_acc": 0.9604166666666667,
|
||||
"high_conf_errors_in_used": 19
|
||||
"jev_share": 0.7033333333333334,
|
||||
"fallback_share": 0.2966666666666667,
|
||||
"jev_acc": 0.9921011058451816,
|
||||
"high_conf_errors_in_used": 5
|
||||
}
|
||||
]
|
||||
```
|
||||
@@ -107,21 +115,21 @@
|
||||
|
||||
### cjk_colloquial
|
||||
|
||||
- `C-choice-0005` / choice / 「嗯那会儿吧咋说呢就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.88}
|
||||
- `C-choice-0008` / choice / 「额这个嘛就那样发生了」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': False, 'confidence': 0.47}
|
||||
- `C-choice-0016` / choice / 「emmm 感觉一般般就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.38}
|
||||
- `C-choice-0149` / choice / 「嗯,那会儿好像有点变动,但印象不深。另外2019年搬过一次家。」 gold={'answer_class': 'weak_yes', 'has_new_dated_event': True, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.65}
|
||||
- `C-choice-0152` / choice / 「好像有吧但印象不深,对了2019年搬过家。」 gold={'answer_class': 'weak_yes', 'has_new_dated_event': True, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.76}
|
||||
- `C-collect-0286` / collect / 「差不多是2021年夏天那会儿,七月份前后吧,确实有明显变化。」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'weak_yes', 'has_new_dated_event': False, 'confidence': 0.71}
|
||||
|
||||
### literal
|
||||
|
||||
- `A10` / collect / 「2016年3月入学」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'provide_new_evidence', 'answer_class': None, 'has_new_dated_event': True, 'confidence': 0.39}
|
||||
- `C-choice-0006` / choice / 「就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.9}
|
||||
- `C-choice-0023` / choice / 「就是那段,当时身边人也没特别提,我自己也没当回事,我想想啊就是那种说」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.64}
|
||||
- `A10` / collect / 「2016年3月入学」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'provide_new_evidence', 'answer_class': None, 'has_new_dated_event': True, 'confidence': 0.42}
|
||||
- `C-choice-0386` / choice / 「这个真不好说,另外2019年我换过工作搬了家。」 gold={'answer_class': None, 'has_new_dated_event': True, 'intent': 'provide_new_evidence'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.64}
|
||||
- `C-choice-0341` / choice / 「对了,1995年那会儿我搬家了,你问的这个我真说不好。」 gold={'answer_class': None, 'has_new_dated_event': True, 'intent': 'provide_new_evidence'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.54}
|
||||
|
||||
### other
|
||||
|
||||
- `C-choice-0002` / choice / 「不是很能整明白就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': False, 'confidence': 0.75}
|
||||
- `C-choice-0012` / choice / 「有的,别的先不说,就这一句你先记着,…特别提,我自己也没当回事」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'weak_yes', 'has_new_dated_event': False, 'confidence': 0.34}
|
||||
- `C-choice-0073` / choice / 「明显有过,现在回想起来细节对不上,只…。另外2023年9月分开」 gold={'answer_class': 'yes', 'has_new_dated_event': True, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.46}
|
||||
- `C-choice-0148` / choice / 「好像有点小变化,但记不太深。另外2019年换过工作。」 gold={'answer_class': 'weak_yes', 'has_new_dated_event': True, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.73}
|
||||
- `C-choice-0154` / choice / 「好像有那么点,但印象不深。对了,2002年换过一次工作。」 gold={'answer_class': 'weak_yes', 'has_new_dated_event': True, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.59}
|
||||
- `C-choice-0162` / choice / 「好像有点印象,但很淡。另外2019年搬过一次家。」 gold={'answer_class': 'weak_yes', 'has_new_dated_event': True, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.61}
|
||||
|
||||
## T1 判据对照
|
||||
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
# 已作废:语料为模板拼接
|
||||
|
||||
本文是 2026-09-19 首版对照报告的存档。来源 C 由 `agent-template-v1` 词库拼接、`agent-rule-v1` 正则复核,结论无效。请读同目录 `jev_intent_2026_09_19.md`。
|
||||
|
||||
# TypeSafe Jev 接管校正意图分类 · 离线对照(2026-09-19,v1 存档)
|
||||
|
||||
- 任务:`docs/tasks/TASK-rectification-jev-intent-classifier-research-20260919.md`
|
||||
- 基线:`origin/staging` @ `d9722d56`
|
||||
- Jev 模型:`jev-1.13.0`(不用 jev-latest)
|
||||
- 生成器 / 复核:`agent-template-v1` / `agent-rule-v1`
|
||||
- 真值 sha256:synthetic `79d53a958b3b42ed18c79e3bbcff4b31deb22b65eedcd89b39326a7fefc9b0e8`;simulated `a8611e75bf56024fa984fb204d34a5e16405f18b3eaa5a3bee91f96e43918bf7`;disputed `b4aed8567bd6b3fdd5cc98c73d9139197d62a96120a0ee29f474b8f08c050def`
|
||||
- 来源 B:0 条(本地,不提交原文)
|
||||
|
||||
## 结论
|
||||
|
||||
**不可接**。来源 C 上 Jev 的绝对门槛未过:高置信错误率 7.0% > 3%;低置信召回 34.1% / 34.2% < 60%(错了却仍高置信);点选题 answer_class 准确率 65.0%(写库字段)。来源 B 不足 30 条,代表性检验只报数、不判定。 相对 −3pp(同一样本):choice Jev 89.5% vs 现行 92.5%(门槛 89.5%,过);collect Jev 91.0% vs 现行 95.5%(门槛 92.5%,未过);none Jev 100.0% vs 现行 97.0%(门槛 94.0%,过)。
|
||||
|
||||
若接:不接。现行分类器继续用会话选定的贵模型。若还要观察中文口语,只允许 (b) 影子双跑只记日志,不得按 confidence 写库。曲线上 θ=0.9 时高置信错误仍未清零。
|
||||
|
||||
## T3 指标(Jev,来源 C)
|
||||
|
||||
| 层 | n | intent | answer_class | dated | 高置信错误 | 低置信覆盖 | 低置信召回 | no/unsure 互判 | 自洽率 | 中位 ms | P95 ms | 次均 input tok |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| choice | 400 | 88.0% | 65.0% | 100.0% | 4.2% | 12.5% | 34.1% | 5 | 98.5% | 923 | 1344 | 1122 |
|
||||
| collect | 400 | 90.5% | 83.6% | 97.0% | 7.0% | 13.5% | 34.2% | 22 | 98.0% | 901 | 1026 | 987 |
|
||||
| none | 100 | 100.0% | — | 100.0% | 0.0% | 4.0% | — | 0 | 100.0% | 923 | 1018 | 923 |
|
||||
|
||||
来源 A(测试夹具,n=10)intent 90.0%,answer_class 85.7%,高置信错误 0.0%。
|
||||
|
||||
## 现行模型对照
|
||||
|
||||
模型:`deepseek-flash`。DeepSeek Flash 顶现行 `classifyRectificationTurnIntent` 提示词;来源 C 分层随机 33%(seed 20260919),来源 A 全量。不是线上会话模型。
|
||||
|
||||
| 层 | n | intent | answer_class | dated | 自洽率 | 中位 ms |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| choice | 133 | 92.5% | 83.0% | 100.0% | 100.0% | 638 |
|
||||
| collect | 133 | 95.5% | 95.8% | 97.7% | 95.5% | 611 |
|
||||
| none | 33 | 97.0% | — | 100.0% | 100.0% | 705 |
|
||||
|
||||
同一样本上 Jev vs 现行(相对门槛用这一表):
|
||||
|
||||
| 层 | n | Jev intent | 现行 intent | 差(Jev−现行) | 门槛现行−3pp |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||||
| choice | 133 | 89.5% | 92.5% | -3.0% | 89.5% |
|
||||
| collect | 133 | 91.0% | 95.5% | -4.5% | 92.5% |
|
||||
| none | 33 | 100.0% | 97.0% | 3.0% | 94.0% |
|
||||
|
||||
## 代表性检验(来源 B vs 来源 C)
|
||||
|
||||
来源 B 不足 30 条,代表性检验只报数、不判定。
|
||||
|
||||
## 置信度–准确率曲线与 θ
|
||||
|
||||
推荐 θ = 0.9。点:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"theta": 0.3,
|
||||
"jev_share": 0.9877777777777778,
|
||||
"fallback_share": 0.012222222222222223,
|
||||
"jev_acc": 0.8278965129358831,
|
||||
"high_conf_errors_in_used": 45
|
||||
},
|
||||
{
|
||||
"theta": 0.4,
|
||||
"jev_share": 0.9522222222222222,
|
||||
"fallback_share": 0.04777777777777778,
|
||||
"jev_acc": 0.8366394399066511,
|
||||
"high_conf_errors_in_used": 45
|
||||
},
|
||||
{
|
||||
"theta": 0.5,
|
||||
"jev_share": 0.88,
|
||||
"fallback_share": 0.12,
|
||||
"jev_acc": 0.8661616161616161,
|
||||
"high_conf_errors_in_used": 45
|
||||
},
|
||||
{
|
||||
"theta": 0.6,
|
||||
"jev_share": 0.8266666666666667,
|
||||
"fallback_share": 0.17333333333333334,
|
||||
"jev_acc": 0.8884408602150538,
|
||||
"high_conf_errors_in_used": 45
|
||||
},
|
||||
{
|
||||
"theta": 0.7,
|
||||
"jev_share": 0.7677777777777778,
|
||||
"fallback_share": 0.23222222222222222,
|
||||
"jev_acc": 0.9015918958031838,
|
||||
"high_conf_errors_in_used": 45
|
||||
},
|
||||
{
|
||||
"theta": 0.8,
|
||||
"jev_share": 0.6822222222222222,
|
||||
"fallback_share": 0.31777777777777777,
|
||||
"jev_acc": 0.9267100977198697,
|
||||
"high_conf_errors_in_used": 45
|
||||
},
|
||||
{
|
||||
"theta": 0.9,
|
||||
"jev_share": 0.5333333333333333,
|
||||
"fallback_share": 0.4666666666666667,
|
||||
"jev_acc": 0.9604166666666667,
|
||||
"high_conf_errors_in_used": 19
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## 错例画像(改写后,无法对应真实会话)
|
||||
|
||||
### cjk_colloquial
|
||||
|
||||
- `C-choice-0005` / choice / 「嗯那会儿吧咋说呢就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.88}
|
||||
- `C-choice-0008` / choice / 「额这个嘛就那样发生了」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': False, 'confidence': 0.47}
|
||||
- `C-choice-0016` / choice / 「emmm 感觉一般般就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.38}
|
||||
|
||||
### literal
|
||||
|
||||
- `A10` / collect / 「2016年3月入学」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'provide_new_evidence', 'answer_class': None, 'has_new_dated_event': True, 'confidence': 0.39}
|
||||
- `C-choice-0006` / choice / 「就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.9}
|
||||
- `C-choice-0023` / choice / 「就是那段,当时身边人也没特别提,我自己也没当回事,我想想啊就是那种说」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'unclear', 'answer_class': None, 'has_new_dated_event': False, 'confidence': 0.64}
|
||||
|
||||
### other
|
||||
|
||||
- `C-choice-0002` / choice / 「不是很能整明白就是那段」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': False, 'confidence': 0.75}
|
||||
- `C-choice-0012` / choice / 「有的,别的先不说,就这一句你先记着,…特别提,我自己也没当回事」 gold={'answer_class': 'yes', 'has_new_dated_event': False, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'weak_yes', 'has_new_dated_event': False, 'confidence': 0.34}
|
||||
- `C-choice-0073` / choice / 「明显有过,现在回想起来细节对不上,只…。另外2023年9月分开」 gold={'answer_class': 'yes', 'has_new_dated_event': True, 'intent': 'answer_current_focus'} jev={'intent': 'answer_current_focus', 'answer_class': 'unsure', 'has_new_dated_event': True, 'confidence': 0.46}
|
||||
|
||||
## T1 判据对照
|
||||
|
||||
见 `scripts/research/jev_intent_questions.py` 的 `CRITERION_MAP`。丢掉的语义:生产提示里的「通常」「不要按 A/B/C/D 猜」「不要按关键词表」;结构不变量改由 `enforce_combo` 强制。
|
||||
|
||||
| 现行提示原句 | Jev 落点 | 丢失 |
|
||||
| --- | --- | --- |
|
||||
| 结合当前问题和动态选项判断用户是在回答当前问题、提供新的带时间经历、要求停止整个校正、询问结果,还是语义不清。 | intent Choice with five literal criteria, including unclear as the residual option. | — |
|
||||
| 若是在回答当前问题,answer_class 必须使用某个选项提供的 answer_class;否则 answer_class 必须为 null。 | answer_class Choice is built only from the live options; code nulls it when intent != answer_current_focus. | — |
|
||||
| has_new_dated_event 仅在用户同一句里除了回答当前问题之外,还提供了新的、带大概时间的经历时为 true。 | has_new_dated_event Noul true/false criteria, same split. | — |
|
||||
| 单纯的否定或单纯的选项回答必须为 false。 | Noul false: 单纯否定、单纯记不清不算新经历。 | — |
|
||||
| 若同一句话既回答了当前问题又补充了新的带时间经历,intent 仍为 answer_current_focus,has_new_dated_event 为 true。 | intent and Noul are separate questions; code keeps answer_current_focus when both fire. | Jev does not itself enforce this pair; code does. |
|
||||
| “当前方面没有、那段时间没有变化”通常是回答当前问题,不是停止整个流程。 | stop_rectification criterion: only an explicit stop of the whole flow. 当前方面没有 is answer_current_focus. | The hedge 通常 is dropped; the stop option is written as an exclusive literal. |
|
||||
| 只有用户明确要求停止整个校正时才分类为 stop_rectification。 | stop_rectification criterion, same literal. | — |
|
||||
| 不要按 A/B/C/D 的位置猜语义,只按选项 label 与 answer_class 判断。 | answer_class criteria keyed by answer_class, not by A/B/C/D. | The prohibition itself is not sent; Jev is not given A/B/C/D as the choice keys. |
|
||||
| 「没有、没发生过、这方面没什么」→ intent 为 answer_current_focus,answer_class 为 no。 | Collect answer_class criterion for no. | — |
|
||||
| 「记不清、不记得、忘了、想不起来、以后再说」→ answer_class 为 unsure。 | Collect answer_class criterion for unsure. | — |
|
||||
| 用户用带大概年月的经历直接回答当前采集题 → intent 为 answer_current_focus,answer_class 为 yes(程度较弱时为 weak_yes),has_new_dated_event 为 false。 | Collect yes/weak_yes criteria + Noul false for a dated answer that is the collect answer. | — |
|
||||
| 不要把「没有」或「记不清」标成 yes。 | Separate no and unsure criteria; yes requires a dated or affirmative answer. | The 'do not' wording is dropped. |
|
||||
| 若既没有否定、也没有说记不清、也没有给出带年月经历,intent 为 unclear,answer_class 必须为 null。 | unclear residual on intent Choice; code nulls answer_class. | — |
|
||||
| 若用户只在补充带时间的经历、并没有回答当前采集题,intent 为 provide_new_evidence。 | provide_new_evidence criterion. | — |
|
||||
| 若同一句话既明确否定当前采集题又补充了新的带时间经历,intent 仍为 answer_current_focus 且 answer_class 为 no,不要改成 provide_new_evidence。 | Code keeps no + Noul true. Jev intent/Noul are independent. | Jev may split this pair; code does not re-vote intent from the Noul. |
|
||||
| 不要按关键词表或正则猜测,只根据当前问题与用户这句话的语义分类。 | Not sent. Jev has no keyword table in the question. | The meta-instruction is dropped (Jev answers the written question, not the intended one). |
|
||||
|
||||
## 回退
|
||||
|
||||
任何上线方案必须保留回退到现行会话模型的路径。官方限流会动态调整。
|
||||
|
||||
@@ -70,3 +70,52 @@ Flash 自洽率:点选题 100%、采集 95.5%、无焦点 100%。中位延迟
|
||||
|
||||
- `python -m pytest tests/test_jev_intent_research.py`:8 passed
|
||||
- 线上分类器文件未改
|
||||
|
||||
## 修复轮(2026-09-19,`codex/rectification-jev-intent-research-fix-20260919`)
|
||||
|
||||
任务书:`TASK-rectification-jev-intent-classifier-research-fix-20260919.md`。未改线上分类器。未立 BUG。
|
||||
|
||||
### 来源 C 重造
|
||||
|
||||
- 生成 / 复核模型:`deepseek-flash`(temperature 0.85 / 0.0),prompt_version `gen-review-v3`。不是线上会话模型。
|
||||
- 问题池复用 `question_pool.json`(103 道点选题),未重建引擎池。
|
||||
- 生成 1261,通过复核 1225,选出 900;争议 36,争议率 **2.85%**(collect 33 / choice 3;answer_current_focus 33 / unclear 3)。未回退模板。
|
||||
- 提示修改:冒烟 v2 有 `missing_date` 拒稿,v3 强制四位年份并在重试时写明缺年/多年原因。只改了一轮提示。
|
||||
- 三项统计:去重后唯一 825(≥810),单条重复最多 5;人设每种 ≥48(点选+采集),惜字如金+方言/网络语 180/900=20%;长度 P25=16 / 中位=20 / P75=24(目标 8–16 / 15–27 / 20–36)。
|
||||
- 三层 400 / 400 / 100,配额偏差 ≤4.5%。
|
||||
- sha256:synthetic `79d53a958b3b42ed18c79e3bbcff4b31deb22b65eedcd89b39326a7fefc9b0e8`;simulated `53f13012fdc8f3721335bbe2961edf8c506a2f705b62bd9d302fce83ce2ef88d`;disputed `e80c5cd69c521a099d743e4a4632ad6bc103c3b5a505f5b376a7c9cebedb7646`。
|
||||
|
||||
### Token(分列)
|
||||
|
||||
| 段 | 调用 | input tok | output tok |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| 生成 DeepSeek Flash | 1389 | 553,685 | 18,677 |
|
||||
| 复核 DeepSeek Flash | 1318 | 700,669 | 29,296 |
|
||||
| Jev `jev-1.13.0` 两次(A+C 910×2 + B 157×2) | 2134 | 2,213,898 | 283,528(Jev 输出不计费) |
|
||||
| 对照 Flash 全量一次 + C 1/3 第二次 + B 一次 | 1366 | 676,080 | 30,260 |
|
||||
|
||||
Jev 输入按 $0.042/Mtok ≈ $0.093。生成+复核+对照走 DeepSeek,不记 Jev 价。
|
||||
|
||||
### 来源 B
|
||||
|
||||
157 条全部人工标注(点选 17 + 采集 107 + 无焦点 33),约 40 分钟。`runtime_intent` 未抄成 gold。Jev×2 + Flash×1 已跑。代表性:无焦点层 intent 差 17.2pp > 10pp。
|
||||
|
||||
### 对照摘要
|
||||
|
||||
| 层 | Jev intent | Flash intent | 高置信错误 | 低置信召回 | Jev 自洽 |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: |
|
||||
| 点选题 | 99.0% | 98.8% | 0.0% | 23.1% | 99.8% |
|
||||
| 采集题 | 92.2% | 97.5% | 2.8% | 45.5% | 98.0% |
|
||||
| 无焦点 | 96.0% | 94.0% | 1.0% | 25.0% | 100% |
|
||||
|
||||
cache 样本 id 与 `simulated.jsonl` 一致(900/900)。unavailable = 0。
|
||||
|
||||
### 结论
|
||||
|
||||
**缺数据**。无焦点层来源 B vs C 差 17.2pp;同时低置信召回未过 60%。不得上线。原「不可接」不沿用。
|
||||
|
||||
### 验证
|
||||
|
||||
- `python -m pytest tests/test_jev_intent_research.py -q`:11 passed
|
||||
- 构建脚本无 `bank = {`;复核函数无 `re.search` 判标签
|
||||
- 线上分类器文件未改
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
| `TASK-rectification-open-collect-invite-20260914.md` | `PROGRESS-rectification-open-collect-invite-20260914.md` | **P0**:固定七条采集线问完后只说「能问的都问完了」,用户不知道还能补经历、也不知道补了有用;而两轮研究证明补带年月经历是唯一有效手段。产品拍板:交付卡照出 + 卡上给不限领域的补充邀请(先要确切日期,再退年月;举七条线之外的例子),补完必须可见生效(BUG-689) | 待验收 | `codex/rectification-open-collect-invite-20260914` |
|
||||
|
||||
| `TASK-rectification-cluster-width-research-20260914.md` | `PROGRESS-rectification-cluster-width-research-20260914.md` | **研究单**:上一轮证明调权重改不动交付区间宽度——所有方案宽度中位数都等于整个搜索窗。先确认 sweep 的宽度口径是否含淘汰(M0),再画簇结构像(M1),最后量三个改法:放宽簇上限、按分差决定是否合并、交付区间改分位覆盖(M2)。真值覆盖率不得下降 | 待验收 | `codex/rectification-cluster-width-research-20260914` |
|
||||
| `TASK-rectification-jev-intent-classifier-research-20260919.md` | `PROGRESS-rectification-jev-intent-classifier-research-20260919.md` | **研究单**:TypeSafe Jev(只做 Choice/Score/Noul 的校准判断模型,$0.042/Mtok)能否接管校正流的意图分类。产品 09-19 授权评估(推翻 09-15「分类只用贵模型」需重新拍板)。Agent 模拟校正流造 ≥900 条中文语料(标签先定、独立复核)+ 真机样本做代表性锚,量准确率 / 高置信错误率 / 低置信召回 / 延迟;只离线测,不改线上 | 验收未通过 → 修复单 `TASK-rectification-jev-intent-classifier-research-fix-20260919.md` 待领取 | 来源 C 是模板拼接+正则复核、无模型调用,「不可接」撤回改为 **缺数据**;来源 B=0、对照模型非线上会话模型 |
|
||||
| `TASK-rectification-jev-intent-classifier-research-20260919.md` | `PROGRESS-rectification-jev-intent-classifier-research-20260919.md` | **研究单**:TypeSafe Jev(只做 Choice/Score/Noul 的校准判断模型,$0.042/Mtok)能否接管校正流的意图分类。产品 09-19 授权评估(推翻 09-15「分类只用贵模型」需重新拍板)。Agent 模拟校正流造 ≥900 条中文语料(标签先定、独立复核)+ 真机样本做代表性锚,量准确率 / 高置信错误率 / 低置信召回 / 延迟;只离线测,不改线上 | **待验收**(修复轮已交,结论 **缺数据**) | 修复单 `TASK-rectification-jev-intent-classifier-research-fix-20260919.md` 已做完。来源 C 由 DeepSeek Flash 生成+复核(900 条,争议率 2.85%);来源 B 157 条已人工标注。Jev 无焦点层 vs 真人差 17.2pp > 10pp。落点分支 `codex/rectification-jev-intent-research-fix-20260919` |
|
||||
|
||||
| `TASK-rectification-minute-resolution-research-20260914.md` | `PROGRESS-rectification-minute-resolution-research-20260914.md` | **研究单**:候选分不开的根因是打分尺度——窗口内恒定项 11.5 分 vs 随分钟变化项 2.125 分(≈5:1)。先修封存基准(v3 每例仅 3 件事且被标 invalidated)出 v4,再离线量五个改法:分盘除数、去底座、**KP 宫头子主计分(产品 09-14 拍板,推翻 BUG-325 一条红线)**、年精度事件改边际似然、聚类签名层对齐。有收益才立实现单 | 待验收 | `codex/rectification-minute-resolution-research-20260914` |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user