- 引入 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,读写关闭时与原生模型逐位相同
63 lines
4.8 KiB
Markdown
63 lines
4.8 KiB
Markdown
# 端到端测试发现(回答级,非代理指标)
|
||
|
||
之前所有结论都建立在**路由器级**评分卡上。本文件记录回答级(写入证据 → 路由器读取 → 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 用例)可作为产品基线,但它测的是规则路径 + 生成能力,不是路由器。
|