【多模态论文阅读系列二】— MiniCPM-V

news2024/11/24 14:42:18

校招/实习简历修改、模拟面试欢迎私信

《MiniCPM-V: A GPT-4V Level MLLM on Your Phone》

在这里插入图片描述
在本节中,我们介绍了MiniCPM-V的模型架构,概述了其总体结构和自适应高分辨率视觉编码方法。MiniCPM-V系列的设计理念是在性能和效率之间实现良好的平衡,这是一个更实用的目标,适用于更广泛的现实世界应用,在架构设计、训练、推理和部署中实现。

3.1 architecture

该模型包括三个关键模块:视觉编码器、压缩层和LLM。输入图像首先由视觉编码器利用自适应视觉编码方法进行编码。具体来说,我们采用SigLIP SoViT-400m/14[115]作为视觉编码器。然后,压缩层对视觉标记进行压缩,压缩层采用具有一层交叉注意力的感知重采样器结构。最后,压缩的视觉标记与文本输入一起被馈送到LLM中,用于条件文本生成。

3.2 Adaptive Visual Encoding

最近,人们对视觉编码在MLLM性能中的基本作用越来越达成共识[76,68],特别是对于OCR等细粒度功能。为了有效,一个好的视觉编码策略应该既尊重输入的原始纵横比,又保留足够的视觉细节(高分辨率)。为了提高效率,图像编码的视觉标记数量应该适中,以便在终端设备上负担得起。为此,我们利用了LLaVA UHD[107]提出的自适应视觉编码方法。

在这里插入图片描述

在实践中,我们设置N<10,在编码过程中最多支持180万像素(例如1344×1344分辨率)。尽管我们可以包含更多的图像切片以获得更高的分辨率,但我们故意强加了这个分辨率上限,因为它已经很好地覆盖了大多数现实世界的应用场景,考虑到性能和开销,进一步提高编码分辨率的好处微乎其微。

Slice Encoding 虽然图像分割可以确保切片和ViT预训练设置之间的良好匹配,但每个切片的大小并不完全等于(Wv,Hv)。为了将切片馈送到ViT中,我们首先通过按比例调整每个切片的大小来调整它,使得到的区域大小与ViT预训练区域大小Wv×Hv相匹配。这种调整有助于防止编码补丁的数量与ViT的预训练设置之间出现显著差距注意,这里不一定是与VIT输入等大小参考这里。

随后,我们插值ViT的位置嵌入以适应切片的比率。这涉及将ViT的1D嵌入P1∈RQ×l重新整形为其2D格式P2∈Rq×q×l,其中位置嵌入的数量q=q×q。然后,我们通过2D插值来插值P2以适应每个切片的大小。我们还将原始图像作为附加切片,以提供有关整个图像的整体信息。

在这里插入图片描述

token compression。视觉编码后,每个切片被编码为1024个令牌,其中10个切片可以共同产生超过10k个令牌。我们采用了一个压缩模块,该模块由一层交叉注意力和适量查询组成,在实践中,通过这一层,每个切片的视觉标记被压缩为64个MiniCPM V1&2查询和96个MiniCPM-Llama3-V 2.5查询。

4.Training

The model training consists of 3 phases: the pre-training phase, the supervised fine-tuning phase, and the RLAIF-V phase.

4.1 Pre-training

在这个阶段,我们利用大规模的图像文本对进行MLLM预训练。该阶段的主要目标是将视觉模块(即视觉编码器和压缩层)与LLM的输入空间对齐,并学习基础的多模态知识。预训练阶段又分为3个阶段。

第一阶段。第一阶段的作用是warm up 压缩层,主要连接视觉编码器和LLM。 (1) 可训练模块。我们随机初始化压缩层,并在第一阶段训练该模块,保持其他参数frozen。视觉编码器的分辨率设置为224×224。

在这里插入图片描述
第二阶段。在压缩层的预热训练之后,第二阶段的作用是扩展预训练的视觉编码器的输入分辨率。(1) 可训练模块。在第二阶段,我们将图像分辨率从224×224扩展到448×448。整个视觉编码器经过训练,其他参数frozen。

