g
gcw_AVRCax4T/Qwen3-ASR-0.6B-leizhou
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Qwen3-ASR-0.6B-leizhou × 昇腾 Atlas 800 A2 × torch_npu

基于 Qwen3-ASR-0.6B 微调的雷州话方言模型,已适配华为昇腾 NPU (Ascend 910) 推理。
本页面向:已在昇腾机器上装好驱动与 CANN 的用户,使用 torch_npu 后端跑通 ASR 推理并验证精度。
技术细节以 Qwen3-ASR 官方文档 为准。


你将得到什么

按下面顺序执行后:在昇腾 Atlas 800 A2 上,用 torch_npu 后端完成 Qwen3-ASR-0.6B-leizhou 方言模型的单卡推理,验证 NPU vs CPU 精度误差 < 1%,并获取性能基准数据。

本页不解决:宿主机未装昇腾驱动、无对应机型、无 CANN——请先完成 昇腾环境准备。


目录

  • 0. 环境确认
  • 1. 安装依赖
  • 2. 下载模型
  • 3. NPU 推理(Python)
  • 4. 精度验证
  • 5. 性能基准
  • 6. 交付件清单
  • 7. 模型卡片

0. 环境确认

在宿主机执行,确认 NPU 正常:

npu-smi info                         # 应看到 Ascend910 芯片
python3 -c "import torch_npu; print(torch_npu.npu.device_count())"  # 应 > 0
组件验证版本
芯片Ascend 910 (Atlas 800 A2)
CANN8.5.1
torch2.9.0+cpu
torch_npu2.9.0.post1
transformers4.57.6
qwen-asr0.0.6
Python3.11

1. 安装依赖

# 核心依赖
pip install transformers==4.57.6 accelerate==1.12.0

# Qwen3-ASR 推理包
pip install qwen-asr==0.0.6 --no-deps
pip install pytz qwen-omni-utils sox soynlp==0.0.493

# 音频处理
pip install librosa soundfile

注意:torch_npu 是华为定制 PyTorch,不可用 pip install torch 覆盖。
若 qwen-asr 提示 nagisa 缺失可忽略(仅日本语强制对齐需要,本模型不使用)。


2. 下载模型

pip install modelscope
modelscope download --model ziweidamowang/Qwen3-ASR-0.6B-leizhou

模型将缓存至 ~/.cache/modelscope/hub/models/ziweidamowang/Qwen3-ASR-0___6B-leizhou/。

模型信息:

属性值
基础模型Qwen/Qwen3-ASR-0.6B
参数量~0.6B (BF16)
模型大小~782 MB
支持语言雷州话 (微调), 中文/英文/粤语等 37 种语言
指标WER (字准率 ~70%)
架构Qwen3ASRForConditionalGeneration (Audio Encoder + Text Decoder)
许可证Apache 2.0

3. NPU 推理(Python)

3.1 命令行推理

python3 inference.py --backend npu --audio /path/to/audio.wav

关键参数:

参数默认值说明
--backendnpu推理后端:npu / cpu / gpu
--audio(test.wav)音频文件路径,支持 .wav 16kHz
--dtypebfloat16模型精度:bfloat16 / float16 / float32
--languageNone语言提示(自动检测)
--benchmarkfalse是否运行性能基准测试
--comparefalse是否对比 NPU vs CPU 精度
--outputNoneJSON 结果输出路径

3.2 Python API 调用

import torch
from qwen_asr import Qwen3ASRModel

# NPU 适配关键:device_map="npu:0", attn_implementation="sdpa"
model = Qwen3ASRModel.from_pretrained(
    "qwen3-asr-0.6b-finetuning-out/",
    dtype=torch.bfloat16,
    device_map="npu:0",
    attn_implementation="sdpa",    # NPU 使用 SDPA 替代 flash_attention_2
    max_inference_batch_size=16,
    max_new_tokens=256,
)

results = model.transcribe(audio=["test.wav"], language=None)
print(results[0].text)

3.3 NPU 适配要点

原始 CUDA 参数NPU 对应参数说明
device_map="cuda:0"device_map="npu:0"设备映射
attn_implementation="flash_attention_2"attn_implementation="sdpa"NPU 通过 torch_npu 支持 SDPA
torch.cuda.synchronize()torch.npu.synchronize()设备同步

