【LMM 001】大型语言和视觉助手 LLaVA

2024-01-02 02:20

本文主要是介绍【LMM 001】大型语言和视觉助手 LLaVA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文标题:Visual Instruction Tuning
论文作者:Haotian Liu, Chunyuan Li, Qingyang Wu, Yong Jae Lee
作者单位:University of Wisconsin-Madison, Microsoft Research, Columbia University
论文原文:https://arxiv.org/abs/2304.08485
论文出处:NeurIPS 2023 (Oral)
论文被引:557(12/31/2023)
论文代码:https://github.com/haotian-liu/LLaVA,12k star
项目主页:https://llava-vl.github.io/

在这里插入图片描述

Abstract

使用机器生成的指令遵循(instruction-following)数据对大型语言模型(LLM)进行指令调优,已被证明可以提高新任务的零样本(zero-shot)能力,但这一想法在多模态领域的探索较少。我们首次尝试使用纯语言 GPT-4 生成多模态语言图像指令遵循数据。通过对这些生成的数据进行指令调优(instruction tuning),我们推出了大型语言和视觉助手(Large Language and Vision Assistant,LLaVA),这是一种端到端训练的大型多模态模型,它将视觉编码器和 LLM 连接起来,用于通用的视觉和语言理解。为了促进未来的视觉指令遵循研究,我们构建了两个评估基准,其中包含多种具有挑战性的面向应用的任务。我们的实验表明,LLaVA 展示了令人印象深刻的多模态聊天能力,有时在未见图像/指令上表现出多模态 GPT-4 的行为,在合成的多模态指令遵循数据集上,LLaVA 与 GPT-4 相比获得了 85.1% 的相对分数。在对 QA 进行微调后,LLaVA 和 GPT-4 的协同作用达到了 92.53% 的准确率。

1 Introduction

人类通过视觉和语言等多种渠道与世界互动,因为每种渠道在表达和交流某些概念方面都具有独特的优势,从而有助于更好地理解世界。人工智能的核心愿望之一就是开发一种通用助手,它能有效地遵循多模态视觉和语言指令,与人类意图保持一致,完成各种现实世界的任务[4, 27, 26]。

为此,业界开始关注开发语言增强的基础视觉模型[27, 16],这些模型在开放世界视觉理解方面具有很强的能力,如分类[40, 21, 57, 54, 39],检测[29, 62, 33],分割[25, 63, 58]和生成图像描述[50, 28],以及视觉生成和编辑[42, 43, 56, 15, 44, 30]。我们建议读者参阅 Computer Vision in the Wild 阅读清单,以获取更多最新文献[12]。在这一研究方向中,每个任务都由一个大型视觉模型独立解决,而任务指令则在模型设计中隐含考虑。此外,语言仅用于描述图像内容。虽然这让语言在将视觉信号映射到语言语义(人类交流的常用渠道)方面发挥了重要作用,但它导致模型通常只有一个固定的界面,交互性和对用户指令的适应性都很有限

另一方面,大型语言模型(Large language models,LLM)表明,语言可以发挥更广泛的作用:作为通用助手的通用界面,各种任务指令可以明确地用语言表示出来,并引导端到端训练的神经助手切换到感兴趣的任务上去解决。例如,最近 ChatGPT [35] 和 GPT-4 [36] 的成功就证明了对齐式 LLM 在遵循人类指令方面的强大功能,并激发了人们对开发开源 LLM 的极大兴趣。其中,

  • LLaMA [49] 是一种开源 LLM,其性能与 GPT-3 不相上下。
  • Alpaca[48],Vicuna[9],GPT-4-LLM[38] 利用各种机器生成的高质量指令遵循样本来提高 LLM 的对齐能力,与专有 LLM 相比,其性能令人印象深刻。重要的是,这些工作都是纯文本的。

