Files
Jyotisha/docs/tasks/PROGRESS-rectification-jev-intent-classifier-research-20260919.md
T

8.9 KiB
Raw Blame History

进度 · 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
  • 线上分类器文件未改

修复轮(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 判标签
  • 线上分类器文件未改

修复轮 2(2026-09-19,codex/rectification-jev-intent-research-fix2-20260919)

任务书:TASK-rectification-jev-intent-classifier-research-fix2-20260919.md。0 token:从 .cache/jev_intent/jev_runs_v2.json 聚合已跑结果,未重造语料、未重跑模型。

补进报告的三组数(来源 B 157 条):

范围 n Jev intent 现行 Flash intent Jev 高置信错误 Jev 低置信召回 Jev 自洽
全集 157 91.1% 89.2% 6.4% 24.1% 96.2%
点选 17 94.1% 88.2% 0.0% 66.7% 94.1%
采集 107 94.4% 95.3% 5.6% 18.2% 99.1%
无焦点 33 78.8% 69.7% 12.1% 20.0% 87.9%

无焦点层 7 条 Jev 错全是 unclear → answer_current_focus。现行在无焦点上更低(69.7%),10 条错里 5 条同样是 unclear → answer_current_focus。说明 78.8% 主要是这 33 条难,不是单 Jev 不行。

采集层相对门槛改为「不可判(复核与对照同源)」。限制三节已写入报告。结论仍 缺数据,不上线。未立 BUG。

关单(2026-09-19,产品拍板)

fix2(507ef959)验收通过后产品拍板 关单:Jev 不接管校正意图分类、不影子双跑、不再造语料。09-15「分类只用贵模型」口径维持。依据:真人 157 条上 Jev 与线上 Flash 的 intent 准确率在样本量能解释的范围内(91.1% vs 89.2%),无焦点层两边同一错模式;挡住上线的是 Jev 置信度不可用(高置信错误全集 6.4% / 无焦点 12.1% > 3%,低置信召回 24%),再花 token 改不了置信度校准。