导读
图1:Mono-InternVL与现有MLLMs的比较。与模块化MLLMs相比,Mono-InternVL将视觉专家嵌入到预训练的LLM中,并将视觉编码和语言解码集成到单个LLM中
如图1(a)所示,大多数现有的MLLM采用模块化架构,其中视觉编码和语言解码是分开处理的,通常是通过结合预训练的视觉编码器(如CLIP-ViT)和LLM来实现的。最近的研究也开始探索单体MLLM(如 Fuyu-8B; EVE; SOLO),如图1(b)所示,它们将视觉感知和多模态理解直接集成到单个LLM中。由于它们的简单性和统一性,单体MLLM可以更容易地使用现有的LLM推理库(LMDeploy)进行部署,并且比模块化MLLMs显示出更高的效率**。尽管单体MLLM具有这些优势,但训练高性能模型仍面临挑战,尤其是在视觉感知方面,还面临灾难性遗忘问题。**
为此,本文提出Mono-InternVL模型:
-
新的单体MLLM:它通过多模态专家混合架构无缝集成了一组视觉专家。这种架构能够有效地将预训练的大型语言模型(LLM)扩展到单体MLLM,同时保留预训练的知识。
-
内源性视觉预训练(EViP):一种新颖的视觉预训练方法,一个三阶段的渐进学习过程,包括概念学习、语义学习和对齐学习,以逐步提升模型的视觉知识和多模态能力,鼓励Mono-InternVL的视觉专家从嘈杂的数据到高质量的数据不断掌握视觉知识。
Mono-InternVL证明了MLLM的性能可以不再依赖于预训练的视觉编码器,也能在多个多模态基准上达到SOTA,为设计未来的MLLM开辟了新的途径。
-
论文名称:Mono-InternVL: Pushing the Boundaries of Monolithic Multimodal Large Language Models with Endogenous Visual Pre-training
-
论文地址:https://arxiv.org/abs/2409.20566
-
模型地址:https://huggingface.co/OpenGVLab/Mono-InternVL-2B
Introduction
图2:Mono-InternVL的单体架构。Mono-InternVL被设计为一个多模态的MoE(混合专家)结构,其中视觉和文本令牌由相应的专家处理。这样的设计极大地促进了视觉预训练,同时保持了模型的效率。
Mono-InternVL的架构如图2所示,由分词器和多模态专家混合结构组成。
视觉和文本嵌入。与模块化MLLM相比,Mono-InternVL直接使用轻量级模块将图像分割成输入的视觉序列。具体来说,给定输入图像I ,通过下式得到视觉Embedding:
这里,PatchEmbed(•)表示一个步长为28的补丁嵌入层,意味着每个视觉标记代表一个28×28的图像块。PE是可学习的定位嵌入,与InternVL-1.5类似。此外,还有一个额外的缩略图以提供全局视觉信息。这个简单的视觉分词器允许Mono-InternVL处理任意分辨率的图像,最高可达800万像素,即10,240个图像块,可以覆盖大多数高分辨率场景。在Mono-InternVL中,文本分词器与LLM中的原始分词器保持一致。
多模态专家混合结构。Mono-InternVL的关键是将视觉专家嵌入到预训练的LLM中。具体来说,给定多模态输入,使用带一组视觉专家的LLM逐步生成文本标记。我们采用了静态路由策略,将视觉和文本专家分配给相应的标记。因此,第l层LLM可以定义为:
MHA(•)和RMSNorm(•)分别表示多头注意力和层归一化。MMoE(•)是提出的多模态专家混合:
FFN_v和FFN_t分别表示视觉和文本专家。在实践中,FFN_v从FFN_t初始化,以利用预训练的知识。MMoE结构比现有的单体MLLM有两个明显优势。首先,Mono-InternVL的视觉学习可以极大地从预训练的语言知识中受益,同时通过冻结FFNt,语言能力仍然可以被保留。其次,MMoE结构显著增强了模型对视觉和语言建模的能力,而由于MoE机制,额外的推理成本几乎可以忽略不计。
# 内源性视觉预训练(EViP)
EViP旨在通过在大量嘈杂和合成数据上的预训练,最大化Mono-InternVL从视觉专家中获得的益处。与现有方法不同,我们从增量调整的角度来构建EViP,在这一过程中,大部分LLM参数被冻结,以保留其预训练的知识。因此,EViP的目标可以定义为最小化参数变化∆θ的损失函数,即:
其中,L表示自回归损失,y表示真实值。如图3所示,∆θ表示概念和语义学习中的Patch Embedding和视觉专家的参数,即θv,而在对齐学习阶段,∆θ还包括多头注意力的参数。
图3:Mono-InternVL的训练流程。在第一阶段,Mono-InternVL通过三个子阶段(S1.1、S1.2、S1.3)逐步在海量数据上进行预训练,其中大部分LLM参数被冻结,以保留预训练的知识。在第二阶段(S2),整个模型被优化以适应各种指令
如图3和下表所示,EViP包含三个子阶段,分别是概念学习(S1.1)、语义学习(S1.2)和对齐学习(S1.3)。针对不同的子阶段,我们使用精心划分的数据来实现从粗到细的视觉学习。
阶段 | 数据集来源 | 样本数量 | 数据类型 |
S1.1 | Laion-2B 和 Coyo-700M | 约9.22亿 | 用于概念学习的带噪声描述数据 |
S1.2 | InternVL-8B 生成 | 2.58亿 | 由InternVL-8B为图像合成的描述 |
S1.3 | InternVL-1.5 预训练数据 | 1.43亿 | 用于对齐学习的图像描述、检测、OCR数据集 |
概念学习(S1.1):概念学习的目标是鼓励模型学习基本的视觉概念,如物体类别或基本形状。在这个阶段,Mono-InternVL使用一个简单的提示来进行生成学习,即“为这张图片提供一个句子的描述”。同时,为了提高训练效率,将视觉分词器的最大图像块数量限制在1,280个。为了在使模型专业化的同时保留基础的语言能力,整个LLM在概念学习期间保持冻结状态,只优化Patch Embedding和视觉专家。
语义学习(S1.2):InternVL-8B模型被用来生成每个图像的描述,这些描述通常包含更复杂的视觉知识,并且与图像内容更相关,同时减少了与图像无关的噪声信息。这种方法有助于Mono-InternVL在概念学习之后进一步提升其对图像内容的语义理解能力。在这个子阶段,我们采用与概念学习相同的优化策略,只是将最大图像块数量增加到1,792个。
对齐学习(S1.3):为了满足下游任务的视觉要求,我们进一步对Mono-InternVL进行对齐学习。如表1所示,描述数据、检测数据和OCR数据分别占总数的约53.9%、5.2%和40.9%。在这个子阶段,最大图像块数量增加到3,328个。与之前的子阶段相比,还额外优化了多头注意力层,以实现更好的视觉-语言对齐。
# 指令微调
在这个阶段,遵循InternVL使用大约500万个双语指令进行监督学习,涵盖了各种任务,如视觉问答、多模态对话、数学、知识等。除此之外,还额外包括了视频理解和手写文本识别的指令数据。并且将最大图像块数量增加到6,400个,以适应高分辨率图像,整个模型被优化。
Experiments
Mono-InternVL是基于InternLM2-1.8B实现的,新增了视觉分词器和视觉专家。视觉专家是从InternLM2-1.8B中预训练的MLP初始化的,以利用已有的学习表示来改进视觉特征提取,这占了12亿个参数。采用了与InternVL-1.5类似的动态高分辨率策略来对输入图像进行最优分辨率对齐,然后将其分割成视觉标记。其余配置与InternLM2-1.8B保持一致。内源性视觉预训练和指令调优分别在256个NVIDIA A100 GPU上大约需要16天(646k次迭代)和1天(14k次迭代)。
Analysis
从上面表2和表3的结果可以总结以下内容:
-
性能比较:
-
Mono-InternVL-2B在多个基准测试中超越了最先进的模块化MLLMs,平均性能高出+0.8%。
-
Mono-InternVL-2B在MathVista和OCRBench基准测试中展现了强大的文本识别和推理能力。
-
在CCBench基准测试中验证了出色的双语能力,特别是在涉及中国传统文化的问题上。
-
与现有单体MLLM相比,Mono-InternVL在MMVet上性能提升+15.4%,在TextVQA上提升+7.9%。
-
不足:
-
Mono-InternVL在高分辨率基准测试如InfoVQA上表现不如InternVL-1.5,表明需要进一步研究高分辨率编码的特定优化。
-
消融实验(表5和表6):
-
采用视觉表专家的全调整策略比现有的单体MLLM更有效,例如在GQA上提高了1.6%
-
Delta调整策略在视觉预训练中也显示出极大的益处,在SQA-I和AI2D上分别提供了18.8%和16.1%的增益。
-
由于消除了视觉编码器,Mono-InternVL在不同数量的输入标记下展示了更高的效率
表5:不同视觉预训练策略的消融研究。所有模型都是在来自Laion-2B的6100万张图文对上进行预训练,并在LLaVA-665k的指令数据上进行微调。“Full”和“Delta”分别表示全参数调优和增量调优,“T-Param”指的是可训练参数
表6:Mono-InternVL和InternVL-1.5的推理速度比较。模型部署在NVIDIA A100上,使用LMDeploy和Pytorch后端,并发数为16,输出标记数量固定为120。"TTFT"和"TPS"分别表示输出首个token的时间(秒)和吞吐量(每秒token数)
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。