在本文中,我们提出了视觉指令调优(visual instruction-tuning),首次尝试将指令调优扩展到语言-图像多模态空间,为构建通用视觉助手铺平道路。我们的论文尤其有以下贡献:

  • Multimodal instruction-following data。其中一个关键挑战是缺乏视觉语言遵循数据(instruction-following data)。我们提出了一种数据重组观点和管道,利用 ChatGPT/GPT-4 将图像-文本对转换为适当的指令遵循格式
  • Large multimodal models。我们开发了大型多模态模型(LMM),将 CLIP 的开放集视觉编码器 [40] 与语言解码器 Vicuna [9] 连接起来,并在生成的视觉语言遵循数据上进行端到端微调。我们验证了使用生成数据进行 LMM 指令调优的有效性,并为构建通用指令遵循视觉智能体(Agent)提出了实用建议。当与 GPT-4 组合时,我们的方法在 ScienceQA [34] 多模态推理数据集上实现了 SoTA。
  • Multimodal instruction-following benchmark。我们为 LLaVA-Bench 提供了两个具有挑战性的基准,其中包含多种图像对、指令和详细注释。
  • Open-source。我们向公众开放以下资产:生成的多模态指令数据、代码库、模型检查点和可视化聊天演示。

2 Related Work

Multimodal Instruction-following Agents.

在计算机视觉领域,建立指令遵循智能体的现有工作可大致分为两类:

  • i)端到端训练模型,针对每个特定研究课题分别进行探索。例如,视觉语言导航任务 [3, 19] 和 Habitat[47]要求人工智能智能体遵循自然语言指令,在视觉环境中采取一系列行动来完成目标。在图像编辑领域,给定一张输入图像和一条告诉智能体做什么的书面指令,InstructPix2Pix [6] 就会按照人类指令编辑图像。

  • ii)通过 LangChain [1] / LLMs [35] 协调各种模型的系统,如

    • Visual ChatGPT [53]
    • X-GPT [63]
    • MM-REACT [55]
    • VisProg [18]
    • ViperGPT [46]

虽然在构建指令遵循智能体方面有着相同的目标,但我们专注于开发一种端到端训练的多任务语言视觉多模态模型

Instruction Tuning.

在自然语言处理(NLP)领域,为了让 GPT-3 [7]、T5 [41]、PaLM [10] 和 OPT [60] 等 LLM 遵循自然语言指令完成实际任务、 研究人员已经探索了 LLM 指令调优的方法 [37, 52, 51]:

  • InstructGPT [37]/ChatGPT [35]
  • FLAN-T5 [11]
  • FLAN-PaLM [11]
  • OPT-IML [22]

事实证明,这种简单的方法可以有效提高 LLM 的零样本泛化和小样本泛化能力。因此,将这一想法从 NLP 借鉴到计算机视觉是很自然的。从更广泛的意义上讲,teacher-student 蒸馏基础模型的思路已经在图像分类等其他课题中得到了研究 [14]。

  • Flamingo [2] 可被视为多模态领域的 GPT-3 moment,因为它在零样本任务迁移和上下文学习方面表现出色。其他在图像文本对上训练的 LMM 包括:
    • BLIP-2 [28]
    • FROMAGe [24]
    • KOSMOS-1 [20]
  • PaLM-E [13] 是一种用于人工智能的 LMM。
  • 基于最近的最佳开源 LLaMA,OpenFlamingo[5] 和 LLaMA-Adapter[59] 是使 LLaMA 能够使用图像输入的开源努力,为构建开源多模态 LLM 铺平了道路。

虽然这些模型具有良好的任务迁移泛化性能,但它们并没有使用视觉语言指令数据进行明确的调整,而且它们在多模态任务中的性能通常低于纯语言任务。本文旨在填补这一空白并研究其有效性。最后需要注意的是,视觉指令调优(visual instruction tuning)与视觉提示调优(visual prompt tuning)不同[23]:前者旨在提高模型的指令遵循能力,而后者旨在提高模型适应的参数效率

