阿里开源多模态全能王 Qwen2.5-Omni:创新Thinker-Talker架构,全面超越Gemini-1.5-Pro等竞品

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: 阿里开源Qwen2.5-Omni多模态大模型,支持文本、图像、音频和视频输入,具备实时语音合成与流式响应能力,在OmniBench等基准测试中全面超越Gemini-1.5-Pro等竞品,提供免费商用授权。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🎭 「别让AI当偏科生!通义千问让模型眼耳口脑全打通」

大家好,我是蚝油菜花。这些多模态交互的魔幻现场你是否经历过——

  • 👉 开会录屏让AI做纪要,结果字幕和PPT内容完美错位
  • 👉 用语音问「图片里的裙子链接」,AI回答「已为您播放周杰伦《七里香》」
  • 👉 视频客服同时处理文字+语音+画面时,CPU燃烧到能煎鸡蛋...

今天要重塑人机交互的 Qwen2.5-Omni ,正在重写智能边界!阿里这剂十全大补丸:

  • ✅ 「感官全开」:文本/图像/语音/视频四模态同步处理,比人类感官还多一维
  • ✅ 流式神经网:生成响应比眨眼快3倍,直播级实时对话
  • ✅ 时空矫正术:TMRoPE编码让音画同步误差小于人类感知阈值

已有企业用它做跨国会议同传,主播靠AI实现跨模态带货——你的交互界面,是时候进化成「数字六边形战士」了!

🚀 快速阅读

Qwen2.5-Omni是阿里开源的多模态大模型最新力作。

  1. 核心功能:支持文本/图像/音频/视频输入,实时语音合成输出
  2. 技术原理:独创Thinker-Talker架构+TMRoPE位置编码,三阶段训练策略

Qwen2.5-Omni 是什么

Qwen2.5 Omni-cover

Qwen2.5-Omni 是阿里通义千问系列的最新旗舰多模态模型,拥有70亿参数规模。作为端到端的全能感知模型,它能同时处理文本、图像、音频和视频输入,并通过流式生成技术实现实时文本与语音输出。

该模型采用创新的Thinker-Talker双模块架构:Thinker模块负责多模态信息的理解与语义表示生成,Talker模块则将文本转化为自然流畅的语音。在训练策略上,模型经历三阶段优化过程,先固定语言模型参数训练编码器,再解冻全参数训练,最后通过长序列数据增强模型能力。

Qwen2.5-Omni 的主要功能

Qwen2.5 Omni

  • 文本处理:支持多语言对话、指令执行和长文本理解
  • 图像识别:精准理解图像内容,支持视觉问答
  • 音频处理:语音识别准确率超越Whisper-large-v3,支持语音指令理解
  • 视频理解:同步分析视频画面与音频信息,在MVBench测试达到70.3%准确率
  • 实时交互:流式处理技术实现毫秒级响应的语音视频聊天

Qwen2.5-Omni 的技术原理

Qwen2.5 Omni-Architecture

  • Thinker-Talker架构:分离式设计实现理解与生成的专项优化
  • TMRoPE编码:时间对齐的多模态位置嵌入,解决音视频同步难题
  • 块状处理:将长序列数据分块处理,2秒/块的实时处理效率
  • 三阶段训练:从单模态到多模态的渐进式能力提升

Qwen2.5-Omni 的评测结果

阿里开源Qwen2.5-Omni多模态大模型,支持文本、图像、音频和视频输入,具备实时语音合成与流式响应能力,在OmniBench等基准测试中全面超越Gemini-1.5-Pro等竞品:

Qwen2.5 Omni-bar

如何运行 Qwen2.5-Omni

下面教程将指导您如何运行 Qwen2.5-Omni,涵盖基础使用方法和代码示例。

1. 安装必要的依赖库

在运行 Qwen2.5-Omni 之前,您需要安装以下依赖库:

# 安装 transformers 和 accelerate
pip uninstall transformers
pip install git+https://github.com/huggingface/transformers@3a1ead0aabed473eafe527915eea8c197d424356
pip install accelerate

# 安装 Qwen2.5-Omni 工具包
pip install qwen-omni-utils[decord]

如果您的系统不支持 decord,可以使用以下命令回退到 torchvision

pip install qwen-omni-utils

2. 使用 Transformers 运行模型

