【图文多模态】

news2024/12/28 2:38:14

GPT4o

  • 架构的核心是<font color="red">**Transformer**</font>,它通过自注意力机制(Self-Attention)来处理输入的序列数据
  • 端到端的方式训练:即从输入到输出的整个过程都在同一个网络中进行
  • 多模态大模型,它能够同时处理文本、音频和图像/视频。能够接受这三种模态的任意组合作为输入,并生成相应模态的输出。
  • 所有输入和输出都由同一个神经网络处理
  • GPT-4o的语音识别能力采用了流式处理的方式,这种方式对实时性要求极高。GPT-4o可以在232毫秒内对音频输入做出反应,平均为320毫秒,这与人类在对话中的响应时间相似。
  • GPT-4o采用了新的Tokenizer,这是一种重要的文本编码技术。新Tokenizer的变化对处理速度和压缩比有着显著的影响。例如,对于非英语文本,新的Tokenizer能提供高达1.4倍的压缩比。
  • GPT-4o能够捕捉声音的细微差别,并以不同的情感风格(包括唱歌)产生反应,这使得与用户的交互更加自然和富有情感。

上一轮席卷全球的人工智能热潮正是在图像领域(CV,计算机视觉Computer Vision)。

彼时,由于CNN(卷积神经网络)技术取得突破,带动了人脸识别、图像识别、视频检测等一大批图像领域的创新突破,准确率迅速超越人类,达到商用标准当时一个AI程序能够在人脸识别的精准度上达到99.99%,却在人类语言理解上不如一个幼儿园的小朋友。

本轮人工智能热潮则发源于文本领域(NLP,自然语言理解Natural Language Processing)

2018年,预训练Transformer模型横空出世,在文本领域掀起革命,一夜之间,以GPT为代表的大语言模型(LLM, Large Language Model)席卷全球,大模型火爆全网。

Transformer结构试图用于图像领域,设计出ViT(Vision Transformer)结构时,竟在图像领域取得了极其惊人的良好效果。

ViT将图像划分为固定像素大小的正方形的单元作为token,通过分单元处理与线性映射,使得每个像素方块成为了基于单词设计的Transformer结构可接受的输入,一举打破了CV和NLP之间的壁垒。

2 图文多模态技术三大研究方向

从流程来看,图文多模态大模型可以大致划分为输入、输出两个步骤;从技术上则可以分为:

  • 专注输入的多模态理解模型Understanding Models
  • 专注输出的多模态生成模型Generation Models
  • 统一理解与生成的通用模型General-Purpose Models

理解模型领域,Transformer理念设计的ViT模型如CLIP、LLaVA、MiniGPT-4

生成模型领域:Diffusion Model(扩散模型)

统一理解与生成侧的通用基础模型:BLIP系列

原生多模特模型多个单模型拼接

单个模型拼接具备多模态能力,比如Qwen-VL[1],就是 Qwen-7B + Openclip ViT-bigG(2.54B)的结构,前者作为LLM基础模型,后者作为视觉模型

原生多模态模型可以在整个模型中共享特征和学习策略

原生多模态能力实现的关键就在于输入输出都统一为交叉编排的多模态 token 序列,那它到底什么样呢?有了 Flamingo + LVM 的铺垫,它可能是下面这样:

Vary-toy

GitHub - Ucas-HaoranWei/Vary-toy: Official code implementation of Vary-toy (Small Language Model Meets with Reinforced Vision Vocabulary)

消费级显卡可训练、8G显存的老显卡可运行,依旧支持中英文!我们希望Vary-toy能当好一个结构简单、能力全面、性能可比的baseline的角色,因此这个“小”VLM几乎涵盖了目前LVLM主流研究中的所有能力:Document OCR、Visual Grounding、Image Caption、VQA…… 技术报告在这里:Small Language Model Meets with Reinforced Vision Vocabulary

我们基于它设计了两个优秀的模型,一个是Vary-document(专门用于文档/pdf处理),另一个是用于图表分析的Vary-plot。你可以在这里看到他们精彩的表演Vary-family。

DeepSeek-VL:这是一个开源的大型多模态模型,

  1. gemini 是闭源的,pro 版本需要微调,但是 gemini 暂时未开放微调功能,未来会开放。ultra 版本需要 visa 银行卡,故没有测试。但根据其开放的评估指标评分达到可用的水平
  2. qwen-vl 是开源的,Pro 与 Max 版本不开源,Max 版本同样无法达到项目所需的精度要求,可以微调qwen-vl,下一步尝试使用 qwen-vl 微调,测试效果
  3. chatglm 有 Vision 版,但 glm4 已经闭源,不知道是否会开放微调。
  4. gpt4-vision-preview 版本图片理解能力较强,测试了少量样本,基本满足业务需求
  5. yi-vl-34b 开源且能进行 swift 微调

