详细介绍:**Qwen3-Omni(多模态:文本/图像/音频/视频)**的安装与使用速通手册

news/2025/9/27 10:05:16/文章来源:https://www.cnblogs.com/yxysuanfa/p/19114782

**Qwen3-Omni(多模态:文本/图像/音频/视频)**的安装与使用速通手册,包含两种常见路线:Transformers 本地推理与 vLLM 服务化。我把能踩的坑也一并写上。

  1. 下载模型(可二选一)

Hugging Face:

pip install -U "huggingface_hub[cli]"
# 任选其一:Instruct / Thinking / Captioner
huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Instruct --local-dir ./Qwen3-Omni-30B-A3B-Instruct
huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Thinking --local-dir ./Qwen3-Omni-30B-A3B-Thinking
huggingface-cli download Qwen/Qwen3-Omni-30B-A3B-Captioner --local-dir ./Qwen3-Omni-30B-A3B-Captioner

ModelScope(大陆网络更友好):

pip install -U modelscope
modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Instruct --local_dir ./Qwen3-Omni-30B-A3B-Instruct
modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Thinking --local_dir ./Qwen3-Omni-30B-A3B-Thinking
modelscope download --model Qwen/Qwen3-Omni-30B-A3B-Captioner --local_dir ./Qwen3-Omni-30B-A3B-Captioner

这些命令是官方模型卡 QuickStart 的原生写法。

  1. Transformers 本地推理(支持多模态 + 可出音频)

目前 Transformers 的支持已合并源码但尚未发 PyPI,需从源码安装;并建议装 qwen-omni-utils(多模态打包工具)与 FlashAttention-2(省显存/提速)。需本机有 ffmpeg。 

环境

# 新建干净环境后:
pip install git+https://github.com/huggingface/transformers
pip install accelerate
pip install -U qwen-omni-utils
# 可选:显存更省、速度更快(需 BF16/FP16 支持的 GPU)
pip install -U flash-attn --no-build-isolation

最小可用示例(图像+音频输入,文本+可选语音输出)

import soundfile as sf
from transformers import Qwen3OmniMoeForConditionalGeneration, Qwen3OmniMoeProcessor
from qwen_omni_utils import process_mm_info
MODEL = "Qwen/Qwen3-Omni-30B-A3B-Instruct" # 或 Thinking
model = Qwen3OmniMoeForConditionalGeneration.from_pretrained(
MODEL, dtype="auto", device_map="auto", attn_implementation="flash_attention_2"
)
processor = Qwen3OmniMoeProcessor.from_pretrained(MODEL)
conversation = [{
"role": "user",
"content": [
{
"type": "image", "image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"
},
{
"type": "audio", "audio": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cough.wav"
},
{
"type": "text", "text": "What can you see and hear? Answer in one short sentence."
}
],
}]
use_audio_in_video = True
text = processor.apply_chat_template(conversation, add_generation_prompt=True, tokenize=False)
audios, images, videos = process_mm_info(conversation, use_audio_in_video=use_audio_in_video)
inputs = processor(text=text, audio=audios, images=images, videos=videos,
return_tensors="pt", padding=True, use_audio_in_video=use_audio_in_video)
inputs = inputs.to(model.device).to(model.dtype)
# 生成文本 + 语音(Instruct 支持;Thinking 仅文本)
text_ids, audio = model.generate(**inputs, speaker="Ethan",
thinker_return_dict_in_generate=True,
use_audio_in_video=use_audio_in_video)
reply = processor.batch_decode(
text_ids.sequences[:, inputs["input_ids"].shape[1]:],
skip_special_tokens=True, clean_up_tokenization_spaces=False
)[0]
print(reply)
if audio is not None: # 写出语音(24kHz)
sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)

上面完整用法与官方模型卡一致;若仅需文本、想省约 10GB 显存,可 model.disable_talker(),并在 generate 时 return_audio=False。 

语音“声线”可选 Ethan / Chelsie / Aiden,用 speaker=“Chelsie” 等切换。 

  1. vLLM 部署(高吞吐服务化)

官方强烈建议用 vLLM 做部署;当前说明:vLLM serve 仅完全支持 Thinking(思考体),Instruct 的音频输出在 vLLM 侧尚在推进中(本地 Python 直推已支持)。建议从源码分支安装并按示例参数启动。 

安装(源码分支)

git clone -b qwen3_omni https://github.com/wangxiongts/vllm.git
cd vllm
pip install -r requirements/build.txt
pip install -r requirements/cuda.txt
export VLLM_PRECOMPILED_WHEEL_LOCATION=https://wheels.vllm.ai/a5dd03c1ebc5e4f56f3c9d3dc0436e9c582c978f/vllm-0.9.2-cp38-abi3-manylinux1_x86_64.whl
VLLM_USE_PRECOMPILED=1 pip install -e . -v --no-build-isolation
# 如果报 "Undefined symbol" 再尝试:pip install -e . -v 纯源码编译
pip install git+https://github.com/huggingface/transformers
pip install accelerate
pip install -U qwen-omni-utils
pip install -U flash-attn --no-build-isolation

Python SDK 推理(vLLM 引擎)

