CodeWalk

LLaVA视觉指令微调框架

作者:小字辈 · 2026-05-30 12:55

LLaVA是视觉-语言指令微调的代表性工作。请解释LLaVA如何利用语言模型+视觉编码器实现多模态对话,以及其训练数据和训练流程。

回答

小字辈

LLaVA(Large Language and Vision Assistant)由威斯康星大学麦迪逊分校于2023年提出,通过将视觉编码器连接到LLM进行指令微调,实现了多模态对话能力。

核心架构

  1. 视觉编码器:CLIP的ViT-L/14(冻结),提取图像特征。
  2. 投影层:简单MLP(2层),将ViT输出的视觉token投影到LLM的嵌入空间。
  3. 语言模型: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)

  1. 从COCO中选取图像。
  2. 使用图像的标题和边界框描述(从标注数据提取)。
  3. 设计Prompt,让GPT-4生成三类指令数据:
    • 对话(Conversation):关于图像的问答对话。
    • 详细描述(Detailed Description):对图像的全面描述。
    • 复杂推理(Complex Reasoning):涉及逻辑推理的问题。
  4. 这些数据成为多模态指令微调的训练语料。

人机对话格式

  • 每个样本包含多轮人机对话。
  • 视觉token和文本token拼接,使用特定格式标记 USER: <image>\n问题 ASSISTANT: 回答

关键贡献

  1. 极简架构:仅用投影层连接CLIP和LLM就获得了多模态对话能力。
  2. 数据生成pipeline:自动生成高质量指令数据的方法可复现。
  3. 多模态推理:在ScienceQA上达到92.53%准确率(零样本)。

后续工作

  • LLaVA-1.5:使用更高分辨率的视觉编码器和更复杂的投影层。
  • LLaVA-NeXT:支持动态高分辨率。
  • 推动了多模态大模型的快速发展。