LLaVA论文阅读+Colab部署

1. Colab上部署LLaVA

代码:
https://github.com/Czi24/Awesome-MLLM-LLM-Colab/tree/master/MLLM/LLaVA-colab

2. 论文摘要

将大型语言模型(LLMs)通过机器生成的指令跟随数据进行指令调优已被证明可以提高其在新任务上的零样本能力,但这一理念在多模态领域探索较少。我们首次尝试使用仅语言的GPT-4生成多模态语言-图像指令跟随数据。通过对这种生成的数据进行指令调优,我们引入了LLaVA:大语言与视觉助手,一个端到端训练的大型多模态模型,它连接了视觉编码器和LLM,用于通用的视觉和语言理解。为了促进未来关于视觉指令跟随的研究,我们构建了两个包含多样且具有挑战性的应用导向任务的评估基准。我们的实验表明,LLaVA展示了令人印象深刻的多模态聊天能力,有时在未见过的图像/指令上表现出多模态GPT-4的行为,并在一个合成的多模态指令跟随数据集上取得了85.1%的相对得分。当在Science QA科学问答上进行微调时,LLaVA和GPT-4的协同作用达到了92.53%的新状态准确率。我们公开了GPT-4生成的视觉指令调优数据、我们的模型和代码。

3. 多模态指令跟随数据

  1. 简单的方法。利用以后的图文对构建指令跟随数据,不足地方缺乏多样性和深入推理,提出下面的利用GPT-4或ChatGPT构建指令跟随数据。

  1. 基于COCO数据集,利用已有的注释信息,比如caption、bounding box。人工构建种子示例(in-context-learning + 人工构建的系统提示+人工构建的问题模板。

(1)利用已有的注释信息,比如caption、bounding box

(2)人工构建种子示例(in-context-learning

(3)人工构建的系统系统提示

(4)人工构建的问题模板

  1. 得到GPT-4或者ChatGPT输出的结果:

4. 模型架构

Vicuna + ViT-L/14 + a simple linear layer

  • 输入图像Xv ----> 视觉特征Zv = g(Xv) ----> Zv转换为语言嵌入词元Hv(系列的视觉词元)
  • Xv ----> Zv ----> Hv 最后一个Transformer层之前和之后的网格特征,使用一个简单的线性层将图像特征连接到词嵌入空间(具有与语言模型中的词嵌入空间相同的维度

5. 模型训练

  • 统一格式:Human :X2instruct Assistant: X2a
  • 使用其原始自回归训练目标

阶段1: 特征对齐的预训练。基于CC3M的子集,仅更新投影矩阵。
冻结:visual encoder and LLM weights
训练:projection matrix

阶段2: 端到端微调。投影矩阵和LLM均针对两种不同的使用场景进行更新:
冻结:visual encoder weights
训练:projection layer and LLM

  • 视觉聊天:LLaVA根据我们生成的多模态故障跟踪数据进行了微调,适用于面向用户的日常应用。
  • Science QA:LLaVA在科学领域的多模态推理数据集上进行了微调。

6. 消融实验

  • 视觉特征。我们尝试使用CLIP视觉编码器的最后一层特征,结果为89.96%,比最后一层之前的特征低了0.96%。我们假设这是因为CLIP的最后一层特征可能更关注图像的全局和抽象属性,而前一层的特征可能更关注对理解特定图像细节有用的局部属性。
  • 链式推理。为了决定模型预测中答案和推理过程的顺序,我们运行了两种变体,观察到先预测答案在12个epoch中的准确率为89.77%,而先推理可以在6个epoch内快速达到89.77%,但随着训练的增加没有进一步改进。训练模型24个epoch也没有提高性能。我们得出结论,类似于链式推理的推理优先策略可以大大提高收敛性,但对最终性能贡献相对较小。
  • 预训练。我们跳过预训练,直接在Science QA上从头开始训练——性能下降到85.81%的准确率。5.11%的绝对下降表明预训练阶段的重要性,在对齐多模态特征的同时保留了大量预训练知识。
  • 模型规模。我们保持所有配置与我们的最佳13B模型相同,并训练一个7B模型。结果为89.84%的准确率,比90.92%低1.08%,这表明模型规模的重要性。

7. CC3M数据过滤

CC3M 我们使用Spacy从整个CC3M数据集中的每个标题中提取名词短语,并统计每个唯一名词短语的频率。我们跳过频率小于3的名词短语,因为它们通常是概念和属性的罕见组合,已经被其他标题覆盖。然后,我们从剩余频率最低的名词短语开始,将包含该名词短语的标题添加到候选池中。如果名词短语的频率大于100,我们从所有标题中随机选择一个大小为100的子集。这样处理后,我们得到了大约595K个图像-文本对。

图中展示了过滤前后CC3M名词短语统计数据的比较。过滤后的数据集显示了较好概念覆盖,其中频率高于3,但图像-文本对数量较少。

CC3M过滤前后名词短语统计数据的比较。图例中报告了唯一名词短语的总数。

8. 总结

  • 幻觉问题
  • 其他LLM模型协同(比如GPT-4协同提供了额外的背景知识能提高ScienceQA精度)
  • 正确回答餐厅名称需要模型具有广泛的知识覆盖多语言理解能力;正确描述配菜可能需要模型从互联网检索相关的多模态信息
  • 正确识别酸奶品牌需要模型处理高分辨率图像并具有广泛的知识覆盖。


相关推荐

  1. 论文阅读笔记】清单

    2024-07-22 05:18:02       70 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 05:18:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 05:18:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 05:18:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 05:18:02       55 阅读

热门阅读

  1. Python 异常处理

    2024-07-22 05:18:02       13 阅读
  2. Python中的__new__方法及实现单例模式

    2024-07-22 05:18:02       14 阅读
  3. FlowUs横向对比几款笔记应用的优势所在

    2024-07-22 05:18:02       16 阅读
  4. 公式推导类

    2024-07-22 05:18:02       16 阅读
  5. 【C++】C++内存泄漏介绍及解决方案

    2024-07-22 05:18:02       15 阅读
  6. 后台接口的配置

    2024-07-22 05:18:02       15 阅读
  7. Optional 中 map 和 flatMap 区别是啥?

    2024-07-22 05:18:02       14 阅读
  8. 实习手计(4):月末碎碎念!

    2024-07-22 05:18:02       12 阅读
  9. Nginx详细配置(最佳实践)

    2024-07-22 05:18:02       16 阅读
  10. 信息系统安全保护等级调整的流程

    2024-07-22 05:18:02       15 阅读
  11. Netty SSL/TLS

    2024-07-22 05:18:02       19 阅读
  12. C语言排序算法

    2024-07-22 05:18:02       12 阅读