import os, torch
from vllm import LLM, SamplingParams
from transformers import Qwen3OmniMoeProcessor
from qwen_omni_utils import process_mm_info
os.environ["VLLM_USE_V1"] = "0" # 目前要求
MODEL = "Qwen/Qwen3-Omni-30B-A3B-Instruct" # 或 Thinking
llm = LLM(model=MODEL, trust_remote_code=True, gpu_memory_utilization=0.95,
tensor_parallel_size=torch.cuda.device_count(),
limit_mm_per_prompt={
'image':3,'video':3,'audio':3
},
max_num_seqs=8, max_model_len=32768, seed=1234)
sp = SamplingParams(temperature=0.6, top_p=0.95, top_k=20, max_tokens=16384)
proc = Qwen3OmniMoeProcessor.from_pretrained(MODEL)
messages = [{
"role":"user","content":[{
"type":"video","video":"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/draw.mp4"
}]
}]
text = proc.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
audios, images, videos = process_mm_info(messages, use_audio_in_video=True)
inputs = {
"prompt": text, "multi_modal_data": {
}, "mm_processor_kwargs": {
"use_audio_in_video": True
}
}
if images: inputs["multi_modal_data"]["image"]=images
if videos: inputs["multi_modal_data"]["video"]=videos
if audios: inputs["multi_modal_data"]["audio"]=audios
out = llm.generate([inputs], sampling_params=sp)
print(out[0].outputs[0].text)

OpenAI 兼容服务(vLLM serve)

# 注意:目前 serve 侧“音频输出”未放通;Thinking 全量支持
vllm serve Qwen/Qwen3-Omni-30B-A3B-Thinking --port 8901 --host 127.0.0.1 \
--dtype bfloat16 --max-model-len 32768 --allowed-local-media-path / -tp 1
# 多卡示例
vllm serve Qwen/Qwen3-Omni-30B-A3B-Thinking --port 8901 --host 127.0.0.1 \
--dtype bfloat16 --max-model-len 65536 --allowed-local-media-path / -tp 4

然后用 Chat Completions API 传多模态消息(image_url / audio_url / text):

curl http://localhost:8901/v1/chat/completions -H "Content-Type: application/json" -d '{
"messages":[
{"role":"system","content":"You are a helpful assistant."},
{"role":"user","content":[
{"type":"image_url","image_url":{"url":"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cars.jpg"}},
{"type":"audio_url","audio_url":{"url":"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-Omni/demo/cough.wav"}},
{"type":"text","text":"What can you see and hear? Answer in one sentence."}
]}
]
}'

关于 serve 限制与命令来源见模型卡 vLLM Usage 小节。 

  1. 显存与机型参考

官方给的理论最小显存(BF16 + Transformers + FA2):
• Instruct(30B):约 78.9GB(15s视频)→ 144.8GB(120s视频)
• Thinking(30B):约 68.7GB → 131.7GB
注意:视频越长占用越高;vLLM 需预分配显存,limit_mm_per_prompt/max_num_seqs 调小可缓解 OOM。 

  1. 模型家族与场景选择
    • Instruct:能文本+语音输出,适合助理对话/实时语音。
    • Thinking:带推理增强(链路更强),输入可多模态,仅文本输出。
    • Captioner:音频细粒度描述(ASR/声音理解/音乐分析等)。

  1. 常见坑与建议
    • Transformers 版本:当前需要从 Git 安装最新版;旧版 transformers 无法直接用 Qwen3OmniMoe* 类。 
    • FlashAttention-2:仅在 FP16/BF16 下可用;需兼容的 GPU 与驱动/CUDA;不用 vLLM 时强烈建议装。 
    • vLLM serve 能力边界:暂时只完整支持 Thinking;Instruct 的音频输出在 vLLM 端仍在推进中(本地 Python 直推可出音频)。
    • 多模态输入:官方提供 qwen-omni-utils.process_mm_info 来统一打包 base64/URL/本地 的图像/视频/音频,建议直接用以避免自己写 loader。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建设银行网站适用浏览器和政网站建设

微信小程序自带tabbar&#xff0c;但无法实现中间按钮凸起样式和功能&#xff0c;因此按照设计重新自定义一个tabbar 1、创建tabbar文件&#xff0c;与pages同级创建一个文件夹&#xff0c;custom-tab-bar,里面按照设计图将底部tabbar样式编写 <view class"tab-bar&q…

扁平化风格网站模板自己公司产品网站的好处

文章目录 一.安装wsl二.下载docker desktop三.更换Docker镜像引用出处 一.安装wsl 在安装wsl之前&#xff0c;先在Windows中配置WSL环境,步骤很简单&#xff0c;按照以下文章进行 Windows10/11配置WSL(Ubuntu)环境 以管理员身份打开Windows PowerShell&#xff0c;执行以下命…

谷歌新款具身智能模型 Gemini Robotics 1.5 和 Gemini Robotics-ER 1.5

谷歌新款具身智能模型 Gemini Robotics 1.5 和 Gemini Robotics-ER 1.5 谷歌(Google)公司在 9 月 25 日推出了其最新一代的机器人具身智能模型 Gemini Robotics 1.5 和 Gemini Robotics-ER 1.5, 与之前推出的模型仅…

