多模态大语言模型的对比

简介

文章主要对比了包括 VideoLLaMA 2CogVLM2-videoMiniCPM-V等模型

目前主流的多模态视觉问答大模型,大部分采用视觉编码器大语言模型图像到文本特征的投影模块

目录

  • 简介
  • 1. VideoLLaMA 2
    • 1.1 网络结构
    • 1.2 STC connector具体的架构
  • 2. MiniCPM-V 2.6
    • 2.1 模型的主要架构
    • 2.2 Model部分
    • 2.3 训练过程

1. VideoLLaMA 2

1.1 网络结构

在这里插入图片描述
该部分最主要的为一个STCconnector

主要过程:

  1. 输入的连续图像帧进入视觉编码器中进行视觉编码
  2. 后进入STC connector 该部分由空间卷积(ResNet) -> 时间空间的下采样(3D卷积) -> 空间卷积(ResNet)->进行flatten操作 -> 后进入几层全连接层(Priojection W)
  3. 组后进入Pre-trained Large Lanuage Model(可自主选择不同的大语言模型进行拼接)

1.2 STC connector具体的架构

其中:STC connector的伪代码如下图所示:
在这里插入图片描述

2. MiniCPM-V 2.6

2.1 模型的主要架构

在这里插入图片描述

2.2 Model部分

(1)引入了一种自适应视觉编码方法,来源于 LLAVA-UHD 方法。
(2)通过分割图像、调整分辨率及压缩视觉 token 来达到高效编码的目的。
但是在实际使用的过程中,虽然模型的准确率在同量级的视觉问答大模型中,但是在推理的速度上相比还是存在较大的差距


  1. Image Partition(图像分割)
  • 输入分辨率与预训练分辨率

    • 输入图像分辨率为 ( W I , H I ) (W_I, H_I) (WI,HI),模型的预训练分辨率为 ( W v , H v ) (W_v, H_v) (Wv,Hv)
    • 通过以下公式计算理想的切片数量:
      N = W I × H I W v × H v N = \frac{W_I \times H_I}{W_v \times H_v} N=Wv×HvWI×HI
      这里 N N N 是切片数量。
  • 选择分割方案

    • 将图像切分为 m m m行和 n n n 列的矩形网格,满足 m × n = N m \times n = N m×n=N
    • 用以下目标函数 S ( m , n ) S(m, n) S(m,n) 评估每种分割方案:
      S ( m , n ) = − ( log ⁡ W I / m W v + log ⁡ H I / n H v ) S(m, n) = - \left( \log \frac{W_I / m}{W_v} + \log \frac{H_I / n}{H_v} \right) S(m,n)=(logWvWI/m+logHvHI/n)
      • 该目标函数衡量切片的宽高比与预训练分辨率的偏差,越小越好。
  • 最优分割方案选择

    • 选择目标函数值 S ( m , n ) S(m, n) S(m,n)最大的方案:
      ( m ∗ , n ∗ ) = argmax ( m , n ) ∈ C N S ( m , n ) (m^*, n^*) = \text{argmax}_{(m, n) \in C_N} S(m, n) (m,n)=argmax(m,n)CNS(m,n)
    • C N C_N CN是所有可能的 m , n m, n m,n组合集合。
  • 实际约束

    • 为减少复杂度,限制切片数量 N ≤ 10 N \leq 10 N10
    • N N N 是质数时,允许引入更多的分割选项,如 ( N − 1 ) (N-1) (N1) ( 1 , N + 1 ) (1, N+1) (1,N+1)
    • 目标是在高分辨率(如 1344 × 1344 1344 \times 1344 1344×1344)下兼顾效率和细节。

  1. Slice Encoding(切片编码)
    在图像被分割后,每个切片需要适配模型的输入分辨率。
  • 调整切片大小

    • 每个切片被调整为与 ViT 预训练分辨率 ( W v , H v ) (W_v, H_v) (Wv,Hv)相匹配。
    • 调整大小时保留切片的宽高比,从而尽量减少失真。
  • 位置编码调整

    • ViT 的预训练位置编码是 1D 的,需要对 2D 图像重新插值:
    • 原始位置编码 P 1 ∈ R q × q P_1 \in \mathbb{R}^{q \times q} P1Rq×q被插值为 2D 形式 P 2 ∈ R q 2 × q 2 P_2 \in \mathbb{R}^{q^2 \times q^2} P2Rq2×q2,以适配切片大小。
    • 保留全局信息:
    • 额外加入整幅图像的缩略图作为全局信息的补充。

  1. Token Compression(令牌压缩)
    在编码切片后,每个切片会生成大量的视觉 token,这部分讨论了如何压缩这些 token。
  • 问题
    • 高分辨率图像会生成过多的视觉 token。
    • 例如,10 个切片每个生成 1024 个 token,总计 10,240 个 token,这会导致计算负担。
  • 压缩方法
    • 使用一个跨层注意力(cross-attention)模块对 token 进行压缩。
    • 每个切片的 token 从 1024 压缩到 64,总计 640 个 token。
    • 在 MiniCPM-Llama-v2 的框架下,这种压缩方法在性能与效率之间取得了平衡。

  1. Spatial Schema(空间模式)
    为帮助模型理解切片之间的空间关系,引入了空间标记。
    • 位置标记:每个切片前后加上特殊 token: <slice> 标记切片的开始,<slice_end> 标记切片的结束。行与行之间用特殊 token "n" 分隔。
    • 全局信息 将图像整体位置编码加入输入中,帮助模型理解图像切片的全局位置关系。