3 GPT-assisted Visual Instruction Data Generation

从CC[8]到LAION[45],社会各界见证了图像-文本对等公共多模态数据数量的激增。然而,当涉及到多模态教学数据时,可用的数据量却非常有限,部分原因是创建此类数据的过程非常耗时,而且在考虑到人类人群搜索的情况下,此类数据的定义也不够明确。受近期 GPT 模型在文本标注任务中取得成功的启发[17],我们建议基于广泛存在的图像对数据,利用 ChatGPT/GPT-4 收集多模态指令遵循数据

在这里插入图片描述

对于图像 Xv 及其相关标题 Xc,自然可以创建一组问题 Xq,以指导助手描述图像内容。我们提示 GPT-4 整理这样一个问题列表(详见附录)。因此,将图像-文本对扩展为其指令遵循版本的简单方法是:人类:Xq Xv 助手:Xc 。 虽然构建成本低,但 这种简单的扩展版本在指令和回复中都缺乏多样性和深入推理

为了缓解这一问题,我们利用纯语言 GPT-4 或 ChatGPT 作为强大的教师(两者都只接受文本作为输入),来创建涉及视觉内容的指令遵循数据。具体来说,为了将图像编码为视觉特征以提示纯文本 GPT,我们使用了两类符号表示:

  • i)图像描述(Captions)通常从不同角度描述视觉场景;
  • ii)边框(Bounding Boxes)通常定位场景中的物体,每个框编码物体概念及其空间位置。表 14 顶部图块就是一个例子。

在这里插入图片描述

通过这种符号表示法,我们可以将图像编码为 LLM 可识别序列。我们使用 COCO 图像 [31] 并生成三种类型的指令遵循数据。表 14 底部显示了每种类型的一个示例。对于每种类型,我们首先手动设计了几个示例。这些示例是我们在数据收集过程中获得的唯一人工注释,在上下文学习中用作种子示例,以查询 GPT-4

  • Conversation。我们设计了一段对话,对话内容是助理和一个就这张照片提问的人之间的对话。回答者的语气就像助手看到图片并回答问题一样。我们会就图片的视觉内容提出一系列不同的问题,包括物体类型、物体数量、物体动作、物体位置、物体之间的相对位置等。只有有明确答案的问题才会被考虑。详细提示见附录。

    在这里插入图片描述

  • Detailed description。为了对图片进行丰富而全面的描述,我们创建了一个问题列表,目的就是为了这样做。我们会提示 GPT-4,然后对列表进行整理(详细提示和整理过程见附录)。对于每张图片,我们从列表中随机抽取一个问题,要求 GPT-4 生成详细描述。

    在这里插入图片描述

  • Complex reasoning。上述两类问题主要针对视觉内容本身,在此基础上,我们会进一步创建深入的推理问题。答案通常需要按照严密的逻辑进行逐步推理。

我们总共收集了 158K 个独特的语言图像指令遵循样本,包括 58K 个对话样本,23K 个详细描述样本和 77K 个复杂推理样本。我们在早期实验中取消了 ChatGPT 和 GPT-4 的使用,结果发现 GPT-4 始终能提供更高质量的指令遵循数据,如空间推理。

4 Visual Instruction Tuning

4.1 Architecture

主要目标是有效利用预训练 LLM 和视觉模型的功能。网络架构如图 1 所示。我们选择 Vicuna [9] 作为以 φ 为参数的 LLM fφ(-),因为在公开的检查点 [48, 9, 38]中,它在语言任务中具有最佳的指令遵循能力。

在这里插入图片描述

对于输入图像 Xv,我们考虑使用预先训练好的 CLIP 视觉编码器 ViT-L/14 [40],它能提供视觉特征 Zv = g(Xv)。我们在实验中考虑了最后一个Transformer层之前和之后的网格特征。我们考虑用简单的线性层将图像特征连接到词嵌入空间。具体来说,我们应用可训练的投影矩阵 W 将 Zv 转换为语言嵌入标记 Hv,其维度与语言模型中的单词嵌入空间相同

