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

关键配置文件修改:

  1. 修改benchmark/ais_bench/benchmark/openicl/icl_prompt_template.py第243行:
template.append({'type':'audio_url', 'audio_url':{'url': 'file:///' + entry['audio_path']}})
  1. 配置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可以显著提升重复查询的响应速度
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