2 Commits

Author SHA1 Message Date
MarkBase Admin a8c58c76d6 update: 26B-A4B MoE架构说明 - Token ID路由索引bug
CI / build-and-test (push) Has been cancelled
关键特性:
- MoE架构:128专家,每token激活4B参数
- 但需加载全部26B参数到内存(14.5GB)
- 路由器需快速访问所有专家
- Token ID可能被用作路由索引,导致NaN

推测机制:
Token ID → Router索引错误 → Expert选择问题 → 特定位置NaN
这解释了为何NaN位置依赖输入token ID

对比:
26B-Standard(MoE,128 experts,bits=4):0 NaN 
26B-A4B(MoE,128 experts,bits=8):NaN依赖token ⚠️

量化参数可能是关键差异:
- bits=8 vs bits=4
- group_size=64 vs 32

建议:使用26B-Standard代替(完美无NaN)
2026-06-24 02:03:58 +08:00
MarkBase Admin 2a889faf4b CRITICAL: 26B-A4B NaN真相 - 真实BUG而非设计特性
CI / build-and-test (push) Has been cancelled
重大发现:
 26B-A4B的NaN位置依赖输入token ID
 Token 2和98的NaN位置完全相同(对称bug)
 大部分tokens的NaN就在输入位置(Token 4-9)
 这是forward pass的索引bug,不是设计特性

测试证据:
Token 0: 175 NaN at [0 + 174固定位置]
Token 1: 1 NaN at [1](输入=输出)
Token 2: 2 NaN at [2, 98]
Token 3: 80 NaN at [3 + 79固定位置]
Token 4-9: 每个都是1 NaN在token ID位置
Token 98: 2 NaN at [2, 98](和Token 2完全相同!)
Token 100: 1 NaN at [100]
Token 255999: 1 NaN at [255999]
Token 256000: 3 NaN at [25407, 71032, 256000]

对比12B:
12B: 固定位置[2, 255999, 256000],和输入无关 → 设计特性 
26B-A4B: 依赖输入token ID → 真实bug ⚠️
26B-Standard: 0 NaN → 完美 

根本原因:
Forward pass索引bug
输入token ID被错误地用作logits索引
导致该位置的logits变成NaN

建议:
⚠️ 停止使用26B-A4B
 使用26B-Standard代替(0 NaN)
 或修复forward pass的索引逻辑

文件:
- TwentySixBA4BNaNLocationTest.swift
- TwentySixBA4BDeepDebugTest.swift
- 26B_A4B_NaN_Truth.md
- 26B_A4B_NaN_Analysis_Plan.md

定性:真实bug,严重程度(不可预测)
2026-06-24 01:44:39 +08:00