2023 年发布的 GPT-4 (Vision) 和 Gemini 展现出了出色的多模态理解和生成能力;由此激发了人们对 MM-LLM 的研究热情。

一开始,多模态内容理解和文本生成,此类模型包括 (Open) Flamingo、BLIP-2、Kosmos-1、LLaVA/LLaVA-1.5、MiniGPT-4、MultiModal-GPT、VideoChat、Video-LLaMA、IDEFICS、Fuyu-8B、Qwen-Audio。

同时支持多模态输入和输出的 MM-LLM,还有一些研究工作探索了特定模态的生成,比如 Kosmos-2 和 MiniGPT-5 研究的是图像生成,SpeechGPT 则聚焦于语音生成。

将 LLM 与外部工具合并,以达到近似的任意到任意的多模态理解和生成;这类研究包括 Visual-ChatGPT、ViperGPT、MM-REACT、HuggingGPT、AudioGPT。

反过来,为了减少级联系统中传播的错误,端到端式的任意模态 MM-LLM;这类研究包括 NExT-GPT 和 CoDi-2

专注于多模态理解的 MM-LLM 仅包含前三个组件。

在训练阶段,模态编码器、LLM 骨干和模态生成器通常保持在冻结状态。其优化的要点是输入和输出投影器。由于投影器是轻量级的组件,因此相比于总参数量,MM-LLM 中可训练参数的占比非常小(通常约为 2%)。总参数量取决于 MM-LLM 中使用的核心 LLM 的规模。因此,在针对各种多模态任务训练 MM-LLM 时,可以取得很高的训练效率。

模态编码器(Modality Encoder/ME):编码不同模态的输入,以得到相应的特征。

输入投影器(Input Projector):将已编码的其它模态的特征与文本特征空间对齐。

LLM 骨干:MM-LLM 使用 LLM 作为核心智能体,因此也继承了 LLM 的一些重要特性,比如零样本泛化、少样本上下文学习、思维链(CoT)和指令遵从。LLM 骨干的任务是处理各种模态的表征,其中涉及到与输入相关的语义理解、推理和决策。它的输出包括 (1) 直接的文本输出,(2) 其它模态的信号 token(如果有的话)。这些信号 token 可用作引导生成器的指令 —— 是否生成多模态内容,如果是,则指定所要生成的内容。

MM-LLM 中常用的 LLM 包括 Flan-T5、ChatGLM、UL2、Qwen、Chinchilla、OPT、PaLM、LLaMA、LLaMA-2、Vicuna。

输出投影器:将来自 LLM 骨干的信号 token 表征映射成可被后续模态生成器理解的特征。

模态生成器:生成不同对应模态的输出。目前的研究工作通常是使用现有的隐扩散模型(LDM),即使用 Stable Diffusion 来合成图像、使用 Zeroscope 来合成视频、使用 AudioLDM-2 来合成音频。

训练流程

MM-LLM 的训练流程可以分为两个主要阶段:MM PT(多模态预训练)和 MM IT(多模态指令微调)。

(1) Flamingo:一系列设计用于处理交织融合的视觉数据和文本的视觉语言(VL)模型,可输出自由形式的文本。

(2) BLIP-2:提出了一种能更高效利用资源的框架,其中使用了轻量级的 Q-Former 来连接不同模态,还使用了冻结的 LLM。使用 LLM,可通过自然语言 prompt 引导 BLIP-2 执行零样本图像到文本生成。

(3) LLaVA:率先将指令微调技术迁移到多模态领域。为了解决数据稀疏性问题,LLaVA 使用 ChatGPT/GPT-4 创建了一个全新的开源多模态指令遵从数据集和一个多模态指令遵从基准 LLaVA-Bench

(4) MiniGPT-4:提出了一种经过精简的方法,其中仅训练一个线性层来对齐预训练视觉编码器与 LLM。这种高效方法展现出的能力能媲美 GPT-4。

(5) mPLUG-Owl:提出了一种全新的用于 MM-LLM 的模块化训练框架,并整合了视觉上下文。为了评估不同模型在多模态任务上的性能,该框架还包含一个指示性的评估数据集 OwlEval。

