Jev 用于 DICOM 序列 → 重建预设路由:对照实验报告 日期 :2026-09-21 模型 : jev-latest (响应报告 jev-1.13.0 ) 调用量 :2388 次(0 失败),206 万 input tokens 实验成本 :≈ $0.08 代码与数据 : experiments/jev-preset-routing/ 原始响应 : jev/runs_jev.jsonl (逐次调用落盘,可复算) 0. 一句话结论 加入 Jev 确实带来了可测量的增益,但不是"替代规则",而是"在规则失效的那一半样本上补位"。 规则在它擅长的 45% 样本上准确率 100%,Jev 在规则失效的 55% 样本上把准确率从 86.3% 提到 96.8%; 两者按"规则优先、Jev 兜底"组合后,总体从最强单方案的 92.4% 提升到 97.3% 。 同时有一个反向结论同样明确: 在 Kernel、窗位窗宽这类数值/编码字段上,Jev 明显弱于查表规则(59.1% vs 90.9%),不应交给模型判断。 判定 确信度 依据 Jev 在规则失效样本上有实质增益 高 门控子集直接对照,n=190,+10.5pp Jev 不适合判断数值/编码字段 高 numeric 族 n=22,59.1% vs 90.9% "规则优先 + Jev 兜底"优于任一单方案 高 97.3% vs 92.4%,且规则段零损失 该增益在真实多中心数据上的幅度 低 本实验为受控构造集,见 §2.5 限制 1. 要回答的问题 把上一轮的分析结论变成可测量的实验: 在"DICOM 序列元数据 → 选择 CliniVol 重建预设(骨骼/器官/血管/支气管/体表)"这个任务上, 引入 Jev 是否比纯代码规则方案更好?在哪些条件下更好? 这个问题之所以值得做实验,是因为它有三种可能的答案,而且事前无法判断: Jev 全面更好 → 应该用 Jev 替代规则 Jev 全面更差 → 不应该用 Jev 各有胜场 → 应该组合,且组合方式本身需要设计 2. 实验设计 2.1 任务定义 项 内容 输入 一条 DICOM 序列的元数据(文本字段 + 可选的数值字段) 输出 6 类之一: 骨骼 / 器官 / 血管 / 支气管 / 体表 / 其他 类别体系 前 5 类对齐 CliniVol ReconstructionPreset ; 其他 覆盖真实 PACS 中的非重建对象(报告、定位像、剂量记录、规划对象) 判据 与 ground truth 的一致率 2.2 数据集:三个子族(图 2) 共 398 条 : 命名变异族 naming (364 条) ——主实验。 只保留文本字段 ,用于隔离"文本语义能力"。 规范命名来自真实来源(公开数据集真实字段、重建核命名惯例、DICOM 标准示例、中文医院 PACS 写法), 再施加 12 个变异算子。 数值主导族 numeric (22 条) ——判别信息 只在 Kernel / 窗位窗宽里,文本被刻意做成无信息。 信息缺失族 missing (12 条) ——无判别信息,用于观察各方在无解时的行为(不计入主指标)。 12 个变异算子 ,每个都对应真实观察到的命名偏差: 层级 算子 现实依据 L1 大小写 / 分隔符替换 / 多余空格 技师输入与系统默认不一致, _lung 与 -lung 并存 L2 缩写 / 厂商前缀 / 参数嵌入 字段长度限制;多厂商设备写入;层厚与重建核被拼进序列名(如 BONE 1.25 B60s ) L3 全中文 / 中英混排 / 拼音缩写 / 口语描述 / 录入笔误 / 占位符 中文医院普遍中英混排;口语化命名;未填写的占位符 2.3 对比方案 类别 方案 说明 规则 rule_std_text / rule_ext_text / rule_std_full / rule_ext_full 4 档 ={标准术语,含本地化}×{仅文本字段,全字段} Jev jev_en_text / jev_en_full / jev_zh_full 每条用 6 个独立 Noul 并行判断,取最大概率合成类别 混合 hybrid 规则给出强证据(score ≥ 5)→ 用规则;否则 → 交给 Jev 为什么用 Noul 而不是 Choice :本仓库 docs/exp-01 实测指出,中文 state 下"相邻类别之间的 Choice"确定性会崩塌 (confidence 0.516 → 0.293,20 次采样从 20:0 一致变成 7:13 分裂),而 Noul / Score 中英文几乎无损。 "从 6 个预设里选一个"正是相邻类别选择,因此选择 Noul。 Jev 采样策略 :每组重复 2 次 ,按 Noul 均值合成。重复稳定性实测为 98.2% (1194 个 key 中 1173 次两次预测完全一致)。 2.4 规则基线的效度控制(一个必须先讲的坑) 第一版规则基线在 重度变异 上的准确率是 98.6%,比规范命名还高 。这不可能,检查后发现原因: 规则词表里混入了拼音缩写、口语短语映射等词条——这些词条 只有看过测试集答案才写得出来 。这是数据泄露。 第二版做了两条硬约束: 标准词表只允许包含"没见过测试集时,一名放射科软件工程师会写的规范术语" ;所有本地化扩展单独成档,且对比时分开报告。 变异必须同时可能抹掉 ProtocolName 。v1 只变异 SeriesDescription ,而 ProtocolName 始终保留规范名, 规则因此总能找到关键词——真实数据里协议名常常为空或与描述同源。 修正后规则在命名族为 92.5% ,在拼音(75%)、分隔符(82%)、厂商前缀(86%)等算子上出现合理退化。 这个坑本身是本次实验最有价值的方法学结论之一:如果规则基线是"照着答案写的",结论会完全反过来。 2.5 方法学限制(必须声明) 这是受控构造的基准,不是真实多中心数据的自然分布样本。 它测量的是"方案在命名变异下的鲁棒性", 不是 真实世界的绝对准确率。本环境无法访问 TCIA 等真实临床库,项目内也无临床 DICOM。 变异算子来源于公开可查的真实现象,但其 组合与比例由本脚本决定 。 ground truth 由构造过程确定,无歧义;但"体表 vs 骨骼在数值上高度重叠"这类 真实歧义 被保留为困难样本(规则在 numeric 族的 2 个失败样本即属此类)。 成本为按实际 token 用量与官方价目的估算,非账单核对值。 3. 执行流程(图 1) 4. 结果 4.1 总体准确率(图 3) 仅可解样本 n=369: 方案 准确率 规则·标准术语·纯文本 87.3% 规则·含本地化·纯文本 88.1% 规则·标准术语·全字段 91.6% 规则·含本地化·全字段 92.4% Jev·英文·纯文本 86.4% Jev·英文·全字段 88.6% Jev·中文·全字段 90.0% 混合(规则→Jev) 97.3% 读法 :单独看,Jev(90.0%) 没有 打赢最强规则(92.4%)。如果实验到此为止,结论会是"不该用 Jev"。 但组合后是 97.3%—— 增益不在平均值里,在分布里 。后续各节就是在拆这个分布。 4.2 分族:数值与编码字段应归代码(图 4) 族 规则(ext_full) Jev 英文 Jev 中文 命名变异族(n=347) 92.5% 90.5% 92.2% 数值主导族(n=22) 90.9% 59.1% 54.5% 数值主导族里,判别信息只存在于 ConvolutionKernel (如 B60s )和窗位窗宽(如 WC 400 / WW 1800 )。 规则靠一张查表命中 90.9%,而 Jev 只有 54.5%–59.1%。 典型失败 : ConvolutionKernel = B60s (骨骼)→ Jev 判 bronchial (0.62); WC 400 / WW 1800 (骨窗)→ Jev 判 organ (0.49)。 结论(确信度:高) :Kernel 名、窗位窗宽这类 编码/数值字段 的解读应留在代码里。 模型不掌握 B60s 对应的厂商重建核惯例,也不稳定掌握 HU 窗位与组织的对应关系。 这与上一轮的分析一致: 数值归代码,语义归模型 。 4.3 难度曲线(图 5) 准确率随"变异难度"上升 并未单调下降 。这正是 §2.4 那个坑的教训:关键词匹配对 词形变异 (大小写、空格、前缀、混排)高度鲁棒, 因为这些变异 保留了关键词 。真正有区分度的是 破坏了关键词形态 的算子——见下一节。 4.4 核心结果:两类方案在不同噪声上各有所长(图 6) 把准确率按变异算子拆开,"平均值差不多"的假象立刻消失: Jev 更强(形态破坏类噪声): 算子 规则 Jev 最佳 差值 机理 分隔符替换 82% 100% +18 BONE_1.25 破坏正则边界,人类与模型仍能读懂 拼音缩写 75% 86% +11 GWBC → 规则需穷举拼音表,模型靠语义联想 厂商前缀 86% 93% +7 SIEMENS BONE... 干扰词首匹配 录入笔误 89% 96% +7 BONEE 不被 \bbone\b 匹配,语义仍可辨 规则更强(语义可读但非规范): 算子 规则 Jev 最佳 差值 机理 口语描述 100% 82% −18 骨头那个薄的 含"骨"字,规则一击命中;模型反而犹豫 占位符 100% 82% −18 文本被抹除后靠规范 ProtocolName 兜底,模型未充分利用该字段 规范命名 / 大小写 / 缩写 93–96% 89–93% −4 标准术语直接被匹配 结论(确信度:高) :Jev 的增益 不是 "更懂放射学语义",而是" 对形态噪声更鲁棒" 。 它在关键词被拆散、拼错、换语言时仍能还原意图;而规则一旦关键词形态被破坏就完全失效。 反过来,当关键词完好时,规则的确定性反而优于模型的概率判断。 4.5 混淆矩阵(图 7) 规则 : 其他 类 100/100 全对(黑名单机制),但 支气管有 10 例被误判为器官 。 Jev 英文 : 其他 只对 75/100, 血管有 12 例被误判为"其他" ——模型对"这不是诊断序列"的边界把握不如显式黑名单。 混合 : 其他 类 100/100,同时各图像类别均优于或持平单一方案。 结论(确信度:高) :显式黑名单(规则)在"排除非目标对象"上不可替代;模型倾向于过度收敛到 其他 。 4.6 一致性分析(图 8) 情形 样本数 其中正确 规则与 Jev 判定一致 305 302( 99.0% ) 不一致·规则对 39 — 不一致·Jev 对 25 — 不一致·都不对 0 — 两条可直接落地的规则 : 两者一致 → 正确率 99.0% ,可以自动执行,无需人工复核。 两者不一致 → 共 64 例,规则对 39、Jev 对 25 ,任何一方都不足 2/3。 这一段应该 标记为待确认 ,而不是强行自动决策。 Jev 顶端 Noul 的分布:均值 0.816、中位 0.880,低于 0.5 的仅 26/398(6.5%)。 模型自身把握程度整体较高,可作为"是否需要人工介入"的辅助信号。 4.7 混合策略的增益来源(图 9、图 12) 门控把命名变异族(n=347)切成两段: 段 样本数 占比 规则 Jev 英文 Jev 中文 混合 规则出强证据 → 采用规则 157 45.2% 100.0% 84.1% 86.6% 100.0% 规则证据弱 → 交给 Jev 190 54.8% 86.3% 95.8% 96.8% 95.8% 这就是全部答案 : 规则在能拿到结构化证据时(Kernel / 窗位 / 黑名单 / Modality) 是完美的 ,这一段交给 Jev 反而会掉到 84–87%。 规则拿不到强证据时(53% 的样本),Jev 把准确率从 86.3% 提到 96.8%(+10.5pp) 。 两段各自取最优,得到总体 97.3%。 弱证据段内 Jev 增益最大的算子:拼音缩写 +33pp、分隔符替换 +29pp、厂商前缀 +24pp、中英混排 +17pp、录入笔误 +12pp。 值得注意的是:命名变异族的 并集上限是 100% (347 条中至少一方判对的覆盖全部), 说明当前门控阈值还不是最优,理论仍有约 2.3pp 的挖掘空间—— 这是一个明确可优化的点 ,而非模型能力上限。 4.8 语言对比(图 10) 组 Jev 英文 Jev 中文 差值 总体 88.6% 90.0% +1.4pp 命名变异族 90.5% 92.2% +1.7pp 数值主导族 59.1% 54.5% −4.6pp 与 exp-01 的对比是重要发现 : exp-01 中,中文 state 让细粒度 Choice 的置信度从 0.516 崩到 0.293,答案 20:0 变 7:13。 本实验中,改用 Noul 后,中文在命名族上 不仅没退化,反而略高 (92.2% vs 90.5%), 且中文的 Noul 顶端值更低(均值 0.775 vs 0.816)但 准确率更高 ——即模型"犹豫"时判断仍然对了。 结论(确信度:高) :exp-01 的结论在本任务上得到复现与延伸—— 中文场景下应避免用 Choice 做相邻类别选择,改用多个 Noul 是可行解法。 对中文医院的实际部署,这条比准确率数字更有直接价值。 4.9 成本与延迟(图 11) 项 值 单次调用延迟(含网络,并发 16) 均值 0.92–0.93s ,最大 1.6–2.7s 平均单次 input tokens 861 实验总调用 2388 次,0 失败 实验总成本 ≈ $0.08 规则方案运行成本 $0 (确定性代码) 延迟瓶颈在网络,不在模型 (模型本身官方标称 0.13–0.38s)。 若要在 CliniVol 里做实时预设推荐, 最大优化点是减少网络往返:把一次完整元数据打包成单次请求 , 而不是"一步步问"——后者会按轮数线性叠加 1s 延迟。 5. 结论:Jev 加入是否带来好效果 是,但增益有明确边界,且必须按"规则优先、Jev 兜底"的方式接入。 问题 答案 确信度 Jev 能否替代规则? 不能 。单独 Jev 90.0% < 规则 92.4% 高 Jev 在规则强的地方有用吗? 没用,反而有害 。该段规


  • 情报分类:技术学习与提效
  • 分类依据:内容涉及技术、AI、软件工具或工程实践
  • 信息来源:服务器 / LINUX DO - 最新话题
  • 发布时间:2026/9/21 09:46:39