Arxiv:https://arxiv.org/abs/2502.13923

Source code:https://github.com/QwenLM/Qwen2.5-VL

Author’s Institution:Alibaba

背景

多模态大模型

多模态大模型MultiModal Large Language Models (MM-LLMs) 的发展可以通过一篇综述了解:MM-LLMs: Recent Advances in MultiModal Large Language Models.

现在先以一个小白的视角看一下所谓的多模态大模型是什么样的,包括模型的输入、输出能够解决什么问题等等。从上面提到的综述上看,多模态大模型的模型结构一般如下:

多模态大模型的输入、输出可以是图片、视频、语音等。结构上主要分为两个模块:多模态理解、多模态生成。
多模态理解主要有以下模块:

  • Modality Encoder(模态编码器):提取多模态的特征为embedding,模态编码器通常是单独针对对应模态的数据进行了预训练。
  • Input Projector(输入投影):将模态编码器的输出映射到LLM的输入特征空间的适配层,即不同模型数据空间信息模态对齐(将其他模态数据对齐到文本域空间)。
  • LLM Backbone(LLM主干网络):这里的输入通常有text模态数据(人们发布指令或者希望大模型做什么事情还是通过文本描述的形式以让大模型给出预期结果)和其他对齐到text模型空间的模态数据。LLM是经过预训练的语言模型,用来理解输入的模态数据。
    多模态生成主要有以下模块:
  • Output Projector( 输出投影):LLM主干网络根据自身对输入数据的理解输出一系列数据。该模块则是将LLM输出的数据映射成Modality Generator可理解的特征空间。
  • Modality Generator(模态生成器):根据输出投影的结果生成最后的结果。

QwenVL

Qwen-VL模型则是一系列视觉+文本多模态理解模型Large vision-language models ( LVLMs ),主要处理文本和视觉特征,即"Text、Image、Video" in,“Text” out。 系列模型也在不断更新,先后发布了:Qwen-VL、Qwen2-VL、Qwen2.5-VL(2025年2月更新)。
截止目前,现有的视觉大语言模型主要遇到的问题或者瓶颈:计算复杂性、有限的上下文理解、较差的细粒度视觉感知以及不同序列长度的不一致性能等问题。Qwen2.5-VL在不断迭代和优化中解决了一些问题。

方法论

模型结构

Qwen2.5VL的模型结构如下:

Qwen2.5VL系列模型结构主要包含三个模块:

  1. LLM: 语言模型是多模态大模型非常基础的模块,有类似于“大脑”的功能,使用的语言模型是Qwen2.5 LLM,为了能够更好的理解多模态,作者修改了1D RoPE(Rotary Position Embedding,旋转位置编码)为于绝对时间对齐的多模态旋转位置嵌入。
  2. 视觉编码器:使用的是重新设计的Vision Transformer(ViT)结构。
  3. MLP-based的视觉-语言融合器:使用基于多层感知机来将vit输出特征做进一步压缩以及对齐到text域中。

不同参数的模型配置如下:

补充:qwen2.5vl-32b的模型也在2025年5月开源。

视觉编码器

在视觉编码器的主要创新点:

  1. 实施窗口注意力机制:将窗口注意力引入视觉编码器以优化推理效率。
  2. 引入动态FPS采样:将动态分辨率扩展到时域维度,使模型能够全面理解不同采样率下的视频。
  3. 升级MRoPE:在时域上对齐至绝对时间,从而促进更加复杂的序列学习。
    具体如何实现的后续继续研读代码。

预训练

预训练语料大约4T的token。相关数据分别在模型训练阶段使用情况:

视觉编码器模块的ViT先使用DataComp以及内部的数据进行初始化,使用预训练的qwen2.5语言模型初始化LLM模块。预训练过程分为三个阶段:

  1. 只训练ViT模块去对齐(alignment)视觉和语言模块,训练过程冻结语言模块,为多模态里面打下基础。
  2. 视觉模块和语言模型全部参与训练,数据更加复杂。通过该阶段的训练,增加了模型的建立视觉和语言链接的能力以能够进一步应对推理的需求;
  3. 该阶段通过增加比较长的训练数据,进一步增强模型的推理能力。

可参考qwenvl训练流程:
在这里插入图片描述

后训练

这部分主要使用SFT(Supervised Fine-Tuning)和DPO(Direct Preference Optimization)方式。SFT监督微调旨在通过目标指令优化弥合预训练表示和下游任务需求之间的差距,本质上来说是进一步提升指令跟随能力。
大量的工作关注于:收集和过滤出高质量的训练数据。例如构建了数据过滤的pipeline,使用了多种策略过滤,例如:基于规则的、基于模型的以及Rejection Sampling(拒绝采样)。
然后使用这些精心收集的数据进行后训练(SFT和DPO),后训练过程中,视觉编码器ViT的参数是被冻结的。

