【读论文】Visual Instruction Tuning (LLaVA)

Visual Instruction Tuning

摘要

本文首次尝试使用仅基于语言的 GPT-4 来生成多模态(语言-图像)指令跟随数据。在此基础上,作者提出了 LLaVA(Large Language and Vision Assistant),这是一个端到端训练的大型多模态模型,通过将视觉编码器与 LLM 相连接,实现了通用的视觉与语言理解。

引言

本文首次将指令微调的思想扩展到语言-图像的多模态领域,探索构建通用视觉助手的可能性。我们的主要贡献包括:

  • 多模态指令跟随数据生成: 针对当前缺乏视觉-语言指令数据的问题,我们提出了一种数据生成流程,使用 ChatGPT/GPT-4 自动将图像-文本对转换成指令跟随格式
  • 大型多模态模型设计: 我们将 CLIP 视觉编码器与 Vicuna 语言模型连接,基于生成的视觉指令数据,端到端训练一个多模态大模型,并总结了如何高效训练通用视觉助手的实用经验。与 GPT-4 联合推理时,在 Science QA 多模态推理任务上达到了新的 SOTA
  • 多模态指令跟随基准: 我们提出了 LLaVA-Bench,包含两个具有挑战性的多模态任务集合,涵盖多样图像、指令和细致标注

相关工作

多模态指令跟随智能体

  1. 端到端训练的模型:
    这类方法通常针对特定任务单独设计。例如:
    • 视觉-语言导航任务(Vision-Language Navigation):如 VLN、Habitat,要求智能体在视觉环境中根据自然语言指令移动并达成目标。
    • 图像编辑任务: 例如 InstructPix2Pix,可以根据输入图像和文本指令自动完成图像编辑。
  2. 多模型协作系统:
    这类方法通过调用多个子模型或工具协同完成任务,代表性方法包括:
    • LangChain
    • Visual ChatGPT
    • X-GPT、MM-REACT、VisProg、ViperGPT 等。
      这类方法通常利用语言模型(如 ChatGPT)作为主控,协调多个视觉子模块
      相比之下,本文聚焦于端到端训练的语言-视觉多模态模型,目标是支持多任务通用指令跟随

指令微调

  • 在自然语言处理(NLP)领域,已有大量工作利用指令微调提升 LLM 的指令跟随能力

  • 这些工作表明,简单的指令微调方法可以显著提升 LLM 的零样本与小样本泛化能力

  • 本文受到这类工作启发,首次将该思路引入计算机视觉领域,扩展到视觉-语言联合任务

  • 视觉指令微调(Visual Instruction Tuning) 不等同于 视觉提示微调(Visual Prompt Tuning)。前者关注提升模型的指令跟随能力,后者关注参数高效的模型适配。

GPT辅助的视觉指令数据生成

核心问题

目前公开的多模态数据(例如:图文对齐数据,如 CC、LAION)虽然数量庞大,但缺乏足够的多模态指令跟随数据
本文提出利用 ChatGPT / GPT-4 辅助自动生成多模态指令跟随数据,输入来自已有的图像-文本对

数据生成

本文设计了一套更强的生成策略, 用于增强模型的视觉推理:

  • 采用 语言-only 的 GPT-4 或 ChatGPT(它们仅接受文本输入)
  • 利用两种图像的符号化表达方式,作为输入给 GPT:
    1. 图像描述(Captions):从不同角度描述图像内容
    2. 目标框(Bounding Boxes):提供图像中各对象的位置信息

GPT 学到如何从图像的文字描述中, 推理图像, 并生成问题后, 让 GPT-4(无多模态能力), 自动生成图片对应的问题

数据类型

  1. 对话式问答
  2. 详细描述
  3. 复杂推理

视觉辅助微调

架构

核心目标

让视觉模型和语言模型无缝连接,可以像 GPT 一样,通过图片+语言同时理解和回答用户问题

模型架构

输入:
图像(X_v)+ 语言指令(X_q

视觉编码器(CLIP ViT-L/14)
把图像转换成特征(Z_v

线性投影层(Projection Layer)
把图像特征转换成语言模型能理解的“词向量格式”视觉 token(H_v

语言模型(Vicuna)
用视觉 token + 语言输入一起推理,生成多轮对话或答案。

训练

特征对齐预训练

让图像特征和语言模型的词向量空间对齐

方法
  • 数据集:用 CC3M(现有大规模图像-文本数据集,约 595K 图像-文本对)
  • 输入:图像 X_v + 一个简单问题(随机采样的指令)
  • 输出:图像原本的 caption 作为答案
训练目标:
  • 冻结:CLIP视觉编码器、Vicuna语言模型参数
  • 只训练:线性投影矩阵 W
    目的:让 CLIP 输出的视觉特征,经过 W 变换后,能够完美适配语言模型的词向量空间

端到端微调

全面训练,让模型学会真正的多模态指令跟随

方法

用作者生成的视觉指令跟随数据

目标

语言模型根据图像和对话上下文,预测 Assistant 的回答

总结

作者的训练流程:

  • 阶段一:只训练图像-语言的输入通道(投影矩阵),让视觉特征和词向量对齐
  • 阶段二:全面训练语言模型,让它学会处理图像+对话,支持多模态指令跟随

这个两阶段训练策略:
✔️ 保留了视觉模型和语言模型的预训练知识
✔️ 快速对齐视觉-语言空间
✔️ 有效提升了指令跟随能力

实验

多模态聊天机器人

作者训练了一个多模态聊天机器人 LLaVA, 重点关注:

  • 是否真正理解图片
  • 是否能根据用户指令给出回答
  • 是否支持多轮对话

-> LLaVA 能够真正理解用户提问背后的重点,并生成符合上下文、结构合理的完整回答

实验发现

  • 没有指令微调时,模型几乎完全不会跟随指令
  • 使用详细描述、复杂推理数据,会显著提升对话和推理能力

多模态科学问答

ScienceQA 是一个多模态科学问答数据集
难度高,因为:

  • 涉及跨学科推理
  • 有的题目必须看图才知道答案

组合方法

可以将 LLaVA 与 GPT-4 组合, 进一步提升准确率

  1. 互补方案(Complement)
    • GPT-4 无法回答时,直接用 LLaVA 的答案补上
  2. 仲裁方案(Judge) ✅(重点)
    • 当 GPT-4 和 LLaVA 答案不一致时,再让 GPT-4 判定哪一个更合理

这样的组合使得正确率进一步提升

结论

本文首次提出:

视觉指令微调(Visual Instruction Tuning, VIT) 的方法

通过:

  • 使用 GPT-4 自动生成 视觉-语言指令跟随数据
  • 构建并训练了一个强大的多模态模型 LLaVA(Large Language and Vision Assistant)

最终,作者证明:

  • LLaVA 能够支持图像+语言的复杂指令跟随
  • 在 ScienceQA 多模态推理任务 上达到了新的 SOTA,表现优于现有的所有公开模型
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计