一、一句话总结Take AwayLLaVA首次提出Visual Instruction Tuning视觉指令微调利用GPT-4自动生成视觉指令数据再利用CLIPVicuna训练出能够像ChatGPT一样理解图片并聊天的大模型。一句话理解让LLM学会看图聊天。之前的是指令微调现在是视觉指令/微调视觉指令与视觉相关的指令Instruction about an image而不是图片就是 Instruction。二、背景Motivation过去存在的问题2023年前大部分视觉模型都是图片 → CNN/ViT → 固定任务如图像分类、检测、分割、Caption这些模型不能聊天、不能理解复杂指令。例如帮我解释这张图为什么好笑Traditional caption models can only answer:A man is standing.而不能真正回答问题。与此同时ChatGPT已经证明Instruction Tuning 能让LLM拥有强大的泛化能力。作者提出把Instruction Tuning搬到Vision于是有了Visual Instruction Tuning三、主要贡献Contribution论文贡献主要有四点1、提出Visual Instruction Tuning首次把Instruction Tuning扩展到文本 → 图片文本2、提出自动生成视觉指令数据的方法。以前没有人标数据。现在GPT-4自动生成。3、提出LLaVA模型结构非常简单CLIP → Projection → Vicuna几乎没有复杂设计。4、提出新的BenchmarkLLaVA-Bench用于评价多模态聊天能力。四、核心思想Core Idea论文真正的创新其实不是模型。真正创新的是数据。一句话GPT-4负责造数据LLaVA负责学习。整个PipelineCOCO ↓ Caption ↓ GPT-4 ↓ Instruction Data ↓ Instruction Tuning ↓ LLaVA五、GPT-4如何生成数据第一步构造符号化输入GPT-4不会看图。所以不用图片而是把图片描述给GPT-4。作者用纯文本的“符号化表示”来替代图像向 GPT-4 输入了两种文本信息来“描述”图片Captions图注从不同角度描述画面里有什么提供语义上下文。Bounding boxes目标检测框坐标传入画面中物体的具体坐标如[x_min, y_min, x_max, y_max]和物体类别。这相当于把物体的空间位置关系用文本告诉了 GPT-4。通过这种方式纯文本的 GPT-4 就能在脑海中“勾勒”出图片的具体构图和内容。Captions (图注上下文):一只肥胖的橘猫整只趴在笔记本电脑的键盘正上方。一双人类的手悬空停在键盘前似乎进退两难。背景是一张略显杂乱的办公桌右上角放着一个咖啡杯。Bounding Boxes (空间位置):笔记本电脑:[0.1, 0.5, 0.9, 0.9](位于中下方大片区域)橘猫:[0.2, 0.4, 0.7, 0.8](坐标与电脑高度重叠且在电脑上方)人类的手:[0.3, 0.6, 0.6, 0.8](在猫和键盘的边缘交界处)咖啡杯:[0.8, 0.1, 0.9, 0.3](位于右上方)第二步结合少样本提示In-Cotext Learning在上面的输入之后还会塞给 GPT-4 几个人类手工写好的完美范例Seed Examples。 例如“你看遇到类似的数据人类是这样针对它写‘多轮对话’、‘详细描述’和‘复杂推理’的……请照猫画虎帮我把上面这只橘猫的图片也生成一套。”然后GPT-4开始生成各种问答。论文把生成的数据分成三类。第三步GPT-4批量产出例如Prompt长这样论文里给了模板下面是图片描述 Caption:Three people are loading luggage... Objects:person SUV luggage 请生成1. 多轮对话 2. 图片描述 3. 推理问题利用上述的符号化输入并结合少样本提示In-Context Learning即先给 GPT-4 喂几个高质量的人工标注样本作为范例作者让 GPT-4 批量生成了以下三种不同深度的指令数据多轮对话 (Conversation)模拟人类和视觉助手的真实聊天。问题围绕图片展开如有什么物体有几个在做什么它们之间什么位置关系。要求所有问题必须有确切答案不能瞎编。主要训练聊天能力GPT-4输出Q:他们准备做什么 A:准备旅行。再输出Q:为什么需要SUV A:因为有很多箱子。再输出Q:如果天气不好怎么办 A:......于是一张图片变成几十条Instruction。详细描述 (Detailed description)为了让模型学会对整张图片进行丰富、全面的叙述。作者设计了一组启发式的提示词让 GPT-4 针对每张图片随机抽取一个角度生成一段深入、长篇幅的视觉描述。复杂推理 (Complex reasoning)这是最重要的一类。前两类只关注“看到了什么”而这一类要求模型根据看到的视觉事实进行逻辑推理。例如看图解释为什么这个场景很好笑或者根据图中的线索推断下一步会发生什么这需要模型进行每一步都有严密逻辑的深度思考。Q:画面中的这个人现在面临什么困境请结合图中的线索一步步推导。A:画面中的人目前无法正常进行工作或打字。 我们可以通过以下线索进行推导首先空间坐标显示橘猫[0.2, 0.4, 0.7, 0.8]正压在笔记本电脑键盘[0.1, 0.5, 0.9, 0.9]的核心区域上。其次人类的双手停留在高处没有压下。这说明猫咪的体重和身体强行阻断了键盘的物理接触面。主人为了不惊扰猫咪或者单纯因为没地方下手只能将手悬空。因此可以推理出主人正处于一种被宠物打扰、哭笑不得且工作被迫中断的尴尬境地。论文共生成约15.8 万条视觉指令数据包括对话、详细描述和复杂推理三类。六、LLaVA模型结构模型其实非常简单。Image │ CLIP Encoder ▼ Visual Feature │ Projection Matrix ▼ Visual Tokens │ Vicuna ▼ Response为了证明数据比模型更重要保持模型简单只有一个Linear没有Cross Attention、Q-Former。CLIP输出1024维Vicuna输入Embedding。空间不同需要 Linear 对齐 Embedding公式Visual Feature → Linear → Language Embedding七、两阶段训练第一阶段Feature Alignment只训练Projection冻结CLIPVision Encoder、VicunaLanguage Model目的先把视觉Embedding映射到LLM空间。第二阶段Instruction Tuning开始更新Projection、VicunaCLIP依旧冻结。作者认为CLIP视觉能力已经足够强真正不会的是语言训练LLM即可这样速度快成本低。训练数据Stage1CC3M约59.5万图片文本对。Stage2GPT-4生成158K Instruction。八、实验结果作者做两个方向实验。实验1Visual Chat和BLIP-2、OpenFlamingo比较。结果LLaVA明显更会聊天。例如问Whats unusual?BLIP2A man...只是描述LLaVA会分析为什么奇怪。真正Follow Instruction。实验2ScienceQA结果LLaVA90.92%GPT4LLaVA92.53%刷新SOTA。九、论文消融实验Ablation论文做了很多实验。最重要几个① 不做Instruction Tuning性能暴跌。说明Instruction Data非常重要。② 去掉Reasoning Data性能下降。说明推理数据提升聊天能力。③ 不做Feature Alignment直接训练下降5%以上。说明Stage1很重要。④ 换CLIP最后一层Feature效果反而下降。作者认为倒数第二层细节更多最后一层太抽象。十、论文最大的创新GPT-4 自动生成 Visual Instruction Dataset。以前没有数据LLaVA解决数据问题。后来几乎所有多模态模型MiniGPT-4、InstructBLIP、LLaVA1.5、LLaVA-NeXT、Qwen-VL、InternVL 都采用 Instruction Data。LLaVA实际上定义了 Visual Instruction Tuning 这一研究方向。十一、论文不足Limitations作者也坦诚指出了几个限制依赖 GPT-4 生成数据数据质量与教师模型密切相关。视觉编码器CLIP冻结限制了视觉能力进一步提升。高分辨率细节识别较弱例如品牌、细小文字等容易出错。仍存在幻觉Hallucination有时会根据常识而不是图像内容回答。十二、论文知识框架思维导图LLaVA │ ┌─────────────────┴─────────────────┐ │ │ 数据创新 模型创新 │ │ GPT4生成视觉指令 CLIPLinearVicuna │ │ 三类数据 两阶段训练 │ │ ├──Conversation Stage1 Alignment ├──Description Stage2 Instruction └──Reasoning │ Visual Instruction Tuning │ 多模态Chat能力大幅提升 │ ScienceQA达到SOTA十三、问题总结问题核心回答LLaVA 最大贡献是什么提出 Visual Instruction Tuning并利用 GPT-4 自动生成视觉指令数据。LLaVA 为什么用两阶段训练第一阶段对齐视觉特征与语言嵌入,第二阶段进行端到端指令微调,训练更稳定。为什么冻结 CLIP利用其成熟的视觉表示能力,只需学习视觉到语言空间的映射,降低训练成本。为什么只用 Linear Projection用最简单的结构验证数据和指令微调的重要性而不是依赖复杂连接模块。LLaVA 与 BLIP-2 的主要区别BLIP-2 更侧重视觉-语言预训练而 LLaVA 强调基于指令数据的多轮对话与推理能力。为什么 LLaVA 能聊天因为它学习的是 GPT-4 生成的视觉指令跟随数据而不仅仅是图文配对数据。总体评价这篇论文最大的价值不在于提出了复杂的新网络结构而是在于证明了高质量视觉指令数据 指令微调可以显著提升多模态模型的交互和推理能力。这一思路影响了后续大量视觉语言模型的发展是理解现代多模态大模型的重要基础
LLaVA
一、一句话总结Take AwayLLaVA首次提出Visual Instruction Tuning视觉指令微调利用GPT-4自动生成视觉指令数据再利用CLIPVicuna训练出能够像ChatGPT一样理解图片并聊天的大模型。一句话理解让LLM学会看图聊天。之前的是指令微调现在是视觉指令/微调视觉指令与视觉相关的指令Instruction about an image而不是图片就是 Instruction。二、背景Motivation过去存在的问题2023年前大部分视觉模型都是图片 → CNN/ViT → 固定任务如图像分类、检测、分割、Caption这些模型不能聊天、不能理解复杂指令。例如帮我解释这张图为什么好笑Traditional caption models can only answer:A man is standing.而不能真正回答问题。与此同时ChatGPT已经证明Instruction Tuning 能让LLM拥有强大的泛化能力。作者提出把Instruction Tuning搬到Vision于是有了Visual Instruction Tuning三、主要贡献Contribution论文贡献主要有四点1、提出Visual Instruction Tuning首次把Instruction Tuning扩展到文本 → 图片文本2、提出自动生成视觉指令数据的方法。以前没有人标数据。现在GPT-4自动生成。3、提出LLaVA模型结构非常简单CLIP → Projection → Vicuna几乎没有复杂设计。4、提出新的BenchmarkLLaVA-Bench用于评价多模态聊天能力。四、核心思想Core Idea论文真正的创新其实不是模型。真正创新的是数据。一句话GPT-4负责造数据LLaVA负责学习。整个PipelineCOCO ↓ Caption ↓ GPT-4 ↓ Instruction Data ↓ Instruction Tuning ↓ LLaVA五、GPT-4如何生成数据第一步构造符号化输入GPT-4不会看图。所以不用图片而是把图片描述给GPT-4。作者用纯文本的“符号化表示”来替代图像向 GPT-4 输入了两种文本信息来“描述”图片Captions图注从不同角度描述画面里有什么提供语义上下文。Bounding boxes目标检测框坐标传入画面中物体的具体坐标如[x_min, y_min, x_max, y_max]和物体类别。这相当于把物体的空间位置关系用文本告诉了 GPT-4。通过这种方式纯文本的 GPT-4 就能在脑海中“勾勒”出图片的具体构图和内容。Captions (图注上下文):一只肥胖的橘猫整只趴在笔记本电脑的键盘正上方。一双人类的手悬空停在键盘前似乎进退两难。背景是一张略显杂乱的办公桌右上角放着一个咖啡杯。Bounding Boxes (空间位置):笔记本电脑:[0.1, 0.5, 0.9, 0.9](位于中下方大片区域)橘猫:[0.2, 0.4, 0.7, 0.8](坐标与电脑高度重叠且在电脑上方)人类的手:[0.3, 0.6, 0.6, 0.8](在猫和键盘的边缘交界处)咖啡杯:[0.8, 0.1, 0.9, 0.3](位于右上方)第二步结合少样本提示In-Cotext Learning在上面的输入之后还会塞给 GPT-4 几个人类手工写好的完美范例Seed Examples。 例如“你看遇到类似的数据人类是这样针对它写‘多轮对话’、‘详细描述’和‘复杂推理’的……请照猫画虎帮我把上面这只橘猫的图片也生成一套。”然后GPT-4开始生成各种问答。论文把生成的数据分成三类。第三步GPT-4批量产出例如Prompt长这样论文里给了模板下面是图片描述 Caption:Three people are loading luggage... Objects:person SUV luggage 请生成1. 多轮对话 2. 图片描述 3. 推理问题利用上述的符号化输入并结合少样本提示In-Context Learning即先给 GPT-4 喂几个高质量的人工标注样本作为范例作者让 GPT-4 批量生成了以下三种不同深度的指令数据多轮对话 (Conversation)模拟人类和视觉助手的真实聊天。问题围绕图片展开如有什么物体有几个在做什么它们之间什么位置关系。要求所有问题必须有确切答案不能瞎编。主要训练聊天能力GPT-4输出Q:他们准备做什么 A:准备旅行。再输出Q:为什么需要SUV A:因为有很多箱子。再输出Q:如果天气不好怎么办 A:......于是一张图片变成几十条Instruction。详细描述 (Detailed description)为了让模型学会对整张图片进行丰富、全面的叙述。作者设计了一组启发式的提示词让 GPT-4 针对每张图片随机抽取一个角度生成一段深入、长篇幅的视觉描述。复杂推理 (Complex reasoning)这是最重要的一类。前两类只关注“看到了什么”而这一类要求模型根据看到的视觉事实进行逻辑推理。例如看图解释为什么这个场景很好笑或者根据图中的线索推断下一步会发生什么这需要模型进行每一步都有严密逻辑的深度思考。Q:画面中的这个人现在面临什么困境请结合图中的线索一步步推导。A:画面中的人目前无法正常进行工作或打字。 我们可以通过以下线索进行推导首先空间坐标显示橘猫[0.2, 0.4, 0.7, 0.8]正压在笔记本电脑键盘[0.1, 0.5, 0.9, 0.9]的核心区域上。其次人类的双手停留在高处没有压下。这说明猫咪的体重和身体强行阻断了键盘的物理接触面。主人为了不惊扰猫咪或者单纯因为没地方下手只能将手悬空。因此可以推理出主人正处于一种被宠物打扰、哭笑不得且工作被迫中断的尴尬境地。论文共生成约15.8 万条视觉指令数据包括对话、详细描述和复杂推理三类。六、LLaVA模型结构模型其实非常简单。Image │ CLIP Encoder ▼ Visual Feature │ Projection Matrix ▼ Visual Tokens │ Vicuna ▼ Response为了证明数据比模型更重要保持模型简单只有一个Linear没有Cross Attention、Q-Former。CLIP输出1024维Vicuna输入Embedding。空间不同需要 Linear 对齐 Embedding公式Visual Feature → Linear → Language Embedding七、两阶段训练第一阶段Feature Alignment只训练Projection冻结CLIPVision Encoder、VicunaLanguage Model目的先把视觉Embedding映射到LLM空间。第二阶段Instruction Tuning开始更新Projection、VicunaCLIP依旧冻结。作者认为CLIP视觉能力已经足够强真正不会的是语言训练LLM即可这样速度快成本低。训练数据Stage1CC3M约59.5万图片文本对。Stage2GPT-4生成158K Instruction。八、实验结果作者做两个方向实验。实验1Visual Chat和BLIP-2、OpenFlamingo比较。结果LLaVA明显更会聊天。例如问Whats unusual?BLIP2A man...只是描述LLaVA会分析为什么奇怪。真正Follow Instruction。实验2ScienceQA结果LLaVA90.92%GPT4LLaVA92.53%刷新SOTA。九、论文消融实验Ablation论文做了很多实验。最重要几个① 不做Instruction Tuning性能暴跌。说明Instruction Data非常重要。② 去掉Reasoning Data性能下降。说明推理数据提升聊天能力。③ 不做Feature Alignment直接训练下降5%以上。说明Stage1很重要。④ 换CLIP最后一层Feature效果反而下降。作者认为倒数第二层细节更多最后一层太抽象。十、论文最大的创新GPT-4 自动生成 Visual Instruction Dataset。以前没有数据LLaVA解决数据问题。后来几乎所有多模态模型MiniGPT-4、InstructBLIP、LLaVA1.5、LLaVA-NeXT、Qwen-VL、InternVL 都采用 Instruction Data。LLaVA实际上定义了 Visual Instruction Tuning 这一研究方向。十一、论文不足Limitations作者也坦诚指出了几个限制依赖 GPT-4 生成数据数据质量与教师模型密切相关。视觉编码器CLIP冻结限制了视觉能力进一步提升。高分辨率细节识别较弱例如品牌、细小文字等容易出错。仍存在幻觉Hallucination有时会根据常识而不是图像内容回答。十二、论文知识框架思维导图LLaVA │ ┌─────────────────┴─────────────────┐ │ │ 数据创新 模型创新 │ │ GPT4生成视觉指令 CLIPLinearVicuna │ │ 三类数据 两阶段训练 │ │ ├──Conversation Stage1 Alignment ├──Description Stage2 Instruction └──Reasoning │ Visual Instruction Tuning │ 多模态Chat能力大幅提升 │ ScienceQA达到SOTA十三、问题总结问题核心回答LLaVA 最大贡献是什么提出 Visual Instruction Tuning并利用 GPT-4 自动生成视觉指令数据。LLaVA 为什么用两阶段训练第一阶段对齐视觉特征与语言嵌入,第二阶段进行端到端指令微调,训练更稳定。为什么冻结 CLIP利用其成熟的视觉表示能力,只需学习视觉到语言空间的映射,降低训练成本。为什么只用 Linear Projection用最简单的结构验证数据和指令微调的重要性而不是依赖复杂连接模块。LLaVA 与 BLIP-2 的主要区别BLIP-2 更侧重视觉-语言预训练而 LLaVA 强调基于指令数据的多轮对话与推理能力。为什么 LLaVA 能聊天因为它学习的是 GPT-4 生成的视觉指令跟随数据而不仅仅是图文配对数据。总体评价这篇论文最大的价值不在于提出了复杂的新网络结构而是在于证明了高质量视觉指令数据 指令微调可以显著提升多模态模型的交互和推理能力。这一思路影响了后续大量视觉语言模型的发展是理解现代多模态大模型的重要基础