Files
natural-memory-nm21/E2E_FINDINGS.md
T
WpyQwq 643e22ecb9 Natural Memory NM2.1: 记忆路由器分叉、数据集缺陷修复与全轴评测证据
- 引入 MemoryRouterXL 与 v5/v6 流式多线程训练/编码管线
- 修复 prepare_memory_router_dataset 候选池重建缺陷(mega 家族 3568x 加速,输出逐字节相同)
- 修复 v5 被破坏的拒答与多跳标签(train 未知样本 319 -> 16319,multi_hop 平均正例 1.00 -> 2.00)
- 同存储预算下 V2-128 v6 逐轴 22/22 通过:Top-1 41.12% -> 94.62%,未知拒答 0.00% -> 100.00%
- 记录三条被实测推翻的显然优化(logits_to_keep=1 反而慢 55%、XL 容量未带来收益)
- 记忆手术跨架构可移植性 14/14,读写关闭时与原生模型逐位相同
2026-09-19 11:11:31 +08:00

4.8 KiB
Raw Blame History

端到端测试发现(回答级,非代理指标)

之前所有结论都建立在路由器级评分卡上。本文件记录回答级(写入证据 → 路由器读取 → Qwen 生成 → 打分)的测试,以及它推翻了什么。

1. 先说结论

  1. 在 v6 评测集上,端到端回答正确率与新路由器无关:生产路由器与 V2-128-v6 得到完全相同的结果(总体 59.55%、可回答 59.38%、未知拒答 60.00%)。原因见 §2。
  2. 路由器确实在一个真实失败模式上产生了产品级收益:面对没有任何词法重叠的改写问句,旧路由器 7/16 直接判断"不需要读记忆"(已知问题被误拒 43.75%),新路由器 0/16。这与路由器级指标(已知被误拒率 11.23% → 0.00%)一致。
  3. 但答对率只从 37.50% 提升到 43.75%,且"答成别的属性"从 18.75% 升到 25.00%。瓶颈已经从"路由"转移到"证据精度与模型用证"。
  4. 路由器的 Top-1 在纯语义改写上是弱的:top_k=1 时 43.75% 答成别的属性。而路由器级评分卡上 paraphrase 类别 Top-1 是 99.65% —— 因为那些用例仍与事实共享属性词,属于词法+语义混合匹配。

2. 为什么 v6 端到端结果与路由器无关

在 44 个真实用例(覆盖全部 11 类)上统计检索决策来源:

决策来源 占比
evidence_found(规则化地址/词法命中) 90.9%
explicit_unknown_request(识别"请明确说不知道") 9.1%
需要神经路由器决定记录选择 0%(规则已给出候选并命中)

对同一批用例,生产路由器与 V2-128-v6 给出逐位相同的决策(top 值 8.367 / 4.168 / 8.536 全同,page_ids、record_ids 数量全同)。

机制(源码路径):MemoryOSV2.read 先用规则判断(显式未知请求 → 直接弃答),再问路由器的 need_memory;候选页面/记录由库内 _address_hits / _lexical_evidence_hits 产生,神经分数只在候选内排序。因此当查询与证据共享属性词时,规则已经解决了问题,路由器不改变结果。

含义:v6 评测集的构造方式(问句与事实共享属性措辞)使它对路由器不敏感;用这种数据无法测出路由器的优劣,也无法证明路由器能改善产品。

3. 路由器关键测试(规则无法决定)

构造:16 条属性互异的个人事实(因此冲突键不同、真实共存,不是互相覆盖)+ 16 个与所有事实零词法重叠的改写问句;答案是只出现在一条事实里的随机编码,因此"答成别的属性"可检测。写入 16 条事实 + 4 条无关填充后提问。

路由器 用例 回答正确率 答成别的属性 触发读取 规则命中用例 平均注入记录 决策来源
生产 128 维(v3) 16 37.50% 18.75% 56.25% 6/16 2.88 evidence_found:9, router_abstained:7
V2-128-v6 16 43.75% 25.00% 100.00% 6/16 6.38 evidence_found:16

已知问题被误拒:43.75% → 0.00%(7/16 → 0/16)。

注入记录数扫描(V2-128-v6)

top_k_records 答对率 答成别的属性 平均注入记录
8(默认) 43.75% 25.00% 6.38
3 37.50% 25.00% 2.63
1 18.75% 43.75% 1.00

减少注入量使结果更差:top_k=1 时 43.75% 答成别的属性,等于路由器在这些零重叠改写上的 Top-1 大约一半是错的。默认 8 条之所以得分最高,是因为模型能从更大的证据集里自己捞回正确答案——这不是路由器的功劳,而是它的错误被大证据集掩盖了。

4. 部署约束(实测)

路由器 能否直接替换生产路由器 原因
V2-128-v6 能 16 个权重键与分片零差异,可驱动 PagedMemoryBankV2
XL-128-v6 不能 新架构,MemoryRouterXL 形状与运行时的 MemoryRouterV2 不兼容,需改运行时
V2-512-v6 不能 需要把 memory_router_dim 128→512 并重建记忆地址

5. 下一步(按性价比排序)

  1. 补训路由器的零重叠改写能力:当前 paraphrase 训练样本仍共享属性词。用模板化改写(同义词/口语化/指代)生成"零词法重叠"样本,这是 §3 暴露的唯一缺口。
  2. 证据精度而非召回:默认注入 8 条时错答属性比例 25%,说明应当对注入证据做冲突键去重与属性一致性过滤,而不是单纯扩大 Top-K。
  3. 重建评测集:让问句与事实不共享属性措辞,否则任何路由器改进都无法在 v6 上体现。
  4. 端到端 v6 全集(220 用例)可作为产品基线,但它测的是规则路径 + 生成能力,不是路由器。