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,读写关闭时与原生模型逐位相同
This commit is contained in:
+107
@@ -0,0 +1,107 @@
|
||||
# NM2(原版)vs NM2.1:多维度对照
|
||||
|
||||
所有数字均从磁盘上的评分卡/JSON 读取,不是手工抄录。每张表都标注了来源文件。
|
||||
除第 3 节(同一份运行时、只有模型包不同)外,其余各节比较的是**路由器工件**在同一冻结评测集上的表现。
|
||||
|
||||
## 1. 检索与排序(冻结 v6 评测集 21,920 条 / 10 类别)
|
||||
|
||||
来源:`router_scorecard_final.json`(判定见 `router_verdict_final.json`)
|
||||
|
||||
| 指标 | NM2(原版 `V2-128 deployed(v3)`) | NM2.1(`REPLAY-128 v7 final`) |
|
||||
|---|---:|---:|
|
||||
| Top-1 正确率 | 41.12% | 94.14% |
|
||||
| Recall@1 | 37.03% | 88.58% |
|
||||
| Recall@3 | 46.73% | 96.48% |
|
||||
| Recall@5 | 48.91% | 97.15% |
|
||||
| MRR | 47.69% | 95.77% |
|
||||
| nDCG@3 | 44.22% | 95.37% |
|
||||
| 多跳证据全中(Top-3) | 43.43% | 96.22% |
|
||||
| 多跳证据全中(仅多正例) | 37.15% | 95.45% |
|
||||
| hop 正确率 | 73.23% | 100.00% |
|
||||
| hop 欠预测率 | 4.68% | 0.00% |
|
||||
|
||||
## 2. 拒答/仲裁策略轴
|
||||
|
||||
来源:`router_scorecard_final.json`(门槛 0.50)+ `threshold_sweep_check.json`(0.30–0.80 全门槛)
|
||||
|
||||
| 指标 | NM2(原版) | NM2.1 |
|
||||
|---|---:|---:|
|
||||
| need F1 | 89.58% | 100.00% |
|
||||
| need 召回 | 99.82% | 100.00% |
|
||||
| need 精确率 | 81.24% | 100.00% |
|
||||
| 未知拒答率 | 0.00% | 100.00% |
|
||||
| 已知问题被误拒率 | 0.18% | 0.00% |
|
||||
| 未知问题被误读率 | 100.00% | 0.00% |
|
||||
| 仲裁准确率 | 81.12% | 100.00% |
|
||||
|
||||
全门槛(0.30/0.40/0.50/0.60/0.70/0.80)7 轴复核:NM2.1 **全门槛通过**;原版在每个门槛上未知拒答率均为 **0.00%**,且门槛越高误拒越差(0.00%→1.32%)。
|
||||
|
||||
## 3. 端到端整体记忆能力(同一份运行时,只有模型包不同)
|
||||
|
||||
来源:`nm2_battery_comparison_final.json`(A 110 用例 / B 16 / C 48 / D 重启持久化)
|
||||
|
||||
| 指标 | NM2(原版包) | NM2.1(最终包) |
|
||||
|---|---:|---:|
|
||||
| A 用例数 | 110 | 110 |
|
||||
| A 总体正确率 | 89.09% | 88.18% |
|
||||
| A 可回答正确率 | 100.00% | 100.00% |
|
||||
| A 未知拒答率 | 60.00% | 56.67% |
|
||||
| A 已知问题被误拒率 | 0.00% | 0.00% |
|
||||
| B 零字面重叠改写正确率 | 43.75% | 68.75% |
|
||||
| B 答成别的属性 | 18.75% | 18.75% |
|
||||
| B 触发读取 | 56.25% | 93.75% |
|
||||
| C 可回答正确率(24 同形候选) | 65.00% | 70.00% |
|
||||
| C 答成别的属性 | 35.00% | 27.50% |
|
||||
| C 未知泄漏率(越低越好) | 75.00% | 0.00% |
|
||||
| D 重启后召回 | 通过 | 通过 |
|
||||
| D 重启后作答正确 | 通过 | 通过 |
|
||||
| D 清理生效 | 通过 | 通过 |
|
||||
|
||||
## 4. 未见改写问法的泛化(零字面重叠,24 同形候选,随机 4.17%)
|
||||
|
||||
来源:`replay_check_zov.json`(路由器级)与第 3 节 B/C 段(端到端)。路由器级用的是 v6 最终版权重作对照(原版部署权重在同一集合上 Top-1 只有 11.60%)。
|
||||
|
||||
| 指标 | NM2(v6 最终版权重) | NM2.1(本交付权重) |
|
||||
|---|---:|---:|
|
||||
| 路由器 Top-1(250 条可回答) | 18.40% | 59.60% |
|
||||
| 路由器 Recall@3 | 36.00% | 83.20% |
|
||||
| 路由器 MRR | 35.07% | 73.06% |
|
||||
| 端到端改写正确率(B 段) | 43.75% | 68.75% |
|
||||
| 端到端未知泄漏(C 段) | 75.00% | 0.00% |
|
||||
|
||||
## 5. 成本(参数 / 存储 / 速度)
|
||||
|
||||
来源:`router_scorecard_final.json`、`router_latency_bench_prod.json`(7 轮交错中位数)
|
||||
|
||||
| 指标 | NM2(原版) | NM2.1 |
|
||||
|---|---:|---:|
|
||||
| 参数量 | 2,037,774 | 2,037,774 |
|
||||
| 每条记录地址字节 | 512 | 512 |
|
||||
| 单查询延迟中位数 ms (GPU) | 0.9549 | 0.9169 |
|
||||
| 批量 QPS (batch=64) | 66,037 | 69,378 |
|
||||
| 批量 QPS (batch=256) | 207,287 | 242,759 |
|
||||
|
||||
交错基准(7 轮,消除顺序效应)单查询中位数:原版 1.4203 ms → NM2.1 1.4242 ms(差 +0.28%;该轮原版自身离散度 4.85%)。
|
||||
|
||||
模型包大小:原版 8.88 GB(22 文件)→ NM2.1 8.88 GB(23 文件,多出属性头 ~0.25 MB);合并验证:替换 16 个张量、其余 47 个逐字节未变、路由张量与交付件逐位一致。
|
||||
|
||||
## 6. 工程鲁棒性
|
||||
|
||||
| 项目 | NM2(原版) | NM2.1 |
|
||||
|---|---|---|
|
||||
| 一次写 20 条不同属性事实后存活 | **12 / 20**(8 条查询前被误删) | **20 / 20** |
|
||||
| 端到端(写入修复前后,16 用例) | 37.50% | **68.75%** |
|
||||
| 替换兼容性 | 基线 | **DROP-IN OK**(16/16 键、驱动 `PagedMemoryBankV2`) |
|
||||
| 单元测试 | — | **52 项通过** |
|
||||
| 未知问题泄漏(同形候选) | **75.00%** | **0.00%** |
|
||||
|
||||
## 7. 仍未解决的短板(不粉饰)
|
||||
|
||||
| 短板 | 现状 | 说明 |
|
||||
|---|---|---|
|
||||
| 跨域未知拒答 | 未解决 | 覆盖头是 24 类闭集,仅当其词表被库填充 ≥90% 时生效;开放词表的属性匹配实测仅 **49.20%** Top-1 / AUC 0.6560 |
|
||||
| 答成别的属性 | **27.50%**(原 35.00%) | 已排除先验重加权(更差)与单纯替换打分器(更差) |
|
||||
| A 段未知拒答率 | 56.67% | 未改善 |
|
||||
| 规模验证 | 未做 | 仅 24 属性 / 300 条改写评测;生产需上千属性、上万条 |
|
||||
| 通用能力回归 | 未跑 | `eval_general_capability.py` 依赖的 `comprehensive_general.jsonl` 不存在 |
|
||||
|
||||
Reference in New Issue
Block a user