近日,Qwen2.5-Omni正式发布了!
这是Qwen系列中全新的旗舰级端到端多模态大模型,专为全面的多模式感知设计,无缝处理包括文本、图像、音频和视频在内的各种输入,同时支持流式的文本生成和自然语音合成输出。Qwen2.5-omni 的发布,在人工智能领域掀起了波澜,其创新性的技术架构为多模态交互带来了前所未有的变革。下面我们深入剖析其核心技术,理解它是如何重塑多模态交互格局的。
Qwen2.5-Omni模型结构:(图片来源于官网说明)
Qwen2.5-omni 的 Thinker-Talker 双核架构是其实现高效多模态交互的关键。这种独特的架构设计,模拟了人类大脑的思考与表达过程,将多模态信息处理与语音生成进行了巧妙的分工与协同。
为了解决多模态数据在时间维度上的同步问题,Qwen2.5-omni 引入了 TMRoPE(Time-aligned Multimodal RoPE)时空对齐技术。这一技术的创新之处在于首创时间轴对齐位置编码算法,能够精准同步视频帧与音频波形的时间戳。在视频会议场景中,这一技术的优势尤为明显,唇形匹配准确率高达 98.7%,大幅超越了 Gemini-1.5 Pro 的 92.3%。这意味着在视频通话时,Qwen2.5-omni 生成的语音与人物的唇形能够高度吻合,为实时音视频交互奠定了坚实的基础,极大地提升了交互的真实感和自然度。
Qwen2.5-omni 的性能表现堪称卓越,在多模态和单模态任务中均展现出了强大的实力,超越了众多同类模型,成为了行业内的性能标杆。
在多模态领域,Qwen2.5-omni 的表现令人瞩目,其在视频理解、语音识别和跨模态推理等任务中均取得了突破性的成绩。
Qwen2.5-omni 在单模态任务中同样表现出色,在数学推理、图像解析和语音生成等方面都取得了优异的成绩。
Qwen2.5-omni 的强大性能在实际应用中得到了充分体现,它为多个领域带来了创新的解决方案,显著提升了工作效率和用户体验。
在影视解说领域,Qwen2.5-omni 实现了从视频内容分析到解说音频和字幕生成的全流程自动化。其操作流程简单便捷,用户只需上传电影片段至 ModelScope 平台,输入提示词,如 “分析画面隐喻,生成幽默风格 3 分钟解说”,即可实时获取带背景音乐的解说音频和字幕文件。
在处理一部经典的悬疑电影片段时,Qwen2.5-omni 能够精准捕捉到画面中主角的细微表情变化、场景中的道具细节以及剧情的发展线索。通过对这些信息的深度分析,它生成的解说文案不仅幽默风趣,还能巧妙地引导观众关注影片中的关键元素,增强了影片的观赏性和趣味性。同时,Qwen2.5-omni 会根据解说内容的情感基调,自动匹配合适的背景音乐,营造出紧张刺激的氛围,让观众仿佛置身于电影情节之中。这种自动化的影视解说方式,大大缩短了制作周期,降低了制作成本,为影视创作者和内容平台提供了高效的内容生产解决方案。
对于跨国视频会议,语言障碍和会议纪要整理一直是困扰用户的难题。Qwen2.5-omni 凭借其强大的实时翻译和会议纪要生成功能,为跨国交流提供了便利。它能够实时翻译 8 国语言,并支持粤语等方言识别,确保参会者能够无障碍地沟通。同时,Qwen2.5-omni 还能自动生成带时间戳的会议纪要,准确记录会议中的重要内容和讨论结果。其硬件要求仅需 RTX 3090,降低了使用门槛,使更多用户能够享受到高效的跨国视频会议体验。
在一场涉及中、美、英、法、德、日、韩、俄八国的商务视频会议中,Qwen2.5-omni 实时将各国参会者的语音翻译成其他与会者的母语,无论是中文的粤语方言,还是英语的不同口音,它都能准确识别并翻译。在会议进行过程中,Qwen2.5-omni 同步生成详细的会议纪要,将每个人的发言内容、提出的观点以及讨论的决议都按照时间顺序清晰记录,方便会后参会者回顾和查阅。这一功能极大地提高了跨国会议的效率,促进了国际间的合作与交流。
在智能内容创作领域,Qwen2.5-omni 提供了一套高效的爆款生成公式:文本输入→自动匹配 BGM→生成短视频脚本→AI 合成配音。实测生成 3 分钟短视频仅需 2 分钟,大大提高了内容创作的效率。无论是短视频创作者、自媒体人还是品牌营销团队,都能借助 Qwen2.5-omni 快速生成吸引人的短视频内容。
一位美食博主想要制作一条介绍地方特色美食的短视频。他只需将关于美食的文字描述输入到 Qwen2.5-omni 中,模型会根据美食的特点和文案的风格,自动匹配一段充满地方特色的背景音乐,如四川美食可能会匹配上具有川味风格的音乐。接着,Qwen2.5-omni 生成详细的短视频脚本,包括镜头的切换、拍摄的角度、画面的展示内容等。最后,通过 AI 合成配音,为视频添加生动的解说。整个过程仅需短短 2 分钟,就能生成一条高质量的美食短视频,大大节省了博主的创作时间,提高了内容产出的速度和质量。
Qwen2.5-omni 的部署过程相对简单,这里使用vllm对Qwen2.5-omni 7B 进行部署推理。
部署推荐硬件配置:
硬件配置 | 推荐方案 | 最低要求 |
---|---|---|
GPU | RTX 4090(32GB 显存) | RTX 3090(24GB 显存) |
CPU | 6 核以上 x86 架构 | 4 核 ARM(如 M1 芯片) |
内存 | 32GB+ | 16GB |
存储 | SSD 512GB+(模型缓存) | HDD 256GB |
(1)安装vllm
pip install git+https://github.com/huggingface/transformers@d40f54fc2f1524458669048cb40a8d0286f5d1d2
pip install accelerate
pip install qwen-omni-utils
git clone -b qwen2_omni_public_v1 https://github.com/fyabc/vllm.git
cd vllm
pip install .
(2)启动模型并进行音频调用
import os
import torch
from transformers import Qwen2_5OmniProcessor
from vllm import LLM, SamplingParams
from qwen_omni_utils import process_mm_info
os.environ['VLLM_USE_V1'] = '0'
MODEL_PATH = "Qwen/Qwen2.5-Omni-7B"
llm = LLM(
model=MODEL_PATH, trust_remote_code=True, gpu_memory_utilization=0.9,
tensor_parallel_size=torch.cuda.device_count(),
limit_mm_per_prompt={'image': 1, 'video': 1, 'audio': 1},
seed=1234,
)
sampling_params = SamplingParams(
temperature=1e-6,
max_tokens=512,
)
processor = Qwen2_5OmniProcessor.from_pretrained(MODEL_PATH)
messages = [
{
"role": "system",
"content": "You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech.",
},
{
"role": "user",
"content": [
{"type": "video", "video": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-Omni/draw.mp4"},
],
},
]
text = processor.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[0],
'multi_modal_data': {},
"mm_processor_kwargs": {
"use_audio_in_video": True,
},
}
if images is not None:
inputs['multi_modal_data']['image'] = images
if videos is not None:
inputs['multi_modal_data']['video'] = videos
if audios is not None:
inputs['multi_modal_data']['audio'] = audios
outputs = llm.generate(inputs, sampling_params=sampling_params)
print(outputs[0].outputs[0].text)
from qwen_omni_utils import process_mm_info
# @title inference function
def inference(video_path, prompt, sys_prompt):
messages = [
{"role": "system", "content": sys_prompt},
{"role": "user", "content": [
{"type": "text", "text": prompt},
{"type": "video", "video": video_path},
]
},
]
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
# image_inputs, video_inputs = process_vision_info([messages])
audios, images, videos = process_mm_info(messages, use_audio_in_video=False)
inputs = processor(text=text, audios=audios, images=images, videos=videos, return_tensors="pt", padding=True, use_audio_in_video=False)
inputs = inputs.to(model.device).to(model.dtype)
output = model.generate(**inputs, use_audio_in_video=False, return_audio=False)
text = processor.batch_decode(output, skip_special_tokens=True, clean_up_tokenization_spaces=False)
return text
import torch
from transformers import Qwen2_5OmniModel, Qwen2_5OmniProcessor
model_path = "Qwen/Qwen2.5-Omni-7B"
model = Qwen2_5OmniModel.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
device_map="auto",
attn_implementation="flash_attention_2",
)
processor = Qwen2_5OmniProcessor.from_pretrained(model_path)
调用:
from IPython.display import Video
video_path = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-Omni/shopping.mp4"
prompt = "How many kind of drinks can you see in the video?"
display(Video(video_path, width=640, height=360))
## Use a local HuggingFace model to inference.
response = inference(video_path, prompt=prompt, sys_prompt="You are a helpful assistant.")
print(response[0])
WARNING:root:System prompt modified, audio output may not work as expected. Audio output mode only works when using default system prompt 'You are Qwen, a virtual human developed by the Qwen Team, Alibaba Group, capable of perceiving auditory and visual inputs, as well as generating text and speech.'
qwen-vl-utils using torchvision to read video.
system
You are a helpful assistant.
user
How many kind of drinks can you see in the video?
assistant
There are five different kinds of drinks visible in the video.
在使用 Qwen2.5-omni 时,合理调整参数可以进一步提升模型的性能和适应性。以下是两个重要的调参技巧: