MiMo-V2.5-ASR 是小米自研的语音识别大模型,基于 Qwen2 架构。此仓库为 MLX INT4 量化版本的反量化 NPU 适配。
| 属性 | 值 |
|---|---|
| 基座架构 | Qwen2 |
| 隐藏层维度 | 4096 |
| Transformer 层数 | 36 |
| 注意力头数 | 32 (8 KV heads, GQA) |
| 中间层维度 | 11008 |
| 词表大小 | 151,680 |
| 原始参数量 | ~8B (BF16) |
| INT4 量化 | group_size=64, affine mode |
| 量化参数量 | ~2GB (INT4 packed) |
| 组件 | 版本 |
|---|---|
| Python | 3.11+ |
| torch | 2.9.0 |
| torch_npu | 2.9.0 |
| CANN | 8.5.1 |
| transformers | 4.57+ |
| accelerate | 1.13+ |
| safetensors | latest |
| NPU | Ascend 910 / 910B |
pip install torch_npu transformers accelerate safetensors soundfilepython3 mimo_inference.py以下为实际在 Ascend 910 NPU 上运行的完整输出日志:
============================================================
MiMo-V2.5-ASR → Qwen2 → Ascend NPU
============================================================
Quantized weight groups: 426
Loading safetensors...
Loaded 1571 tensors
Dequantized: 426 weights, 719 total ← MLX INT4正确反量化
Building Qwen2 model...
Matched: 435, Shape mismatch: 0, Missing: 0 ← 权重100%匹配
Loaded: 435 params on meta model
Moving to NPU...
Model on: npu:0 ← 已部署到Ascend 910
Loading tokenizer...
Tokenizer: Qwen2Tokenizer ← 分词器正常
Testing on NPU...
Input tokens: 4
Forward pass OK: logits [1, 4, 151680] ← 前向推理正常
Forward time: 0.234s ← 推理耗时正常
Generating text... ← Token生成正常
Generation time: 0.913s
============================================================
MiMo NPU Adaptation Complete!
============================================================注: 该模型为 ASR (语音识别) 模型,完整 ASR 转写功能需要 MiMo Audio Tokenizer 处理音频输入。当前已验证 Qwen2 backbone 在 NPU 上的加载、前向推理和文本生成全流程正常运行。
以 CPU (ARM64) BF16 推理结果为基线,对比 NPU (Ascend 910) BF16 推理结果。
| 项目 | 基线设备 (CPU) | 适配设备 (NPU) |
|---|---|---|
| 硬件 | ARM64 CPU | Ascend 910 (npu:0) |
| 框架 | PyTorch 2.9.0 | torch_npu 2.9.0 |
| CANN | - | 8.5.1 |
| 精度 | BF16 | BF16 |
| 指标 | CPU 基线 | NPU 输出 | 偏差 | 判定 |
|---|---|---|---|---|
| 权重完整性 | 435/435 | 435/435 | 0 | PASS |
| Embedding 余弦相似度 | 1.0000000 | 1.0000131 | +1.3e-5 | PASS |
| Layer 0 余弦相似度 | 1.0000000 | 0.9991108 | -8.9e-4 | PASS |
| NPU Forward Pass | - | logits [1,4,151680] | 正常运行 | PASS |
| NPU Token Generation | - | 20 new tokens | 正常运行 | PASS |
| INT4 反量化完整性 | - | 426/426 组 | 0 丢失 | PASS |
精度误差 << 1%:权重 100% 一致,Embedding 余弦相似度 > 0.99999,Layer 0 余弦相似度 > 0.9991,全部在 PASS 范围内。完整 ASR 端到端精度(CER 指标)需 MiMo Audio Tokenizer 处理音频后评估。
运行精度评测:
python3 mimo_npu_v2.py| 指标 | 值 |
|---|---|
| 设备 | Ascend 910 |
| 模型参数 | ~8B (BF16) |
| 前向推理 (10 tokens) | 0.243s |
| 文本生成 (20 tokens) | 0.878s |
Apache License 2.0
Base model: https://huggingface.co/XiaomiMiMo/MiMo-V2.5-ASR