当前位置: 首页 > news >正文

大白话讲解:多模态大模型综述,通俗易懂!

多模态大型语言模型(Multimodal Large Language Models, MLLM)的出现是建立在大型语言模型(Large Language Models, LLM)和大型视觉模型(Large Vision Models, LVM)领域不断突破的基础上的。

这里给大家总结了多模态大模型的结构,训练,评估方法以及幻觉问题的解决办法,通俗易懂!!
在这里插入图片描述
多模态大型语言模型(Multimodal Large Language Models,MLLM)的出现是建立在大型语言模型(Large Language Models, LLM)和大型视觉模型(Large Vision Models,LVM)领域不断突破的基础上的。随着LLM在语言理解和推理能力上的逐步增强,指令微调、上下文学习和思维链工具的应用愈加广泛。然而,尽管LLM在处理语言任务时表现出色,但在感知和理解图像等视觉信息方面仍然存在明显的短板。与此同时,LVM在视觉任务(如图像分割和目标检测)上取得了显著进展,通过语言指令已能够引导模型执行这些任务,但推理能力仍有待提升。

MMLM的基本结构

典型的多模态大型语言模型(MLLM)通常由三个主要组件构成:预训练的多态编码器、预训练的LLM(大型语言模型)、以及连接这两者的多模态接口。多模态编码器负责处理不同模态的输入信号,比如视觉信号(图像编码器)或语音信号(音频编码器);LLM则负责对这些经过编码处理的信号进行理解和推理。多模态接口则起到桥梁作用,使得不同模态的信息能够在模型中有效对齐。此外,一些MLLM还配备了生成器,能够输出文本之外的其他模态内容,如图像或音频。

在这里插入图片描述

预训练的多模态编码器

在这里插入图片描述
1.1 模态编码器的功能与选择
模态编码器在MLLM中承担着将原始的多模态信息(如图像或音频)转换为紧凑表示的关键角色。与从零开始训练编码器相比,常见的做法是采用已经预训练的编码器,尤其是那些在大规模图像-文本对上预训练过的模型。例如,CLIP的视觉编码器部分就是一个经典的选择,其能够将图像信息有效转化为向量表示,并与文本信息对齐。不同的模型在编码器的选择和优化上各有侧重。

EVA-CLIP编码器
MiniGPT-4采用了EVA-CLIP编码器,这种编码器在性能上优于标准的CLIP,同时所需的训练成本更任。这主要归功于以下三个改进:首先,EVA-CLIP通过使用EVA模型的预训练权重来

初始化图像编码器,从而提升了起始性能;其次,使用了LAMB优化器,这种优化器特别适用于大批量训练,能够通过自适应元素级更新和层级学习率来提高训练效率并加速模型的收敛;最后,采用了FLIP技术,在训练过程中随机遮蔽50%的图像标记,从而大幅度减少了时间复杂度,使得批量大小可以增加一倍而无需额外的内存开销。

此外,EVA模型还通过一种名为MaskImage Modeling的任务在更大数据集上进行了训练,它将遮蔽部分的图像与CLIP模型对应位置的输出进行比对,从而在保持语义学习的同时,也能让模型学习到几何结构。EVA的这种训练方式证明了其能够有效扩展模型参数至十亿量级,并在广泛的下游任务中展现出色的性能。

基于卷积的ConvNext-L编码器
0sprey选择了基于卷积的ConvNext-L编码器,这种编码器能够利用更高分辨率和多层次特征,特别是在开放词汇分割任务中展现了较高的效率。在原文中提到,0sprey是基于像素级别的任务,如果直接使用ViT模型作为编码器,会受到计算负担的限制,图片大小通常只支持224或336。而基于CNN的编码器能够在支持高分辨率的同时保持较高的训练效率和推理速度,而不会牺牲性能。

无编码器的架构
Fuyu-8b就是采用了纯解码器转换器,图像块被线性投影到转换器的第一层,绕过了嵌入查找的过程,将普通Transformer解码器视为图像转换器。这样的设计使得Fuyu-8b对灵活输入的分辨率具有强大的适应性。

