微信扫码
添加专属顾问
我要投稿
Qwen2.5-Omni,阿里巴巴集团的突破性多模态AI模型,实现实时类人互动。 核心内容: 1. Qwen2.5-Omni的全模态感知能力 2. 流式输入处理与实时响应生成 3. 端到端模型架构的创新与挑战
Qwen2.5-Omni 是一种端到端的多模态模型,旨在感知多种模态,包括文本、图像、音频和视频…
人类通过多种感官体验世界。我们无缝地融合所见所闻,处理这些信息,并通过口头语言、书面文本或行动作出反应。多年来,人工智能(AI)一直努力复制这种整体理解和互动。我们看到强大的大型语言模型(LLMs)掌握文本,令人印象深刻的模型生成图像,还有一些模型转录语音。但真正流畅的人类互动需要将所有这些模态——视觉、听觉、推理、口语和书写——整合在一个能够实时处理的统一系统中。
想象一下一个AI助手,你可以与之进行自然流畅的对话,边讨论视频的音频内容边展示视频,要求它描述你刚拍摄的图像,收到的回应不仅是文本,还包括自然听起来的语音,所有这一切几乎瞬间发生。这一直是多模态AI的圣杯。
引入Qwen2.5-Omni,这是阿里巴巴集团Qwen团队开发的一种突破性模型。它不仅仅是另一个多模态模型;它从根本上设计为全模态,能够同时感知丰富的输入——文本、图像、音频和视频。更令人印象深刻的是,它以流式方式生成响应,实时提供文本和自然的人类语音。
这不仅仅是一次渐进式更新;Qwen2.5-Omni代表了朝着与我们以我们自己的方式互动的AI迈出的重要一步,处理世界的方式与我们类似。在这次深入探讨中,我们将探索Qwen2.5-Omni的工作原理,剖析其创新架构,理解它如何处理时间和流数据的复杂性,检查其卓越的性能,并讨论其潜在影响。
“多模态AI”这个术语已经存在一段时间,通常指处理两种模态的模型,通常是文本和图像(如GPT-4V或原始Qwen-VL)。一些模型尝试涉及音频或视频,但通常将这些模态孤立处理或需要单独的处理步骤。真正的挑战在于创建一个能够:
Qwen2.5-Omni 直面这些挑战。其“全模态”特性意味着它旨在同时接收文本、独立图像、音频片段和视频(包括其音轨)。这超越了简单的模态对,朝着更全面的感官输入系统发展。
想象一下之前的多模态AI,就像在手机上有多个独立的应用:一个用于文本,一个用于图像,一个用于音频。Qwen2.5-Omni更像是一个集成操作系统,这些感官无缝地协同工作。
使Qwen2.5-Omni与众不同的关键因素:
这些能力使我们更接近于一种AI,它不仅仅处理数据,而是以一种显著更自然和直观的方式体验和与信息互动。
发人深省的问题: 除了聊天机器人和语音助手,真正理解并实时响应同时的视频、音频和文本流的AI可能会产生什么新颖的应用?
那么,Qwen2.5-Omni 是如何管理这一复杂的平衡行为的呢?核心创新在于其 Thinker-Talker 架构,这一设计灵感来源于人类认知思维与语言表达的分离。
想象一下你的大脑在形成一个回应(“Thinker”),然后你的发声系统将这个想法转化为口头语言(“Talker”)。Qwen2.5-Omni 正是如此:
1. Thinker: 这是操作的“大脑”。它本质上是一个强大的大型语言模型(基于 Qwen2.5 LLM 架构),负责:
2. Talker: 这就像“发声系统”。它是一个专门的双轨自回归 Transformer 模型,专门设计用于以流式方式生成语音标记。关键部分在于:
端到端训练: 重要的是,Thinker 和 Talker 并不是分别训练后再拼接在一起的。它们是一个单一、连贯模型的一部分,联合训练。这确保了 Thinker 学会生成对 Talker 有用的表示,而 Talker 学会有效地解读 Thinker 的内部“思想”以生成适当的语音。这避免了在单独的文本生成和文本转语音模块之间可能累积的错误。
这种分工——Thinker 负责认知和文本,Talker 负责基于深层认知上下文的语音合成——使得 Qwen2.5-Omni 能够有效地处理两种输出模态而不互相干扰,同时生成高度自然和上下文感知的语音。
处理现实世界数据,尤其是视频时,最大的障碍之一是处理时间。事件是顺序发生的,视觉动作与伴随音频之间的关系对于理解至关重要。此外,对于实时互动,模型不能等待处理整个一个小时的视频;它需要高效地处理输入数据流。
Qwen2.5-Omni 引入了巧妙的解决方案来实现时间同步和流式输入处理。
传统的 Transformer 中的位置信息编码(如 RoPE — Rotary Position Embedding)主要跟踪标记的序列顺序。这在文本中效果良好,但在视频的多维特性(时间、高度、宽度)和需要与音频精确对齐方面存在困难。
Qwen2.5-Omni 提出了 TMRoPE(时间对齐多模态 RoPE)。它扩展了位置信息编码的概念,以显式表示三个维度:
TMRoPE 处理 时间维度 对于视频和音频的魔力在于:
可以把 TMRoPE 想象成为模型接收到的每一条视觉和听觉信息添加精确的、同步的时间戳,从而使其能够构建事件的连贯时间线。
为了实现实时互动并处理可能非常长的输入(如监控实时馈送),Qwen2.5-Omni 不能等待一次性处理整个输入流。它在输入编码器中采用了 块级处理:
这类似于逐章阅读一本书,在理解每一章后再转向下一章,而不是试图将整本书一次性加载到工作记忆中。这使得处理长时间连续流变得可行且高效。
为了进一步增强同步音频和视频的处理,Qwen2.5-Omni采用了一种时间交错方法。在每个处理块(例如,2秒)内,它安排处理后的标记,使该块的所有视觉标记首先出现,随后是相同块的所有音频标记。这种在时间块内的结构化安排有助于思考者的注意机制有效融合对应同一时间窗口的两种模态的信息。
结合TMRoPE和块级处理,Qwen2.5-Omni能够准确感知现实世界的时间动态,并高效处理连续的多模态信息流,为实时互动奠定基础。
引人深思的问题: TMRoPE引入了明确的时间编码。这个概念如何适应或对其他涉及复杂时间序列数据的AI任务(如金融建模或科学模拟分析)产生益处?
理解流式输入只是无缝互动的一半。模型还需要实时响应,理想情况下在用户说完话或输入事件发生后,能够以最小延迟生成文本和自然语音。这就是说话者架构和专业解码策略的亮点所在。
如前所述,说话者从思考者那里接收丰富的上下文信息(隐藏状态),使其能够预测并生成语音标记(在整个文本响应最终确定之前)。但将这些离散的音频标记高效地转换为实际的音频波形流又是另一个挑战。
Qwen2.5-Omni采用了流式编解码器生成机制:
说话者的预测生成(使用思考者的隐藏状态)与低延迟流式编解码器解码器的结合,使Qwen2.5-Omni能够实现文本和自然语音的流畅实时生成。
复杂的架构令人印象深刻,但 Qwen2.5-Omni 的实际表现如何?研究人员在广泛的基准测试中进行了全面评估,将其与专门的单模态模型、其他多模态模型以及强大的闭源模型如 Gemini 1.5 Pro 和 GPT-4o-mini 进行了比较。
以下是叙述摘要:
1. 真正的全模态能力(OmniBench): 在专门设计用于测试多模态集成的基准测试(如 OmniBench)中,Qwen2.5-Omni 实现了 最先进的性能,显著超越了之前的模型如 Gemini 1.5 Pro、AnyGPT 和 UnifiedIO2。这证明了它在同时融合和推理文本、图像、音频和视频输入方面的卓越能力。它在 OmniBench 上的平均得分为 56.13%,这是一个突出的结果。
2. 强大的单模态表现: 尽管是一个统一模型,Qwen2.5-Omni 在与专门模型的对比中表现出色:
3. 突破性的语音指令跟随: 最令人兴奋的发现之一是 Qwen2.5-Omni 几乎能够像处理文本指令一样好地跟随通过 语音 给出的指令。当在使用口语输入(内部转换)评估 MMLU 和 GSM8K 等基准时,其表现与仅文本基线非常接近。这是朝着真正自然的基于语音的复杂任务交互迈出的重要一步。
4. 自然且稳健的语音生成(Text -> Speech): 在零样本文本到语音基准测试如 SEED-TTS 中,Qwen2.5-Omni(特别是在强化学习优化后)在内容一致性(低词错误率)和说话者相似性方面展示了最先进的性能,超越了 CosyVoice 2 和 F5-TTS 等强基线。主观测试也证实了其生成语音的自然性。
关键提示: "Qwen2.5-Omni 在端到端语音指令跟随中的表现可与其在文本输入时的能力相媲美,正如 MMLU 和 GSM8K 等基准所证明的。" — 这突显了语音交互的重大突破。
总体而言,评估描绘了一幅高度能力和良好平衡的全模态模型的图景,在集成多模态理解和交互方面推动了最先进的水平,同时在单模态性能上没有做出过多妥协。
创建一个像 Qwen2.5-Omni 这样复杂的模型需要一种复杂的训练策略。该过程涉及多个阶段,旨在在整合各个模态之前建立每个模态的基础理解,并为特定的交互能力微调模型。
在预训练建立广泛能力后,微调使模型更适合对话互动并提高输出质量。这使用使用ChatML格式化的指令跟随数据集(用于对话的结构化格式)。
这一多阶段的训练和微调过程,通过精心叠加基础知识与专门的细化,是实现Qwen2.5-Omni令人印象深刻的广度和深度能力的关键。
Qwen项目的一个伟大方面是其对开源访问的承诺。开发者和研究人员可以通过多个平台探索Qwen2.5-Omni:
以下是一个简化的代码片段,展示如何使用transformers库和有用的qwen-omni-utils包(确保安装依赖项,并可能根据GitHub repo中提到的指定源提交构建transformers):
import soundfile as sf
from transformers import Qwen2_5OmniModel, Qwen2_5OmniProcessor
from qwen_omni_utils import process_mm_info
import torch # Added for dtype
pip install git+https://github.com/huggingface/transformers@f742a644ca32e65758c3adb36225aef1731bd2a8
pip install accelerate torch soundfile qwen-omni-utils[decord] flash-attn --no-build-isolation
MODEL_ID = "Qwen/Qwen2.5-Omni-7B"
model = Qwen2_5OmniModel.from_pretrained(
MODEL_ID,
torch_dtype=torch.bfloat16, # 使用 bfloat16 或 float16 以支持 Flash Attn 2
device_map="auto",
attn_implementation="flash_attention_2", # 推荐使用
# enable_audio_output=True, # 默认值为 True
)
processor = Qwen2_5OmniProcessor.from_pretrained(MODEL_ID)
如果使用 URL 或本地文件,请确保已安装 ffmpeg。确保 URL 可访问,或替换为本地路径
/path/to/your/video.mp4
。
video_input = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-Omni/draw.mp4"
## video_input = "/path/to/local/video.mp4" # 或使用本地文件
conversation = [
{
"role": "system",
# 重要:如果您希望输出音频,请使用此确切提示!
"content": "您是 Qwen,由 Qwen 团队和阿里巴巴集团开发的虚拟人,能够感知听觉和视觉输入,并生成文本和语音。",
},
{
"role": "user",
"content": [
{"type": "video", "video": video_input},
{"type": "text", "text": "这个视频发生了什么?请用音频描述它。"},
],
},
]
USE_AUDIO_IN_VIDEO = True # 如果视频没有相关音频,则设置为 False
apply_chat_template 期望一个列表用于批处理,即使批大小为 1。
templated_text = processor.apply_chat_template([conversation], add_generation_prompt=True, tokenize=False)[0]
process_mm_info 也期望一个列表用于批处理。返回列表的列表/None: [[aud1, aud2,...]], [[img1,...]], [[vid1,...]]。
audios, images, videos = process_mm_info([conversation], use_audio_in_video=USE_AUDIO_IN_VIDEO)
提取内部列表或 None 以进行单实例处理。
audio_list = audios[0] if audios and audios[0] else None
image_list = images[0] if images and images[0] else None
video_list = videos[0] if videos and videos[0] else None
处理器期望单个文本字符串,以及每个样本的音频/图像/视频列表。
inputs = processor(
text=templated_text,
audios=audio_list,
images=image_list,
videos=video_list,
return_tensors="pt",
padding=True, # 根据输入可能需要填充
use_audio_in_video=USE_AUDIO_IN_VIDEO
)
inputs = inputs.to(model.device).to(model.dtype)
如果只需要文本响应,请将 return_audio 设置为 False 以加快速度。
print("生成响应中...")
text_ids, audio_output = model.generate(
**inputs,
use_audio_in_video=USE_AUDIO_IN_VIDEO,
return_audio=True, # 设置为 True 以获取音频
spk="Chelsie", # 选择发声人
max_new_tokens=512 # 限制输出长度
)
print("生成完成。")
假设 text_ids 可能具有形状 [1, seq_len]。
text_response = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print("\n文本响应:")
print(text_response)
if audio_output is not None:
# 假设 audio_output 形状为 [1, num_samples]
audio_array = audio_output.reshape(-1).detach().cpu().numpy()
output_filename = "qwen_omni_output.wav"
sf.write(output_filename, audio_array, samplerate=24000)
print(f"\n音频响应已保存到:{output_filename}")
else:
print("\n未生成音频(return_audio 为 False 或系统提示不正确)。")
Qwen2.5-Omni 不仅仅是另一个多模态模型;它是对人机交互未来的宣言。通过统一文本、图像、音频和视频的感知,并实现实时双流文本和语音输出,它显著降低了与 AI 进行自然和直观交流的障碍。
Qwen2.5-Omni展示的能力为众多应用开启了大门:
Qwen团队承认未来工作中的一些领域,包括在细粒度视频OCR等挑战性任务上提高性能,以及增强音频与视频流之间的协作理解。最终目标依然是推动人工通用智能(AGI)的发展,未来的迭代可能会变得更快、更强大,并可能整合图像或视频生成等额外输出方式。
Qwen2.5-Omni是人工智能快速进步的见证。它挑战我们重新思考与机器的互动方式,为未来铺平道路,让人工智能不仅仅是我们通过文本指挥的工具,而是可以进行对话、展示事物和倾听的伙伴,就像我们彼此之间的互动
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-08
AI数字人领域重大突破:告别拼凑式合成,阿里OmniTalker能否开启音视频一体化新时代?
2025-04-08
阿里OmniTalker震撼发布!0.8B参数实现25FPS实时音视频生成,跨语言情感表达精准同步
2025-04-08
字节超快超强声音克隆 MegaTTS3, 声音克隆几乎一模一样, 可跨语言克隆.
2025-04-08
这可能是目前最强的TTS,10秒复刻你的声音
2025-04-07
简单粗暴,4O终极魔法,这才是主体库的最终形态
2025-04-07
环境有限?没条件用一步到位的高端AI?AI内容深加工/平民AI高端玩法:AI生成各种图、视频、音频、文档、可视化图表、程序等等等
2025-04-07
Llama 4首测:Mac狂飙2万亿,多模态惊艳代码翻车!
2025-04-06
Llama 4全网首测来袭,3台Mac狂飙2万亿!多模态惊艳代码却翻车
2024-09-12
2024-06-14
2024-08-06
2024-06-17
2024-08-30
2024-05-30
2024-10-07
2024-11-28
2024-10-16
2024-04-21
2025-04-08
2025-04-05
2025-03-30
2025-03-26
2025-03-05
2025-03-02
2025-01-08
2024-12-13