【多模态实战系列·第 03 篇】LLaVA视觉指令微调·多模态对话·视觉 LLM——多模态的ChatGPT 时刻系列回顾第 01 篇 CLIP 定义了图文对齐的基本范式第 02 篇 BLIP-2 用 Q-Former 高效桥接视觉与语言。但 BLIP-2 有一个根本局限它不是对话模型——它只能做 VQA视觉问答和 Captioning图像描述不能像 ChatGPT 一样进行多轮对话、遵循复杂指令、进行视觉推理。2023 年威斯康星大学麦迪逊分校的 Liu 等人发表了LLaVALarge Language-and-Vision Assistant用最简洁的架构实现了多模态对话冻结 CLIP ViT 2 层 MLP 投影 微调 LLM。LLaVA 的核心创新不是架构它比 BLIP-2 更简单而是视觉指令微调Visual Instruction Tuning——用 GPT-4 生成多模态指令数据让 LLM 学会看图对话。LLaVA 证明了数据质量 模型架构——用 15 万条高质量指令数据微调 7B LLM就能在多模态推理任务上接近 GPT-4V 的水平。LLaVA 之后LLaVA-1.5、LLaVA-NeXT、LLaVA-OneVision 持续演进定义了开源多模态 LLM 的范式。InternVL、Qwen-VL、PhiVision 等模型都受其影响。今天我们从架构设计、视觉指令微调到能力与影响彻底掌握 LLaVA。 文章目录️ 一、架构设计ViT MLP LLM 三段式 二、视觉指令微调用 GPT-4 教 LLM 看图 三、能力、演进与影响从 LLaVA 到开源多模态生态️ 一、架构设计ViT MLP LLM 三段式1.1 最简洁的多模态对话架构LLaVA 的架构可以用三个词概括ViT MLP LLM。没有 Q-Former 的信息瓶颈没有 Cross-Attention 的复杂交互——LLaVA 用最直接的方式连接视觉和语言。图像 ──→ CLIP ViT(冻结) ──→ Patch特征 ──→ MLP投影(训练) ──→ 视觉Token ──→ LLM(微调) ──→ 文本回答 ↑ 文本指令 ──→ Tokenizer ──→ 文本Token ────────────────────────────────────────────────┘视觉编码器CLIP ViT直接复用 CLIP 的 ViT-L/14336×336 输入完全冻结。ViT 将图像切分为 14×14 的 Patch经过 Transformer 编码后输出 576 个 Patch 特征向量24×24 网格每个向量维度 1024。投影层2 层 MLP这是 LLaVA 架构中最关键也最简洁的部分——一个 2 层 MLP将 ViT 输出的 1024 维 Patch 特征映射到 LLM 的嵌入维度如 4096 维。MLP 用 GELU 激活函数中间层维度与输入维度一致。投影后的每个 Patch 特征就是一个视觉 Token——LLM 把它当作普通文本 Token 一样处理。语言模型LLMLLaVA 使用 Vicuna基于 LLaMA 微调的对话模型作为 LLM。视觉 Token 和文本 Token 拼接后一起输入 LLMLLM 自回归地生成回答。1.2 为什么 MLP 投影就够了BLIP-2 用了复杂的 Q-Former188M 参数来桥接视觉和语言LLaVA 只用了 2 层 MLP~20M 参数——为什么更简单的架构反而效果更好关键差异在于训练策略BLIP-2 冻结 LLM只训练 Q-Former——所以 Q-Former 必须承担翻译的全部责任需要足够复杂。LLaVA 微调 LLM——LLM 自己学会了理解视觉 Token投影层只需要做简单的维度映射。BLIP-2: ViT → Q-Former(翻译) → 冻结LLM(只读) LLaVA: ViT → MLP(映射) → 微调LLM(自己学理解)这就像学外语BLIP-2 是同声传译模式Q-Former 翻译给 LLM 听LLaVA 是沉浸式学习模式LLM 自己学会看图。后者更自然也更强大。1.3 视觉 Token 的处理LLaVA-1.5 使用 CLIP ViT-L/14336输出 24×24576 个 Patch 特征。这些特征经过 MLP 投影后变成 576 个视觉 Token和文本 Token 拼接输入序列: [视觉Token_1, 视觉Token_2, ..., 视觉Token_576, 文本Token_1, 文本Token_2, ...]576 个视觉 Token 占据了相当大的序列长度LLM 上下文窗口 2048 中占 28%但 LLaVA-1.5 没有做压缩——每个 Patch 都保留了。LLaVA-NeXT 引入了动态池化Pooling将 576 个 Token 压缩为更少的数量在保持性能的同时降低计算成本。1.4 LLaVA 架构演进版本视觉编码器投影层LLM分辨率关键改进LLaVA-1.5CLIP ViT-L/142层MLPVicuna-7B/13B336×336基础版LLaVA-NeXTCLIP ViT-L/14MLP动态池化LLaMA-8B/70B336~672AnyRes高分辨率LLaVA-OneVisionSigLIP ViT-SO400MMLPAnyResQwen2-7B/72B任意视频多图单图统一 二、视觉指令微调用 GPT-4 教 LLM 看图2.1 核心创新视觉指令数据LLaVA 最大的贡献不是架构而是**视觉指令微调Visual Instruction Tuning**的范式——用 GPT-4 生成多模态指令数据让 LLM 学会看图对话。在 LLaVA 之前多模态模型的训练数据主要是图像-文本对如 COCO Captions——模型学会了描述图像但不会回答问题、遵循指令、进行推理。LLaVA 的洞察是要让模型学会对话就必须用对话数据训练。2.2 用 GPT-4 生成指令数据LLaVA 的指令数据构建流程极其巧妙——用 GPT-4 作为教师生成多模态对话数据输入一张图像 图像的文本描述来自 COCO Captions 等Prompt 模板将图像描述和精心设计的 Prompt 模板组合让 GPT-4 生成多种类型的指令数据给定一张图片的描述{caption} 请生成以下类型的对话 1. 对话型(Conversation)关于图片内容的问答 2. 详细描述(Detail)对图片的详细描述 3. 复杂推理(Complex)需要逻辑推理的问题输出GPT-4 生成三类指令数据类型数量示例对话型58KQ: “图片里有什么” A: “图片中有一只橘猫坐在沙发上…”详细描述23KQ: “描述这张图片的细节” A: “这张图片展示了一个阳光明媚的下午…”复杂推理47KQ: “为什么这个人要打伞” A: “从图片中可以看到天空阴沉且正在下雨…”LLaVA-1.5 的数据扩展LLaVA-1.5 将指令数据从 15 万扩展到 66.5 万增加了 OCR、图表、文档、代码等领域的指令数据大幅提升了模型的通用性。2.3 两阶段训练LLaVA 的训练分为两个阶段与 BLIP-2 类似但更简洁Stage 1特征对齐预训练目标让 MLP 投影层学会把视觉特征映射到 LLM 的语言空间训练组件只训练 MLP 投影层冻结 ViT 和 LLM数据595K 图文对CC3M COCO SBU VG训练方式图像描述任务——给定图像生成描述文本训练成本8×A100 约 1-2 小时# Stage 1: 只训练投影层model.vision_tower.requires_grad_(False)# 冻结ViTmodel.llm.requires_grad_(False)# 冻结LLMmodel.mm_projector.requires_grad_(True)# 训练MLPStage 2视觉指令微调目标让 LLM 学会看图对话、遵循指令、进行推理训练组件训练 MLP 投影层 LLM冻结 ViT数据150KLLaVA-1.5 扩展到 665K视觉指令数据训练方式多模态对话任务——给定图像指令生成回答训练成本8×A100 约 20-40 小时# Stage 2: 训练投影层LLMmodel.vision_tower.requires_grad_(False)# 冻结ViTmodel.llm.requires_grad_(True)# 微调LLMmodel.mm_projector.requires_grad_(True)# 训练MLP2.4 为什么两阶段有效Stage 1 的作用MLP 投影层是随机初始化的——如果直接用指令数据训练LLM 会收到噪声视觉 Token学不到有用的东西。Stage 1 先用大量图文对让 MLP 学会基本的视觉-语言映射确保视觉 Token 对 LLM 来说可理解。Stage 2 的作用MLP 已经能产生可理解的视觉 Token 后LLM 开始学习如何利用这些视觉信息来回答问题、遵循指令。指令数据的质量和多样性决定了模型的上限。2.5 代码实战LLaVA 推理fromtransformersimportLlavaNextProcessor,LlavaNextForConditionalGenerationfromPILimportImageimporttorch# 加载模型和处理器processorLlavaNextProcessor.from_pretrained(llava-hf/llava-v1.6-mistral-7b-hf)modelLlavaNextForConditionalGeneration.from_pretrained(llava-hf/llava-v1.6-mistral-7b-hf,torch_dtypetorch.float16,device_mapauto)# 加载图像imageImage.open(example.jpg)# 构造输入conversation[{role:user,content:[{type:image},{type:text,text:请描述这张图片中的场景并分析可能发生的事情。},],},]promptprocessor.apply_chat_template(conversation,add_generation_promptTrue)inputsprocessor(imagesimage,textprompt,return_tensorspt).to(model.device)# 生成回答outputmodel.generate(**inputs,max_new_tokens512)answerprocessor.decode(output[0],skip_special_tokensTrue)print(answer) 三、能力、演进与影响从 LLaVA 到开源多模态生态3.1 LLaVA 的核心能力LLaVA 在多模态推理任务上展现了强大的能力接近 GPT-4V 的水平视觉理解图像描述、目标识别、OCR、图表理解。LLaVA 可以准确描述图像内容识别图中的物体和文字解读图表数据。视觉推理逻辑推理、数学推理、代码生成、常识推理。LLaVA 不仅能看到图像内容还能理解并推理——比如看到一个人在雨中打伞能推理出因为下雨。多轮对话LLaVA 支持多轮对话可以追问细节、修正理解、深入分析。这是 BLIP-2 等非对话模型无法做到的。3.2 性能对比基准LLaVA-1.5 7BLLaVA-1.5 13BLLaVA-NeXT 72BGPT-4VMME(感知)1510153016301920MMBench64.367.783.388.2SEED-Bench58.661.676.081.2MM-Vet31.136.163.876.2ScienceQA66.871.686.388.9TextVQA58.261.382.078.0LLaVA-NeXT 72B 在多个基准上接近 GPT-4V证明了开源多模态 LLM 的可行性。3.3 LLaVA 演进路线LLaVA-1.52023.10基础版——ViT-L/14 2层MLP Vicuna-7B/13B336×336 分辨率665K 指令数据。定义了 ViTMLPLLM 的基本范式。LLaVA-NeXT2024.1高分辨率版——引入 AnyRes 机制支持 336×336 到 672×672 的动态分辨率。AnyRes 将高分辨率图像切分为多个 336×336 的子图分别编码后拼接。同时引入 LoRA 微调 LLM降低训练成本。支持 LLaMA-8B/70B。LLaVA-OneVision2024.9统一版——用 SigLIP 替代 CLIP ViT支持任意分辨率输入。最重要的改进是统一了单图、多图、视频三种输入——同一个模型可以处理一张图片、多张图片、或一段视频。基于 Qwen2-7B/72B。3.4 LLaVA 的影响定义开源多模态 LLM 范式LLaVA 的影响力远超它本身的性能——它定义了开源多模态 LLM 的范式架构范式ViT 投影层 LLM 成为标准架构。InternVL、Qwen-VL、PhiVision、Idefics、MiniGPT-4 都采用了类似的架构。训练范式视觉指令微调成为标配。用 GPT-4V 生成指令数据、两阶段训练对齐指令微调成为多模态 LLM 的标准训练流程。数据范式LLaVA-CC665K 指令数据集被广泛使用和扩展。数据质量 数据量成为共识。评估范式MMBench、MM-Vet、MME 等基准成为多模态 LLM 的标准评估集。3.5 LLaVA 的局限幻觉问题LLaVA 有时会看到图中不存在的东西——比如图中没有猫但模型说图中有一只猫。这是多模态 LLM 的通病源于 LLM 的语言先验——LLM 倾向于生成语言上合理但视觉上不存在的内容。细粒度理解不足对于需要精确空间理解的任务如计数、定位LLaVA 的表现仍有不足。576 个 Patch Token 可能丢失了细粒度的空间信息。高分辨率计算成本LLaVA-NeXT 的 AnyRes 机制虽然支持高分辨率但计算成本随分辨率平方增长——4 倍分辨率意味着 16 倍计算量。视频理解有限LLaVA-1.5 和 LLaVA-NeXT 对视频的理解有限LLaVA-OneVision 才原生支持视频但效果仍有提升空间。多模态实战系列进度篇号主题核心内容状态01CLIP原理对比学习/双编码器/零样本迁移✅02BLIP-2Q-Former/视觉-语言桥接/高效预训练✅03LLaVA本文视觉指令微调/多模态对话/视觉LLM✅04图文对齐对齐方法演进/从全局到区域⏳ 下一篇05多模态RAG图文混合检索/知识增强待写06视频理解时序空间/长视频/视频QA待写07音频理解语音声音/多模态融合待写08工业应用落地实战/端侧部署/业务集成待写一句话总结LLaVA 三大维度架构设计ViTMLPLLM三段式——冻结CLIP ViT提取576个Patch特征/2层MLP投影映射到LLM嵌入空间/微调Vicuna/LLaMA处理视觉文本Token。vs BLIP-2LLaVA更简洁但微调LLM所以更强。视觉Token576个Patch特征经MLP投影后作为LLM输入。LLaVA的核心用最简洁的架构实现多模态对话、视觉指令微调用GPT-4生成指令数据——对话型58K/详细描述23K/复杂推理47K。两阶段训练——Stage1特征对齐只训练MLP 595K图文对/Stage2指令微调训练MLPLLM 150K-665K指令数据。数据质量模型架构——用15万条高质量指令数据微调7B LLM接近GPT-4V水平。LLaVA的训练哲学先对齐再指令数据质量决定上限、能力与影响视觉理解视觉推理多轮对话。LLaVA-1.5→LLaVA-NeXT→LLaVA-OneVision持续演进。定义开源多模态LLM范式——ViT投影LLM架构/视觉指令微调/数据质量优先。局限幻觉/细粒度不足/高分辨率成本/视频有限。LLaVA的历史地位多模态的ChatGPT时刻让多模态对话从研究走向实用。参考链接Visual Instruction Tuning (LLaVA) - NeurIPS 2023Improved Baselines with Visual Instruction Tuning (LLaVA-1.5)LLaVA-NeXT: Improved Reasoning on High-Resolution ImagesLLaVA-OneVisionLLaVA GitHub
【多模态实战系列·第 03 篇】LLaVA:视觉指令微调·多模态对话·视觉 LLM——多模态的“ChatGPT 时刻“
发布时间:2026/6/2 6:18:59
【多模态实战系列·第 03 篇】LLaVA视觉指令微调·多模态对话·视觉 LLM——多模态的ChatGPT 时刻系列回顾第 01 篇 CLIP 定义了图文对齐的基本范式第 02 篇 BLIP-2 用 Q-Former 高效桥接视觉与语言。但 BLIP-2 有一个根本局限它不是对话模型——它只能做 VQA视觉问答和 Captioning图像描述不能像 ChatGPT 一样进行多轮对话、遵循复杂指令、进行视觉推理。2023 年威斯康星大学麦迪逊分校的 Liu 等人发表了LLaVALarge Language-and-Vision Assistant用最简洁的架构实现了多模态对话冻结 CLIP ViT 2 层 MLP 投影 微调 LLM。LLaVA 的核心创新不是架构它比 BLIP-2 更简单而是视觉指令微调Visual Instruction Tuning——用 GPT-4 生成多模态指令数据让 LLM 学会看图对话。LLaVA 证明了数据质量 模型架构——用 15 万条高质量指令数据微调 7B LLM就能在多模态推理任务上接近 GPT-4V 的水平。LLaVA 之后LLaVA-1.5、LLaVA-NeXT、LLaVA-OneVision 持续演进定义了开源多模态 LLM 的范式。InternVL、Qwen-VL、PhiVision 等模型都受其影响。今天我们从架构设计、视觉指令微调到能力与影响彻底掌握 LLaVA。 文章目录️ 一、架构设计ViT MLP LLM 三段式 二、视觉指令微调用 GPT-4 教 LLM 看图 三、能力、演进与影响从 LLaVA 到开源多模态生态️ 一、架构设计ViT MLP LLM 三段式1.1 最简洁的多模态对话架构LLaVA 的架构可以用三个词概括ViT MLP LLM。没有 Q-Former 的信息瓶颈没有 Cross-Attention 的复杂交互——LLaVA 用最直接的方式连接视觉和语言。图像 ──→ CLIP ViT(冻结) ──→ Patch特征 ──→ MLP投影(训练) ──→ 视觉Token ──→ LLM(微调) ──→ 文本回答 ↑ 文本指令 ──→ Tokenizer ──→ 文本Token ────────────────────────────────────────────────┘视觉编码器CLIP ViT直接复用 CLIP 的 ViT-L/14336×336 输入完全冻结。ViT 将图像切分为 14×14 的 Patch经过 Transformer 编码后输出 576 个 Patch 特征向量24×24 网格每个向量维度 1024。投影层2 层 MLP这是 LLaVA 架构中最关键也最简洁的部分——一个 2 层 MLP将 ViT 输出的 1024 维 Patch 特征映射到 LLM 的嵌入维度如 4096 维。MLP 用 GELU 激活函数中间层维度与输入维度一致。投影后的每个 Patch 特征就是一个视觉 Token——LLM 把它当作普通文本 Token 一样处理。语言模型LLMLLaVA 使用 Vicuna基于 LLaMA 微调的对话模型作为 LLM。视觉 Token 和文本 Token 拼接后一起输入 LLMLLM 自回归地生成回答。1.2 为什么 MLP 投影就够了BLIP-2 用了复杂的 Q-Former188M 参数来桥接视觉和语言LLaVA 只用了 2 层 MLP~20M 参数——为什么更简单的架构反而效果更好关键差异在于训练策略BLIP-2 冻结 LLM只训练 Q-Former——所以 Q-Former 必须承担翻译的全部责任需要足够复杂。LLaVA 微调 LLM——LLM 自己学会了理解视觉 Token投影层只需要做简单的维度映射。BLIP-2: ViT → Q-Former(翻译) → 冻结LLM(只读) LLaVA: ViT → MLP(映射) → 微调LLM(自己学理解)这就像学外语BLIP-2 是同声传译模式Q-Former 翻译给 LLM 听LLaVA 是沉浸式学习模式LLM 自己学会看图。后者更自然也更强大。1.3 视觉 Token 的处理LLaVA-1.5 使用 CLIP ViT-L/14336输出 24×24576 个 Patch 特征。这些特征经过 MLP 投影后变成 576 个视觉 Token和文本 Token 拼接输入序列: [视觉Token_1, 视觉Token_2, ..., 视觉Token_576, 文本Token_1, 文本Token_2, ...]576 个视觉 Token 占据了相当大的序列长度LLM 上下文窗口 2048 中占 28%但 LLaVA-1.5 没有做压缩——每个 Patch 都保留了。LLaVA-NeXT 引入了动态池化Pooling将 576 个 Token 压缩为更少的数量在保持性能的同时降低计算成本。1.4 LLaVA 架构演进版本视觉编码器投影层LLM分辨率关键改进LLaVA-1.5CLIP ViT-L/142层MLPVicuna-7B/13B336×336基础版LLaVA-NeXTCLIP ViT-L/14MLP动态池化LLaMA-8B/70B336~672AnyRes高分辨率LLaVA-OneVisionSigLIP ViT-SO400MMLPAnyResQwen2-7B/72B任意视频多图单图统一 二、视觉指令微调用 GPT-4 教 LLM 看图2.1 核心创新视觉指令数据LLaVA 最大的贡献不是架构而是**视觉指令微调Visual Instruction Tuning**的范式——用 GPT-4 生成多模态指令数据让 LLM 学会看图对话。在 LLaVA 之前多模态模型的训练数据主要是图像-文本对如 COCO Captions——模型学会了描述图像但不会回答问题、遵循指令、进行推理。LLaVA 的洞察是要让模型学会对话就必须用对话数据训练。2.2 用 GPT-4 生成指令数据LLaVA 的指令数据构建流程极其巧妙——用 GPT-4 作为教师生成多模态对话数据输入一张图像 图像的文本描述来自 COCO Captions 等Prompt 模板将图像描述和精心设计的 Prompt 模板组合让 GPT-4 生成多种类型的指令数据给定一张图片的描述{caption} 请生成以下类型的对话 1. 对话型(Conversation)关于图片内容的问答 2. 详细描述(Detail)对图片的详细描述 3. 复杂推理(Complex)需要逻辑推理的问题输出GPT-4 生成三类指令数据类型数量示例对话型58KQ: “图片里有什么” A: “图片中有一只橘猫坐在沙发上…”详细描述23KQ: “描述这张图片的细节” A: “这张图片展示了一个阳光明媚的下午…”复杂推理47KQ: “为什么这个人要打伞” A: “从图片中可以看到天空阴沉且正在下雨…”LLaVA-1.5 的数据扩展LLaVA-1.5 将指令数据从 15 万扩展到 66.5 万增加了 OCR、图表、文档、代码等领域的指令数据大幅提升了模型的通用性。2.3 两阶段训练LLaVA 的训练分为两个阶段与 BLIP-2 类似但更简洁Stage 1特征对齐预训练目标让 MLP 投影层学会把视觉特征映射到 LLM 的语言空间训练组件只训练 MLP 投影层冻结 ViT 和 LLM数据595K 图文对CC3M COCO SBU VG训练方式图像描述任务——给定图像生成描述文本训练成本8×A100 约 1-2 小时# Stage 1: 只训练投影层model.vision_tower.requires_grad_(False)# 冻结ViTmodel.llm.requires_grad_(False)# 冻结LLMmodel.mm_projector.requires_grad_(True)# 训练MLPStage 2视觉指令微调目标让 LLM 学会看图对话、遵循指令、进行推理训练组件训练 MLP 投影层 LLM冻结 ViT数据150KLLaVA-1.5 扩展到 665K视觉指令数据训练方式多模态对话任务——给定图像指令生成回答训练成本8×A100 约 20-40 小时# Stage 2: 训练投影层LLMmodel.vision_tower.requires_grad_(False)# 冻结ViTmodel.llm.requires_grad_(True)# 微调LLMmodel.mm_projector.requires_grad_(True)# 训练MLP2.4 为什么两阶段有效Stage 1 的作用MLP 投影层是随机初始化的——如果直接用指令数据训练LLM 会收到噪声视觉 Token学不到有用的东西。Stage 1 先用大量图文对让 MLP 学会基本的视觉-语言映射确保视觉 Token 对 LLM 来说可理解。Stage 2 的作用MLP 已经能产生可理解的视觉 Token 后LLM 开始学习如何利用这些视觉信息来回答问题、遵循指令。指令数据的质量和多样性决定了模型的上限。2.5 代码实战LLaVA 推理fromtransformersimportLlavaNextProcessor,LlavaNextForConditionalGenerationfromPILimportImageimporttorch# 加载模型和处理器processorLlavaNextProcessor.from_pretrained(llava-hf/llava-v1.6-mistral-7b-hf)modelLlavaNextForConditionalGeneration.from_pretrained(llava-hf/llava-v1.6-mistral-7b-hf,torch_dtypetorch.float16,device_mapauto)# 加载图像imageImage.open(example.jpg)# 构造输入conversation[{role:user,content:[{type:image},{type:text,text:请描述这张图片中的场景并分析可能发生的事情。},],},]promptprocessor.apply_chat_template(conversation,add_generation_promptTrue)inputsprocessor(imagesimage,textprompt,return_tensorspt).to(model.device)# 生成回答outputmodel.generate(**inputs,max_new_tokens512)answerprocessor.decode(output[0],skip_special_tokensTrue)print(answer) 三、能力、演进与影响从 LLaVA 到开源多模态生态3.1 LLaVA 的核心能力LLaVA 在多模态推理任务上展现了强大的能力接近 GPT-4V 的水平视觉理解图像描述、目标识别、OCR、图表理解。LLaVA 可以准确描述图像内容识别图中的物体和文字解读图表数据。视觉推理逻辑推理、数学推理、代码生成、常识推理。LLaVA 不仅能看到图像内容还能理解并推理——比如看到一个人在雨中打伞能推理出因为下雨。多轮对话LLaVA 支持多轮对话可以追问细节、修正理解、深入分析。这是 BLIP-2 等非对话模型无法做到的。3.2 性能对比基准LLaVA-1.5 7BLLaVA-1.5 13BLLaVA-NeXT 72BGPT-4VMME(感知)1510153016301920MMBench64.367.783.388.2SEED-Bench58.661.676.081.2MM-Vet31.136.163.876.2ScienceQA66.871.686.388.9TextVQA58.261.382.078.0LLaVA-NeXT 72B 在多个基准上接近 GPT-4V证明了开源多模态 LLM 的可行性。3.3 LLaVA 演进路线LLaVA-1.52023.10基础版——ViT-L/14 2层MLP Vicuna-7B/13B336×336 分辨率665K 指令数据。定义了 ViTMLPLLM 的基本范式。LLaVA-NeXT2024.1高分辨率版——引入 AnyRes 机制支持 336×336 到 672×672 的动态分辨率。AnyRes 将高分辨率图像切分为多个 336×336 的子图分别编码后拼接。同时引入 LoRA 微调 LLM降低训练成本。支持 LLaMA-8B/70B。LLaVA-OneVision2024.9统一版——用 SigLIP 替代 CLIP ViT支持任意分辨率输入。最重要的改进是统一了单图、多图、视频三种输入——同一个模型可以处理一张图片、多张图片、或一段视频。基于 Qwen2-7B/72B。3.4 LLaVA 的影响定义开源多模态 LLM 范式LLaVA 的影响力远超它本身的性能——它定义了开源多模态 LLM 的范式架构范式ViT 投影层 LLM 成为标准架构。InternVL、Qwen-VL、PhiVision、Idefics、MiniGPT-4 都采用了类似的架构。训练范式视觉指令微调成为标配。用 GPT-4V 生成指令数据、两阶段训练对齐指令微调成为多模态 LLM 的标准训练流程。数据范式LLaVA-CC665K 指令数据集被广泛使用和扩展。数据质量 数据量成为共识。评估范式MMBench、MM-Vet、MME 等基准成为多模态 LLM 的标准评估集。3.5 LLaVA 的局限幻觉问题LLaVA 有时会看到图中不存在的东西——比如图中没有猫但模型说图中有一只猫。这是多模态 LLM 的通病源于 LLM 的语言先验——LLM 倾向于生成语言上合理但视觉上不存在的内容。细粒度理解不足对于需要精确空间理解的任务如计数、定位LLaVA 的表现仍有不足。576 个 Patch Token 可能丢失了细粒度的空间信息。高分辨率计算成本LLaVA-NeXT 的 AnyRes 机制虽然支持高分辨率但计算成本随分辨率平方增长——4 倍分辨率意味着 16 倍计算量。视频理解有限LLaVA-1.5 和 LLaVA-NeXT 对视频的理解有限LLaVA-OneVision 才原生支持视频但效果仍有提升空间。多模态实战系列进度篇号主题核心内容状态01CLIP原理对比学习/双编码器/零样本迁移✅02BLIP-2Q-Former/视觉-语言桥接/高效预训练✅03LLaVA本文视觉指令微调/多模态对话/视觉LLM✅04图文对齐对齐方法演进/从全局到区域⏳ 下一篇05多模态RAG图文混合检索/知识增强待写06视频理解时序空间/长视频/视频QA待写07音频理解语音声音/多模态融合待写08工业应用落地实战/端侧部署/业务集成待写一句话总结LLaVA 三大维度架构设计ViTMLPLLM三段式——冻结CLIP ViT提取576个Patch特征/2层MLP投影映射到LLM嵌入空间/微调Vicuna/LLaMA处理视觉文本Token。vs BLIP-2LLaVA更简洁但微调LLM所以更强。视觉Token576个Patch特征经MLP投影后作为LLM输入。LLaVA的核心用最简洁的架构实现多模态对话、视觉指令微调用GPT-4生成指令数据——对话型58K/详细描述23K/复杂推理47K。两阶段训练——Stage1特征对齐只训练MLP 595K图文对/Stage2指令微调训练MLPLLM 150K-665K指令数据。数据质量模型架构——用15万条高质量指令数据微调7B LLM接近GPT-4V水平。LLaVA的训练哲学先对齐再指令数据质量决定上限、能力与影响视觉理解视觉推理多轮对话。LLaVA-1.5→LLaVA-NeXT→LLaVA-OneVision持续演进。定义开源多模态LLM范式——ViT投影LLM架构/视觉指令微调/数据质量优先。局限幻觉/细粒度不足/高分辨率成本/视频有限。LLaVA的历史地位多模态的ChatGPT时刻让多模态对话从研究走向实用。参考链接Visual Instruction Tuning (LLaVA) - NeurIPS 2023Improved Baselines with Visual Instruction Tuning (LLaVA-1.5)LLaVA-NeXT: Improved Reasoning on High-Resolution ImagesLLaVA-OneVisionLLaVA GitHub