第三阶段。在扩展了视觉编码器的主要输入分辨率后,我们最终使用自适应视觉编码策略训练视觉模块,该策略可以进一步适应任何宽高比的高分辨率输入。(1) 可训练模块。在第三阶段训练中,压缩层和视觉编码器都经过训练以适应语言模型嵌入空间。LLM保持冻结状态,以避免因相对低质量的预训练数据而干扰。(2) 数据。与之前只有图像字幕数据的阶段不同,在高分辨率预训练阶段,我们额外引入了OCR数据来增强视觉编码器的OCR能力。

在这里插入图片描述

4.3 RLAIF-V

在这里插入图片描述
MLLM通常容易出现幻觉问题,产生与输入图像不符的反应。这个问题极大地限制了MLLM的广泛应用。为了解决幻觉问题,我们采用了最近的RLAIF-V[112]方法(图4),其中关键是从开源模型中获得可扩展的高质量反馈,用于直接偏好优化(DPO)

Direct Preference Optimization.
在收集到高质量的人工智能反馈后,我们通过DPO方法进行偏好学习。DPO算法需要对偏好对进行训练,其中一个样本yw比另一个样本yl更受欢迎。为了组成偏好数据集,我们从每个响应集Y={y1,y2,··,yn}中随机抽样,并根据它们的相对得分确定(yw,yl)。最后,我们从3K个独特的图像中构建了一个由6K个偏好对组成的偏好数据集,用于偏好学习。

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

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

相关文章

默语是谁?

默语是谁&#xff1f; 大家好&#xff0c;我是 默语&#xff0c;别名默语博主&#xff0c;擅长的技术领域包括Java、运维和人工智能。我的技术背景扎实&#xff0c;涵盖了从后端开发到前端框架的各个方面&#xff0c;特别是在Java 性能优化、多线程编程、算法优化等领域有深厚…

一文了解 Linux 系统的文件权限管理

文章目录 引入Linux文件权限模型查看文件权限权限信息解析修改文件权限符号模式八进制数字模式 引入 在Linux操作系统中&#xff0c;我们想查看我们对文件拥有哪些权限时&#xff0c;可以在终端键入ls -l或ll命令&#xff0c;终端会输出当前路径下的文件信息&#xff0c;如文件…

vue3集成electron

安装说明 vue集成electron时&#xff0c;会用到两个依赖。分别是electron和electron-builder&#xff0c;前者是开发环境下使用&#xff0c;后者是打包部署时使用。安装时&#xff0c;可在线安装也可离线安装。所谓离线安装就是自己下载好用到的包&#xff0c;然后放到指定目录…

Spring Boot知识管理系统:安全与合规性

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

HI3516DV500 相机部分架构初探

Hi3516DV500 是一颗面向视觉行业推出的高清智能 Soc。该芯片最高支持 2 路 sensor 输入&#xff0c;支持最高 5M30fps 的 ISP 图像处理能力&#xff0c;支持 2F WDR、多级降噪、六轴防 抖、多光谱融合等多种传统图像增强和处理算法&#xff0c;支持通过 AI 算法对输入图像进行实…

Mysql(3)—数据库相关概念及工作原理

一、数据库相关概念 ​ 数据库&#xff08;Database, DB&#xff09; &#xff1a; 数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。 数据库管理系统&#xff08;Database Management System, DBMS&#xff09; &#xf…

树莓派应用--AI项目实战篇来啦-15.SSD Mobilenet V3目标检测

1. Mobilenet 介绍 Mobilenet 是一种专为移动和嵌入式视觉应用而设计的卷积神经网络。它们不使用标准的卷积层&#xff0c;而是基于使用深度可分离卷积的简化架构&#xff0c;使用这种架构&#xff0c;我们可以为移动和嵌入式设备&#xff08;例如&#xff1a;树莓派&#xff0…

Navicat 关于SQLserver的连接问题

1、如果出以下问题&#xff0c;就需要安装驱动程序&#xff0c;如下图&#xff1a; 2、在Navicat的根目录下有一个驱动安装文件&#xff0c;安装后就可以连接上了.

Cisco ACI常见问题FAQ科普

这里有个思科的官方链接&#xff0c;不过里面很多是商务说辞&#xff0c;也就是吹牛&#xff0c;仅做为参考。 https://www.cisco.com/c/dam/global/en_sg/solutions/data-center-virtualization/application-centric-infrastructure/insieme_faq.pdf 下面是我自己的理解 0 …

