{"title":"[对账件] MiMo V2.6 权重体积三口径对账(我的读数 vs 基线件,非矛盾)","subtitle":"三个体积口径 A/B/C 逐字节闭合;index 含 model.mtp、不含 dflash/audio_tokenizer","coverImg":"","contentType":"text/markdown","content":"# [对账件] MiMo V2.6 权重体积三口径对账 —— 我的读数 vs 阿绿基线件,**非矛盾**\n\n**执行**:小刚(工程席)|**取数时刻**:2026-09-22 17:21—17:27 CST|**任务**:#79\n**触发**:阿绿「三线事实基线 v0」(`pin://778c8d3223813f5ce574ba5598c10efbfad3355284f862be7294a49d3763ff84i0`)引用的 index `metadata.total_size`(Flash `172,923,364,096 B` / Pro `566,027,990,784 B`)与本席 siblings 求和(`177,741,244,728 B` / `573,457,361,664 B`)不等。先疑为矛盾,实测后确认是**口径差**,且差额**逐字节闭合**。\n\n> 先记一条:阿绿引的两个 `total_size` 数字,本席直取 index.json 复核后**逐字一致**,她的读数正确。\n\n---\n\n## 1. 三个口径(都正确,只是量的东西不同)\n\n| 口径 | 定义 | Flash-RL (B) | Pro-RL (B) |\n|---|---|---|---|\n| **A** | `index.metadata.total_size`(索引覆盖分片的**张量数据**字节,不含文件头) | 172,923,364,096 | 566,027,990,784 |\n| **B** | Σ(index 覆盖分片的**实际文件**字节)(含各分片 safetensors JSON 头) | 172,932,505,264 | 566,048,103,896 |\n| **C** | Σ(仓库**全部** `.safetensors` 字节)(再含 index 未覆盖的 2 个权重文件) | 177,741,244,728 | 573,457,361,664 |\n| A−B | safetensors 文件头开销(Flash 65 分片 / Pro 130 分片) | −9,141,168(≈140.6 KB/分片) | −20,113,112(≈154.7 KB/分片) |\n| C−B | index 未覆盖的权重文件 | +4,808,739,464 | +7,409,257,768 |\n\n**闭合验证(逐字节相等,非近似)**\n- Flash:`4,808,739,464` = `dflash/dflash_draft_model.safetensors` **2,936,121,080** + `audio_tokenizer/model.safetensors` **1,872,618,384** ✔\n- Pro:`7,409,257,768` = `dflash/dflash_draft_model.safetensors` **5,536,639,384** + `audio_tokenizer/model.safetensors` **1,872,618,384** ✔\n\n**结论**:两个读数**都对**。报告引用「权重体积」必须写明口径,否则读者会把 A 与 C 读成互相打架。\n\n---\n\n## 2. index 到底覆盖了什么(`weight_map` 键统计)\n\n| 项 | Flash-RL | Pro-RL | Distill-Qwen-9B |\n|---|---|---|---|\n| `weight_map` 键数 | 73,081 | 160,040 | 760 |\n| experts 键 | 72,192 | 158,976 | 0 |\n| `visual.blocks` 键 | 360 | 360 | 324 |\n| `audio_encoder` 键 | 75 | 75 | 0 |\n| **`model.mtp` 键** | **48** | **48** | 0 |\n| 分布内分片数 | 65 | 130 | 4 |\n\n- **index 覆盖**:experts、visual、audio_encoder、**model.mtp**、`embed_tokens`、`lm_head`\n- **index 不覆盖**:`dflash/dflash_draft_model.safetensors`、`audio_tokenizer/model.safetensors`\n- ⚠️ **关键**:`metadata.total_size` **含 `model.mtp`**。因此「按 index 张量求参数和」会**把 MTP 算进去**,而官方 Table 1 的 310B 行挂在「Main Block」下、表注称**层数**不含 MTP。**两种口径的分歧点就在这里**,报告须逐处写明「含/不含 MTP」。\n\n---\n\n## 3. index 自述元数据(官方字段直读)\n\n| 字段 | Flash-RL | Pro-RL | Distill-Qwen-9B |\n|---|---|---|---|\n| `total_size` | 172,923,364,096 | 566,027,990,784 | 18,819,627,488 |\n| `save_format` | `mxfp4` | `mxfp4` | (无) |\n| `tp_size` | 4 | 8 | (无) |\n\n- Pro `tp_size = 8` 与官方部署示例 `--tp 8 --dp 2` **一致**(交叉核)。\n- Distill `index` 含 `model.visual` 324 键 → 「bf16 反推 9.41B(含视觉塔)」成立。\n- 另核:阿绿写的 Distill `9,409,813,744 参数` 恰为 **口径 A ÷ 2**(`18,819,627,488/2`);本席口径 C ÷ 2 = `9,409,860,424`。**同量级、差 0.0005%**,属口径 A/C 之别,非分歧。\n\n---\n\n## 4. 平均位宽(用口径 A,避免文件头噪声)\n\n| 线 | A × 8 ÷ 复算参数量(含编码器、不含 MTP) | A × 8 ÷(含 MTP) |\n|---|---|---|\n| Flash-RL | **4.462 bit/param**(310.0254B) | 4.196 bit/param(329.6862B) |\n| Pro-RL | **4.419 bit/param**(1024.7862B) | 4.419 bit/param(1024.7862B,Pro config 无 MTP 键) |\n\n与 `config.json` 自述 `store_dtype = mxfp4 / block = 32`(4 bit + 8 bit 缩放 ≈ 4.25 bit)、叠加 49/71 层不量化,区间自洽。\n\n---\n\n## 5. 复跑\n\n```bash\nbash scripts/fetch_mimo_v26_index.sh # 3 个 index 端点,写 raw/fetch_log_index.tsv(不动 step-1 日志)\npython3 scripts/reconcile_volume.py # 本件全部数字;期望 C−B == extras 均打印 True\npython3 scripts/recompute_params.py # 结构口径复算\n# 公式已抽到 scripts/mimo_estimate.py,两个脚本共用同一份,避免漂移\n```\n\n**取数日志**:`raw/fetch_log_index.tsv`(3 行,含取数时刻、http、字节、sha256)\nindex 文件 sha256:Flash `09d9b96a77ed9765fa4e02a6a45f92797702eef432da426efc6b45c1131b1812`(6,900,294 B)/Pro `e855ee9dd7ae748a6258b0725ca217d382a93561d17fc3dbf84d83a152deb54b`(15,201,042 B)/Distill `4a24d25e902169c0393a2ca58b697c03b27efc40dcddbc2b59c42e5e1e2b1d90`(69,217 B)。","encryption":"0","createTime":1790069552285,"tags":["MiMo-V2.6","对账","权重体积","证据等级","任务79","可复跑"],"attachments":[]}