2.3 训练过程

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

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

相关文章

Android渗透环境配置教程

工具 模拟器 ADB brew install android-platform-tools set import cert # cer 证书转为 pem 证书 openssl x509 -inform DER -in cacert.der -out cacert.pem# 获取证书的 hash 值 hash$(openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -n 1)# 将 pem…

Microi吾码|.NET、VUE快速搭建项目,低代码便捷开发教程

Microi吾码&#xff5c;VUE快速搭建项目&#xff0c;低代码便捷开发教程 一、摘要二、Microi吾码介绍2.1 功能介绍2.2 团队介绍2.3 上线项目案例 三、VUE中使用Microi吾码3.1 前期了解3.2 创建第一个低代码应用3.3 接口API使用说明3.4 引擎界面可视化配置&#xff0c;生成API3.…

常见Linux命令(详解)

文章目录 常见Linux命令文件目录类命令pwd 打印当前目录的绝对路径ls 列出目录内容cd 切换路径mkdir 建立目录rmdir 删除目录touch 创建空文件cp 复制文件或目录rm 移除文件或者目录mv 移动文件与目录或重命名cat 查看文件内容more 文件分屏查看器less 分屏显示文件内容head 显…

AI - 如何构建一个大模型中的Tool

AI - 如何构建一个大模型中的Tool 大家好&#xff01;今天我们聊聊一个有趣的技术问题&#xff1a;什么是工具&#xff08;Tool&#xff09;&#xff0c;如何使用聊天模型调用工具&#xff0c;以及如何将工具的输出传递给聊天模型。我们还是基于LangChain来进行讨论&#xff0…

【测试工具JMeter篇】JMeter性能测试入门级教程(四):JMeter中BeanShell内置方法使用

一、什么是BeanShell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似);BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简…

MyBatis异常体系中ErrorContext和ExceptionFactory原理分析

&#x1f3ae; 作者主页&#xff1a;点击 &#x1f381; 完整专栏和代码&#xff1a;点击 &#x1f3e1; 博客主页&#xff1a;点击 文章目录 exceptions包分包设计ExceptionFactory类介绍为什么使用工厂不是直接new呢&#xff1f;【统一的异常处理机制】【异常的封装与转化】【…

白鹿 Hands-on:消除冷启动——基于 Amazon Lambda SnapStart 轻松打造 Serverless Web 应用(二)

文章目录 前言一、前文回顾二、在 Lambda 上运行2.1、查看 Amazon SAM template2.2、编译和部署到 Amazon Lambda2.3、功能测试与验证 三、对比 Snapstart 效果四、资源清理五、实验总结总结 前言 在这个环节中&#xff0c;我们将延续《白鹿 Hands-on&#xff1a;消除冷启动——…

Spring Shell如何与SpringBoot集成并快速创建命令行界面 (CLI) 应用程序

Spring Shell 介绍 Spring Shell 是一个强大的工具&#xff0c;可用于构建命令行应用程序&#xff0c;提供了简单的方式来创建和管理交互式 CLI。它适合那些希望通过命令行与 Java 应用程序进行交互的开发者&#xff0c;尤其是在需要自动化、交互式输入或与 Spring 生态系统集…