Windows 安装Redis(图文详解)

Windows 安装Redis&#xff08;图文详解&#xff09; Redis是什么数据库&#xff1f; Remote Dictionary Server(Redis) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库&#xff0c;并提供多种语…

CleanMyMac X4.15.9破解版激活码许可证

CleanMyMac X&#xff1a;你的Mac电脑的“私人健身教练” ### 一键瘦身&#xff0c;轻松给Mac电脑“减减肥” &#x1f3cb;️‍♂️ 大家有没有觉得&#xff0c;自己的Mac电脑用久了&#xff0c;就变得越来越“胖”&#xff0c;越来越慢呢&#xff1f;别怕&#xff0c;今天我要…

Qt获取磁盘信息+表格显示

效果展示 主要代码 获取磁盘相关数据 获取磁盘数据 Qt 没有提供相关的接口&#xff0c;需要使用 Windows API。接口解释如下&#xff1a; BOOL GetDiskFreeSpaceExW([in, optional] LPCWSTR lpDirectoryName,[out, optional] PULARGE_INTEGER lpFreeBytesAvailable…

chattts一步步的记录,先跑起来。

0.下载git工具 Git - Downloads (git-scm.com)https://git-scm.com/downloads Download – TortoiseGit – Windows Shell Interface to Githttps://tortoisegit.org/download/ 1.安装 随意&#xff0c;可以安汉化&#xff0c;也可不安。无所谓 2.建个目录&#xff0c;我的上…

Prometheus+Grafana 监控 K8S Ingress-Ningx Controller

文章目录 一、prometheus中添加ingress-nginx的服务发现配置二、ingress-nginx controller的service添加端口暴露监控指标三、grafana添加ingress-nginx controller的监控模版 ingress-nginx默认是没有开启监控指标的&#xff0c;需要我们在ingress-nginx controller的svc里面开…

K8S配置MySQL主从自动水平扩展

前提环境 操作系统Ubuntu 22.04 K8S 1.28.2集群&#xff08;1个master2个node&#xff09; MySQL 5.7.44部署在K8S的主从集群 metrics-server v0.6.4 概念简介 在K8s中扩缩容分为两种 ●Node层面&#xff1a;对K8s物理节点扩容和缩容&#xff0c;根据业务规模实现物理节点自动扩…

数字媒体技术基础:色度子采样(4:4:4、4:2:2 、4:2:0)

在数字视频处理中&#xff0c;色度子采样 Chroma Subsampling可以用于压缩视频文件的大小&#xff0c;同时在大多数情况下保持较高的视觉质量&#xff0c;它的原理基于人类视觉系统对亮度 Luminance比对色度 Chrominance更加敏感这一特点。 一、 采样格式的表示方法 色度子采样…

一个技巧实现在SharePoint中使用Copilot

前几天写了在onedrive中使用copilot对单个文件进行提问汇总分析与对多个文件进行比较汇总提问等&#xff1a; Copilot重磅更新&#xff01;OneDrive全新功能炸裂 很多小伙伴表示特别受用。 于是他们在纷纷尝试了一段时间后&#xff0c;开始把目光转向SharePoint和teams文件&a…

tkinter库的应用小示例:文本编辑器

tkinter库的应用小示例&#xff1a;文本编辑器 要 求&#xff1a; 创建一个文本编辑器&#xff0c;功能包括&#xff0c;创建、打开、编辑、保存文件。一个Button小组件&#xff0c;命名为btn_open,用于打开要编辑的文件&#xff0c;一个Button小组件&#xff0c;命名为btn_s…

Dockerfile 详解

Dockerfile是自定义Docker镜像的一套规则&#xff0c;由多条指令构成&#xff0c;每条指令都会对应于Docker镜像中的每一层&#xff0c;因为Docker是分层存储的。以下是Dockerfile中各个参数的详解及演示解析&#xff1a; 1. FROM 功能&#xff1a;指定待扩展的父级镜像&#…

JavaScript 访问者模式:打造高扩展性的对象结构

一. 前言 在面向对象编程中&#xff0c;访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许我们向现有的类结构添加新的操作&#xff0c;而无需修改这些类。这对于需要对类层次结构中的元素进行复杂算法处理的场景非常有用。 本文将详细…