在这里插入图片描述

这样,我们就得到了视觉标记序列 Hv。请注意,我们的简单投影方案是轻量级的,这使我们能够快速迭代以数据为中心的实验。我们还可以考虑采用更复杂的方案来连接图像和语言表征,例如 Flamingo 中的门控交叉注意[2] 和 BLIP-2 中的 Q-former[28]。我们将在未来的工作中探索更有效、更复杂的 LLaVA 架构设计

4.2 Training

在这里插入图片描述

对于每个图像 Xv,我们会生成多轮对话数据(X1q, X1a, …, XTq, XTa ),其中 T 为总轮次。我们将所有回答都视为助手(Assistant)的回应,并将第 t 个回合的指令 Xtinstruct 视为一个序列:

在这里插入图片描述

这就形成了表 2 所示的多模态指令遵循序列的统一格式。我们使用 LLM 原始的自动回归训练目标,对预测标记进行指令调优

具体来说,对于长度为 L 的序列,我们通过以下方法计算目标答案 Xa 的概率:

在这里插入图片描述

其中,θ 是可训练参数,Xinstruct,<i 和 Xa,<i 分别是当前预测标记 xi 之前所有回合中的指令和答案标记。关于预测标记的说明,请参见表 2。对于 (3) 中的条件句,我们明确添加了 Xv,以强调所有答案的图像都是以 Xv 为基础的这一事实,同时为了提高可读性,我们省略了 Xsystem-message 和之前所有的 。对于 LLaVA 模型训练,我们考虑采用两阶段指令调优程序。

Stage 1: Pre-training for Feature Alignment.

在这里插入图片描述

为了在概念覆盖率和训练效率之间取得平衡,我们将 CC3M 过滤为 595K 个图像-文本对。有关过滤过程的详情,请参见附录。使用第 3 节中描述的简单扩展方法将这些对转换为指令遵循数据。每个样本都可视为一次单轮对话。为了构建 (2) 中的输入 Xinstruct,对于图像 Xv,会随机采样一个问题 Xq,即要求助手简要描述图像的语言指令。真实答案 Xa 是原始描述。在训练过程中,我们冻结视觉编码器和 LLM 权重,仅使用可训练参数 θ = W(投影矩阵)最大化 (3) 的可能性。这样,图像特征 Hv 就能与预先训练的 LLM 词嵌入对齐。这一阶段可以理解为为冻结的 LLM 训练一个兼容的视觉tokenizer

Stage 2: Fine-tuning End-to-End.

我们始终保持视觉编码器权重的冻结,并在 LLaVA 中继续更新投影层和 LLM 的预训练权重;也就是说,可训练参数为 (3) 中的θ = {W, φ}。我们考虑了两个具体的使用场景:

  • Multimodal Chatbot。我们通过对第 3 节中的 158K 语言-图像指令遵循数据进行微调,开发了一个聊天机器人。在三种回复类型中,对话是多轮回复,而其他两种是单轮回复。它们在训练中统一采样。
  • ScienceQA。我们在 ScienceQA 基准[34]上研究了我们的方法,该基准是第一个大规模多模态科学问题数据集,它为答案注释了详细的讲座和解释。每个问题都有一个自然语言或图像形式的上下文。助手用自然语言提供推理过程,并从多个选项中选出答案。为了进行 (2) 中的训练,我们将数据组织为单轮对话,问题和上下文为 Xinstruct,推理和答案为 Xa。

5 Experiments

我们分别在多模态聊天机器人和 ScienceQA 数据集这两个主要实验环境中评估了 LLaVA 在指令遵循和视觉推理能力方面的表现。我们按照 Vicuna 的超参数[9],用 8×A100s 训练所有模型。我们在经过过滤的 CC-595K 子集上对模型进行了 1 个epoch的预训练,学习率为 2e-3,批量大小为 128,并在 LLaVA-Instruct-158K 数据集上进行了 3 个epoch的微调,学习率为 2e-5,批量大小为 32。更多训练详情请见附录。