1.2 模态编码器的优化策略
在选择多模态编码器时,研究人员通常会考虑分辨率、参数规模和预训练语料库等因素。研究表明,使用更高分辨率的图像输入能够显著提升模型的表现。为了实现这一点,不同的模型采用了多种策略来优化编码器。

直接缩放输入分辨率
Qwen-VL和LLaVA-1.5都通过将图像分割成更小的图像块来提高模型的输入分辨率。具体而言,LLaVA-1.5使用了CLIPViT-L-336px编码器,并发现高分辨率能够提升模型性能。为了进一步优化,该模型将图像分割成视觉编码器原本训练时分辨率的小图像块,并分别对其进行编码,然后将这些特征图组合成一个大特征图,最终输入到LLM中。这种方式不仅保留了高分辨率的细节,还通过降采样图像的特征与合并后的特征图相结合,提供了全局上下文,从而提高了模型对任意分辨率输入的适应性。

Qwen-VL和LLaVA-1.5都通过将图像分割成更小的图像块来提高模型的输入分辨率。具体而言,LLaVA-1.5使用了CLIPViT-L-336px编码器,并发现高分辨率能够提升模型性能。为了进一步优化,该模型将图像分割成视觉编码器原本训练时分辨率的小图像块,并分别对其进行编码,然后将这些特征图组合成一个大特征图,最终输入到LLM中。这种方式不仅保留了高分辨率的细节,还通过降采样图像的特征与合并后的特征图相结合,提供了全局上下文,从而提高了模型对任意分辨率输入的适应性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这份《多模志大模型综述》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

PDF书籍: 完整版本链接获取

👉[CSDN大礼包🎁:《多模志大模型综述》免费分享(安全链接,放心点击)]👈

相关文章:

大白话讲解:多模态大模型综述,通俗易懂!

多模态大型语言模型(Multimodal Large Language Models, MLLM)的出现是建立在大型语言模型(Large Language Models, LLM)和大型视觉模型(Large Vision Models, LVM)领域不…...

大数据-184 Elasticsearch - 原理剖析 - DocValues 机制原理 压缩与禁用

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...

Java设计模式:工厂模式详解

引言 1. 工厂模式的定义 2. 工厂模式的类型 2.1 简单工厂模式 2.1.1 结构 2.1.2 示例代码 2.2 工厂方法模式 2.2.1 结构 2.2.2 示例代码 2.3 抽象工厂模式 2.3.1 结构 2.3.2 示例代码 3. 工厂模式的优点 4. 工厂模式的缺点 5. 实际应用场景 6. 总结 引言 工厂模…...

《Python游戏编程入门》注-第3章1

《Python游戏编程入门》的第三章是“I/O、数据和字体:Trivia游戏”,介绍了print()函数、input()函数、异常处理以及文件的输入输出,最后根据以上内容完成了Trivia游戏。 本章的“3.1 了解Trivia游戏”介绍了Trivia游戏的界面和玩法。“3.2 P…...

Java爬虫:获取数据的入门详解

在数字化时代,数据已成为最宝贵的资产之一。无论是市场研究、客户洞察还是产品开发,获取大量数据并从中提取有价值的信息变得至关重要。Java,作为一种成熟且功能强大的编程语言,为编写爬虫提供了强大的支持。Java爬虫可以帮助我们…...

GAMES104:17 游戏引擎的玩法系统:高级AI-学习笔记

文章目录 课前QA一,层次任务网络(Hierarchical Tasks Network,HTN)1.1 HTN Framework1.2 HTN Task Types1.2.1 Primitive Task基本任务1.2.2 Compound Task符合任务 1.3 Planning1.4 Replan1.5 总结 二,目标导向行为规…...

【Unity】Unity中获取网络时间进行每日和每月刷新

