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:这是一个开源的大型多模态模型,
- gemini 是闭源的,pro 版本需要微调,但是 gemini 暂时未开放微调功能,未来会开放。ultra 版本需要 visa 银行卡,故没有测试。但根据其开放的评估指标评分达到可用的水平
- qwen-vl 是开源的,Pro 与 Max 版本不开源,Max 版本同样无法达到项目所需的精度要求,可以微调qwen-vl,下一步尝试使用 qwen-vl 微调,测试效果
- chatglm 有 Vision 版,但 glm4 已经闭源,不知道是否会开放微调。
- gpt4-vision-preview 版本图片理解能力较强,测试了少量样本,基本满足业务需求
- 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 中更简单却有效的线性投影器。