5.1 Multimodal Chatbot

我们开发了一个聊天机器人演示,以展示 LLaVA 的图像理解和对话能力,并研究 LLaVA 在消化视觉输入和展示指令遵循能力方面的表现。我们首先使用 GPT-4 原文[36]中需要深入理解图像的示例,如表 3 所示(更多示例见附录)。为了便于比较,我们引用了其论文中多模态 GPT-4 的提示和响应,并查询 BLIP-2 和 OpenFlamingo 模型检查点以获得其响应。

在这里插入图片描述

令人惊讶的是,虽然 LLaVA 是通过一个小型的多模态指令遵循数据集(8 万多张不同的图像)进行训练的,但它在这些示例上的推理结果与多模态 GPT-4 非常相似。需要注意的是,虽然这些图像对 LLaVA 来说是域外图像,但 LLaVA 仍然能够理解场景,并根据问题指令做出合理的回答。相比之下,BLIP-2 和 OpenFlamingo 则侧重于描述图像,而不是按照用户指令以适当的方式进行回答

Quantitative Evaluation.

为了系统地了解 LLaVA 的性能,我们提出了一个量化指标来衡量模型在多模态数据上的指令遵循能力。受 [9] 的启发,我们利用 GPT-4 来衡量生成响应的质量。具体来说,我们创建了由图像、真实文本描述和问题组成的三元组。候选模型(如 LLaVA)根据问题和图像预测答案。为了提供一个近似的理论上限,我们使用纯文本 GPT-4 创建了一个基于问题和真实文本描述的参考预测。在获得两个模型的响应后,我们将问题、视觉信息(以文本描述的形式)以及两个助手生成的响应反馈给法官(即纯文本 GPT-4)。它将对助手回答的有用性、相关性、准确性和详细程度进行评估,并按 1-10 分制给出一个总分,分数越高表示整体表现越好。我们还要求它对评估进行全面解释,以便我们更好地理解模型。我们报告的是与纯文本 GPT-4 模型相比的相对分数,该模型使用文本真实描述作为视觉输入。我们创建了两个基准来评估模型的性能。

在这里插入图片描述

LLaVA-Bench (COCO).

我们从 COCO-Val-2014 中随机选取了 30 幅图像,并使用第 3 章中提出的数据生成管道为每幅图像生成了三种类型的问题(对话、详细描述、复杂推理),共计 90 个问题。该基准测试研究了模型在一致的视觉输入下的对齐行为和能力。我们改变了训练数据集,以研究不同类型的指令遵循数据的有效性,结果如表 4 所示。首先,通过指令调优,模型遵循用户指令的能力显著提高了 50 多点。其次,增加少量的详细描述和复杂推理问题,使模型的整体能力大幅提高了 7 分。此外,它还提高了模型在对话问题上的表现,这表明推理能力的提高与对话能力的提高相辅相成。最后,我们表明,三种类型的数据都能产生 85.1% 的最佳性能。

在这里插入图片描述

LLaVA-Bench (In-the-Wild).

为了评估该模型在更具挑战性的任务中的能力以及在新领域中的通用性,我们收集了一组共包含 60 个问题的 24 幅图像,其中包括室内和室外场景、备忘录、绘画、素描等,并将每幅图像与高度详细的人工编辑描述和适当选择的问题关联起来。我们在表 5 中对 LLaVA、BLIP 和 OpenFlamingo 进行了比较。得益于视觉指令调优,LLaVA 的性能明显优于 BLIP-2(+29%)和 OpenFlamingo(+48%)。与可以访问真实标签的纯文本 GPT-4 相比,LLaVA 在复杂推理问题上取得了 81.7% 的优异成绩,总得分为 67.3%。

