Qwen3-Omni 本地部署指南

该文章已生成可运行项目,

Qwen3-Omni 本地部署指南

本文档提供在本地服务器上部署 Qwen3-Omni-30B-A3B-Instruct 模型的步骤,使用 vLLM 框架,监听端口 9137,运行在 NVIDIA A800 80GB PCIe(GPU 5)。GPU 5 当前显存占用为 74,845 MiB(接近 81,920 MiB 上限),需优化配置以避免 OOM。

环境信息

  • GPU:NVIDIA A800 80GB PCIe(GPU 5)
  • 显存占用:74,845 MiB / 81,920 MiB
  • CUDA 版本:11.5(工具包),驱动支持 12.4
  • PyTorch 版本:2.7.0+cu126
  • Conda 环境qwen-vllm
  • 目标端口:9137
  • 模型:Qwen/Qwen3-Omni-30B-A3B-Instruct

部署步骤

1. 准备环境

  1. 激活 Conda 环境

    conda activate qwen-vllm
    

    若环境不存在,创建:

    conda create -n qwen-vllm python=3.10
    conda activate qwen-vllm
    
  2. 安装 vLLM

    pip install vllm --upgrade
    
  3. 安装音频支持(为语音转录):

    pip install vllm[audio]
    

2. 下载模型

下载 Qwen3-Omni-30B-A3B-Instruct 模型到本地:

huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Instruct --local-dir /mnt/data/models/Qwen/Qwen3-Omni-30B-A3B-Instruct

3. 安装性能优化库

优化推理速度和精度,解决 FlashInfer 和 flash-attn 警告:

  • FlashInfer(加速采样):

    pip install flashinfer-python -i https://pypi.org/simple
    

    若失败,编译源码:

    git clone https://github.com/flashinfer-ai/flashinfer.git
    cd flashinfer/python
    python setup.py install
    
  • flash-attn(优化音频/视觉模块):

    pip uninstall vllm-flash-attn -y
    pip install flash-attn==2.6.3 --no-build-isolation --index-url https://download.pytorch.org/whl/cu115
    
  • 验证安装

    pip show flashinfer-python
    pip show flash-attn
    

4. 启动 vLLM 服务器

在 GPU 5 上启动服务器,监听端口 9137:

conda activate qwen-vllm
CUDA_VISIBLE_DEVICES=5 vllm serve /mnt/data/models/Qwen/Qwen3-Omni-30B-A3B-Instruct --port 9137 --host 127.0.0.1 --dtype bfloat16 --max-model-len 16384 --allowed-local-media-path /mnt/data/speech2txt-test/datasets -tp 1
  • 参数说明

    • --port 9137:监听端口。
    • --host 127.0.0.1:本地访问。
    • --dtype bfloat16:降低显存占用。
    • --max-model-len 16384:显存占用 74,845 MiB 接近上限,降低上下文长度以防 OOM。
    • --allowed-local-media-path:允许访问音频文件路径。
    • -tp 1:单 GPU 张量并行。
  • 若 OOM,尝试多 GPU:

    CUDA_VISIBLE_DEVICES=5,7 vllm serve /mnt/data/models/Qwen/Qwen3-Omni-30B-A3B-Instruct --port 9137 --host 127.0.0.1 --dtype bfloat16 --max-model-len 16384 --allowed-local-media-path /mnt/data/speech2txt-test/datasets -tp 2
    

5. 验证服务器

检查服务器状态:

curl http://127.0.0.1:9137/health
  • 预期输出:{"status": "healthy"}

查看进程:

ps aux | grep '[v]llm.*9137'
lsof -i :9137

6. 测试语音转录

使用优化参数测试 6 分钟音频转录:

curl http://127.0.0.1:9137/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "/mnt/data/models/Qwen/Qwen3-Omni-30B-A3B-Instruct",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "audio_url",
            "audio_url": {
              "url": "file:///mnt/data/speech2txt-test/datasets/demo/out003.wav"
            }
          },
          {
            "type": "text",
            "text": "请将这段中文语音转换为纯文本,忽略填充词(如‘嗯’‘啊’)和背景噪声,仅输出清晰的说话内容。"
          }
        ]
      }
    ],
    "temperature": 0.3,
    "max_tokens": 2048,
    "top_p": 0.8,
    "frequency_penalty": 0.8
  }'

7. 优化长音频

  • 分割音频(每段 60 秒):
    ffmpeg -i /mnt/data/speech2txt-test/datasets/demo/out003.wav -f segment -segment_time 60 -c copy /mnt/data/speech2txt-test/datasets/demo/out%03d.wav
    
  • 预处理(确保 16kHz,降噪):
    ffmpeg -i /mnt/data/speech2txt-test/datasets/demo/out003.wav -ar 16000 /mnt/data/speech2txt-test/datasets/demo/out003_converted.wav
    sox /mnt/data/speech2txt-test/datasets/demo/out003_converted.wav /mnt/data/speech2txt-test/datasets/demo/out003_clean.wav noisered noise.prof 0.21
    

注意事项

  • 显存管理:GPU 5 显存接近上限。若 OOM,降低 --max-model-len 或用多 GPU。
  • 文件权限
    chmod 644 /mnt/data/speech2txt-test/datasets/demo/out003.wav
    
  • 日志检查:启动后查看日志,确保无 FlashInfer/flash-attn 警告。
  • Captioner 模型(可选):若转录质量不佳,切换到 Qwen3-Omni-30B-A3B-Captioner:
    huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Captioner --local-dir /mnt/data/models/Qwen/Qwen3-Omni-30B-A3B-Captioner
    CUDA_VISIBLE_DEVICES=5 vllm serve /mnt/data/models/Qwen/Qwen3-Omni-30B-A3B-Captioner --port 9137 --host 127.0.0.1 --dtype bfloat16 --max-model-len 16384 --allowed-local-media-path /mnt/data/speech2txt-test/datasets -tp 1
    

总结

通过以上步骤,Qwen3-Omni-30B-A3B-Instruct 成功部署在端口 9137,优化参数和音频预处理可确保高质量转录。若需进一步调试,提供日志、nvidia-smi 输出或转录结果。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值