直接上代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public class DateChecker : MonoBehaviour {private DateTime lastCheckedDate; //上次刷新日数据的日期private DateTime lastMonthUtc; //上次刷新月数据的日期T…...

微信小程序上传组件封装uploadHelper2.0使用整理

一、uploadHelper2.0使用步骤说明 uploadHelper.js ---上传代码封装库 cos-wx-sdk-v5.min.js---腾讯云,对象存储封装库 第一步,下载组件代码,放置到自己的小程序项目中 第二步、 创建上传对象,执行选择图片/视频 var _this th…...

力扣每日打卡挑战 3184. 构成整天的下标对数目 I

给你一个整数数组 hours&#xff0c;表示以 小时 为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足 i < j 且 hours[i] hours[j] 构成 整天 的下标对 i, j 的数目。 整天 定义为时间持续时间是 24 小时的 整数倍 。 例如&#xff0c;1 天是 24 小时&#xff0c…...

The First:Starknet如何让以太坊更快更安全?

随着区块链技术需求的持续增长&#xff0c;当前技术在可扩展性和隐私保护方面的局限性愈发凸显&#xff0c;以太坊网络便是其中的典型代表。为有效应对这些挑战&#xff0c;第二层扩展解决方案的重要性日益凸显。这些方案旨在将部分交易处理转移至以太坊主链之外&#xff0c;以…...

【计算机网络 - 基础问题】每日 3 题(五十三)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…...

便携式移动消防炮:灵活灭火新选择

在当今快速发展的社会中&#xff0c;火灾安全问题一直是公众安全的重要组成部分。无论是家庭、办公场所还是大型工业区&#xff0c;火灾的发生都可能带来不可预测的巨大损失&#xff0c;传统消防固定系统往往无法迅速适应多变的火场环境&#xff0c;特别是对于那些发生在高层建…...

18.VScode写Java项目的教程

VScode写Java项目的教程 1.首先必选先安装Java解释器2.安装插件Java Extension Pack3.创建项目创建项目结构选择项目类型 4.测试结果源码内容 今天用一台老式笔记本写代码&#xff0c;IDEA跑不动就准备用VScode突然间就蒙了&#xff0c;怎么创建项目啊&#xff1f;于是就有了这…...

本地生活便民信息服务小程序源码系统 PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程

系统概述 地方门户分类信息网站源码系统是一个基于PHP和MySQL开发的强大平台&#xff0c;旨在帮助用户轻松搭建地方性的分类信息网站。该系统集成了众多实用功能&#xff0c;支持用户自由发帖、浏览和搜索各类信息&#xff0c;如二手交易、求职招聘、房屋租售、生活服务、商家…...

Java项目实战II基于微信小程序的原创音乐平台{UNIAPP+SSM+MySQL+Vue}(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在数字音乐…...

【个人同步与备份】电脑(Windows)与手机/平板(Android)之间文件同步

文章目录 1. syncthing软件下载2. syncthing的使用2.1. 添加设备2.1.1. syncthing具备设备发现功能&#xff0c;因此安装好软件&#xff0c;只需确认设备信息是否对应即可2.1.2. 如果没有发现到&#xff0c;可以通过设备ID连接2.1.3. 设置GUI身份验证用户&#xff0c;让无关设备…...

代码随想录算法训练营第46期Day37,38,39,41

这几天晚上看比赛&#xff0c;就把刷题耽误了。还好是开新章节&#xff0c;前面的题都比较简单。 然后周天做完了又忘记发了 动态规划 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数 Day37前两道题太简单…...

点跟踪论文—RAFT: Recurrent All-Pairs Field Transforms for Optical Flow-递归的全对场光流变换

点目标跟踪论文—RAFT: Recurrent All-Pairs Field Transforms for Optical Flow-递归的全对场光流变换 读论文RAFT密集光流跟踪的笔记 RAFT是一种新的光流深度网络结构&#xff0c;由于需要基于点去做目标的跟踪&#xff0c;因此也是阅读了像素级别跟踪的一篇ECCV 2020的经典…...

jmeter学习(6)逻辑控制器-循环

循环执行 1、循环读取csv文件的值 2、foreach 读取变量&#xff0c;变量数字后缀有序递增&#xff0c;通过counter实现 ${__V(typeId${typeIdNum})} beansell断言 String typeIdNum vars.get("typeIdNum"); String response prev.getResponseDataAsString(); …...

unity学习笔记-安装与部署

unity学习笔记-安装与部署 unity & visual studio下载unityvisual studio 创建工程项目内的布局介绍初始化项目各目录介绍1. 场景视图&#xff08;Scene&#xff09;2. 游戏视图&#xff08;Game&#xff09;3. 层次结构视图&#xff08;Hierarchy&#xff09;4. 检查器视图…...

Django+MySQL接口开发完全指南

前言 本文将详细介绍如何使用Django结合MySQL数据库开发RESTful API接口。我们将从环境搭建开始&#xff0c;一步步实现一个完整的接口项目。 环境准备 首先需要安装以下组件&#xff1a; Python 3.8Django 4.2MySQL 8.0mysqlclientdjangorestframework 安装命令 # 创建虚…...

CentOS7上下载安装 Docker Compose

Docker Compose简要介绍&#xff08;想直接看安装步骤的请跳转到[必要的安装步骤]&#xff09; Docker Compose 是一个用于定义和管理多容器 Docker 应用的工具&#xff0c;它可以通过一个简单的 YAML 文件&#xff08;docker-compose.yml&#xff09;来配置应用程序的服务、网…...

虚拟机的 NAT 模式 或 Bridged 模式能够被外界IPping通

如果虚拟机使用的是 NAT 模式 或 Bridged 模式&#xff0c;通常可以让外部网络&#xff08;例如互联网&#xff09;访问虚拟机。NAT 和 Bridged 模式的不同之处在于它们如何将虚拟机连接到宿主机和外部网络。以下是这两种模式的详细说明&#xff1a; 1. NAT 模式 在 NAT 模式…...

C# 使用Dll的几种方法举例

使用 DLL&#xff08;动态链接库&#xff09;是 C# 开发中常见的任务之一。DLL 文件包含可以在运行时加载的代码和数据&#xff0c;允许程序共享功能和资源&#xff0c;降低程序的内存占用并促进代码的复用。本篇文章将深入探讨 C# 中使用 DLL 的多种方法&#xff0c;并提供相关…...

什么是不同类型的微服务测试?

大家好&#xff0c;我是锋哥。今天分享关于【什么是不同类型的微服务测试&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 什么是不同类型的微服务测试&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 微服务架构中的测试可以分为多种类…...

Docker 拉取镜像时配置可用镜像源(包含国内可用镜像源)

在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件)&#xff1a; { "registry-mirrors":["https://registry.docker-cn.com"] } 重新加载 json 配置文件&#xff1a; sudo systemctl daemon-reload重启 docker 服务&#xff1a; sud…...

International Symposium on Artificial Intelligence Innovations

计算机科学&#xff08;Computer Science&#xff09;&#xff1a; 算法、自动化软件工程、生物信息学和科学计算、计算机辅助设计、计算机动画、计算机体系结构、计算机建模、计算机网络、计算机安全、计算机图形学与图像处理、数据库与数据挖掘、数据压缩、数据加密、数字信号…...

Golang笔记_day10

Go面试题&#xff08;三&#xff09; 1、什么是channel&#xff0c;为什么它可以做到线程安全 在Go语言中&#xff0c;channel是一种类型&#xff0c;它可以用来在协程之间传递数据通过共享内存来通信&#xff1a; 通过共享内存来通信是指多个线程或进程直接访问相同的内存区域…...

mlir learn

https://github.com/j2kun/mlir-tutorial 学习这个项目 https://www.jeremykun.com/2023/08/10/mlir-getting-started/ get start 用我的mac编译一下试试看 然后遇到架构不对的问题 因为他的提交默认是x86 https://github.com/j2kun/mlir-tutorial/pull/1/commits/5a267e269d57…...

Windows安装RabbitMQ 4.0.2(图文教程)

本章教程,主要记录在Windows 10上RabbitMQ 4.0.2的安装过程。 一、下载安装包 1、官方下载(速度不稳定) Erlang:https://github.com/erlang/otp/releases/download/OTP-26.0/otp_win64_26.0.exe RabbitMQ 4.0.2:https://github.com/rabbitmq/rabbitmq-server/releases/do…...