在这里插入图片描述

Limitations.

这个 LLaVA-Bench(In-the-Wild)的设计具有挑战性,可以揭示模型的弱点。我们在表 6 中提供了两个例子以及相关的标题和问题。在拉面例子(左)中,要正确回答餐厅名称,需要模型具有较大的知识覆盖面和多语言理解能力;要正确描述配菜,模型可能需要从互联网上检索相关的多模态信息。在冰箱的例子中(右图),感知酸奶的正确品牌需要模型处理高分辨率图像并拥有广泛的知识覆盖面。我们还观察到 LLaVA 的一个有趣失误,当被问及是否存在草莓味酸奶时,它的回答是 “yes”,尽管冰箱里只有酸奶和草莓。这表明,LLaVA 有时会将图像视为 “bag of patches”,而无法把握图像中的复杂语义。我们希望 LLaVA 能在基准测试中发挥坚实的基础作用,我们的研究结果能为今后开发更强大的 LMM 提供启发。

在这里插入图片描述

5.2 ScienceQA

ScienceQA [34] 包含 2.1 万道多模态选择题,涉及 3 个学科,26 个主题,127 个类别和 379 种技能,具有丰富的领域多样性。基准数据集分为训练、验证和测试三个部分,分别有 12726,4241 和 4241 个示例。我们考虑了两种具有代表性的方法,包括带有和不带思维链(CoT)的 GPT-3.5 模型(text-davinci-002),LLaMA-Adapter [59] 以及多模态思维链(MM-CoT)[61],后者是目前该数据集上的 SoTA 方法。更多基线数据请参见 [34]。

在这里插入图片描述

结果见表 7。对于 LLaVA,我们在最后一层之前使用视觉特征,要求模型首先预测原因,然后预测答案,并训练 12 个epoch。它的准确率为 90.92%,与 SoTA 的 91.68% 非常接近。为了探索 LLM 的极限,我们还使用 2-shot In-Context Learning 来提示 GPT-4,并获得了 82.69% 的准确率,与 GPT-3.5 的 75.17% 相比,绝对值提高了 7.52%。我们注意到,在相当多的问题中,GPT-4 的失败仅仅是因为它报告说没有足够的上下文(如图像)。我们考虑了两种方案来综合我们的模型和 GPT-4 的结果。

  • i) GPT-4 complement。每当 GPT-4 无法提供答案时,我们就使用我们方法的预测结果。该方案的准确率为 90.97%,与单独使用我们的方法几乎相同。
  • ii) GPT-4 as the judge。每当 GPT-4 和 LLaVA 得出不同答案时,我们会再次提示 GPT-4,要求它根据问题和两个结果给出自己的最终答案。其精神与 CoT 类似,但使用了来自另一个模型的外部知识。出乎意料的是,这一方案能够在所有问题类别中持续改进,并达到了新的 SoTA 准确率 92.53%。有趣的是,不能处理图像的纯文本 GPT-4 在有图像作为上下文的问题上提高了模型的整体性能。这是因为其中有些问题的正确答案实际上并不需要图像上下文。GPT-4 法官可以识别这种情况,并纠正 LLaVA 所犯的一些错误。参见附录中的示例。据我们所知,这是 GPT-4 首次用于模型集合。我们希望这一发现能鼓励未来的研究,探索利用 LLM 进行模型集合的更有效方法。

Ablations.

在这里插入图片描述

表 8 列出了我们在 ScienceQA 上的几种设计选择。

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

6 Conclusion

