73 lines
4.6 KiB
Markdown
73 lines
4.6 KiB
Markdown
# 进度 · TypeSafe Jev 意图分类离线对照(2026-09-19)
|
||
|
||
- 分支:`codex/rectification-jev-intent-classifier-research-20260919`
|
||
- 基线:`origin/staging` @ `d9722d56`
|
||
- 任务书:`docs/tasks/TASK-rectification-jev-intent-classifier-research-20260919.md`
|
||
- 报告:`docs/research/jev_intent_2026_09_19.md` / `.json`
|
||
- 未改 `turn-intent-classifier.ts`、`route.ts`、`mastra/model.ts`、模型目录
|
||
|
||
## 样本
|
||
|
||
| 来源 | n | sha256 | 备注 |
|
||
| --- | ---: | --- | --- |
|
||
| A `synthetic.jsonl` | 10 | `79d53a958b3b42ed18c79e3bbcff4b31deb22b65eedcd89b39326a7fefc9b0e8` | 测试文件没有 10 条带期望输出的 `userMessage` 夹具;用 `SHUFFLED_CHOICE` + 采集 prompt + 测试里两句原文 |
|
||
| B 真机会话 | 0 | — | 无 staging 库凭据。让步 1:代表性检验只报数。本地约定 `G:/Ferti/Jyotisha/.cache/jev_intent/source_b.jsonl` |
|
||
| C `simulated.jsonl` | 900 | `a8611e75bf56024fa984fb204d34a5e16405f18b3eaa5a3bee91f96e43918bf7` | 点选题 400 / 采集 400 / 无焦点 100,配额偏差 0 |
|
||
| 争议表 `disputed.jsonl` | 113 | `b4aed8567bd6b3fdd5cc98c73d9139197d62a96120a0ee29f474b8f08c050def` | 争议率 8.5%(1328 次生成),< 15% 门槛 |
|
||
|
||
- 问题池:20 例 holdout 走 `discriminating_event_probes`,点选题 103 条(4 例 0 probes:tiger_woods / picasso / freud / albert_brooks);采集题用 `USER_COLLECT_QUESTION` / retry / `TARGETED_YEAR_PROMPT`。
|
||
- 生成器:`agent-template-v1`(本机无会话模型凭据,不走线上贵模型;标签先定再写回复)。
|
||
- 复核器:`agent-rule-v1`(不同规则、看不到目标标签)。
|
||
- 长度(来源 C):P25=3 / 中位=11 / P75=25(来源 B 不足,用兜底 P25≤6 / 中位≤15 / P75≤40)。
|
||
- 真值在 T2 前固化,跑完未改标签。
|
||
|
||
## T2 跑次
|
||
|
||
- Jev:`jev-1.13.0`,`POST /v1/systemone`,SDK `typesafe-sdk 0.7.0`,三题同一请求。
|
||
- 时间:2026-09-19,来源 A+C 各 2 次;unavailable = 0。
|
||
- 现行对照:`deepseek-flash`(官方 Chat Completions,thinking 关)套生产分类器提示词。来源 C 分层随机 33%(seed 20260919)= 133+133+33,来源 A 全 10 条;第一次 309,第二次分层 1/3。unavailable = 0。**不是线上会话模型。** 来源 B 仍为 0。
|
||
|
||
## 指标(来源 C)
|
||
|
||
| 层 | n | intent | answer_class | dated | 高置信错误 | 低置信覆盖 | 低置信召回 | no/unsure | 自洽率 | 中位 ms | P95 ms | 次均 tok |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||
| 点选题 | 400 | 88.0% | **65.0%** | 100% | 4.2% | 12.5% | 34.1% | 5 | 98.5% | 923 | 1344 | 1122 |
|
||
| 采集题 | 400 | 90.5% | 83.6% | 97.0% | **7.0%** | 13.5% | **34.2%** | 22 | 98.0% | 901 | 1026 | 987 |
|
||
| 无焦点 | 100 | 100% | — | 100% | 0.0% | 4.0% | — | 0 | 100% | 923 | 1018 | 923 |
|
||
|
||
来源 A n=10:intent 90.0%,answer_class 85.7%,高置信错误 0。
|
||
|
||
Jev 两次合计输入约 1.85M tok,按 $0.042/Mtok ≈ $0.08。
|
||
|
||
### 同一样本 DeepSeek Flash vs Jev(C 分层 33%)
|
||
|
||
| 层 | n | Jev intent | Flash intent | Flash answer_class | 差 | 门槛(Flash−3pp) | 相对 |
|
||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | --- |
|
||
| 点选题 | 133 | 89.5% | 92.5% | 83.0% | −3.0pp | 89.5% | 过 |
|
||
| 采集题 | 133 | 91.0% | 95.5% | 95.8% | −4.5pp | 92.5% | **未过** |
|
||
| 无焦点 | 33 | 100% | 97.0% | — | +3.0pp | 94.0% | 过 |
|
||
|
||
Flash 自洽率:点选题 100%、采集 95.5%、无焦点 100%。中位延迟 611–705 ms。
|
||
|
||
## 结论
|
||
|
||
**不可接。** 绝对门槛未过:高置信错误 7.0% > 3%;低置信召回 ≈34% < 60%;点选题 `answer_class` 65%。相对门槛在采集题上也未过(91.0% < 92.5%)。Flash 在点选题 `answer_class`(83%)和采集题(95.8%)都明显高于 Jev。中文口语和字面理解是 Jev 主错因。
|
||
|
||
若接:不接。继续用会话贵模型。只允许 (b) 影子双跑记日志;不得按 confidence 写库。
|
||
|
||
来源 B 仍为 0,代表性检验只报数。
|
||
|
||
## 偏离
|
||
|
||
1. 来源 B = 0:无 staging 库。按让步 1。
|
||
2. 来源 A:测试文件并无 10 条 `(userMessage, 期望输出)` 夹具,改从该文件的 schema + 两句真实 `userMessage` 构造。
|
||
3. 来源 C 生成未走会话贵模型(无凭据)。产品口径「Agent 模拟造语料」;生成/复核模型名写进报告。
|
||
4. 现行对照用 `deepseek-flash` 套同一提示词,不是数据库里的会话默认模型。
|
||
5. Windows 上 worktree `.venv` 是 25 字节 Linux symlink。`typesafe-sdk` 装进本机 Anaconda 3.11.7,未改 `requirements*.txt`。
|
||
6. 未写 BUG_HISTORY(本单不是 Bug)。
|
||
|
||
## 验证
|
||
|
||
- `python -m pytest tests/test_jev_intent_research.py`:8 passed
|
||
- 线上分类器文件未改
|