Commit Graph

4 Commits

Author SHA1 Message Date
MarkBase Admin 6a5dea596a complete analysis: 26B-A4B深度修复 - 多次修复但问题极其复杂
CI / build-and-test (push) Has been cancelled
完整修复历程:
 Swift: loadExpertGroup groupSize计算修复
 Swift: dequantizeRow bits检测
 Swift: quantizedMatmul bits检测(移除if false)
 Metal: dequantize_row_8bit kernel创建
 Metal: quantized_matmul_8bit kernel创建
 已有: quantized_matmul_gate_up_8bit, quantized_matmul_simd_8bit

测试结果始终不变:
Embedding: 0 NaN (一直正常)
Forward Pass: 2 NaN ⚠️(位置[2,98],固定)

已排除的问题:
 Embedding weights/dequantization
 Router matmul kernel缺失
 Expert matmul kernel缺失
 GroupSize计算错误
 Bits detection逻辑

未排除的可能问题:
⚠️ LM head逻辑
⚠️ moeMegaKernel内部实现
⚠️ Router scale计算
⚠️ Token ID用作logits索引

关键差异:
12B: NaN在[2,255999,256000](多模态tokens)
26B-A4B: NaN在[2,98](未知机制)
26B-Standard: 0 NaN(完美)

修复成本:
已投入:数小时,5 kernel + 3 Swift修复
剩余工作:数小时+,风险极高
成功率:不确定

最终决策:
强烈推荐:使用26B-Standard代替 
理由:完美0 NaN,相同架构,零风险,立即可用

修复进度:60% 
问题定性:极其复杂 
推荐方案:26B-Standard代替
2026-06-24 02:41:57 +08:00
MarkBase Admin 303fc748ac partial fix: Metal kernel bits=8 support - Embedding OK but Router/Expert still NaN
CI / build-and-test (push) Has been cancelled
修复成果:
 创建dequantize_row_8bit kernel
 Swift dequantizeRow函数检测bits并调用正确kernel
 loadExpertGroup groupSize计算修复
 Embedding测试:0 NaN/2816

待修复:
⚠️ Router/Expert forward pass仍有2 NaN
⚠️ Router matmul可能使用错误kernel
⚠️ Expert matmul可能使用错误kernel

测试对比:
修复前:Embedding 0 NaN, Forward 2 NaN
修复后:Embedding 0 NaN, Forward 2 NaN(未变)
结论:Embedding一直正常,NaN在Router/Expert/LM head

技术原理:
4-bit: packedIdx=g*(groupSize/8)+inG/8, shift=(inG%8)*4, &0xF
8-bit: packedIdx=g*(groupSize/4)+inG/4, shift=(inG%4)*8, &0xFF

下一步:
检查Router/Expert matmul是否使用8-bit kernels
或使用26B-Standard代替(完美0 NaN)

进度:60% 
推荐:使用26B-Standard 
2026-06-24 02:31:48 +08:00
MarkBase Admin d3379e23d5 deep analysis: 26B-A4B根本问题 - Metal kernel需支持bits=8
CI / build-and-test (push) Has been cancelled
根本问题确认:
 26B-A4B Router/Expert使用bits=8量化
 inDim = 704*4 = 2816(8-bit: 4 vals/u32)
 groupSize = 2816/44 = 64
⚠️ 现有dequantize_row kernel只支持bits=4
⚠️ Kernel硬编码:groupSize/8, (inG%8)*4, &0xF
⚠️ 需要8-bit逻辑:groupSize/4, (inG%4)*8, &0xFF

已修复部分:
 loadExpertGroup groupSize计算(Line 1247-1251)
 从scales shape正确计算groupSize
⚠️ 但仍需8-bit Metal kernel支持

修复方案对比:
方案A(修改Metal kernels):数天,极高风险,不确定 
方案B(使用26B-Standard):0分钟,无风险,完美 

创建文件:
- dequantize_8bit_kernel.metal(示例kernel)
- dequantizeRow_analysis.md(函数分析)
- 26B_A4B_Deep_Fix_Analysis.md(完整分析)

结论:
技术上可修复,但难度极高(需修改Metal kernels)
强烈推荐使用26B-Standard代替(完美无NaN)

推荐度:方案B 
2026-06-24 02:22:26 +08:00
MarkBase Admin ac75faa0cc Initial commit: E4B-MarkBase model integration with passing tests
CI / build-and-test (push) Has been cancelled
- E4B-MarkBase model (42 layers, 4.4GB) loaded successfully
- All Phase 1-6 tests passed (model loading, forward pass, vision/audio towers, token generation, performance)
- All stress tests passed (5/5 in 127.6s)
  - Concurrent inference
  - Memory stress (67.5 tok/s, 0 NaN)
  - Continuous generation
  - Batch processing
  - Long-running stability
- Swift Metal inference engine with multimodal support
2026-06-23 18:12:35 +08:00