本文展示了视觉指令调优的有效性。我们介绍了一种创建语言-图像指令遵循数据的自动流水线,在此基础上,我们训练了一个多模态模型 LLaVA,以跟踪人类完成视觉任务的意图。在对 ScienceQA 进行微调时,它达到了新的 SoTA 准确率;在对多模态聊天数据进行微调时,它具有出色的视觉聊天能力。此外,我们还首次提出了研究多模态指令遵循能力的基准。本文是视觉指令调优的第一步,主要关注现实生活中的任务。关于 LLaVA 在学术基准上的更多量化结果,请参阅视觉指令调优的改进基准[32]。我们希望我们的工作能对未来建立更强大的多模态模型的研究有所启发。

A Broader Impact

LLaVA 是一种通用的视觉辅助工具,其广泛影响与其部署和发布相关的潜在利益和风险。有些考虑因素是 LLaVA 因其可视化性质而独有的,而另一些则与现有的指令遵循 LLM(如 Alpaca、Vicuna 等)有相似之处。由于 LLaVA 建立在 LLaMA、Vicuna 和 CLIP 的基础上,因此它继承了与 LLM 和视觉编码器相关的一些问题。在下文中,我们将概述发布该模型的风险和缓解策略。

Malicious input.

为了最大限度地减少潜在的滥用和有害后果,我们为 LLaVA 采用了两项预防措施:

  • 1)针对用户输入文本的 OpenAI Filter API,以防止模型处理有害或不恰当的文本指令;
  • 2)针对上传的用户图片的 NSFW Filter,以检测并阻止 Not Safe For Work (NSFW) 内容或任何其他潜在的有害图片输入。

Hallucination.

与 LLM 类似,LLaVA 可能会生成不基于事实或输入数据的输出结果。这引发了人们对所做推论的担忧,尤其是在关键应用领域(如医疗)。

Biases.

视觉编码器(CLIP)和语言解码器(LLaMA/Vicuna)的偏差可能会从基础模型转移到 LLaVA。这可能会导致有偏差的结果或对不同内容的不公平表述。

Energy consumption.

虽然由于预训练数据集较小,能耗并不是 LLaVA 的主要问题(详见 C 节),但当扩大预训练数据集或增加模型大小(例如,增加到 65B 模型等更大的 LLaMA 版本)时,能耗可能会成为一个问题。

Evaluation complexities.

评估 LLaVA 的性能具有挑战性,因为它同时涉及语言和视觉任务。我们的评估基准涵盖几个方面,包括

  • 准确性
  • 概念覆盖率
  • 推理能力
  • 创造性

然而,还需要考虑其他方面,如

  • 视觉内容的幻觉程度和对视觉内容的细粒度理解

在我们的研究中,基于 GPT-4 的纯文本多模态评估具有一致性和准确性,但它在不同情况下的鲁棒性以及评估其他未探索方面的能力是未来工作的主题。

尽管存在这些风险,但我们认为向研究界发布 LLaVA 的益处大于潜在的危害。它允许对模型进行持续的调查和改进,并让研究界参与制定更好的缓解策略来解决这些问题。此外,LLaVA 的发布还能促进新应用和研究方向的发展,最终推动视觉语言任务中基础模型的进步和负责任的部署。

B More Results

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

C Training Details

我们在经过过滤的 CC-595K 子集上对模型进行了 1 个epoch的预训练,学习率为 2e-3,批量大小为 128,并在 LLaVA-Instruct-158K 数据集上进行了 3 个epoch的微调,学习率为 2e-5,批量大小为 32。继 Vicuna 之后,我们使用了 Adam 优化器,该优化器没有权重衰减,学习率为余弦,预热率为 3%。在微调期间,使用全碎片数据并行(Full Shard Data Parallel,FSDP)和梯度检查点来节省 GPU 内存,不使用 offload。启用了 BF16 和 TF32,以实现速度和精度之间的平衡。

我们使用 8×A100 训练所有模型。在 CC-595K 上的预训练在 4 小时内完成。在 Instruct-158K 上进行的微调在 10 小时内完成。在 ScienceQA 上的微调在 4 小时内完成。

这篇关于【LMM 001】大型语言和视觉助手 LLaVA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/561079

相关文章

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou