Ascend-SACT/Qwen3-ASR-vLLM
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

基于vLLM-Ascend部署Qwen3-ASR模型服务化

1、模型介绍

Qwen3-ASR 支持 52 种语言和方言的语言识别与语音识别(ASR)。两者均利用大规模语音训练数据以及其基础模型 Qwen3-Omni 强大的音频理解能力。实验表明,1.7B 版本在开源 ASR 模型中达到业界领先水平,并可与最强的商业闭源 API 相媲美。主要特性如下:

  • 一体化:Qwen3-ASR-1.7B 和 Qwen3-ASR-0.6B 支持 30 种语言和 22 种中文方言的语言识别与语音识别,同时涵盖来自多个国家和地区的英语口音。

  • 卓越且高效:Qwen3-ASR 系列模型在复杂声学环境和具有挑战性的文本模式下仍能保持高质量、鲁棒的识别效果。Qwen3-ASR-1.7B 在开源和内部基准测试中均表现出色;而 0.6B 版本则在精度与效率之间取得良好平衡,在并发数为 128 时吞吐量可达 2000 倍。两者均支持单模型统一进行流式/离线推理,并可处理长音频转录。

  • 新颖且强大的强制对齐方案:我们推出了 Qwen3-ForcedAligner-0.6B,支持对最多 5 分钟的语音在 11 种语言中任意单元进行时间戳预测。评估显示,其时间戳精度超越了基于端到端(E2E)的强制对齐模型。

  • 全面的推理工具包:除了开源 Qwen3-ASR 系列的架构和权重外,我们还发布了一个功能强大、特性完备的推理框架,支持基于 vLLM 的批处理推理、异步服务、流式推理、时间戳预测等功能。

2、环境准备

配套版本描述
vLLM-Ascendv0.16.0-
vLLM-Ascendv0.15.0rc2.dev33+gf19f7b1fe暂无发布版本,使用main分支
CANN8.5.1-
Python3.11.14-
torch2.9.0-
torch_npu2.9.0-
驱动版本25.2.0-
算力设备Atlas 800T A2 910B-

3、推理服务部署

3.1、镜像下载

  • vLLM-Ascend容器部署,由于暂无发布版本,容器启动后需要手动更新vllm版本
  • 注:也可直接使用main分支镜像,vLLM-Ascend会定期更新,无需后续版本更新操作
# 1、拉取镜像
docker pull quay.io/ascend/vllm-ascend:v0.15.0rc1

# 2、容器启动
export IMAGE=quay.io/ascend/vllm-ascend:v0.15.0rc1
docker run -itd \
    --name Qwen3-ASR \
    --shm-size=1g \
    --net=host \
    --device /dev/davinci0 \
    --device /dev/davinci1 \
    --device /dev/davinci2 \
    --device /dev/davinci3 \
    --device /dev/davinci4 \
    --device /dev/davinci5 \
    --device /dev/davinci6 \
    --device /dev/davinci7 \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    $IMAGE bash

# 3、进入容器
docker exec -it {container_id} /bin/bash
  • vLLM版本更新
# 1、vLLM版本更新
cd /vllm-workspace/vllm
git pull origin main
git fetch origin --tags
git checkout v0.16.0
VLLM_TARGET_DEVICE=empty pip install -v -e .

# 2、vLLM-Ascend版本更新
cd /vllm-workspace/vllm-ascend
# 本次使用了主干分支,待0.16.0版本发布后可切换响应分支
git pull origin main
pip install -v -e .

# pip部署版本参考
vllm    0.16.0+empty
vllm_ascend   0.15.0rc2.dev33+gf19f7b1fe

3.2、模型权重下载

vllm启动服务时可自动下载模型权重至/root/.cache/目录下,如果离线环境不方便下载,也可手动下载准备

modelscope download --model Qwen/Qwen3-ASR-1.7B --local_dir ./Qwen3-ASR-1.7B

3.3、模型部署

# 指定模型权重路径,启动服务
vllm serve /workspace/Qwen3-ASR-1.7B \
    --served-model-name "Qwen/Qwen3-ASR-1.7B" \
    --host 0.0.0.0 \
    --port 8000 \
    --gpu-memory-utilization 0.9

3.4、模型验证

curl请求示例如下,详细模型接口调用示例可参照:Qwen3-TTS Online Serving

curl http://0.0.0.0:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "messages": [
            {
                "role": "user", "content": 
                [{
                    "type": "audio_url", 
                    "audio_url": {"url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_en.wav"}
                }]
            }
        ]
    }'

# 请求结果示例
{
    "id": "chatcmpl-9a060d4796c4b661",
    "object": "chat.completion",
    "created": 1772763451,
    "model": "Qwen/Qwen3-ASR-1.7B",
    "choices": [{
        "index": 0,
        "message": {
            "role": "assistant",
            "content": "language English<asr_text>Hmm. 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.",
            "refusal": null,
            "annotations": null,
            "audio": null,
            "function_call": null,
            "tool_calls": [],
            "reasoning": null
        },
        "logprobs": null,
        "finish_reason": "stop",
        "stop_reason": null,
        "token_ids": null
    }]
}

3.5、模型性能参考

测试语音截取自:中文数据集,取5次同时长推理请求平均转录时长

音频时长转录时长平均RTF
30s1.87s0.062
1min3.75s0.063
3min9.54s0.053
5min15.75s0.052