一、从对齐到生成1.如何高效构建多模态生成能力CLIP通过对比学习让图像和文本在特征空间实现了对齐但这仅仅完成了“理解”的第一步。作为典型的双塔判别式模型CLIP更擅长做“给定候选文本算相似度”的检索/分类式判断而不是自由形式的文本生成所以它不能像语言模型那样直接对“画里有什么”这类开放式问题给出自然语言答案。为了突破这一局限我们需要赋予模型“开口说话”的能力在强大的语义基础上构建生成能力。为此DeepMind的Flamingo等先驱尝试了在冻结的视觉编码器与语言模型之间插入跨注意力等新模块并在海量交错图文数据上训练这些新增模块以实现强大的生成与对话能力。虽然效果惊艳但数据与训练成本并非普通实验室所能承受。因此我们可以换个思路既然我们手头已经有了“视觉地基ViT”和“语言大脑 LLM”能不能只训练一个轻量级的“适配器”把它们连起来呢Salesforce提出的BLIP-2正是这一思路的杰出代表。它采用Bootstrapping引导策略利用冻结的预训练图像编码器和LLM以极低的计算成本实现了强大的多模态能力。这个“四两拨千斤”效果的关键在于它设计了轻量级的Q-Former作为一个信息瓶颈从视觉特征中“萃取”出最关键的信息并“翻译”给LLM。如下图所示整个模型的训练如同在搭积木左侧是冻结的图像编码器负责“看”右侧是冻结的LLM负责“说”我们主要训练中间这个轻量级的Q-Former以及后续对接LLM的小映射层来进行高效的“传译”。2.Q-Former与两阶段预训练在原论文中Q-FormerQuerying Transformer是一个初始化自BERT-base的轻量级Transformer模块仅188M参数核心目标是连接冻结的视觉与语言模型。如下图所示Q-Former内部包含两个共享Self-Attention层的子模块。左侧路径论文中称为Image Transformer接收一组固定数量的可学习查询向量Learnable Queries作为输入通过每一层的Cross-Attention机制与冻结的图像编码器输出交互从海量的视觉特征中“萃取”出最精华的视觉信息右侧路径论文中称为Text Transformer则作为文本编码器或解码器处理文本输入。这种双塔共享权重的设计让Queries既能通过Cross-Attention学习视觉特征又能通过共享的Self-Attention与文本特征进行交互。由于32个Query的数量远小于原始图像特征的空间尺寸这种设计强制模型进行高强度的信息压缩构成了所谓的“信息瓶颈”确保传递给LLM的都是经过筛选的、与文本最相关的有效信息。为了确保Q-Former既能理解图像又能对接到LLMBLIP-2采用了两阶段预训练策略。1视觉-语言表征学习在此阶段图像编码器被冻结。为了让那一组可学习查询向量能够提取出既包含视觉信息又与文本对齐的特征Q-Former设计了三种预训练目标并利用特定的Attention Mask策略在同一个架构中同时优化它们。如下图所示首先是图文匹配ITM利用Bi-directional Mask允许Query和Text互相完全可见学习细粒度的图文对齐中间是图文生成ITG使用Multimodal Causal Mask这里Query可以相互注意但看不见Text而Text可以看见所有的Query和之前的Text用于引导基于图像的文本生成最后是图文对比学习ITC使用Uni-modal Mask让Query和Text互不可见专注于对齐整体的视觉和语言表征。这三种策略的结合确保了Q-Former输出的Query Embeddings包含了最精华的视觉语义信息。2视觉-语言生成学习这一阶段LLM也被冻结。为了将Q-Former提取的视觉特征注入到LLM中BLIP-2引入了一个全连接层将Query EmbeddingsZ线性映射到LLM的文本Embedding维度。这些映射后的向量充当了“软视觉提示”直接拼接在文本Embedding之前。如下图所示具体对接策略取决于LLM的架构。若对接Decoder-based LLM如下图上半部分如OPTQ-Former的输出作为前缀由于Decoder是单向注意力它能看见视觉Prompt并据此生成后续文本若对接Encoder-Decoder-based LLM如下图下半部分如Flan-T5Q-Former的输出与文本前缀拼接后输入到Encoder中Decoder则负责根据Encoder的跨模态表示生成后缀文本。这种设计通过“软提示”机制巧妙地复用了LLM强大的语言生成能力。通过这种方式BLIP-2成功地用极小地代价主要训练Q-Former以及将其输出映射到LLM词向量空间的全连接映射层就将视觉感知能力“嫁接”到了大语言模型上。二、LLaVA与视觉指令微调1.视觉指令微调的必要性虽然BLIP-2成功地将视觉编码器和LLM连接了起来并且在论文中已经展示了通过提示词进行零样本的指令式图像到文本生成但它的预训练目标核心仍围绕“模态对齐”与“图像条件生成”。在实际“助手式”交互场景中这通常表现为模型可以生成但对复杂指令的稳定遵循、多轮对话格式、以及更贴近人类偏好的回答风格并没有被系统性地对齐与强化尤其缺少专门的视觉指令对话数据来做端到端的指令微调。所以BLIP-2更像是“能看懂、也能说”的通用接口原型而距离像ChatGPT一样可对话、可推理、强指令遵循的视觉助手仍有差距。LLaVALarge Language and Vision Assistant的出现正是为了解决这一问题。他引入了视觉指令微调目标是将多模态模型从“看图说话”的工具升级为通用的“智能视觉助手”。正如NLP领域从GPT-3到ChatGPT的进化离不开指令微调多模态模型也需要通过高质量的视觉指令数据来学习如何遵循人类意图。LLaVA不仅提出了一个简单的架构更重要的是提出了一种低成本构建这些数据的方法。2.数据构建LLaVA团队2023年4月发现当时虽然缺乏图像-指令对数据但有丰富的图像-文本对数据于是它们利用GPT-4作为“老师”采用上下文学习的方式将图像的符号化表示多视角图像描述与COCO等数据集中现成的目标边界框/类别标注以及少量人工设计的种子样例喂给GPT-4从而生成了总计158K条高质量的指令数据。这批数据包含58K条模拟人与助手日常交互的对话数据包含23K条要求对图片各个方面进行详尽刻画的详细描述数据此外还有77K条复杂推理数据这类数据会提出需要基于图片内容进行更深层逻辑推理的问题并要求给出相对清晰的推理过程。下图就是一个具体的生成实例。注意GPT-4并没有通过视觉编码器“看”到原始图片而是根据输入的“Context type 1Captions”提供的语义描述以及“Context type 2Boxes”提供的精确定位信息在脑海中“脑补”出了完整的场景。基于这些符号化信息GPT-4生成了下方的“Response type 1Conversation”关于车型和地点的问答“Response type 2Detailed Description”对场景和人物动作的细致刻画甚至在“Response type 3Complex Reasoning”中推理出了人们正面临“如何把大量行李装进车里”的挑战。这种利用大语言模型强大的常识推理能力来生成视觉指令数据的方法就是LLaVA的核心创新之一。3.LLaVA架构与训练LLaVA的架构非常简洁如下图所示。输入图片首先经过Vision Encoder使用预训练的CLIP ViT-L/14提取出视觉特征。在其实验中作者比较了使用CLIP ViT的最后一层与最后一层之前的patch/grid tokens作为视觉特征。在ScienceQA设置下使用倒数一层特征带来约0.96个百分点。随后Projection Layer一个简单的线性层W起到了“翻译官”的作用将视觉特征线性映射为LLM能理解的Embedding。最后开源LLM Vicuna基于LLaMA微调同时处理这些视觉Embedding 和文本指令Embedding最终生成回复。为了让这些组件协同工作并获得多模态能力LLaVA同样采用了两阶段的训练策略1特征对齐预训练为了平衡概念覆盖率和训练效率LLaVA将CCM数据集过滤至595K个图像-文本对。在此阶段冻结Vision Encoder和LLM仅训练投影层。这一步的目标是训练一个与LLM兼容的“视觉Tokenizer”让图像特征能够对齐到LLM的语义空间。2视觉指令微调使用前述GPT-4生成的158K条高质量指令数据对话、描述、推理冻结Vision Encoder同时更新投影层和LLM的权重。这一阶段让模型真正学会了如何作为多模态助手与人类交互。实验结果显示LLaVA不仅在日常聊天中展现了出色的多模态能力在ScienceQA多模态科学问答数据集上也取得了令人瞩目的成绩。论文报告的92.53%来自一种“集成”设置当LLaVA与文本版GPT-4结合并由GPT-4充当“裁判”在两者答案不一致时做最终仲裁时可达到该准确率。