
Qwen2.5-Omni-7B 是阿里云通义千问团队推出的端到端全模态大模型能够同时理解和生成文本、图像、音频与视频尤其在语音交互场景中表现出色。它支持实时语音对话、音频转文字、视觉理解等多种任务在保持多模态能力的同时兼顾了推理效率适合在资源受限的硬件环境下部署。本文面向希望在昇腾 Atlas800T A2 平台上部署并压测 Qwen2.5-Omni-7B 的开发者内容涵盖环境准备、模型下载、vllm 服务加载以及基于 aisbench 的音频转文字性能压测全流程。通过本文读者可以快速搭建一套可运行的 Omni 模型推理服务并掌握基本的性能评估方法。一、Qwen2.5-Omni-7B环境部署环境信息vllm0.11.0vllm-ascend0.11.0rc0cann8.2.RC1HDK25.2.0硬件信息Atlas800T A2HDK 安装下载安装包驱动Ascend-hdk-910b-npu-driver_25.2.0_linux-aarch64.run固件:Ascend-hdk-910b-npu-firmware_7.7.0.6.236.run#安装命令groupadd HwHiAiUseruseradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser./Ascend-hdk-910b-npu-driver_25.2.0_linux-aarch64.run --full./Ascend-hdk-910b-npu-firmware_7.7.0.6.236.run --fullCANN 安装下载安装包toolkit:Ascend-cann-toolkit_8.2.RC1_linux-aarch64.runkernels:Ascend-cann-kernels-910b_8.2.RC1_linux-aarch64.runnnal:Ascend-cann-nnal_8.2.RC1_linux-aarch64.run#安装命令./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 --installvllm-ascend 安装pip install vllm0.11.0pip install torch2.7.1pip install torchaudio2.7.1pip install vllm-ascend0.11.0rc0Qwen2.5-Omni-7B 下载pip install modelscopemodelscope download --model Qwen/Qwen2.5-Omni-7B --local_dir ./vllm服务加载source /usr/local/Ascend/ascend-toolkit/set_env.shsource /usr/local/Ascend/nnal/atb/set_env.shexport VLLM_USE_MODELSCOPETrueexport PYTORCH_NPU_ALLOC_CONFmax_split_size_mb:256export ASCEND_RT_VISIBLE_DEVICES0export VLLM_TORCH_PROFILER_DIR./vllm_profilevllm serve /root/autodl-tmp/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 /root/Omni-7B/benchmark/ais_bench/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:////root/output000.wav}},{type: text, text: 识别音频中的内容}]}]}测试结果二、压测Qwen2.5-Omni-7B音频转文字性能aisbench安装git clone https://github.com/AISBench/benchmark.gitcd benchmark/pip3 install -e ./ --use-pep517pip3 install -r requirements/api.txtpip3 install -r requirements/extra.txt压测数据集开源中文会议数据集选择其中10个文件使用命令切分成30s音频段ffmpeg -i R8001_M8004_N_SPK8015.wav -f segment -segment_time 30 -c copy audio/SPK8015%03d.wavffmpeg -i R8001_M8004_N_SPK8014.wav -f segment -segment_time 30 -c copy audio/SPK8014%03d.wavffmpeg -i R8001_M8004_N_SPK8013.wav -f segment -segment_time 30 -c copy audio/SPK8013%03d.wavffmpeg -i R8001_M8004_N_SPK8016.wav -f segment -segment_time 30 -c copy audio/SPK8016%03d.wavffmpeg -i R8003_M8001_N_SPK8002.wav -f segment -segment_time 30 -c copy audio/SPK8002%03d.wavffmpeg -i R8003_M8001_N_SPK8003.wav -f segment -segment_time 30 -c copy audio/SPK8003%03d.wavffmpeg -i R8007_M8010_N_SPK8054.wav -f segment -segment_time 30 -c copy audio/SPK8054%03d.wavffmpeg -i R8007_M8010_N_SPK8050.wav -f segment -segment_time 30 -c copy audio/SPK8050%03d.wavffmpeg -i R8003_M8001_N_SPK8001.wav -f segment -segment_time 30 -c copy audio/SPK8001%03d.wavffmpeg -i R8003_M8001_N_SPK8004.wav -f segment -segment_time 30 -c copy audio/SPK8004%03d.wav将数据集复制到ais_bench安装路径cp audio/* benchmark/ais_bench/datasets/mm_custom/自定义数据集创建mm_custom.jsonl文件路径benchmark/ais_bench/datasets/mm_custom/内容格式如下{type:video,path:[benchmark/ais_bench/datasets/mm_custom/SPK8004-001.wav],question:describe this video,answer:xxx}{type:video,path:[benchmark/ais_bench/datasets/mm_custom/SPK8004-002.wav],question:describe this video,answer:xxx}{type:video,path:[benchmark/ais_bench/datasets/mm_custom/SPK8004-003.wav],question:describe this video,answer:xxx}{type:video,path:[benchmark/ais_bench/datasets/mm_custom/SPK8004-004.wav],question:describe this video,answer:xxx}aisbench测试修改连接vllm的配置文件benchmark/ais_bench/benchmark/configs/models/vllm_api/vllm_api_stream_chat.py压测命令ais_bench --models vllm_api_stream_chat --datasets mm_custom_gen --mode perf --num-prompts 150压测结果基于上述压测结果整理关键性能指标如下并发数平均时延s吞吐量req/s成功率%501.8227.51001003.4628.91001505.1329.2100从压测结果可以看出随着并发数从 50 提升到 150吞吐量基本稳定在 27.5 至 29.2 req/s 之间说明 vllm 服务在中等并发下仍能保持稳定的处理能力但平均时延随并发数增加而明显上升从 1.82 秒增长到 5.13 秒表明在高并发场景下请求排队等待时间成为主要瓶颈。整体来看Qwen2.5-Omni-7B 在 Atlas800T A2 平台上具备良好的音频转文字处理性能适合在并发数不超过 100 的场景下提供低时延服务若需支撑更高并发可考虑增大--max-num-seqs、提升--gpu-memory-utilization或采用多卡张量并行等方式进一步优化。三、常见问题与排查在部署和压测 Qwen2.5-Omni-7B 的过程中可能会遇到一些典型问题。下面针对常见故障给出错误现象、原因分析和解决步骤供读者参考。问题一vllm 服务启动失败错误现象执行 vllm serve 命令后进程立即退出终端报错提示缺少算子、驱动加载失败或 NPU 设备不可用例如 No available NPU device 或 Failed to initialize torch_npu。原因分析常见原因包括环境变量未正确加载、CANN 与 vllm-ascend 版本不匹配、NPU 驱动未安装或未生效以及显存或内存不足导致初始化失败。解决步骤确认已执行环境变量加载命令source /usr/local/Ascend/ascend-toolkit/set_env.sh和source /usr/local/Ascend/nnal/atb/set_env.sh。使用npu-smi info检查 NPU 设备是否可见确认驱动和固件版本与 HDK 25.2.0 一致。核对 vllm、vllm-ascend、torch、torch_npu 版本是否与本文环境信息一致必要时重新安装对应版本。检查ASCEND_RT_VISIBLE_DEVICES是否设置为可用的 NPU 编号并确认--gpu-memory-utilization参数未超过实际可用显存。查看启动日志中的具体报错关键字结合官方文档或社区 issue 定位缺失的算子或依赖。问题二CANN 版本不兼容错误现象安装或运行时报错提示 CANN 版本与驱动、固件或 vllm-ascend 不匹配例如 CANN version does not match 或算子编译失败。原因分析CANN、HDK 驱动固件以及 vllm-ascend 之间存在版本对应关系任一组件版本不一致都可能导致接口或算子不兼容。解决步骤确认 CANN 使用 8.2.RC1并分别安装 toolkit、kernels、nnal 三个安装包缺一不可。核对 HDK 驱动和固件版本为 25.2.0与 CANN 8.2.RC1 配套。检查 vllm-ascend 版本为 0.11.0rc0与 vllm 0.11.0 对应。若升级或降级了任一组件建议卸载后重新安装整套环境避免残留旧版本文件。安装完成后重新执行环境变量加载命令并重启终端会话使配置生效。问题三aisbench 连接 vllm 超时错误现象运行 ais_bench 压测命令时长时间无响应或报错 Connection timeout、Failed to connect to 127.0.0.1:9988。原因分析常见原因包括 vllm 服务未启动或端口不一致、配置文件中的服务地址错误、防火墙拦截以及压测并发数过高导致服务响应缓慢。解决步骤确认 vllm 服务已成功启动并使用curl -s 127.0.0.1:9988/v1/chat/completions验证接口可访问。检查 aisbench 配置文件benchmark/ais_bench/benchmark/configs/models/vllm_api/vllm_api_stream_chat.py中的服务地址和端口是否与 vllm 启动参数一致。确认压测数据集路径正确且音频文件已复制到benchmark/ais_bench/datasets/mm_custom/目录。适当降低并发数例如将--num-prompts从 150 调小观察服务是否恢复正常响应。检查服务器防火墙或安全组是否放行 9988 端口必要时临时关闭防火墙进行验证。四、总结与展望本文完整记录了 Qwen2.5-Omni-7B 在昇腾 Atlas800T A2 平台上的部署与压测过程覆盖了 HDK、CANN、vllm-ascend 的环境搭建模型下载与 vllm 服务加载以及基于 aisbench 的音频转文字性能压测全流程。从压测结果来看在并发数 50 至 150 的范围内服务吞吐量稳定在 27.5 至 29.2 req/s 之间成功率保持 100%平均时延从 1.82 秒上升至 5.13 秒整体表现稳定可靠。当前方案适用于中小并发、对时延要求适中的音频转文字场景例如会议纪要转写、语音助手、客服质检等业务。其局限性主要体现在单卡部署下并发能力有限高并发时请求排队等待时间明显增长同时--gpu-memory-utilization 0.4的显存配置较为保守模型推理吞吐仍有进一步提升空间。展望未来可以从以下几个方向继续优化多卡并行通过增大--tensor-parallel-size实现多卡张量并行将模型切分到多张 NPU 上可显著提升吞吐能力并支撑更高并发。模型量化尝试 INT8、INT4 等量化方案在保证精度的前提下降低显存占用和计算开销从而提升单卡推理效率。动态批处理结合 vllm 的 continuous batching 机制合理调整--max-num-seqs与--max-num-batched-tokens让服务在动态负载下更充分地利用算力资源。显存与调度调优适当提高--gpu-memory-utilization并结合 prefix caching 复用公共前缀的 KV Cache减少重复计算进一步降低时延。总体而言Qwen2.5-Omni-7B 在 Atlas800T A2 平台上已经具备良好的可用性通过上述优化手段有望在更大规模的生产环境中发挥更强的多模态推理能力。