InternVL 📅 2026/7/23 23:38:02 现有多模态模型的问题不在于LLM而在于视觉部分太弱、视觉与语言表示不一致以及连接模块容量不足。InternVL通过构建6B视觉编码器、8B语言中间层QLLaMA并采用三阶段渐进式对齐训练试图从根本上解决这些问题。1. 背景一、论文想解决的问题论文开头先提出一个观点多模态大模型的发展并不是LLM限制了能力而是视觉模型已经跟不上LLM的发展。作者认为现在大家都在研究如何把图片接到LLM上如BLIP-2、InstructBLIP、LLaVA、MiniGPT-4它们都有一个共同特点直接拿一个已经训练好的视觉编码器再接一个LLM。Image → Vision EncoderCLIP ViT→ Projection/Q-Former → LLM这种思路已经成为主流。但是这里面存在三个根本问题。1、视觉模型太小现在LLM越来越大但是视觉编码器几乎没怎么变。二者规模相差一个数量级。很难充分发挥几十亿甚至几百亿参数LLM的能力。视觉模型已经成为整个系统的瓶颈。如Vision Encoder(300M~1B) → LLM(7B/13B/70B)2、视觉特征与LLM特征不一致在BLIP-2中说过CLIP得到的是CLIP特征BERT得到的是BERT特征LLaMA得到的是LLaMA特征这些模型虽然都输出向量但它们学习目标完全不同因此特征空间并不一致。例如CLIP学习的是图片 ↔ 文本 对齐LLaMA学习的是预测下一个tokenCLIP输出的特征并不是LLM最容易理解的表示中间必须有人负责翻译。如BLIP-2用Q-FormerLLaVA用Linear Projection图片特征和LLM语言空间没有真正对齐。3、连接层太弱目前的方法通常都是Vision Encoder - Linear / Q-Former - LLM (≈1B) 几百万 (≈188M) (7B)负责连接两个大模型的模块既要理解视觉信息又要转换成LLM能够理解的表示任务非常重但参数却很少因此容易成为性能瓶颈。二、新思路作者没有继续研究怎样设计更好的Q-Former而是提出了两个新的方向。1、把视觉模型做大训练了一个 InternViT-6B参数达到60亿6B已经和很多LLM规模接近。不是简单放大ViT而是把视觉基础模型提升到LLM需要的规模。2、不用小Q-Former而是换成语言中间层Q-Former太小直接用一个大的语言模型作为桥梁。提出 QLLaMA一个初始化自LLaMA的语言中间层Language Middleware。以前现在四、训练渐进式完成互联网图片很多但质量差异很大。有些图片的caption几乎没有价值但也有高质量描述。没有直接全部用于生成训练而是采用三阶段训练第一阶段海量网页图片 做Contrastive Learning ↓ 第二阶段高质量Caption 做Generative Training ↓ 第三阶段 Instruction数据 训练Chat能力既能利用海量数据学习视觉表示又能利用高质量数据提升生成能力训练过程也更加稳定。五、论文的三个主要贡献最后作者总结了全文贡献可以概括为三个方面。1提出 InternVL首次将6B视觉编码器与LLM进行大规模对齐构建统一的视觉-语言基础模型。2提出 Progressive Alignment渐进式对齐按照对比学习 → 生成学习 → 指令微调三步逐渐完成视觉与语言空间的融合。3实现一个通用视觉基础模型作者希望它不仅是一个聊天模型而是一个通用视觉-语言基础模型Vision-Language Foundation Model。与前面模型的关系CLIP 学习视觉表示图文对比 │ BLIP 加入生成任务 │ BLIP-2 冻结ViTLLM、Q-Former连接二者 │ InstructBLIP Q-Former加入Instruction │ LLaVA 用MLP替代Q-Former │ InternVL ← 本文 ├── 把Vision Encoder扩大到6B ├── 用8B QLLaMA代替小Q-Former └── 提出渐进式视觉-语言对齐训练2. 整体框架Overall Architecture一、整体结构论文中的核心框架可以简化为与 BLIP-2 和 LLaVA 最大的区别在于二、InternViT-6BInternViT-6B 是一个标准 ViTVision Transformer没有使用复杂的特殊结构。作者重点做的是把规模提升到 6B 参数在速度、稳定性和性能之间寻找平衡最终结构作者还尝试了32、63、80 层不同 head dimension、不同 MLP ratio发现在相同参数量下深度和宽度对精度影响不大但会明显影响训练稳定性和吞吐量最终选择 48 层。三、QLLaMA1、引入原因视觉特征和 LLM 特征之间的差距太大小型 Q-Former 很难完成高质量转换所以用一个大语言模型作“翻译器”。QLLaMA不是一个简单的投影层而是一个具备完整语言建模能力的中间层。2、QLLaMA 的内部结构QLLaMA 基于一个预训练的多语言 LLaMA 新增 96 个可学习 Query和 Cross-Attention 层数据流这里和 BLIP-2 的 Q-Former 很像共同点不同点都有 QueryQLLaMA 是完整 LLaMA都有 Cross-AttentionQ-Former 只有 188M都从图像中提取信息QLLaMA 有 8B 参数3、QLLaMA的三个优势(1) 天然对齐 LLM最重要QLLaMA 直接继承了 LLaMA 的预训练权重输出的特征本来就在 LLaMA 的语言空间附近。(2) 容量巨大≈42×Q-Former ≈ 188MQLLaMA ≈ 8B大约是 Q-Former 的 42 倍。(3) 可用于对比学习一举两得BLIP-2 的 Q-Former 主要用于生成。而 QLLaMA 既能做生成caption、chat也能做对比学习retrieval、zero-shot classification六、InternVL 的四种工作模式同一个模型可以有不同组合。模式 1InternViT-6B单独使用视觉任务 图像分类、语义分割、检测等模式 2InternVL-C对比学习模式 图文检索、零样本分类模式 3InternVL-G生成模式 图像描述、Caption模式 4InternVL-Chat多模态聊天 连接 Vicuna / LLaMA 等其中聊天又有两种方案方案 A只用 InternViT-6B 类似 LLaVA方案 BInternViT-6B QLLaMA 论文主推七、这一节最核心的思想InternVL不再把视觉编码器当作一个“前端特征提取器”而是把它提升为与 LLM 同级别的大模型并用一个 8B 的语言中间层 QLLaMA 完成视觉与语言空间的深度对齐。本章总结模块作用InternViT-6B6B 参数视觉编码器负责强视觉表示QLLaMA8B 参数语言中间层负责视觉→语言对齐LLM Decoder负责最终文本生成与 BLIP-2 的结构对比BLIP-2经典方案 InternVL参数平衡3. Progressive Alignment渐进式对齐训练一、为什么采用三阶段训练如果直接拿图片和 LLM 做指令微调视觉编码器还不会很好地理解图像。图像特征与语言特征还没有对齐。直接做 Chat 训练优化难度很大训练效率也不高。二、三阶段训练Stage 1Contrastive Pre-training训练目标让图片和文本进入同一个特征空间CLIP 的训练方式。网络如下Image Text ↓ ↓ InternViT-6B LLaMA ↓ ↓ Image Feature Text Feature _______________________ ↓ Contrastive LossInternViT-6B随机初始化LLaMA 加载预训练权重后续的QLLaMA直接加载该阶段训练好的权重为什么先做对比学习1、数据容易获取互联网有大量图片和对应文本。虽然这些文本质量一般但足够学习图片和文本是否匹配。2、学习通用视觉语义这一阶段并不要求模型生成句子只需要回答这张图片和这句话是不是描述同一个内容模型需要让图片和匹配的文本的特征距离更近和不匹配的文本的特征距离更远。这一阶段主要学习的是语义对齐能力而不是语言生成能力。Stage 2Generative Pre-training训练目标目标变成根据图片生成文本。完成第一阶段后模型已经知道哪些图片和哪些文本对应。但不会回答问题也不会写描述。流程Image │InternViT-6B【】 ▼ 视觉 Patch 特征 (Visual Features) │ ▼ 可学习Queries 文本/Prompt ─► Cross-Attention【约1B】 │ ▼ 融合视觉信息的 Query 特征 │QLLaMA【】 ┌──────────────────────┼──────────────────────┐ ▼ ▼ ▼ Matching Loss Contrastive Generative (图文匹配损失) Loss (对比) Loss (生成)QLLaMA继承了第一阶段LLaMA-7B的权重。保持 InternViT-6B 和 QLLaMA 冻结仅使用经过过滤的高质量数据训练新增的可学习Queries和交叉注意层。模型同时计算三个损失函数相辅相成Matching Loss图文匹配损失做二分类判断图片和文本是否属于同一个样本强化细粒度的语义对应。Contrastive Loss图文对比损失延续 Stage 1 的对比机制保持全局特征空间的高维拉近与推远。Generative Loss文本生成损失做“看图填空/接龙题”利用自回归机制预测下一个词Next Token Prediction赋予模型描述图像的文本生成能力。Next Token Prediction自回归生成也就是普通 LLM 的训练方式。如输入Image Describe this image.目标输出A boy is riding a bicycle on a street.模型预测每一个 token并计算语言建模损失。为什么不一开始就做生成训练因为高质量 Caption 数据远少于图文配对数据如果直接用少量高质量数据训练很难学到丰富的视觉知识。例如数据类型数量质量网页 Alt-text非常多较低人工 Caption较少很高第一阶段用海量数据学视觉语义第二阶段用高质量数据学文本生成。两种数据各自发挥优势。整个训练过程中真正学习的是Cross-Attention 如何从 InternViT 的 Patch Tokens 中读取信息。Stage 3Instruction Tuning经过前两阶段后模型已经具备图文对齐、图像描述能力但它还不能进行自然对话。进入第三阶段训练数据变成Image Human: What is the man doing? Assistant: He is playing tennis.或者Image Human: Describe the weather. Assistant: It is a sunny day with clear skies.训练方式与 LLaVA、InstructBLIP 基本一致输入Image Instruction输出Assistant Response损失仍然是语言建模损失只计算 Assistant 回复部分。Image │InternViT-6B【】 ▼ 视觉 Patch 特征 │ QLLaMA【可选/】(输出96个 Query Features) ▼ 压缩后的视觉向量 │ MLP 投影层【】(将维度映射到 LLM 输入空间) ▼ 文本指令/Prompt 映射后的 Visual Tokens │ │ └─────────────┬────────────┘ ▼ ┌──────────────────────┐ │ LLM Decoder (大模型)│ 【权重冻结 / 可用 LoRA 微调】 │ (Vicuna / InternLM) │ (将 Visual Tokens 与 Text Tokens 拼接) └──────────┬───────────┘ ▼ ┌──────────────────────┐ │ Generative Loss │ (自回归生成文本) │ (生成多模态对话 / VQA) │ └──────────────────────┘三、Progressive Alignment论文把这三步称为渐进式对齐Progressive Alignment每一步解决的问题不同。学习目标解决的问题冻结模块训练模块Contrastive Learning图文语义对齐无InternViT QLLaMAGenerative Learning根据图片生成语言InternViT、LLaMA 原有参数Cross-AttentionInstruction Tuning按用户指令进行多模态对话InternViT、QLLaMAMLP Projector Vicuna认识图片 → 学会描述图片 → 学会和用户讨论图片每个阶段只优化当前最需要学习的新模块避免破坏前一阶段已经获得的能力。每一步都建立在前一步的能力之上训练更加稳定。四、与 BLIP-2 的区别BLIP-2InternVLStage 1Q-Former 学习视觉表示Stage 1整个 InternVL 学习图文对齐Stage 2连接 LLM 做生成Stage 2生成预训练无专门对话训练Stage 3Instruction Tuning二者第一阶段的目标不同。BLIP-2 的第一阶段主要训练Q-Former目的是让少量 Query 学会从冻结 ViT 中提取视觉信息。而 InternVL 的第一阶段训练的是整个视觉-语言系统目标是建立统一的图文语义空间为后续生成和对话打基础。本章总结Progressive Alignment 的核心思想不是一开始就让模型学会聊天先学习图文语义对应再学习图像生成文本最后学习按照用户指令进行多模态对话。用循序渐进的训练方式更加稳定地对齐视觉表示和语言表示。4. InternViT-6B为什么要做一个 6B 的视觉编码器一、问题LLM 已经进入十亿甚至百亿参数时代而 Vision Encoder 仍停留在几亿参数这种规模失衡会限制整个多模态模型的性能。因此他们决定重新训练一个更大的 Vision Transformer。二、网络规模作者并不是简单把网络加宽、加深而是在探索怎样在相同参数量下得到训练最稳定、效率最高的 ViT。因此他们研究了网络深度Depth、网络宽度Width、Attention Head 数量1、网络深度假设参数量固定在 6B 左右。方案一增加层数 32 → 48 → 64 → 80方案二减少层数但增加每层宽度。并不是越深越好原因(1)训练更困难。Transformer 很深梯度传播更困难、收敛速度下降。(2)速度更慢。兼顾精度、收敛速度、GPU 吞吐量选择48 Transformer Blocks。2、网络宽度宽度就是Transformer 每个 token 的维度n维token1✖️n的向量。如ViT-BHidden Size 768ViT-LHidden Size 1024InternViTHidden Size 3200比 ViT-L约扩大了三倍Patch Token768个数字 → 3200个数字更大的 Hidden Size模块输入输出的维度 意味着每个 Patch Token 可以保存更多信息。五、MLP 为什么也变大Transformer Block 包括两部分Input → Self-Attention → MLP → OutputMLP 一般会扩大 Hidden Size 的四倍。因此Hidden Size 3200 → MLP 12800这是标准 ViT 的设计没有特殊修改。Input Token (3200) → Multi-Head Self-Attention → Output Token (3200)→ MLP (3200 → 12800 → 3200) → Output Token (3200)六、Attention Head为什么是25个因为Transformer 要满足每个 Head 的维度 Hidden Size ÷ Head Number作者希望每个 Head Dimension 1283200 ÷ 25 128 刚好整除。因此Hidden Size 320 → 25 Heads → 每个 Head 128 维不是新算法只是一个工程上的配置选择。七、InternViT本质还是标准 ViTInternViT-6B没有提出新的 Attention、MLP、Position EncodingInternViT 的主体仍然是Image ↓ Patch Embedding ↓ Position Embedding ↓ 48 × Transformer Block ↓ Image Tokens作者的创新是把 ViT 扩展到了足够大的规模并解决了大规模训练中的稳定性问题。因此论文的重点不是新的 ViT 结构而是Scaling。八、为什么 Vision Encoder 变大后会更强1.模型容量更大更多参数意味着模型能够学习更丰富的视觉信息。2、与 LLM 更匹配视觉部分和语言部分容量更加接近减少视觉模块成为系统瓶颈的可能。九、这里有一个容易误解的地方InternVL 的提升并不是完全来自更大的参数量论文认为性能提升来自两个方面更大的 Vision EncoderInternViT-6B提升视觉表示能力。更好的视觉-语言对齐(QLLaMA Progressive Alignment):让视觉信息更容易被LLM利用。模型规模和对齐方式是相辅相成的。如果只有更大的 ViT没有有效的视觉-语言对齐LLM 仍然难以充分利用这些视觉特征。本章总结InternViT-6B 的核心思想重新设计 Vision Transformer而是在保持标准 ViT 架构的基础上将其扩展到 6B 参数并通过合理选择深度、宽度和 Attention 配置使视觉模型的规模与 LLM 更加匹配从而提升整个多模态模型的能力。与 CLIP ViT 的对比CLIP ViTInternViT-6B几亿参数约 6B 参数主要用于视觉编码作为大规模视觉基础模型与 LLM 存在明显规模差距与 LLM 参数规模更加接近重点是学习图文对齐同时兼顾视觉表示能力和多模态对齐能力5. InternViT-6B 的训练一、为什么训练一个 6B 的 ViT 很困难如果只是把普通 ViT 放大到 6B通常会遇到几个问题训练不稳定容易出现梯度爆炸或损失震荡。对训练数据要求更高。GPU 显存和计算量急剧增加。可能训练几周却得不到好的性能。因此作者认为InternViT-6B 的关键不是网络结构而是训练策略。二、训练分为两个阶段stage 1: ImageNet-22K 监督预训练学习预测正确类别stage2: 大规模图文数据 Contrastive Pre-training数据训练类型目标stage 1ImageNet-22K监督预训练正确预测类别stage 2大规模图文数据Contrastive Pre-training图片和文本应该具有相近表示训练流程stage 1Image → InternViT → Classifier → CategoryStage 2完成监督训练后去掉分类头然后加入文本编码器。Image Text ↓ ↓ InternViT Text Encoder ↓ ↓ Image Feature Text Feature ↓ Contrastive LossInternVL 用 Contrastive Learning为什么前面还有一个监督训练因为Contrastive Learning 更适合学习跨模态语义但如果视觉模型连基本目标都识别不好那么后面的图文对齐也会受到影响。作者希望先让 ViT 学会基本视觉能力再学习图文对齐。五、为什么要先分类再对比学习可以理解为两个不同目标。第一阶段关注是什么学习视觉识别。第二阶段关注图片和文字是不是描述同一个内容学习视觉语言对应关系。两者互补。六、作者为什么没有采用 MAE 那种训练方式在训练 Vision Foundation Model 时目前主要有三类方法1、监督学习如ImageNet 分类。2、自监督学习如MAE、BEiT、SimMIM3、图文对比学习如CLIP作者最终选择监督学习 Contrastive Learning。因为 InternVL 最终服务的是视觉语言任务图文对齐比重建图片MAE更符合最终目标。MAE 学的是恢复图片CLIP 学的是理解图片与语言的关系后者更适合作为多模态模型的视觉编码器。七、训练完成后的 InternViT 输出什么InternViT 输出的并不是Cat、Dog、Car 这些类别输出的是Patch Tokens如Image 224 × 224 │ Patch Embedding ▼ 14 × 14 196 个 Patch │ InternViT48个 Transformer Blocks ▼ 196 × 3200 Patch Tokens196 个 Patch Token每个 Token 3200 维 │ ▼ QLLaMAInternViT 本身不会生成文本。八、容易混淆的一点Contrastive Learning 后得到的是一个图片向量Image Embedding为什么这里又说输出的是 Patch Tokens其实这是两个不同阶段。训练 Contrastive Learning 时为了计算图文相似度需要一个全局图片表示。因此196 × 3200 → Pooling / CLS Token → 1 × 3200然后和文本向量计算 Contrastive Loss。作为 Vision Encoder 使用时不会只保留一个向量而是保留196 × 3200全部 Patch Tokens。因为后面的 QLLaMA 需要看到所有局部区域的信息否则很多细节都会丢失。本章总结InternViT-6B 的训练可以概括为两个阶段Stage 1ImageNet 分类学习基础视觉能力 ▼ Stage 2Contrastive Learning学习图文语义对齐最终得到的 InternViT 不仅具备强大的视觉表示能力还能输出完整的 Patch Tokens为后续 QLLaMA 提供丰富的视觉信息。一个需要说明的地方之前学习的CLIP、BLIP、BLIP-2、LLaVA几乎都是直接使用现成的 CLIP ViT。而InternVL 的不同之处CLIP主要关注如何利用已经训练好的视觉编码器。InternVL从零开始训练一个更大的视觉编码器(InternViT-6B)再用于后续视觉-语言对齐。因此InternVL 的工作量实际上比 LLaVA、BLIP-2 更大它不仅提出了新的多模态框架还构建了自己的视觉基础模型。6. QLLaMA为什么要用 LLaMA 代替 Q-Former一、回顾 BLIP-2 的 Q-FormerBLIP-2Image |ViT ▼ Patch Tokens |Q-Former32个Learnable Queries ▼ 32个Query Features ▼ LLMBLIP-2冻结ViT、LLM训练Q-Former目的让一个新的桥梁学会连接视觉和语言。InternVL冻结 InternViT、LLaMA训练Cross-Attention目的让视觉信息进入语言模型。不要重新训练已经很强的基础模型而是在它们之间学习一个新的连接方式。二、 Q-Former 的问题1、容量太小整个系统是Vision Encoder ≈6B → Q-Former 188M → LLM 13B一个不到两亿参数的模块要完成两个超大模型之间的信息转换容量明显不足。既要理解视觉又要理解语言还要完成两者之间的映射这个任务太重了。2、语言能力有限Q-Former 虽然有 Transformer 结构但它不是一个真正的语言模型。如果给它一句文本Q-Former 本身并不知道什么是语法、上下文、语言推理。这些能力都来自后面的 LLM。因此Q-Former 更像一个特征提取器而不是语言理解模块。把视觉能力接入语言模型而不是重塑语言模型。三、作者提出新的思路作者想既然最后一定要进入 LLM为什么不用一个已经具有语言能力的模型来做中间层于是提出QLLaMA可以理解为一个由预训练的LLaMA 初始化并加入 Cross-Attention的语言模型。LLaMA 已经拥有很强的语言能力不希望重新学习语言。只需要让 LLaMA 学会看图片即可。四、Cross-Attention1、插入位置QLLaMA 原来只有Input → Self-Attention → MLP现在变成Input Queries → Self-Attention → Cross-Attention → MLP Query之间交流 读取图像Patch2、作用InternViT 输出 196个 Patch TokensQLLaMA 内部有96个 Learnable QueriesCross-Attention 用96个 Queries 去查询Query196个 Patch Tokens得到新的 Query Features。训练过程中主要学习两个问题(1)每个 Query 应该关注哪些 Patch如Query1主体、 Query2背景、Query3文字区域(2)如何融合这些信息如果Patch12、Patch45、Patch98都属于猫Cross-Attention 会学习如何把它们融合成猫这一视觉语义。因此Cross-Attention 本质上是在学习视觉信息的读取方式。3、为什么先 Self-Attention再 Cross-Attention顺序和 BLIP-2 一致。96个Query都是随机初始化的经过Self-Attention它们可以互相交换信息。例如Query1我准备关注主体。 Query2那我关注背景。让不同 Query 学会分工而不是所有 Query 都关注同一块区域。然后再去读取图片送入 Cross-Attention 的是已经完成初步协作的 Query。4、为什么只训练Cross-Attention因为预训练 LLaMA 已经拥有很强的语言能力但如果输入patch tokens它完全不知道这些向量代表什么目标不是重新训练一个语言模型而是让它学会理解视觉特征。需要学习的是怎样把 Patch Tokens 中的信息读出来。因为缺少的只是视觉输入接口而 Cross-Attention 就是这个接口。五、QLLaMA 输出什么QLLaMA输出的是96 个 Query Features【或者说visual tokens】96 × Hidden Size这些 Query Feature 已经融合了视觉信息。位于 LLaMA 的语言空间。后面的 Decoder LLM 可以直接理解。流程Image │InternViT ▼ 196 × 3200 Patch Tokens │QLLaMA 96 Queries Cross-Attention ▼ 96 Query Features │LLM Decoder ▼ Text在生成本质上它是 Query Features查询特征但在给后续语言模型使用的角色上它是 Visual Tokens。1. 从“提取过程”看它是 Query FeaturesQLLaMA或类似的 Q-Former输出结果Query 向量与图像patch特征 Cross-Attention。因此QLLaMA 输出的这组向量在网络内部的本质就是融合了视觉语义后的 Query Features。2. 从“下游使用”看它充当 Visual Tokens输入 LLM时在 Vicuna 看来它并不关心这些向量是如何计算来的它只把这 96 个向量当成96 个代表图像信息的 Token与用户输入的文本 Token在序列维度拼接在一起送入 Transformer“这组特征是怎么来的”Query Features更准确“这组特征在 LLM 里用来干嘛”Visual Tokens更直观。两者描述的是同一组数据在不同阶段和视角下的属性。六、QLLaMA 与 Q-Former 的本质区别QLLaMA并不是更大的 Q-FormerQ-FormerQLLaMA自己训练的小 Transformer基于预训练 LLaMA主要学习视觉查询同时具有完整语言能力参数约 188M参数约 8B更偏向视觉桥接模块更偏向语言中间层Language Middleware最大的区别在于Q-Former 是一个为了连接 ViT 和 LLM 而设计的新模块QLLaMA 本质上就是一个 LLaMA只是额外获得了读取图像的能力。所以论文把它称为Language Middleware语言中间层。本章总结QLLaMA 的核心思想可以概括为小型 Q-Former 很难承担视觉与语言之间的大规模对齐任务直接以预训练 LLaMA 为基础在Transformer Block 中加入 Cross-Attention既保留强大的语言建模能力又能读取 InternViT 输出的视觉特征从而成为连接视觉模型与语言模型的语言中间层。QLLaMA 的训练策略可以概括为没有重新训练整个 LLaMA冻结 InternViT 和 LLaMA 原有参数仅优化新加入的 Cross-Attention 层使其学习如何从 InternViT 输出的 Patch Tokens 中提取视觉信息。既保留了 LLaMA 的语言能力又以较小的训练代价完成了视觉-语言融合。7. 为什么 QLLaMA 后面还需要一个 LLM一、先看整个网络论文的整体流程Image │InternViT ▼ Patch Tokens │QLLaMA视觉-语言对齐 ▼ Visual Tokens │LLM DecoderVicuna / LLaMA ▼ AnswerQLLaMA 和后面的 LLaMA承担的任务完全不同。二、QLLaMA 负责什么它主要负责把视觉特征转换成语言模型能够理解的表示。QLLaMA负责完成视觉空间 → 语言空间而不是语言 → 文本三、真正生成句子的是谁LLM Decoder如Vicuna负责生成文本。它看到的是Visual Tokens Human Question然后开始Predict Token1 → Predict Token2 → Predict Token3 → .....直到EOS因此负责下一词预测Next Token Prediction的是最后的 Decoder不是 QLLaMA。四、为什么不让 QLLaMA 自己生成句子作者主要有两个考虑。原因一方便替换不同 LLM如果QLLaMA 自己生成那么整个系统只能使用 InternViT QLLaMA以后如果Vicuna、InternLM、ChatGLM都要重新训练。把视觉理解和语言生成拆开整个系统更加灵活。原因二职责分离作者希望每个模块只负责一种任务。InternViT负责理解图片QLLaMA负责理解图片 → 转换到语言空间LLM负责推理、回答、聊天、生成文本每个模块职责更加明确。五、和 LLaVA 的区别LLaVA InternVLImage Image │CLIP ViT │InternViT ▼ ▼ │Linear Projection │QLLaMA ▼ ▼ Visual Tokens Visual Tokens │ │ ▼ ▼ Vicuna VicunaLLaVAVisual Tokens 来自一个 MLP。InternVLVisual Tokens来自一个完整的 LLaMA。InternVL 得到的 Visual Tokens 更加符合语言空间。六、这一节真正想表达什么InternVL用了两个 LLaMA基础语言模型但是作用完全不同。QLLaMA在每层 Transformer Block 中增加了Cross-Attention的LLaMA能读取图片的 LLaMAVicuna经过指令微调的 LLaMA有聊天能力的 LLaMAQLLaMA视觉语言对齐Vicuna文本生成图片 → 翻译 → 作家 QLLaMALLM Decoder本章总结QLLaMA 不是最终负责聊天的大语言模型是一个语言中间层Language Middleware。QLLaMA 利用预训练 LLaMA 的语言表示能力将 InternViT 提取的视觉特征转换为语言空间中的 Visual Tokens。LLM Decoder完成推理和文本生成。两者分工明确InternVL 既保留了强大的视觉-语言对齐能力又能灵活接入不同的大语言模型。8. 实验一、视觉任务1. 实验目的回答InternViT-6B 作为视觉编码器到底强不强单独评估 InternViT作者希望证明训练出来的 Vision Foundation Model 本身就是 SOTA。2. 为什么先做视觉任务论文这里的逻辑是先证明InternViT 很强再证明InternViT 对多模态也有帮助否则如果最后多模态性能很好可能会被质疑是不是因为 Vicuna 更强或者是不是因为训练数据更多所以作者首先证明即使不接语言模型InternViT 本身已经超过很多 ViT。3. 实验涉及哪些视觉任务论文主要测试了图像分类、目标检测、语义分割、Self-supervised / Dense Prediction 四类经典视觉任务。目的都是为了验证InternViT 是否能够迁移到不同视觉任务。4. 为什么这些实验重要作者想说明InternViT 不是为了聊天专门训练出来而是一个真正的Vision Foundation Model即使不用语言模型InternViT也能在各类视觉任务上取得优秀性能。说明InternViT 学到的是通用视觉表示General Visual Representation而不仅仅是为了图文对齐服务。本节总结这一部分实验的目标只有一个验证 InternViT-6B 是否是一个优秀的视觉基础模型。因此论文首先在多个经典视觉任务分类、检测、语义分割等上进行评估。如果 InternViT 能在这些任务上取得领先性能就说明它不仅适用于多模态任务本身也具有很强的视觉表示能力为后续的视觉-语言模型提供了坚实的基础。二、视觉-语言任务单独验证InternViT而是评估整个 InternVL在视觉语言任务上的能力也就是视觉编码器、QLLaMA 和语言模型协同工作后的整体表现。作者主要测试了四类典型任务覆盖了视觉语言模型最核心的几种应用场景。① Zero-shot Image Classification这里不再训练任何分类器直接利用图文相似度完成分类更加考验模型的视觉和语言对齐能力。② Zero-shot Video Classification将模型迁移到视频分类任务直接利用图像编码能力对视频帧进行编码再融合多个帧的信息完成分类因此主要考察模型的泛化能力。实验结果显示无论是单帧还是多帧输入InternVL-C 在 Kinetics-400、600 和 700 三个数据集上都超过了现有方法说明模型不仅适用于静态图像也能够较好地理解视频内容。③ Zero-shot Image-Text Retrieval评估图文检索能力。图文检索需要模型将图片和文本映射到同一个特征空间使得正确的图片和文本距离更近是衡量视觉语言对齐质量最直接的任务之一。④ Zero-shot Image Captioning测试模型的零样本图像描述能力主要验证QLLaMA 是否具备直接生成自然语言描述的能力。模型没有针对目标数据集进行专门训练而是直接生成图片描述。三、多模态对话除了传统的视觉语言任务如分类、检索和图像描述外作者进一步评估了InternVL-Chat在多模态对话任务上的表现。实验采用了两个主流评测基准MMEMultiModal Evaluation包含14 个子任务主要评估模型的视觉感知能力Perception和认知推理能力Cognition。POPEPolling-based Object Probing Evaluation用于评估模型是否会产生目标幻觉Object Hallucination即回答中是否会凭空描述图片中不存在的物体。实验结果表示在相近的可训练参数规模Trainable Parameters下InternVL-Chat在MME和POPE两项基准上均取得了优于已有方法的性能说明其不仅具有较强的视觉理解能力还能有效减少多模态对话中的幻觉问题在真实应用场景中表现出更好的综合能力。