Note
LLaVA 和 MiniGPT-4 如何连接视觉编码器与 LLM?
介绍视觉编码器、连接器和语言模型之间的架构关系与训练过程。
像 LLaVA 或 MiniGPT-4 这样的模型是如何将一个预训练好的视觉编码器(Vision Encoder)和一个大语言模型(LLM)连接起来的?请描述其关键的架构设计。
LLaVA和MiniGPT-4这类模型开创了一种高效构建强大VLM的范式,其核心思想是复用(leverage) 已经非常强大的预训练单模态模型,并通过一个轻量级的“连接器”将它们桥接起来。
其关键架构设计通常包含三个核心组件:
-
冻结的视觉编码器(Frozen Vision Encoder):
- 通常采用一个已经预训练好的、强大的视觉模型,最常见的是CLIP的Vision Transformer (ViT)。
- 在训练VLM时,这个视觉编码器大部分时间是冻结的,不更新其参数。这样做的好处是保留了其强大的、泛化的视觉特征提取能力,并极大地节省了计算资源。
- 它的作用是将输入的图像转换成一系列的视觉特征向量(Image Patches’ Embeddings)。
-
连接器模块(Connector Module):
- 这是整个架构的关键“胶水层”。它的作用是将来自视觉编码器的视觉特征,转换成大语言模型(LLM)能够理解的输入格式,即与文本词元(word embeddings)在同一向量空间中的“视觉词元”(visual tokens)。
- 在LLaVA中,这个连接器是一个简单的线性投影层(Linear Projection Layer)。
- 在MiniGPT-4或BLIP-2中,这个连接器是一个更复杂的Q-Former (Querying Transformer),它通过一组可学习的查询向量来从视觉特征中“浓缩”出最相关的信息。
- 这个模块是整个模型中主要需要训练的部分。
-
冻结的大语言模型(Frozen Large Language Model):
- 使用一个现成的、强大的预训练LLM,如Llama、Vicuna等。
- LLM在训练中也通常是冻结的(或使用LoRA等参数高效微调方法)。这保留了LLM强大的语言生成、推理和指令遵循能力。
- LLM接收拼接后的序列(视觉词元 + 文本词元),并像处理纯文本一样,自回归地生成回答。
训练过程通常分为两阶段:
- 第一阶段(视觉-语言对齐预训练): 使用大量的图像-标题数据,只训练连接器模块,目的是教会连接器如何将视觉特征有效地映射为LLM能理解的表示。
- 第二阶段(视觉指令微调): 使用高质量、多样化的多模态指令跟随数据(例如,图像+问题+答案),对整个模型(主要是连接器和LLM的LoRA部分)进行微调,教会模型如何根据指令进行对话、描述和推理。