(6) X-LLM:扩展到了包括音频在内的多个模态,展现出了强大的可扩展性。利用了 QFormer 的语言可迁移能力,X-LLM 成功在汉藏语系汉语语境中得到了应用。

(7) VideoChat:开创了一种高效的以聊天为中心的 MM-LLM 可用于进行视频理解对话。这项研究为该领域的未来研究设定了标准,并为学术界和产业界提供了协议。

(8) InstructBLIP:该模型是基于 BLIP-2 模型训练得到的,在 MM IT 阶段仅更新了 Q-Former。通过引入指令感知型的视觉特征提取和对应的指令,该模型可以提取灵活且多样化的特征。

(9) PandaGPT 是一种开创性的通用模型,有能力理解 6 种不同模态的指令并遵照行事:文本、图像 / 视频、音频、热量、深度和惯性测量单位。

(10) PaLIX:其训练过程使用了混合的视觉语言目标和单模态目标,包括前缀补全和掩码 token 补全。研究表明,这种方法可以有效用于下游任务,并在微调设置中到达了帕累托边界。

(11) Video-LLaMA:提出了一种多分支跨模态预训练框架,让 LLM 可以在与人类对话的同时处理给定视频的视觉和音频内容。该框架对齐了视觉与语言以及音频与语言。

(12) Video-ChatGPT:该模型是专门针对视频对话任务设计的,可以通过整合时空视觉表征来生成有关视频的讨论。

(13) Shikra:提出了一种简单但统一的预训练 MM-LLM,并且专门针对参考对话(Referential Dialogue)任务进行了调整。参考对话任务涉及到讨论图像中的区域和目标。该模型表现出了值得称道的泛化能力,可有效处理未曾见过的情况。

(14) DLP:提出了用于预测理想 prompt 的 P-Former,并在一个单模态语句的数据集上完成了训练。这表明单模态训练可以用于增强多模态学习。

(15) BuboGPT:为了全面理解多模态内容,该模型在构建时学习了一个共享式语义空间。其探索了图像、文本和音频等不同模态之间的细粒度关系。

(16) ChatSpot:提出了一种简单却有效的方法,可为 MM-LLM 精细化调整精确引用指令,从而促进细粒度的交互。通过集成精确引用指令(由图像级和区域级指令构成),多粒度视觉语言任务描述得以增强。

(17) Qwen-VL:一种支持英语和汉语的多语言 MM-LLM。Qwen-VL 还允许在训练阶段输入多张图像,这能提高其理解视觉上下文的能力。

(18) NExT-GPT:这是一种端到端、通用且支持任意模态到任意模态的 MM-LLM,支持自由输入和输出图像、视频、音频和文本。其采用了一种轻量的对齐策略 —— 在编码阶段使用以 LLM 为中心的对齐,在解码阶段使用指令遵从对齐。

(19) MiniGPT-5:这种 MM-LLM 整合了转化成生成式 voken 的技术,并集成了 Stable Diffusion。它擅长执行交织融合了视觉语言输出的多模态生成任务。其在训练阶段加入了无分类器指导,以提升生成质量。

(20) LLaVA-1.5:该模型基于 LLaVA 框架并进行了简单的修改,包括使用一种 MLP 投影,引入针对学术任务调整过的 VQA 数据,以及使用响应格式简单的 prompt。这些调整让模型的多模态理解能力得到了提升。

(21) MiniGPT-v2:这种 MM-LLM 的设计目标是作为多样化视觉语言多任务学习的一个统一接口。为了打造出能熟练处理多种视觉语言任务的单一模型,每个任务的训练和推理阶段都整合了标识符(identifier)。这有助于明确的任务区分,并最终提升学习效率。

(22) CogVLM:一种开源 MM-LLM,其通过一种用在注意力和前馈层中的可训练视觉专家模块搭建了不同模态之间的桥梁。这能让多模态特征深度融合,同时不会损害在下游 NLP 任务上的性能。

(23) DRESS:提出了一种使用自然语言反馈提升与人类偏好的对齐效果的方法。DRESS 扩展了条件式强化学习算法以整合不可微分的自然语言反馈,并以此训练模型根据反馈生成适当的响应。

(24) X-InstructBLIP:提出了一种使用指令感知型表征的跨模态框架,足以扩展用于助力 LLM 处理跨多模态(包括图像 / 视频、音频和 3D)的多样化任务。值得注意的是,它不需要特定模态的预训练就能做到这一点。