4. 精度验证

4.1 运行精度对比

python3 inference.py --compare --output eval_results/accuracy_compare.json

4.2 精度结果

指标值阈值状态
Char Error Rate (CER)0.0000%< 1%✅ PASS
Word Error Rate (WER)0.0000%< 1%✅ PASS
Exact MatchTrue-✅ PASS

测试样本:test/test.wav (16kHz mono WAV, 72.9 KB)

后端转录结果耗时
CPU (参考)遵循这些传统习俗6.76s
NPU (Ascend 910)遵循这些传统习俗0.31s

结论:NPU 与 CPU 输出完全一致,精度误差 0.00%,通过 < 1% 阈值。


5. 性能基准

5.1 运行性能测试

python3 eval_perf.py

5.2 性能数据(50 次推理)

指标NPU (Ascend 910)CPU (ARM)加速比
平均延迟0.310 s6.136 s19.78x
中位数延迟0.310 s6.145 s19.84x
P90 延迟0.315 s--
P95 延迟0.318 s--
P99 延迟0.320 s--
最小延迟0.302 s--
最大延迟0.320 s--
标准差0.004 s--
模型加载2.80 s0.98 s-
NPU 显存占用1,498 MB--

性能对比


6. 交付件清单

文件说明路径
inference.pyNPU 适配推理脚本qwen3-asr-npu/inference.py
README.md部署文档 (本文件)qwen3-asr-npu/README.md
eval_accuracy.py精度评测源代码qwen3-asr-npu/eval_accuracy.py
eval_perf.py性能评测源代码qwen3-asr-npu/eval_perf.py
accuracy_report.json精度评测结果qwen3-asr-npu/eval_results/accuracy_compare.json
perf_report.json性能评测结果qwen3-asr-npu/eval_results/perf_report.json

7. 模型卡片

Model Card: Qwen3-ASR-0.6B-leizhou-NPU

---
language:
  - zh
tags:
  - NPU
  - Ascend
  - Ascend910
  - torch_npu
  - CANN
  - auto-speech-recognition
  - qwen3-asr
  - leizhou-dialect
  - 雷州话
license: Apache-2.0
datasets:
  - leizhou-dialect-asr
metrics:
  - WER
  - CER
hardware:
  - NPU
  - Ascend 910
  - Atlas 800 A2
library:
  - transformers
  - qwen-asr
  - torch_npu
pipeline_tag: automatic-speech-recognition
base_model: Qwen/Qwen3-ASR-0.6B
---

# Qwen3-ASR-0.6B-leizhou (昇腾 NPU 适配版)

## 模型简介

基于 Qwen3-ASR-0.6B 微调的雷州话方言语音识别模型,已完成华为昇腾 Ascend 910 NPU 适配。
通过 torch_npu 后端运行推理,NPU vs CPU 精度误差 < 1%,推理加速比约 20x。

## 适配环境

- **硬件**: Atlas 800 A2 (Ascend 910 × 2)
- **CANN**: 8.5.1
- **torch_npu**: 2.9.0.post1
- **框架**: qwen-asr 0.0.6 + transformers 4.57.6

## 精度验证

| 指标 | NPU vs CPU |
|------|-----------|
| CER | 0.00% ✅ |
| WER | 0.00% ✅ |
| Exact Match | True ✅ |

## 性能数据

| 指标 | NPU | CPU |
|------|-----|-----|
| 推理延迟 (avg) | 0.310 s | 6.136 s |
| 加速比 | **19.78x** | baseline |
| 显存占用 | 1,498 MB | N/A |

常见问题

现象建议
ModuleNotFoundError: No module named 'nagisa'推理脚本已内置 mock,不影响使用
NPU 设备不可见检查 npu-smi info 确认驱动正常;确认 torch_npu 版本与 CANN 匹配
OOM / 显存不足模型仅需 ~1.5 GB 显存,单卡即可运行
精度差异 > 1%确认使用 bfloat16 dtype 和 sdpa attention 实现

相关链接

说明链接
Qwen3-ASR 官方GitHub
模型原始页面ModelScope
昇腾开发者社区hiascend.com
torch_npu 文档gitee

本 README 于 2026-05-18 生成,基于 Ascend 910 / CANN 8.5.1 / torch_npu 2.9.0 验证通过。