以下代码示例展示了如何使用 transformersqwen_omni_utils 运行 Qwen2.5-Omni 模型:

import soundfile as sf
from transformers import Qwen2_5OmniModel, Qwen2_5OmniProcessor
from qwen_omni_utils import process_mm_info

# 加载模型和处理器
model = Qwen2_5OmniModel.from_pretrained("Qwen/Qwen2.5-Omni-7B", torch_dtype="auto", device_map="auto")
processor = Qwen2_5OmniProcessor.from_pretrained("Qwen/Qwen2.5-Omni-7B")

# 定义对话内容
conversation = [
    {
   
        "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(conversation, add_generation_prompt=True, tokenize=False)
audios, images, videos = process_mm_info(conversation, use_audio_in_video=True)
inputs = processor(text=text, audios=audios, images=images, videos=videos, return_tensors="pt", padding=True)
inputs = inputs.to(model.device).to(model.dtype)

# 模型推理
text_ids, audio = model.generate(**inputs, use_audio_in_video=True)

# 解码输出
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
print("生成的文本:", text)

# 保存生成的音频
sf.write("output.wav", audio.reshape(-1).detach().cpu().numpy(), samplerate=24000)

代码解释:

  1. 加载模型和处理器:使用 from_pretrained 方法加载预训练模型和处理器。
  2. 定义对话内容conversation 包含系统提示和用户输入的视频。
  3. 数据预处理:将对话内容转换为模型可接受的格式。
  4. 模型推理:调用 generate 方法生成文本和音频。
  5. 解码和保存结果:将生成的文本和音频分别输出和保存。

3. 使用 FlashAttention-2 加速推理

为了提升推理速度和降低内存占用,您可以使用 FlashAttention-2:

pip install -U flash-attn --no-build-isolation

在加载模型时指定 attn_implementation="flash_attention_2"

from transformers import Qwen2_5OmniModel

model = Qwen2_5OmniModel.from_pretrained(
    "Qwen/Qwen2.5-Omni-7B",
    device_map="auto",
    torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

4. 批量推理

Qwen2.5-Omni 支持批量处理多种输入类型,例如文本、图像、音频和视频。以下是一个批量推理的示例:

# 示例对话
conversation1 = [{
   "role": "user", "content": [{
   "type": "video", "video": "/path/to/video.mp4"}]}]
conversation2 = [{
   "role": "user", "content": [{
   "type": "audio", "audio": "/path/to/audio.wav"}]}]
conversation3 = [{
   "role": "user", "content": "who are you?"}]
conversation4 = [
    {
   "role": "user", "content": [
        {
   "type": "image", "image": "/path/to/image.jpg"},
        {
   "type": "video", "video": "/path/to/video.mp4"},
        {
   "type": "audio", "audio": "/path/to/audio.wav"},
        {
   "type": "text", "text": "What are the elements can you see and hear in these medias?"}
    ]}
]

# 批量处理
conversations = [conversation1, conversation2, conversation3, conversation4]
text = processor.apply_chat_template(conversations, add_generation_prompt=True, tokenize=False)
audios, images, videos = process_mm_info(conversations, use_audio_in_video=True)
inputs = processor(text=text, audios=audios, images=images, videos=videos, return_tensors="pt", padding=True)
inputs = inputs.to(model.device).to(model.dtype)

# 批量推理
text_ids = model.generate(**inputs, use_audio_in_video=True, return_audio=False)
text = processor.batch_decode(text_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
print("批量生成的文本:", text)

5. 使用 API 进行推理

您还可以使用 OpenAI API 与 Qwen2.5-Omni 进行交互:

import base64
import numpy as np
import soundfile as sf
from openai import OpenAI

# 初始化客户端
client = OpenAI(
    api_key="your_api_key",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

# 定义对话内容
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_url", "video_url": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen2.5-Omni/draw.mp4"},
        ],
    },
]

# 流式推理
completion = client.chat.completions.create(
    model="qwen-omni-turbo",
    messages=messages,
    modalities=["text", "audio"],
    audio={
   "voice": "Chelsie", "format": "wav"},
    stream=True,
    stream_options={
   "include_usage": True}
)

# 处理流式输出
text, audio_string = [], ""
for chunk in completion:
    if chunk.choices:
        if hasattr(chunk.choices[0].delta, "audio"):
            try:
                audio_string += chunk.choices[0].delta.audio["data"]
            except Exception as e:
                text.append(chunk.choices[0].delta.audio["transcript"])
    else:
        print(chunk.usage)

# 保存生成的文本和音频
print("".join(text))
wav_bytes = base64.b64decode(audio_string)
wav_array = np.frombuffer(wav_bytes, dtype=np.int16)
sf.write("output.wav", wav_array, samplerate=24000)

6. 启动本地 Web UI 演示

如果您希望使用 Web 界面与 Qwen2.5-Omni 交互,可以运行以下命令:

# 安装依赖
pip install -r requirements_web_demo.txt

# 启动 Web 演示
python web_demo.py --flash-attn2

启动后,您可以通过浏览器访问生成的链接(例如 http://127.0.0.1:7860/)进行交互。

7. 使用 Docker 部署

为了快速部署 Qwen2.5-Omni,推荐使用 vLLM 或 Docker 容器。以下是使用 Docker 的示例:

# 启动 Docker 容器
docker run --gpus all --ipc=host --network=host --rm --name qwen2.5-omni -it qwenllm/qwen-omni:2.5-cu121 bash

# 启动 Web 演示
bash docker/docker_web_demo.sh --checkpoint /path/to/Qwen2.5-Omni-7B --flash-attn2

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
超越 DeepSeek-R1!Seed-Thinking-v1.5:字节跳动开源MoE架构推理模型,200B总参数仅激活20B,推理效率提升5倍
字节跳动推出的200B参数混合专家模型,在AIME/Codeforces/GPQA等基准测试中实现多项突破,采用强化学习框架与流式推理系统,支持7大领域复杂推理任务。
122 13
超越 DeepSeek-R1!Seed-Thinking-v1.5:字节跳动开源MoE架构推理模型,200B总参数仅激活20B,推理效率提升5倍
|
8天前
|
机器学习/深度学习 编解码 人工智能
Kimi开源MoE架构多模态推理模型,小激活参数,大能量!
最近Moonshot AI推出了 Kimi-VL,这是一个高效的开源混合专家(MoE)视觉-语言模型(VLM),它提供了先进的多模态推理、长上下文理解以及强大的代理能力——所有这些功能都只需激活其语言解码器中的2.8B参数(Kimi-VL-A3B)。
57 1
|
12天前
|
机器学习/深度学习 人工智能 文件存储
Llama Nemotron:英伟达开源基于Llama架构优化的推理模型,253B参数持平DeepSeek R1!
NVIDIA推出的Llama Nemotron系列推理模型,基于Llama架构优化,包含Nano/Super/Ultra三款,在数学推理、编程和工具调用等任务中展现卓越性能。
56 5
Llama Nemotron:英伟达开源基于Llama架构优化的推理模型,253B参数持平DeepSeek R1!
|
14天前
|
人工智能 计算机视觉 开发者
Meta开源多模态AI新王炸!Llama 4:MoE架构仅用17B参数碾压Gemma 3,支持1000万token上下文
Meta最新开源的Llama 4系列多模态AI模型,采用混合专家架构,支持200种语言处理,最高达2万亿参数规模,在语言理解、图像分析和代码生成等任务中展现突破性性能。
81 0
Meta开源多模态AI新王炸!Llama 4:MoE架构仅用17B参数碾压Gemma 3,支持1000万token上下文
|
20天前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
GR00T N1:全球首个开源人形机器人基座模型!双系统架构解锁通用操作
GR00T N1 是英伟达推出的全球首个开源人形机器人基础模型,基于多模态输入和双系统架构,能够执行复杂操作任务,适用于物流、制造、零售等多个领域。
85 1
GR00T N1:全球首个开源人形机器人基座模型!双系统架构解锁通用操作
|
1月前
|
人工智能 物联网
VideoPainter:开源视频修复神器!双分支架构一键修复,对象身份永久在线
VideoPainter 是由香港中文大学、腾讯ARC Lab等机构联合推出的视频修复和编辑框架,基于双分支架构和预训练扩散模型,支持任意长度视频的修复与编辑,具备背景保留、前景生成、文本指导编辑等功能,为视频处理领域带来新的突破。
94 12
|
13天前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
87 12
|
2月前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
110 0
|
4月前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
96 0

热门文章

最新文章