(25) CoDi-2:这是一种多模态生成模型,可以出色地执行多模态融合的指令遵从、上下文生成以及多轮对话形式的用户 - 模型交互。它是对 CoDi 的增强,使其可以处理复杂的模态交织的输入和指令,以自回归的方式生成隐含特征。

(26) VILA:该模型在视觉任务上的性能出色,并能在保持纯文本能力的同时表现出卓越的推理能力。VILA 之所以性能优异,是因为其充分利用了 LLM 的学习能力,使用了图像 - 文本对的融合属性并实现了精细的文本数据重新混合。

当前 MM-LLM 的发展趋势:

(1) 从专注于多模态理解向特定模态生成发展,并进一步向任意模态到任意模态转换发展(比如 MiniGPT-4 → MiniGPT-5 → NExT-GPT)。

(2) 从 MM PT 到 SFT 再到 RLHF,训练流程持续不断优化,力求更好地与人类意图对齐并增强模型的对话互动能力(比如 BLIP-2 → InstructBLIP → DRESS)。

(3) 拥抱多样化的模态扩展(比如 BLIP-2 → X-LLM 和 InstructBLIP → X-InstructBLIP)。

(4) 整合质量更高的训练数据集(比如 LLaVA → LLaVA-1.5)。

(5) 采用更高效的模型架构,从 BLIP-2 和 DLP 中复杂的 Q-Former 和 P-Former 输入投射器模块到 VILA 中更简单却有效的线性投影器。

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

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

相关文章

不看后悔 养宠家庭的必备好物——最值得买的宠物空气净化器推荐

"猫毛满天飞&#xff0c;打扫永无尽头&#xff01;"这是多少养猫人的日常写照。或许你已经尝试了各种方法&#xff0c;从手动打扫到普通空气净化器&#xff0c;但效果总是不尽人意。普通空气净化器虽然有点用&#xff0c;但实际上它们并非专为宠物家庭设计&#xff0…

应用层自定义协议以及序列化和反序列化

文章目录 应用层自定义协议以及序列化和反序列化1、应用层自定义协议1.1、应用层1.2、协议 2、序列化和反序列化3、TCP 为什么支持全双工4、jsoncpp基础4.1、序列化4.2、反序列化 5、实现网络版计算器6、手写序列化和反序列化 应用层自定义协议以及序列化和反序列化 1、应用层…

【YOLOv8系列】图像分类篇----通过YOLOv8实现图像分类功能

最近需要使用YOLOv8对自己的数据集进行训练,从而实现图像分类的功能,因此记录一下整个过程。 YOLOv8的github地址:https://github.com/ultralytics/ultralytics 参考链接:超详细YOLOv8图像分类全程概述:环境、训练、验证与预测详解 文章目录 一、YOLOv8环境搭建二、准备…

【C++】:红黑树深度剖析 --- 手撕红黑树!

目录 前言一&#xff0c;红黑树的概念二&#xff0c;红黑树的性质三&#xff0c;红黑树节点的定义四&#xff0c;红黑树的插入操作4.1 第一步4.2 第二步4.3 插入操作的完整代码 五&#xff0c;红黑树的验证六&#xff0c;实现红黑树的完整代码五&#xff0c;红黑树与AVL树的比较…

从 NextJS SSRF 漏洞看 Host 头滥用所带来的危害

前言 本篇博文主要内容是通过代码审计以及场景复现一个 NextJS 的安全漏洞&#xff08;CVE-2024-34351&#xff09;来讲述滥用 Host 头的危害。 严正声明&#xff1a;本博文所讨论的技术仅用于研究学习&#xff0c;旨在增强读者的信息安全意识&#xff0c;提高信息安全防护技能…

Java Linux操作系统

1、操作系统是协助用户调度硬件工作&#xff0c;充当用户和计算机硬件之间的桥梁 2、Linux内核 提供了linux系统的主要功能 3、发行版Centos&#xff1a;内核应用程序 4、快照&#xff1a;保存虚拟机的状态&#xff0c;当虚拟机出现问题的时候&#xff0c;可以恢复原始的状态…

Hospital 14.6.0全开源医院管理预约系统源码

InfyHMS 具有 60 种功能和 9 种不同类型的用户类型&#xff0c; 他们可以登录系统并根据他们的角色访问他们的数据。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89580674 更多资源下载&#xff1a;关注我。

MyBatis--11-- 判断 Integer类型,值为0动态SQL不生效

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 MyBatis标签&#xff1a; Integer类型&#xff0c;值为0动态SQL不生效1.现象2.分析原因3.解决办法去掉判断条件 dto.status ! "即可 MyBatis标签&#xff1a; …

