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

Qwen3-ASR-1.7B 昇腾 NPU 适配验证报告

1. 基本信息

项目内容
模型名称Qwen/Qwen3-ASR-1.7B
模型类型Qwen3ASRForConditionalGeneration (语音识别)
参数量1.7B
语言模型基座Qwen3 (28层 Transformer)
音频编码器Qwen3OmniMoeAudioEncoder
硬件平台Ascend910 (64GB HBM) x1
软件栈vLLM 0.18.0 + vllm-ascend 0.18.0rc1
NPU 驱动CANN 8.5.1
PyTorch2.9.0 + torch_npu 2.9.0.post1
权重来源ModelScope (modelscope.cn)

2. 适配概述

2.1 适配问题

原始 HuggingFace 权重 key 带有 thinker. 前缀(如 thinker.model.layers.0.self_attn.q_proj.weight), 但 vLLM 的 Qwen3ASRForConditionalGeneration 实现期望的 key 格式为 language_model.model.layers.0.self_attn.q_proj.weight 和 audio_tower.xxx。

2.2 解决方案

编写权重转换脚本 convert_qwen3asr_weights.py,将 thinker. 前缀按以下规则映射:

原始前缀映射后前缀
thinker.model.language_model.model.
thinker.audio_tower.audio_tower.
thinker.lm_head.language_model.lm_head.
thinker. (其他)直接去掉 thinker.

权重文件大小:原始 4.0GB + 457MB,转换后同样大小。

3. 精度验证结果

3.1 英文语音识别

项目结果
测试音频asr_en.wav (英文)
识别结果"Uh huh. Oh yeah, yeah. He wasn't even that big when I started listening to him, but and his solo music didn't do overly well, but he did very well when he started writing for other people."
延迟8.92s (含音频下载)
状态✅ 通过

3.2 中文语音识别

项目结果
测试音频asr_zh.wav (中文)
识别结果"甚至出现交易几乎停滞的情况。"
延迟0.75s
状态✅ 通过

3.3 纯文本推理

项目结果
输入"Say hello in one word:"
输出"language None<asr_text>"
延迟0.11s
状态✅ 通过(ASR模式无文本直接输出正常)

4. 性能基准测试报告

4.1 延迟测试(纯文本,10次迭代)

指标数值
P50 延迟101.0 ms
P90 延迟105.4 ms
P99 延迟105.4 ms
平均延迟101.4 ms
最��延迟100.2 ms
最大延迟105.4 ms

4.2 吞吐量测试

指标数值
TTFT (首Token时间)100.7 ms
单请求吞吐量39.7 tokens/s

4.3 Serve 模式(10请求并发)

指标数值
QPS21.04
平均延迟155.7 ms
输出吞吐量84.2 tokens/s

5. 功能特性矩阵

功能状态
模型加载 (safetensors)✅
ACL Graph 编译✅
英文 ASR (audio_url)✅
中文 ASR (audio_url)✅
/v1/chat/completions API✅
/v1/models API✅
Chunked Prefill✅
异步调度✅
MRoPE (Multi-resolution RoPE)✅
前缀缓存✅
文本生成✅

6. 环境配置

# 权重转换后启动命令
VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 vllm serve /path/to/model \
  --dtype bfloat16 \
  --tensor-parallel-size 1 \
  --max-model-len 65536 \
  --max-num-seqs 8 \
  --port 8000 \
  --host 0.0.0.0 \
  --load-format safetensors