实验

相比于当时的开源、闭源的模型在主要的评测数据集的效果如下:

总得来看,qwen2.5vl-72b在很多数据集的效果是sota的。同时作者也验证了,多模态大模型维持了语言模型的性能,如下表:

但在我们的实际场景中可能更加关注具体的领域业务,例如文档理解和OCR效果,可以参见下表:

整体来说效果还是不错的,如果在自己的业务数据做进一步的微调的话,应该是可以达到落地标准的。
此外还有视频理解还有Agent的功能,具体可参见原文。

总结

文章优点

本文提出了一种名为Qwen2.5-VL的视觉语言模型系列,该模型在多模态理解和交互方面取得了显著进展。其增强的视觉识别能力、对象定位能力、文档解析能力和长视频理解能力使其在静态和动态任务中表现出色。此外,它具有原生的动态分辨率处理和绝对时间编码功能,可以高效地处理各种输入,并通过减少计算开销而不牺牲分辨率精度来降低计算负担。Qwen2.5-VL适用于从边缘AI到高性能计算的各种应用。旗舰版本Qwen2.5-VL-72B与领先的模型如GPT-4o和Claude3.5 Sonnet相比,在文档和图表理解方面匹配或超过它们,同时保持纯文本任务的良好性能。较小的Qwen2.5-VL-7B和Qwen2.5-VL-3B变体优于相应大小的竞争者,提供效率和灵活性。Qwen2.5-VL为视觉语言模型树立了新的基准,展示了在跨领域的任务执行和一般化方面的卓越表现,为更智能和互动系统的发展铺平了道路,实现了感知和现实世界应用之间的桥梁。

方法创新点

本文的主要贡献在于以下几个方面:

  1. 实施窗口注意力机制:将窗口注意力引入视觉编码器以优化推理效率。
  2. 引入动态FPS采样:将动态分辨率扩展到时域维度,使模型能够全面理解不同采样率下的视频。
  3. 升级MRoPE:在时域上对齐至绝对时间,从而促进更加复杂的序列学习。
  4. 数据集构建:致力于高质量数据的收集和整理,进一步扩大预训练语料库规模。

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

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

相关文章

vue中computed和watch区别

在 Vue 中,computed 和 watch 都是用来响应式地处理数据变化的工具,但它们的用途和行为有明显区别。 🔍 一句话总结 computed:用于声明式计算属性,有缓存。 watch:用于监听响应式数据的变化并执行副作用逻…

大语言模型:提示词决定自我反思效果: “检查回答是否错误” “验证回答是否正确”

大语言模型(LLMs)自我反思的结果很容易受提示词构造的影响 大型语言模型(LLMs)展现出令人印象深刻的零样本和少样本推理能力。有人提出,这些能力可以通过自我反思来提升,即让大型语言模型反思自己的输出,以识别和纠正初始回答中的错误。然而,尽管有一些证据表明自我反…

【iReport】实际开发中,解决iReport中打印图片不显示问题

ireport 中增加图片,添加上属性,但是运行时报错如下,是属性logoPath没有声明到map中 1. Parameter not found : logoPath net.sf.jasperreports.engine.design.JRValidationException: Report design not valid : 1. Parameter not fo…

【MySQL进阶】常用MySQL程序

目录 一. mysqlcheck——表维护程序 1.1.作用 1.2 注意事项 1.3 使用方法 1.4 常用选项 1.5 mysqlcheck的特殊使用 二. mysqldump——数据库备份程序 2.1.作用 2.2 注意事项 2.3 使用方法 2.4 常用选项 三. mysqladmin——MySQL 服务器管理程序 3.1.作用 3.2 使用…

EMQX高效存储消息到MySQL指南

