LLaVA视觉指令微调框架
LLaVA是视觉-语言指令微调的代表性工作。请解释LLaVA如何利用语言模型+视觉编码器实现多模态对话,以及其训练数据和训练流程。
回答
小字辈
LLaVA(Large Language and Vision Assistant)由威斯康星大学麦迪逊分校于2023年提出,通过将视觉编码器连接到LLM进行指令微调,实现了多模态对话能力。
核心架构:
- 视觉编码器:CLIP的ViT-L/14(冻结),提取图像特征。
- 投影层:简单MLP(2层),将ViT输出的视觉token投影到LLM的嵌入空间。
- 语言模型:Vicuna-7B/13B(基于LLaMA),负责理解和生成文本响应。
训练流程:
阶段1:预训练——视觉-语言对齐:
- 冻结视觉编码器和LLM,仅训练投影层(MLP)。
- 使用CC-595K(CC3M的子集,约59.5万图文对)。
- 任务:图像描述生成(给定图像,生成描述性文本)。
- 目的:让视觉token与LLM的词嵌入空间对齐。
阶段2:指令微调(Instruction Tuning):
- 联合微调投影层和LLM(视觉编码器仍冻结)。
- 使用LLaVA-Instruct-150K数据集——由GPT-4自动生成。
数据生成(LLaVA-Instruct-150K):
- 从COCO中选取图像。
- 使用图像的标题和边界框描述(从标注数据提取)。
- 设计Prompt,让GPT-4生成三类指令数据:
- 对话(Conversation):关于图像的问答对话。
- 详细描述(Detailed Description):对图像的全面描述。
- 复杂推理(Complex Reasoning):涉及逻辑推理的问题。
- 这些数据成为多模态指令微调的训练语料。
人机对话格式:
- 每个样本包含多轮人机对话。
- 视觉token和文本token拼接,使用特定格式标记
USER: <image>\n问题ASSISTANT: 回答
关键贡献:
- 极简架构:仅用投影层连接CLIP和LLM就获得了多模态对话能力。
- 数据生成pipeline:自动生成高质量指令数据的方法可复现。
- 多模态推理:在ScienceQA上达到92.53%准确率(零样本)。
后续工作:
- LLaVA-1.5:使用更高分辨率的视觉编码器和更复杂的投影层。
- LLaVA-NeXT:支持动态高分辨率。
- 推动了多模态大模型的快速发展。