分歧将错误群体升级:一致通过自动放行
Agent 确定性幻觉(第 7 部分)
本部分定位:本部分不延续第 13 部分 probe-vs-prose 线索。它回到 第 6 部分 的 L2→L3 升级规则 —— Dipankar 将投票分歧视为人工审核信号的做法。Alexey Spinov 的跟进评论指出,该信号指向了错误的群体。两项实验验证他是否正确,以及应在触发器中加入什么。
第 6 部分绘制了如下控制流:
L2 多视角投票
│
一致 ──────────► 自动通过 / 自动拒绝
│
分歧(如 2–1) ► L3 人工
进入全屏模式 退出全屏模式
文本中已有提示:分歧衡量的是模糊性,并不能解决一致性系统偏差。Alexey 的观点更尖锐 —— 它关乎路由,而非另一段免责段落。
1. Alexey 的人群错配
在第 6 部分讨论中,Alexey Spinov 写道(紧凑转述):
危险的失败是高置信度且有方向的 —— 系统性的。系统偏差跨提示共享,而非特异性(你的 P3:多数投票无法修正)。因此三个视角往往会在这些案例上达成一致。分歧→人工于是把安全模糊的案例路由给你,却把确信错误的案例自动放行。升级信号指向了错误的人群。
他提出两个低成本替代方案:
- T1 —— 对已知反转类执行确定性触发器(无论是否一致都升级)。
- T2 —— 将一致 + 高置信度且属于历史易反转类视为升级 —— “高置信度即自动放行”的反向。
这就是待检验的主张。不是“分歧无用”,而是“在你已测量的失败模式下,仅凭分歧作为主要触发器是错误的”。
2. 实验 A —— DF v2 离线代理(无需新 API)
第 6 部分的 Mike 更新已显示:在 96 次 DF v2 MISS 运行中,95.8% 的自报置信度 ≥ 0.9(平均 0.969)。该群体高度集中 —— 第 6 部分还报告约 80% 的 MISS 运行来自 qwen3:0.5b —— 因此标题是一个集中事实,而非三模型普适定律。P2(同提示 N=10;此处无冻结 results-v2 转储)显示相同输入下模型内分歧 ≈ 0。因此初步结论:
-
conf ≥ 0.9≈ 一致通道代理 → 在第 6 部分 Dipankar 规则下会自动放行 -
conf < 0.9≈ 分歧代理 → 会升级
在 PASS 决策为 MISS 的案例中,剔除 2 次 deepseek DS4 运行中 confidence: null 的记录(策略表需要标量置信度)。下表分母因此为 n=94,而非第 6 部分标题的 n=96:
| 分歧代理下的分组 | MISS 占比(n=94) |
|---|---|
| 会自动放行(conf≥0.9) | 97.9% (92/94) |
| 会升级(conf<0.9) | 2.1% (2/94) |
同一 PASS 集合上的策略对比:
| 策略 | MISS 捕获率 | MISS 仍自动放行率 |
|---|---|---|
| D(仅低置信度升级) | 2.1% | 97.9% |
| T1(升级所有 DF*/DS* 类) | 100%† | 0% |
| T2(反转类 ∩ conf≥0.9) | 97.9% | 2.1% |
| D+T2 | 100% | 0% |
†T1 是此测试装置上的类列表上界,而非独立发现。 每一次 DF v2 MISS 的 sid 均为 DF*/DS*;“升级所有反转类”因此按定义捕获 100% MISS。将 T1 视为 oracle 上限;可部署的主张是 D+T2。
脚本:scripts/escalation-population-mismatch.py。
代理下的结论(针对 D 与 D+T2,而非单独 T1): SUPPORT。
代理不是多判断器重跑。下一节消除这一借口。
3. 实验 B —— DF 集合上的真实 Strict / Balanced / Lenient
相同的 20 个 DF v2 场景。相同的三个 persona(P3)。每个场景每个 persona 调用一次(每个模型 60 次调用)。升级策略现使用实际投票模式:
-
D —— 当且仅当
split时升级 - T1 —— 当且仅当已知反转类(DF*/DS*)且在接受路径上时升级
-
T2 —— 当且仅当反转类且
unanimous_pass时升级 - D+T2 —— 并集
deepseek-v4-flash —— 此主张的错误基底
几乎所有坏场景均被一致拒绝。0 次危险接受(多数 PASS 于坏案例)。无法在几乎不 miss 的模型上测量“一致 miss 自动放行”。空结果,并非证伪。
gemma3:latest —— 不同的失败形态
Strict/Balanced 拒绝,Lenient 通过 → 几乎全为 split,多数仍拒绝坏案例 → 0 次危险接受。分歧将升级几乎所有接受路径噪声(含真实通过)。也不是 Alexey 所指的人群。
qwen3:0.5b —— 匹配该主张的基底
6 次危险接受(多数 PASS 于坏输出)。其中:
| 模式 | 数量 | 占比 |
|---|---|---|
unanimous_pass |
4 | 66.7% |
split |
2 | 33.3% |
该运行的策略表:
| 策略 | MISS 捕获率 | MISS 仍自动放行率 | 真实通过升级率 |
|---|---|---|---|
| D | 33.3% | 66.7% | 0% |
| T1 | 100%† | 0% | 0% |
| T2 | 66.7% | 33.3% | 0% |
| D+T2 | 100% | 0% | 0% |
†与 §2 相同提示:全部 6 次危险接受位于反转类 sid,因此 T1 的 100% 是类列表上限。关键行是 D+T2。
脚本:scripts/df-multiperspective-escalation.py。
结果:results-v2/df-multiperspective-qwen3-0.5b.json(另含 deepseek / gemma 转储)。
在实际产生该失败模式的模型上的结论:PARTIAL → SUPPORT。三分之二的危险接受是一致的,在第 6 部分规则下会自动放行。仅凭分歧捕获另外三分之一。D+T2 捕获全部 6 次,且未升级本运行中的真实通过。DeepSeek/Gemma 的空结果意味着这是一个基底条件的结果(系统性 miss 的判断器),而非对所有模型的主张。
4. 流水线中的变化
第 6 部分的图示仍适用于真实模糊。它不再是唯一的 L2→L3 触发器。
L2 投票
│
├─ 已知反转类触发器(T1) ──────────► L3 / 硬拒绝路径
├─ 反转易发类上的 unanimous_pass(T2)► L3 ← 自动放行的反向
├─ split(Dipankar) ────────────────────────────► L3
└─ 其余一致 ──────────────────────────────► 自动执行
进入全屏模式 退出全屏模式
将一致解读为置信度是 bug。在你之前出错过的类上达成一致,正是相关错误藏身之处 —— Alexey 的措辞,以及 qwen 的投票。
Mike 的第 6 部分更新从审计抽样侧面攻击同一尾部(不要按 1/confidence 加权审计)。本部分从升级触发器侧面攻击。同一人群;不同控制旋钮。
5. 限制(请保留以下内容)
- DeepSeek / Gemma 的空结果意味着:强判断器或异常分裂的判断器无法压力测试此主张。该主张针对的是系统性 miss 的判断器,而非所有模型。
- qwen 运行是每个 persona N=1(60 次调用)。足以拒绝“仅分歧就够”;但不足以生成生产速率卡。
- T1 需要维护类列表(DF/DS 风格)。无历史的新冷启动类回退至 D —— 并继承 D 的盲区,直到该类被标注。
- forge-verify 的
content-verify.mjs目前仍实现分歧→UNCLEAR 多数逻辑。这些触发器是设计 + 博客证据,尚未在本篇中产品化。
更新(2026-07-22):双臂 —— 复发 vs 新颖(Mike)
Mike Czerwinski 关于反向触发器:
它只在你已捕获为错误的类上触发。“历史易反转”由历史构建,因此尚未见过的易反转类……会产生一致高置信度且无触发器……这不是反对触发器的理由……而是主张将其视为双臂设计的一臂……已知反转触发器捕获复发。新系统偏差首次出现时,需要更接近……真正独立的二次读取[它]不需要历史即可分歧……已知反转类上的一致高置信度是正确的补充。它不是对“确信错误且从未捕获过”的修复。
该第二人群在本线程中已获命名:确信错误且从未捕获过(新颖系统偏差)。T1/T2 是复发臂 —— 低成本、历史条件化、必要。它们不是新颖臂。
Mike 希望填补新颖臂的可能是 classifier_disagree 独自携带信号(不共享模型先验的独立二次读取)。我们在第 6 部分采样装置上进行了消融(external-signal-ablation.json):classifier_disagree 单独捕获 25.1% < 第 6 部分的 28.4% —— 最佳单一外部信号,仍然不足以单独成为新颖捕获器。与 barely_passed 捆绑后提升;单独使用则未达标。因此新颖臂不是“将 CD 单独放入触发器并宣布首次出现已解决”。
本系列反复落于此分叉:
| 臂 | 信号形态 | 捕获 | 成本 |
|---|---|---|---|
| 复发 | T1 / T2 —— 失败历史、已知反转类 | 已烧毁模式的重复 | 低 |
| 新颖 | 不共享判断器先验的来源(通道外探针、独立模态 —— 见第 13 部分 probe-vs-prose;非同一文本通道中的另一提示) | 新系统偏差的首次出现 | 高 |
你需要两者。错误在于期望低成本臂承担高成本臂的工作。D+T2 仍是第 6 部分图示的正确补充。它并未关闭“确信错误且从未捕获过”。
更新(2026-07-23):什么是“通道外”(Mike)
在构建新颖臂探针前,Mike 界定了获得独立性的属性 —— 而非外观:
如果探针仍是另一个 LLM 调用,用文本推理判断主张是否正确,即使提示不同或被要求反对,也仍算同一通道。真正买来独立性的属性是:探针的答案来自通过原主张从未触及的路径重新推导事实 —— 不同数据源、结构不变量、重新计算,而非用不同提示二次读取同一证据。
具体而言:……提前声明探针错误意味着什么,且独立于原主张所述内容,就像校验和无论文件声称包含什么都可能错误。如果评估探针输出的唯一方式是与原主张的推理比较,则仍属通道内,只是流水线稍后。语义新颖性之所以困难,正是因为大多数可用第二意见继承了相同证据和相同推理基底……那些不继承的更稀有且通常领域特定,这可能就是为什么此臂保持开放,而复发臂今日即可构建。
校验和测试(可操作):能否在不引用主张理由的情况下写出探针的通过/失败标准?如果不能 → 仍属通道内(戴帽子的第五提示)。如果能 → 通道外候选。
| 未通过测试(同一通道) | 通过测试(通道外) |
|---|---|
| Strict/Balanced/Lenient、“与前一判断器分歧”、辩论面板 | 从源数据重新计算;结构不变量(schema、type、校验和);执行可证伪主张的命令的 runner(第 13 部分 probe) |
classifier_disagree(当 L2 仍为同一 artifact 的文本) |
L0/L1 形状/合约检查,从不读取 LLM 的故事 —— 仅当其裁决无需主张的散文即可解释时 |
因此:复发臂今日即可构建(T1/T2)。新颖臂有意保持开放 —— 不是因为我们未添加另一提示,而是因为真正的独立性稀缺且受领域塑造。第 13 部分的 probe-vs-prose 是现有最接近的线索;Mike 的校验和测试是任何声称位于该臂的验收标准。
更新(2026-07-23):结构 ≠ 因果独立(Mike)
Mike 关于校验和门槛的跟进:
校验和框架设定了正确的门槛,因为它可独立于故事证伪。一个只能通过与原推理比较才能打分的探针,衡量的是同意,而非正确。
一个值得明确命名的案例……:“其他数据”在结构上不同,但仍处于同一采集流水线的下游。两个信号可能通过同一通道测试,却仍共享上游共同原因 —— 传感器故障或 schema 变更同时破坏主张和探针输入。结构独立与因果独立不是同一属性,而复发-今日可构建的情况可能在仅检查前者的同时悄然假设后者。
两个切分,而非一个:
| 测试 | 询问 | 通过条件 | 仍失败条件 |
|---|---|---|---|
| 校验和 / 同一通道 | 能否在不使用主张的故事的情况下为探针打分? | 可写出通过/失败标准而无需理由 | 探针是对同一证据的第二次文本读取 |
| 因果 / 共同原因 | 主张与探针是否共享上游失败模式? | 探针输入不处于同一采集/导出/schema 路径的下游 | “其他数据”看似独立,但被同一传感器故障、schema 变更或错误导出破坏 |
校验和框架仍是正确的第一门槛 —— 它阻止同意打分。它不是共同原因屏障。将第二失败模式命名为“通道外”,以免悄然将结构差异提升为因果独立。
这对不对称主张的收紧: “复发今日可构建” 是关于已烧毁类上的 T1/T2 —— 历史条件化,无需独立性。下文的留守探针仅检查了新颖门槛的结构一半(无需主张理由即可写出通过/失败)。它未认证针对共享上游失败的因果独立。领域塑造的稀缺性现分两层:找到通过校验和的探针,以及找到其输入路径不与主张共享共同原因的探针。
更新(2026-07-23):留守实验 —— 分叉可测量
最小离线测试(novelty-arm-holdout-test.py → results-v2/novelty-arm-holdout.json,使用 --holdout DS4 冻结)。将 DS4 从已知反转注册表中留守(跨模型 31 次高置信 MISS 运行)。针对首次出现群体的三臂:
| 臂 | DS4 高置信 MISS 捕获率 |
|---|---|
| A 复发(D+T2,DS4 不在注册表中) | 0/31 (0%) |
| B 同一通道(同一 model×sid 的另一次运行被拒绝) | 1/31 (3%) |
| B′ 同一通道(qwen Strict/Balanced/Lenient) | unanimous_pass → 捕获失败 |
| C 通道外探针(任务+artifact 校验和;无判断器理由) | 31/31 (100%)‡ |
‡臂 C 是装置演示,而非盲泛化。 probe_fail() 编码每个 sid / 任务约束规则(含 DS4);留守仅将 DS4 从复发注册表中移除。探针仍知晓 artifact 形状。将 31/31 解读为“一个校验和式标准可以在无类历史条目的情况下捕获首次出现”,而非“我们未看失败就发现了探针”。使用 --holdout DS9 时形状相同(重跑覆盖 JSON;默认冻结为 DS4)。
对照:复发在非留守高置信 MISS 上的表现 = 61/61 (100%) —— 类别已知时历史有效。探针对合法 V1/V2 无误拒。结论:SUPPORT 不对称形态(A 错失新颖 / B 崩溃 / C 在 oracle 规则下可捕获);不是 主张臂 C 已生产就绪或因果独立。
因此 Mike 的分叉不仅是定义。在此装置上:低成本复发错失从未烧毁的类;同一通道二次读取与 miss 一起崩溃;一个校验和式探针可以在无注册条目的情况下捕获首次出现 —— 前提是你已知如何编写标准。新颖臂仍受领域塑造;该稀缺主张保持不变。结合上文更新阅读:本运行支持新颖门槛的结构一半;它不主张针对同一流水线共同原因的因果独立。
结语
第 6 部分将多数投票分裂停止于虚假共识是正确的。它错误地将补集 —— 一致 —— 视为对 DF v2 已测量的失败模式的安全自动执行。Alexey 指出了人群错配;DF 多视角重跑为其提供了数字。Mike 命名了复发臂无法看到的人群,界定了在构建该臂之前“通道外”必须意味着什么,并将该门槛拆分为结构独立与因果独立。
分歧保留。T1/T2 加入其中。它们都不是新颖臂。第五个提示也不是新颖臂。通过校验和的“其他数据”探针也不自动成为共同原因屏障。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.