配置 EMQX 存储消息到 MySQL EMQX 可以通过规则引擎和数据桥接功能将消息和事件存储到 MySQL 数据库。以下是具体实现方法: 创建 MySQL 数据表 在 MySQL 中创建用于存储消息的表结构: CREATE TABLE mqtt_messages (id int(11) NOT NULL AUTO_INCREME…

springboot项目,利用docker打包部署

Windows WSL2 Docker Desktop 部署 SpringBoot 项目指南 (没有安装docker的,如果是windows家庭中文版的,可以看我上一篇帖子:windows家庭版安装docker和redis-CSDN博客) 本教程将说明如何在 Windows 系统 下&#…

MO+内核32位普冉单片机PY32F003开发板

PY32F003开发板是基于普冉半导体PY32F003微控制器设计的低成本入门级开发工具, PY32F003系列微控制器采用高性能的 32 位ARM Cortex-M0内核,宽电压工作范围的 MCU。嵌入高达32Kbytes flash 和 4Kbytes SRAM 存储器,最高工作频率 32MHz。PY32…

MySql 用存储过程删除所有用户表

用拼接语句总是会出问题 -- 1. 禁用外键约束(防止级联删除失败)[1]() SET SESSION FOREIGN_KEY_CHECKS 0; -- 2. 生成并执行删除语句(替换 your_database_name) SELECT CONCAT(DROP TABLE IF EXISTS , TABLE_NAME, ;) -- 预览语…

Java八股文——MySQL「锁篇」

讲一下MySQL里有哪些锁? 面试官您好,MySQL中的锁机制非常丰富,它是保证数据一致性和并发安全的核心。我通常会从锁的粒度(加锁范围) 和锁的模式(功能) 这两个维度来理解它们。 第一维度&#…

B站精品课程

【Python并发编程】线程,进程,协程,线程安全,多线程,死锁,线程池等与案例解析,从入门到精通 https://www.bilibili.com/video/BV1EfdcYmEff/?spm_id_from333.337.search-card.all.click&v…

# ubuntu中安装使用五笔输入法

先 清理旧输入法并重新安装 fcitx5 五笔输入法👇 📦 第一步:清理旧的 Fcitx5 及相关输入法组件 sudo apt purge fcitx* mozc* ibus* -y sudo apt autoremove --purge -y📝 说明: fcitx* 会清除旧版本 Fcitx/Fcitx5。…

LSM树与B+树优缺点分析

1. LSM树优化了顺序写,因此写性能很好,但在查询上: 需要从Level 0到Level n一直顺序查下去。极端情况是LSM树中不存在该数据,则需要遍历L0->Ln,最后返回空集。 解决方法是用布隆过滤器优化查询。 2. B树范围查询性…

【成都鱼住未来身份证】 身份证读取与解析———未来之窗行业应用跨平台架构——智能编程——仙盟创梦IDE

读取身份证开发配置 function readerid鱼住未来科技(){const webUrl http:// "127.0.0.1:30004" /api/info$.ajax({url: webUrl,type: GET,dataType: json,success: function (result) {// processContent.text(web api接口: webUrl 读取身份证信息…

开启并连接redis以及端口占用问题

开启命令行 redis-server.exe redis.windows.conf 端口占用问题 查看端口: 输入命令行: netstat -ano | findstr :6379 找到并停止pid号: 这个要用到cmd管理员身份打开 taskkill /f /pid 你的端口号 重新开启就行了 再用另一个cmd进行连…

MCP数据可视化服务器配置依赖

# requirements.txt # MCP数据可视化服务器依赖包# 核心MCP包 mcp>=0.1.0# 数据处理 pandas>=2.0.0 numpy>=1.24.0# 可视化 matplotlib>=3.7.0 seaborn>=0.12.0# 异步支持 asyncio-mqtt>=0.13.0# JSON处理 jsonschema>=4.17.0# 图像处理 Pillow>=9.5.0…

量化面试绿皮书:14. 钟表零件

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 14. 钟表零件 一个时钟(顺时针编号为 1-12)从墙上掉了下来,摔成三块你发现每块上的数字之和是相等的。 Q: 每块上的数字是多少&…

AndroidR平台ToastPresenter引出BinderProxy泄漏

一、问题描述 针对SA8155车机系统Qnx+Android,自动化测试模拟发送CAN信号测试,压测报出多例BinderProxy leak引起system_server重启 问题1 [CRASH] system_server osVersion: V1.2.***,提交时间:2025-06-05 ***,复现了2次java.lang.AssertionError: Binder ProxyMap has…

windows11中切换到其他桌面再切回当前桌面,任务栏的WPS有好几个窗口

感谢知乎的网友 原文链接 新建一个后缀为 .reg 的文本文件,将以下内容粘贴进去,保存,然后双击运行 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\wpsoffice\Application Settings]"enable_m…

从汇编的角度揭开C++ this指针的神秘面纱(下)

<接上篇> 我们接着来看一段C的代码&#xff1a; class A { public:int func(int j){return j _i;} private:int _i; };int main() {A a;a.func(3);return 0; } 这里定义了一个类A&#xff0c;在main函数中定义了A类的对像a。同时用a调用了成员函数func。我们来看一…

Kafka代码模板

Kafka 服务器&#xff08;Broker&#xff09; 的配置 server.properties # broker.id: 每个 Kafka Broker 的唯一标识符。broker.id 必须在整个 Kafka 集群中唯一。 broker.id0# 配置 Kafka Broker 监听客户端请求的地址和端口。这个配置决定了 Kafka 服务将接受来自生产者、…