Atlas800T A2上部署Qwen2.5-Omni-7B音频模型:从驱动安装到vllm-ascend服务启动的保姆级避坑记录
Atlas800T A2服务器部署Qwen2.5-Omni-7B音频模型全流程实战指南
在昇腾Atlas800T A2服务器上部署多模态大模型Qwen2.5-Omni-7B,对于需要处理音频转文字任务的开发者而言,既是技术挑战也是效率提升的关键一步。本文将带你从零开始,逐步完成从硬件驱动安装到vllm-ascend服务启动的全过程,特别针对实际部署中容易遇到的坑点提供解决方案。
1. 环境准备与硬件驱动安装
Atlas800T A2服务器作为昇腾AI计算的重要硬件平台,其环境配置需要格外注意版本匹配问题。我们首先需要确保硬件驱动和固件的正确安装。
创建专用用户组和用户是昇腾平台推荐的安全实践:
groupadd HwHiAiUser
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser
驱动和固件安装包需要从昇腾官网获取对应版本:
- 驱动:Ascend-hdk-910b-npu-driver_25.2.0_linux-aarch64.run
- 固件:Ascend-hdk-910b-npu-firmware_7.7.0.6.236.run
安装命令如下:
./Ascend-hdk-910b-npu-driver_25.2.0_linux-aarch64.run --full
./Ascend-hdk-910b-npu-firmware_7.7.0.6.236.run --full
常见问题排查:
- 如果安装过程中提示权限不足,请确保使用root用户执行
- 安装完成后建议重启服务器使驱动生效
- 可通过
npu-smi info命令验证驱动是否安装成功
2. CANN工具包安装与配置
CANN(Compute Architecture for Neural Networks)是昇腾AI处理器的软件栈核心,为上层应用提供基础运行环境。我们需要安装三个关键组件:
| 组件名称 | 版本 | 功能描述 |
|---|---|---|
| toolkit | 8.2.RC1 | 提供基础运行时环境和开发工具 |
| kernels | 8.2.RC1 | 包含昇腾处理器内核驱动 |
| nnal | 8.2.RC1 | 神经网络加速库 |
安装步骤:
./Ascend-cann-toolkit_8.2.RC1_linux-aarch64.run --full
./Ascend-cann-kernels-910b_8.2.RC1_linux-aarch64.run --install
./Ascend-cann-nnal_8.2.RC1_linux-aarch64.run --install
安装完成后,需要设置环境变量:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
注意:不同版本的CANN工具包可能存在兼容性问题,务必确保所有组件版本一致。
3. vllm-ascend环境搭建
vllm-ascend是针对昇腾平台优化的vLLM实现,能够充分发挥Atlas800T A2的硬件加速能力。安装前需要先配置Python环境(推荐Python 3.8+)。
安装依赖包:
pip install vllm==0.11.0
pip install torch==2.7.1
pip install torchaudio==2.7.1
pip install vllm-ascend==0.11.0rc0
关键环境变量配置:
export VLLM_USE_MODELSCOPE=True
export PYTORCH_NPU_ALLOC_CONF="max_split_size_mb:256"
export ASCEND_RT_VISIBLE_DEVICES=0
export VLLM_TORCH_PROFILER_DIR="./vllm_profile"
版本兼容性提示:
- vllm与vllm-ascend版本必须严格匹配
- torch版本需要与CANN工具包兼容
- 建议使用虚拟环境隔离不同项目的依赖
4. Qwen2.5-Omni-7B模型部署
Qwen2.5-Omni-7B作为支持多模态输入的大模型,其部署过程需要特别注意模型文件的下载和权限设置。
使用ModelScope下载模型:
pip install modelscope
modelscope download --model Qwen/Qwen2.5-Omni-7B --local_dir ./
模型下载完成后,启动vllm服务:
vllm serve /path/to/Qwen2.5-Omni-7B \
--host 0.0.0.0 \
--port 9988 \
--max-model-len 4096 \
--max-num-batched-tokens 4096 \
--max-num-seqs 5 \
--gpu-memory-utilization 0.4 \
--dtype bfloat16 \
--tensor-parallel-size 1 \
--trust-remote-code \
--served-model-name Qwen2.5-Omni-7B \
--block-size 128 \
--allowed-local-media-path /path/to/datasets/ \
--enable-prefix-caching
服务启动后,可以通过以下命令测试音频转文字功能:
curl -s 127.0.0.1:9988/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen2.5-Omni-7B",
"stream": false,
"messages": [
{
"role": "user",
"content": [
{"type": "audio_url", "audio_url": {"url":"file:///path/to/audio.wav"}},
{"type": "text", "text": "识别音频中的内容"}
]
}
]
}'
5. 性能测试与优化
使用aisbench工具可以对Qwen2.5-Omni-7B的音频处理性能进行压测。首先需要安装aisbench:
git clone https://gitee.com/aisbench/benchmark.git
cd benchmark/
pip3 install -e ./ --use-pep517
pip3 install -r requirements/api.txt
pip3 install -r requirements/extra.txt
准备测试数据集时,建议将长音频分割为30秒左右的片段:
ffmpeg -i input.wav -f segment -segment_time 30 -c copy output%03d.wav
关键配置文件修改:
- 修改
benchmark/ais_bench/benchmark/openicl/icl_prompt_template.py第243行:
template.append({'type':'audio_url', 'audio_url':{'url': 'file:///' + entry['audio_path']}})
- 配置
benchmark/ais_bench/benchmark/configs/models/vllm_api/vllm_api_stream_chat.py中的连接参数
启动压测:
ais_bench --models vllm_api_stream_chat --datasets vocalsound_gen --summarizer default_perf --mode perf
性能优化建议:
- 调整
--gpu-memory-utilization参数平衡内存使用和性能 - 根据实际负载调整
--max-num-batched-tokens和--max-num-seqs - 启用
--enable-prefix-caching可以显著提升重复查询的响应速度
更多推荐

所有评论(0)