个人二级网站怎么做嵌入式软件开发岗位职责

页脚始终保持在页面底部的网页布局方法导语&#xff1a;用CSS创建一个高度自适应布局&#xff0c;如何保证页脚(footer)在内容不超过一屏的情况下始终保持在布局最下方是一个比较头疼的事。下面就由百分网小编为大家介绍一下页脚始终保持在页面底部的网页布局方法&#xff0c;希…

女装网站功能的建设郑州联通网站备案

QCon旧金山大会是由InfoQ举办的连续十年的最大的英语会议&#xff0c;它将在今年11月7-9日在旧金山湾区举行。\\在QCon大会涵盖了一系列深入的技术&#xff0c;架构师、资深开发者所关注的国际事件&#xff0c;聚焦创新领域和软件发展趋势&#xff0c;QCon大会每年在美国、中国…

网站多媒体加载卡顿?视频压缩 + 音频优化,加载速度提升 75% 的实操方法 - 实践

网站多媒体加载卡顿?视频压缩 + 音频优化,加载速度提升 75% 的实操方法 - 实践2025-09-27 09:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overfl…

全国做的最棒的网站域名的作用是什么

单例模式 指一个应用程序中&#xff0c;某个类的实例对象只有一个&#xff0c;你没有办法去new&#xff0c;因为构造器是被private修饰的&#xff0c;一般通过getInstance()的方法来获取它们的实例。 getInstance()的返回值是一个对象的引用&#xff0c;并不是一个新的实例&a…

完整教程:测试自动化教程:Parasoft如何流重定向与单元测试自动化

完整教程:测试自动化教程:Parasoft如何流重定向与单元测试自动化pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

用 Zig 实现英文数字验证码识别

一、背景介绍 验证码(CAPTCHA)是互联网应用中广泛使用的安全机制之一,主要用于区分真实用户与自动化程序。英文数字验证码识别可以通过 OCR 技术实现。本文将基于 Zig 语言 调用 Tesseract OCR,构建一个轻量级识别…

用 Crystal 实现英文数字验证码识别工具

一、项目简介 更多内容访问ttocr.com或联系1436423940 验证码识别是现代图像处理与 OCR(光学字符识别)技术的重要应用场景之一。本文将使用 Crystal 编程语言构建一个英文数字验证码识别工具,调用 Tesseract OCR 引…

实用指南:Java 面试 -Java基础

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于 Nim 的英文数字验证码识别工具实现

一、项目介绍 验证码识别是图像处理与字符识别的典型应用场景之一。本文将基于 Nim 编程语言实现一个简单的英文数字验证码识别工具,通过调用 Tesseract OCR 引擎,实现图像到字符的转换,探索 Nim 在图像处理场景下的…

怎么建立网站快捷方式企业融资渠道及技巧

https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app转载于:https://www.cnblogs.com/zhangchengyuan/p/5623348.html

完整教程:数组(Java基础语法)

完整教程:数组(Java基础语法)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&qu…

网站收录怎么删班级网站建设方案

静态站点生成器大解析&#xff1a;找出哪一款最适合你 前言 本文将探讨六种不同的静态站点生成器和React框架&#xff0c;包括Gatsby&#xff0c;Next.js&#xff0c;Jekyll&#xff0c;Hugo&#xff0c;Hexo和Eleventy。这些工具各有特色&#xff0c;提供了丰富的功能和使用…

wp网站模板亲子游网站建设内容

CSS之盒子模型 margin: 用于控制元素与元素之间的距离&#xff1b;margin的最基本用途就是控制元素周围空间的间隔&#xff0c;从视觉角度上达到相互隔开的目的。padding: 用于控制内容与边框之间的距离&#xff1b;Border(边框): 围绕在内边距和内容外的边框。Content(内容): …

做网站都需要什么步骤网络管理网址

解题思路&#xff1a; 首先分别将pattern字符串转为字符数组p&#xff0c;将s字符串根据" "切割为字符串数组s1&#xff0c;判断两个数组的长度是否相等&#xff0c;如果不相等&#xff0c;则返回false。之后对两个数组的每个元素与哈希表做比对&#xff0c;哈希表的…

宁波做百度网站音乐版权购买网站

1.插件化开发概述 插件化开发模式正在很多编程语言或技术框架中得以广泛的应用实践&#xff0c;比如大家熟悉的jenkins&#xff0c;docker可视化管理平台rancher&#xff0c;以及日常编码使用的编辑器idea&#xff0c;vscode等。 实现服务模块之间解耦的方式有很多&#xff0…

深入解析:python+django/flask哈利波特书影音互动科普网站

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

手机建立网站软件兴趣电商平台有哪些

一.利用写好的数据库表生成创建表的sql语句 1.简单创建一个数据库&#xff0c;并建一个表&#xff0c;并编辑数据。 a.建库 b.建表 c.编辑表&#xff0c;保存时输入表名 d.刷新一下&#xff0c;出来了 e.转存导出sql文件。 二.利用生成的数据库创建表加同步数据sql。…