齐护机器人ModbusRTU RS485转TTL通信模块与ESP32 Arduino通信可Mixly的图形化编程Scratch图形化编程

齐护机器人ModbusRTU RS485-TTL通信模块 一、概念理解 Modbus协议是一种由Modicon公司&#xff08;现为施耐德电气Schneider Electric&#xff09;于1979年发表的网络通信协议&#xff0c;旨在实现可编辑逻辑控制器&#xff08;PLC&#xff09;之间的通信。 1.1 什么是Mod…

K8S版本和istio版本的对照关系

版本对照关系 下载地址1 下载地址2

vue-cli创建项目报错:command failed: npm install --loglevel error

网上解决方法有很多&#xff0c;对于我都没用。 最后用这个方法起了作用&#xff1a; 尝试将npm源设置为HTTP&#xff0c;慎用&#xff0c;可能不安全 npm config set registry http://registry.npm.taobao.org/ 改为http就顺利创建项目了。

数据结构自测题6

第7章 图 自测卷解答 一、单选题&#xff08;每题1分&#xff0c;共16分&#xff09; &#xff08; C &#xff09;1. 在一个图中&#xff0c;所有顶点的度数之和等于图的边数的 倍。 A&#xff0e;1/2 B. 1 C. 2 D. 4 &#xff08; B &#xff09;2. 在一个有向图中&#xff0…

洛谷P1305 新二叉树(c嘎嘎)

题目链接&#xff1a;P1305 新二叉树 - 洛谷 | 计算机科学教育新生态 题目难度&#xff1a;普及 刷题心得&#xff1a;做了几道这种类型的题都不用建树就可以解决&#xff0c;基本上还是利用好树的结构&#xff0c;例如这道题求前序序列&#xff08;根左右&#xff09;是可以用…

(18)时间序列预测之FiLM

没错&#xff0c;就是看电影 文章目录 前言1. 问题描述2. 创新之处3. 贡献 一、时间序列在legende - fourier域的表示1. 勒让德投影2. 傅里叶变换 二、 模型结构1. LPU: Legendre Projection Unit2. FEL: Frequency Enhanced Layer3. 多尺度专家机制的混合 二、实验结果长时预测…

Linux | Linux的开机启动流程

对于linux系统的初学者来说&#xff0c;理解并掌握linux系统启动流程能够使你够深入的理解linux系统&#xff0c;还可以通过系统的启动过程来分析问题解决问题。 Linux开机启动的流程如下图 power on 开机 post自检&#xff08;检查一部分大的硬件&#xff09; BIOS&#xf…

单端和差分信号的接线法

内容来源&#xff1a;【单端信号 差分信号与数据采集卡的【RSE】【 NRES】【 DIFF】 模式的连接】 此篇文章仅作笔记分享。 单端输入 单端信号指的是输入信号由一个参考端和一个信号端构成&#xff0c;参考端一般是地端&#xff0c;信号就是通过计算信号端口和地端的差值所得…

使用 Apache Commons IO 实现文件读写

在 Java 编程中&#xff0c;文件读写是常见的操作。虽然 Java 标准库提供了基本的文件 I/O 功能&#xff0c;但使用 Apache Commons IO 库可以进一步简化这些操作&#xff0c;提高开发效率。Apache Commons IO 是一个强大的工具库&#xff0c;提供了许多实用的类和方法&#xf…

高级架构二 Git基础到高级

一 Git仓库的基本概念和流程 什么是版本库&#xff1f;版本库又名仓库&#xff0c;英文名repository,你可以简单的理解一个目录&#xff0c;这个目录里面的所有文件都可以被Git管理起来&#xff0c;每个文件的修改&#xff0c;删除&#xff0c;Git都能跟踪&#xff0c;以便任何…

智已汽车x-signature 登录算法 签到

智已汽车x-signature 登录算法 签到 python代码成品

Web3的技术栈详解:解读区块链、智能合约与分布式存储

随着数字时代的不断发展&#xff0c;Web3作为下一代互联网的核心理念逐渐走进了大众视野。它承载着去中心化、用户主权以及更高效、更安全的网络环境的期望。Web3不再是由少数中心化机构主导的网络&#xff0c;而是通过一系列核心技术的支撑&#xff0c;给每个用户赋予了更多的…