CSS相关记录

文章目录 backgroundposition文字displayflexjustify-contentalign-itemsflex-directionflex-wrap gridimportant transformtranslate&#xff08;位移&#xff09;scale&#xff08;缩放&#xff09;rotate&#xff08;旋转&#xff09;origin (旋转中心点)skew (倾斜 ) borde…

kafka架构+原理+源码

1.安装jdk17 sudo yum -y update sudo wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm sudo yum -y install ./jdk-17_linux-x64_bin.rpm、 sudo java -version 2.安装kafka How to easily install kafka without zookeeper | Aditya’s Blog …

C++——保持原有库头文件不变的情况下,成功编译运行工程

问&#xff1a;想要保持原来库方式&#xff0c;应该怎么操作呢&#xff1f; 答&#xff1a;如果想保持原来的方式&#xff0c;则只需要将 库所在路径 tracker/detector/rknn_model_zoo/utils 加入到 工程库包含中即可。

DVWA的安装和使用

背景介绍 DVWA是Damn Vulnerable Web Application的缩写&#xff0c;是一个用于安全脆弱性检测的开源Web应用。它旨在为安全专业人员提供一个合法的测试环境&#xff0c;帮助他们测试自己的专业技能和工具&#xff0c;同时也帮助web开发者更好地理解web应用安全防范的过程。DV…

FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发

源码见&#xff1a;"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 在之前的文章&#xff1a;FastAPI&#xff08;六十九)实战开发《在线课程学习系统》接口开发--修改密码&#xff0c;这次分享留言功能开发 我们梳理…

gstreamer使用cairo实现视频OSD叠加

前言 gstreamer中视频叠加OSD有很多种方式,比如textoverlay添加文字,gdkpixbufoverlay添加图片,clockoverlay或timeoverlay插件显示时间,pango插件进行复杂文本渲染,使用cairo插件绘制图形或者文字。 今天使用最后一种:cairo 项目源码: 如果是QT,pro文件需要导入: …

Tensorflow中高维矩阵的乘法运算tf.matmul(tf.linalg.matmul)详悉

1.问题由来 在tensorflow框架下&#xff0c;经常会用到矩阵的乘法运算&#xff0c;特别是高&#xff08;多&#xff09;维的矩阵运算&#xff0c;在这些矩阵运算时&#xff0c;经常使用到其中的tf.matmul或tf.linalg.matmul等函数。但高维矩阵在内部怎么运算的&#xff1f;其内…

跟代码执行流程,读Megatron源码(四)megatron初始化脚本initialize.py之initialize_megatron()分布式环境初始化

在前文中&#xff0c;我们讲述了pretrain函数的执行流程&#xff0c;其首要步骤是megatron分组的初始化与环境的配置。本文将深入initialize_megatron函数源码&#xff0c;剖析其初始化分布式训练环境的内部机制。 注&#xff1a;在此假设读者具备3D并行相关知识 一. initiali…

Zabbix自定义监控内容部署+邮件报警+Zabbix自愈+Zabbix批量添加主机

一、自定义监控项 1.1自定义监控项原理 1&#xff09;先明确获取监控指标数据的命令或脚本; 2&#xff09;在被监控主机配置文件子目录&#xff08;/etc/zabbix/zabbix_agent2.d/)中创建以.conf后缀的监控项配置文件&#xff0c;自定义获取监控指标数据的键值&#xff1b; …

Windows:批处理脚本学习

目录 一、第一个批处理文件 1. &&和 | | 2. | 和 & 二、变量 1.传参变量%name 2.初始化变量set命令 3.变量的使用 4.局部变量与全局变量 5.使用环境变量 6.扩充变量语法 三、注释REM和 &#xff1a;&#xff1a; 四&#xff1a;函数 1.定义函数 2.…

鸿蒙 Navigation VS Router 对比

当前HarmonyOS支持两套路由机制&#xff08;Navigation和Router&#xff09;&#xff0c;Navigation作为后续长期演进及推荐的路由选择方案&#xff0c;其与Router比较的优势如下&#xff1a; 易用性层面&#xff1a; Navigation天然具备标题、内容、回退按钮的功能联动&…

看 Unity 组件的源码 —— ILSpy

ILSpy 是开源的 .NET 程序集浏览器和解编译器。 下载 ILSpy ILSpy Github 地址&#xff1a;icsharpcode/ILSpy: .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform! (github.com) 它有 Release 包可以下载 也提供 IDE 的…