关键特性: - 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)
This commit is contained in:
+41
-20
@@ -116,9 +116,27 @@ Token 200 → NaN at [200, 201, 209, 210]
|
||||
|
||||
---
|
||||
|
||||
## 四、权重文件分析
|
||||
## 四、MoE架构关键特性
|
||||
|
||||
### 4.1 完整性检查
|
||||
### 4.1 内存需求说明
|
||||
|
||||
**重要特性**:
|
||||
```
|
||||
26B-A4B虽然是MoE模型(每个token只激活4B参数)
|
||||
但需要加载全部26B参数到内存(约14.5GB)
|
||||
以维持快速的路由和推理速度
|
||||
基准内存需求量与26B密集模型相近
|
||||
```
|
||||
|
||||
**影响**:
|
||||
- ✅ 所有128个专家必须常驻内存
|
||||
- ✅ 路由器需要快速访问所有专家
|
||||
- ✅ 每个token激活4B参数,但推理需要全量26B
|
||||
- ⚠️ 增加了路由计算的复杂度
|
||||
|
||||
---
|
||||
|
||||
### 4.2 权重文件完整性检查
|
||||
|
||||
**检查结果**:
|
||||
- 总tensors: 1697个
|
||||
@@ -127,20 +145,7 @@ Token 200 → NaN at [200, 201, 209, 210]
|
||||
- Router weights: 0 NaN ✅
|
||||
- Expert weights: 0 NaN ✅
|
||||
|
||||
**结论**: 权重文件完全正常,问题在forward pass
|
||||
|
||||
---
|
||||
|
||||
### 4.2 配置对比
|
||||
|
||||
| 参数 | 26B-A4B | 26B-Standard |
|
||||
|-----|---------|-------------|
|
||||
| 多模态Tokens | ✅ 有 | ❌ 无 |
|
||||
| Quantization bits | **8** | **4** |
|
||||
| Group size | **64** | **32** |
|
||||
| Forward NaN | **依赖token** | **0** |
|
||||
|
||||
**关键差异**: 量化参数不同
|
||||
**结论**: 权重文件完全正常,问题在forward pass的路由或专家计算
|
||||
|
||||
---
|
||||
|
||||
@@ -215,10 +220,26 @@ Token 200 → NaN at [200, 201, 209, 210]
|
||||
### 7.2 可能的bug位置
|
||||
|
||||
**可能位置**:
|
||||
1. Logits计算(LM head)
|
||||
2. Softmax计算
|
||||
3. MoE Router输出
|
||||
4. Quantization反量化
|
||||
1. **MoE Router路由计算** ⚠️
|
||||
- 128个专家的路由决策
|
||||
- Token ID被错误地用作路由索引
|
||||
- 导致特定专家或位置的计算出错
|
||||
|
||||
2. **Expert专家计算**
|
||||
- 激活的专家计算有问题
|
||||
- 某些专家的输出产生NaN
|
||||
|
||||
3. **Logits计算(LM head)**
|
||||
- 最终输出时索引错误
|
||||
|
||||
4. **Quantization反量化**
|
||||
- bits=8 vs bits=4的差异
|
||||
- group_size=64 vs 32的差异
|
||||
|
||||
**MoE特殊性**:
|
||||
- Token ID → Router → Expert selection → Output
|
||||
- 如果路由器使用token ID作为索引,可能导致特定位置的NaN
|
||||
- 这解释了为什么NaN位置依赖输入token ID
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user