作者基于ChatGPT or GPT-4设计了一种策略,将现有的图像-文本对数据集,转化为具有更多多样性的视觉-语言指令数据集,从而用于端到端微调LLaVA模型。本文是对LLaVA-V1(2023/04)《Visual Instruction Tuning》论文的阅读记录,感兴趣的话可以参考一下,如果想要进一步了解研究工作详情的话可以移步阅读原英文论文,地址在这里,如下所示:
摘要
使用机器生成的指令跟随数据对大型语言模型(LLMs)进行指令调优已被证明可以提高在新任务上的零样本能力,但在多模态领域的这一想法尚未得到充分探索。我们首次尝试使用仅语言的GPT-4生成多模态语言-图像指令跟随数据。通过对生成的数据进行指令调优,我们引入了LLaVA:大型语言和视觉助手,这是一个端到端训练的大型多模态模型,连接了视觉编码器和LLM,用于通用视觉和语言理解。为了促进未来在视觉指令跟随方面的研究,我们构建了两个具有多样化和挑战性应用导向任务的评估基准。我们的实验表明,LLaVA展示了令人印象深刻的多模态聊天能力,有时在未见过的图像/指令上表现出多模态GPT-4的行为,并在一个合成多模态指令跟随数据集上相对于GPT-4获得了85.1%的相对分数。在Science QA上进行微调时,LLaVA与GPT-4的协同作用达到了92.53%的新最先进准确率。我们将GPT-4生成的视觉指令调优数据、我们的模型和代码公开发布。
1 引言
人类通过视觉和语言等多种渠道与世界互动,每个渠道在表示和传达某些概念方面都有独特的优势,从而促进了对世界的更好理解。人工智能的核心愿望之一是开发一个能够有效遵循多模态视觉和语言指令的通用助手,与人类意图保持一致,以完成各种现实世界任务[4, 27, 26]。
为此,社区见证了开发语言增强的基础视觉模型的兴趣激增[27, 16],这些模型在开放世界视觉理解方面具有强大的能力,如分类[40, 21, 57, 54, 39]、检测[29, 62, 33]、分割[25, 63, 58]和字幕生成[50, 28],以及视觉生成和编辑[42, 43, 56, 15, 44, 30]。我们建议读者参考《计算机视觉在野外》阅读列表以获取更新的文献编译[12]。在这些工作中,每个任务都由一个单独的大型视觉模型独立解决,任务指令在模型设计中隐含考虑。此外,语言仅用于描述图像内容。虽然这使得语言在将视觉信号映射到语言语义方面发挥重要作用——这是人类交流的常见渠道,但它导致模型通常具有固定的接口,对用户的指令交互性和适应性有限。
另一方面,大型语言模型(LLM)已经表明,语言可以发挥更广泛的作用:通用助手的通用接口,其中各种任务指令可以明确地用语言表示,并指导端到端训练的神经助手切换到感兴趣的任务来解决它。例如,最近的ChatGPT[35]和GPT-4[36]的成功展示了对齐LLM在遵循人类指令方面的强大能力,并激发了开发开源LLM的巨大兴趣。其中,LLaMA[49]是一个开源的LLM,其性能与GPT-3相当。Alpaca[48]、Vicuna[9]、GPT-4-LLM[38]利用各种机器生成的高质量指令跟随样本,提高了LLM的对齐能力,报告了与专有LLM相比的令人印象深刻的性能。重要的是,这一系列工作仅限于文本。
在本文中,我们提出了视觉指令调优,这是首次尝试将指令调优扩展到语言-图像多模态空间,为构建通用视觉助手铺平道路。特别是,我们的论文做出了以下贡献:
-
多模态指令跟随数据。 一个关键挑战是缺乏视觉-语言指令跟随数据。我们提出了一个数据改革视角和流程,使用ChatGPT/GPT-4将图像-文本对转换为适当的指令跟随格式。
-
大型多模态模型。 我们通过连接CLIP[40]的开放集视觉编码器和Vicuna[9]的语言解码器,并在我们生成的教学视觉-语言数据上进行端到端微调,开发了一个大型多模态模型(LMM)。我们的实证研究验证了使用生成数据进行LMM指令调优的有效性,并提出了构建通用指令跟随视觉代理的实用技巧。当与GPT-4集成时,我们的方法在Science QA[34]多模态推理数据集上达到了最先进的水平。
-
多模态指令跟随基准。 我们提出了LLaVA-Bench,包含两个具有挑战性的基准,具有多样化的图像、指令和详细注释。
-
开源。 我们将以下资产公开发布:生成的多模态指令数据、代码库、模型检查点和视觉聊天演示。
2 相关工作
多模态指令跟随代理。 在计算机视觉中,现有的构建指令跟随代理的工作可以大致分为两类:(i)端到端训练的模型,这些模型分别针对每个特定的研究主题进行探索。例如,视觉-语言导航任务[3, 19]和Habitat[47]要求具身AI代理遵循自然语言指令并在视觉环境中采取一系列行动以完成目标。在图像编辑领域,给定输入图像和告诉代理要做什么的书面指令,InstructPix2Pix[6]通过遵循人类指令编辑图像。(ii)通过LangChain[1]/LLMs[35]协调各种模型的系统,如Visual ChatGPT[53]、X-GPT[63]、MM-REACT[55]、VisProg[18]和ViperGPT[46]。尽管在构建指令跟随代理方面有相同的目标,但我们专注于开发一个端到端训练的语言-视觉多模态模型,用于多个任务。
指令调优。 在自然语言处理(NLP)社区中,为了使LLM如GPT-3[7]、T5[41]、PaLM[10]和OPT[60]能够遵循自然语言指令并完成现实世界任务,研究人员探索了LLM指令调优的方法[37, 52, 51],导致了如InstructGPT[37]/ChatGPT[35]、FLAN-T5[11]、FLAN-PaLM[11]和OPT-IML[22]等指令调优的对应物。事实证明,这种简单的方法可以有效提高LLM的零样本和少样本泛化能力。因此,从NLP借鉴这一想法到计算机视觉是很自然的。更广泛地说,教师-学生蒸馏思想与基础模型已经在其他主题中进行了研究,如图像分类[14]。Flamingo[2]可以被视为多模态领域的GPT-3时刻,由于其在零样本任务转移和上下文学习中的强大性能。其他在图像-文本对上训练的LMM包括BLIP-2[28]、FROMAGe[24]和KOSMOS-1[20]。PaLM-E[13]是一个用于具身AI的LMM。基于最近的“最佳”开源LLM LLaMA,OpenFlamingo[5]和LLaMA-Adapter[59]是使LLaMA使用图像输入的开源努力,为构建开源多模态LLM铺平了道路。尽管这些模型展示了有前景的任务转移泛化性能,但它们并未明确地用视觉-语言指令数据进行调优,并且在多模态任务中的性能通常不如仅语言任务。在本文中,我们旨在填补这一空白并研究其有效性。最后,请注意,视觉指令调优与视觉提示调优[23]不同:前者旨在提高模型的指令跟随能力,而后者旨在提高模型适应中的参数效率。
3 GPT辅助的视觉指令数据生成
社区见证了公共多模态数据(如图像-文本对)的激增,从CC[8]到LAION[45]。然而,当涉及到多模态指令跟随数据时,可用数量有限,部分原因是创建此类数据的过程耗时且在考虑人工众包时定义不明确。受最近GPT模型在文本注释任务中成功的启发[17],我们提出利用ChatGPT/GPT-4进行多模态指令跟随数据收集,基于广泛存在的图像-文本对数据。
表1:一个示例来说明指令跟随数据。顶部块显示了用于提示GPT的上下文,如字幕和边界框,底部块显示了三种类型的响应。请注意,视觉图像不用于提示GPT,我们仅在此处显示它作为参考。
对于图像Xs及其相关字幕Xc,自然可以创建一组问题Xq,意图指示助手描述图像内容。我们提示GPT-4策划这样一组问题(详见附录)。因此,将图像-文本对扩展为其指令跟随版本的一种简单方法是:Human : STOP>> Assistant : STOP>>。尽管构建成本低廉,但这种简单的扩展版本在指令和响应中缺乏多样性和深入推理。
为了缓解这一问题,我们利用仅语言的GPT-4或ChatGPT作为强大的教师(两者仅接受文本输入),创建涉及视觉内容的指令跟随数据。具体来说,为了将图像编码为其视觉特征以提示仅文本的GPT,我们使用两种符号表示:(i)字幕通常从各种角度描述视觉场景;(ii)边界框通常定位场景中的对象,每个框编码对象概念及其空间位置。一个示例如表14的顶部块所示。
这种符号表示允许我们将图像编码为LLM可识别的序列。我们使用COCO图像[31]并生成三种类型的指令跟随数据。每种类型的示例如表14的底部块所示。对于每种类型,我们首先手动设计几个示例。它们是我们数据收集中唯一的人工注释,并作为上下文学习的种子示例用于查询GPT-4。
-
对话。 我们设计了一个助手和一个人询问有关这张照片的问题之间的对话。答案的语气就像助手在看图像并回答问题一样。关于图像的视觉内容提出了多样化的提问,包括对象类型、计数对象、对象动作、对象位置、对象之间的相对位置。只考虑有明确答案的问题。详见附录中的详细提示。
-
详细描述。 为了包含对图像的丰富和全面的描述,我们创建了一组具有此意图的问题。我们提示GPT-4然后策划列表(详见附录中的详细提示和策划过程)。对于每张图像,我们随机从列表中抽取一个问题,要求GPT-4生成详细描述。
-
复杂推理。 上述两种类型主要集中在视觉内容本身,在此基础上我们进一步创建深入推理问题。答案通常需要遵循严格逻辑的逐步推理过程。
我们总共收集了158K独特的语言-图像指令跟随样本,包括58K对话、23K详细描述和77k复杂推理。我们在早期实验中对ChatGPT和GPT-4的使用进行了消融,发现GPT-4始终提供更高质量的指令跟随数据,如空间推理。
4 视觉指令调优
架构
图1:LLaVA网络架构
因此,我们有一个视觉令牌序列Hv。请注意,我们的简单投影方案是轻量级的,这使我们能够快速迭代数据中心实验。也可以考虑更复杂和精细的方案来连接图像和语言表示,如Flamingo[2]中的门控交叉注意力以及BLIP-2[28]中的Q-former。我们将探索可能更有效和精细的LLaVA架构设计作为未来的工作。
训练
这导致了多模态指令跟随序列的统一格式,如表2所示。我们对LLM在预测令牌上进行指令调优,使用其原始的自回归训练目标。
表2:用于训练模型的输入序列。这里仅展示了两个对话轮次;实际上,轮次数根据指令跟随数据而变化。在我们的当前实现中,我们遵循Vicuna-v0 [9] 设置系统消息 Xsystem-message,并设置 = ###。模型被训练来预测助手答案和停止位置,因此在自回归模型中仅使用绿色序列/令牌来计算损失。
具体来说,对于长度为L的序列,我们通过以下方式计算目标答案Xa的概率:
阶段2:端到端微调。我们始终保持视觉编码器权重冻结,并在LLaVA中继续更新投影层和LLM的预训练权重;即,可训练参数为θ={W,ϕ}。我们考虑两个特定的使用场景:
-
多模态聊天机器人。 我们通过在第3节中的158K语言-图像指令跟随数据上进行微调来开发一个聊天机器人。在三种类型的响应中,对话是多轮的,而其他两种是单轮的。它们在训练中均匀采样。
-
Science QA。 我们在ScienceQA基准[34]上研究了我们的方法,这是第一个大规模多模态科学问题数据集,用详细的讲座和解释注释答案。每个问题都以自然语言或图像的形式提供上下文。助手以自然语言提供推理过程,并在多个选项中选择答案。对于(2)中的训练,我们将数据组织为单轮对话,问题和上下文为Xinstruct,推理和答案为Xa。
5 实验
我们通过两种主要实验设置评估LLaVA在指令跟随和视觉推理能力方面的性能:多模态聊天机器人和ScienceQA数据集。我们在8×A100上训练所有模型,遵循Vicuna的超参数[9]。我们在过滤后的CC-595K子集上预训练我们的模型1个epoch,学习率为2e-3,批量大小为128,并在提出的LLaVA-Instruct-158K数据集上微调3个epoch,学习率为2e-5,批量大小为32。详见附录中的更多训练细节。
多模态聊天机器人
我们开发了一个聊天机器人演示,展示了LLaVA的图像理解和对话能力,并研究了LLaVA在消化视觉输入和展示指令跟随能力方面的表现。我们首先使用原始GPT-4论文[36]中的示例,如表3所示(更多示例见附录),这些示例需要深入的图像理解。为了进行比较,我们从他们的论文中引用了多模态GPT-4的提示和响应,并查询BLIP-2和OpenFlamingo模型检查点以获取它们的响应。
表3:来自GPT-4论文[36]的示例提示,用于比较视觉推理和聊天能力。与BLIP-2[28]和OpenFlamingo[5]相比,LLaVA准确地遵循用户的指令,而不是简单地描述场景。LLaVA提供的响应比GPT-4更全面。即使仅被要求描述图像,LLaVA也能识别图像的非典型方面。
令人惊讶的是,尽管LLaVA是在一个小的多模态指令跟随数据集(约80K独特图像)上训练的,但它在这些示例上展示了与多模态GPT-4非常相似的推理结果。请注意,尽管这些图像是LLaVA的域外图像,LLaVA仍然能够理解场景并遵循问题指令提供合理的响应。相比之下,BLIP-2和OpenFlamingo专注于描述图像,而不是按照用户指令以适当的方式回答。
定量评估。 为了系统地了解LLaVA的性能,我们提出了一种定量指标来衡量模型在多模态数据上的指令跟随能力。受[9]的启发,我们利用GPT-4来衡量生成的响应的质量。具体来说,我们创建了由图像、地面真值文本描述和问题组成的三元组。候选模型(例如LLaVA)根据问题和图像预测答案。为了提供近似理论上限,我们使用仅文本的GPT-4基于问题和地面真值文本描述创建参考预测。在获取两个模型的响应后,我们将问题、视觉信息(以文本描述的格式)以及两个助手的生成响应输入给评判者(即仅文本的GPT-4)。它评估助手响应的有用性、相关性、准确性和详细程度,并在1到10的范围内给出总体评分,评分越高表示整体表现越好。它还被要求提供全面的评估解释,以便我们更好地理解模型的表现。我们报告相对于仅文本的GPT-4模型的相对分数,该模型使用地面真值标签作为视觉输入。我们创建了两个基准来评估模型的性能。
表4:在LLaVA-Bench (COCO)上使用不同训练数据的消融实验。我们报告相对于使用地面真值图像字幕和边界框作为视觉输入的仅文本GPT-4模型的相对分数。我们使用我们模型输出的答案和仅文本GPT-4的答案提示GPT-4,并让它比较两个响应并给出评分和解释。
表5:在LLaVA-Bench (In-the-Wild)上使用相对分数的指令跟随能力比较。结果以均值±标准差的形式报告。对于前三行,我们报告了三次推理运行。LLaVA的表现显著优于其他模型。†对于给定的LLaVA解码序列集,我们通过查询GPT-4三次进行评估;GPT-4给出了一致的评估。
LLaVA-Bench (COCO)。我们从COCO-Val-2014中随机选择30张图像,对于每张图像,我们使用第3节中提出的数据生成管道生成三种类型的问题(对话、详细描述、复杂推理),总计90个问题。该基准研究模型与一致视觉输入的对齐行为和能力。我们改变训练数据集以研究不同类型指令跟随数据的有效性,结果如表4所示。首先,通过指令调优,模型遵循用户指令的能力显著提高了50多分。其次,添加少量详细描述和复杂推理问题显著提高了模型的整体能力7分。此外,它还提高了模型在对话问题上的表现,表明推理能力的改进补充了对话能力。最后,我们展示了拥有所有三种类型的数据达到了最佳性能85.1%。
LLaVA-Bench (In-the-Wild)。为了评估模型在更具挑战性的任务和泛化到新领域的能力,我们收集了一组多样化的24张图像,总计60个问题,包括室内和室外场景、表情包、绘画、素描等,并为每张图像关联了高度详细和手动策划的描述以及适当选择的问题。我们在表5中比较了LLaVA、BLIP和OpenFlamingo。得益于视觉指令调优,LLaVA相对于BLIP-2(+29%)和OpenFlamingo(+48%)取得了显著更好的性能。与拥有地面真值标签的仅文本GPT-4相比,LLaVA在复杂推理问题上取得了令人印象深刻的81.7%的性能,总体得分为67.3%。
局限性。 这个LLaVA-Bench (In-the-Wild)旨在具有挑战性,并揭示模型的弱点。我们在表6中提供了两个示例,包括关联的字幕和问题。对于拉面示例(左),要正确回答餐厅名称,模型需要具有广泛的知识覆盖和多语言理解能力;要正确描述配菜,模型可能需要从互联网检索相关的多模态信息。对于冰箱示例(右),感知正确的酸奶品牌需要模型处理高分辨率图像并拥有广泛的知识覆盖。我们还观察到LLaVA的一个有趣失败,当被问及是否有草莓味酸奶时,它回答“是”,尽管冰箱里只有酸奶和草莓。这表明,有时LLaVA将图像视为“补丁包”,未能把握图像中的复杂语义。我们希望LLaVA作为基准上的坚实基线,我们的发现能够激发未来在开发更有能力的LMM方面的工作。
Science QA
Science QA [34] 包含21k多模态多项选择题,具有丰富的领域多样性,涵盖3个学科、26个主题、127个类别和379个技能。基准数据集分为训练、验证和测试集,分别包含12726、4241和4241个样本。我们考虑了两种代表性方法,包括带有和不带思维链(CoT)的GPT-3.5模型(text-davinci-002)、LLaMA-Adapter [59]以及当前最先进的方法多模态思维链(MM-CoT)[61]。更多基线数字请参见[34]。
表6:来自LLaVA-Bench (In-the-Wild)的具有挑战性的示例,我们为每张图像提供了极其详细的注释,以便进行准确的评估。一些问题要求模型从高分辨率图像中提取细节,并具有广泛的知识覆盖。
结果如表7所示。对于LLaVA,我们使用最后一层之前的视觉特征,要求模型首先预测原因然后选择答案,并训练12个epoch。它达到了90.92%的准确率,这与最先进的91.68%相当接近。为了探索LLM的极限,我们还使用2-shot上下文学习提示GPT-4,达到了82.69%的准确率,比GPT-3.5的75.17%提高了7.52%的绝对增益。对于大量问题,我们注意到GPT-4失败仅仅是因为它报告缺乏上下文,如图像或图表。我们考虑了两种方案来结合我们的模型和GPT-4的结果。(i)GPT-4补充。每当GPT-4无法提供答案时,我们使用我们的方法的预测。该方案达到了90.97%的准确率,几乎与单独使用我们的方法相同。(ii)GPT-4作为评判者。每当GPT-4和LLaVA产生不同答案时,我们再次提示GPT-4,要求它根据问题和两个结果提供最终答案。其精神类似于CoT,但具有其他模型的外部知识。令人惊讶的是,该方案能够在所有问题类别上提供一致的改进,并达到了新的最先进准确率92.53%。有趣的是,仅文本的GPT-4,无法处理图像,提高了模型在有图像上下文的问题上的整体性能。这是因为其中一些问题实际上不需要图像上下文来正确回答。GPT-4评判者可以识别这些情况并纠正LLaVA的一些错误。据我们所知,这是首次使用GPT-4进行模型集成。我们希望这一发现能够鼓励未来研究探索更有效的方法来利用LLM进行模型集成。
表7:Science QA数据集上的准确率(%)。问题类别:NAT = 自然科学,SOC = 社会科学,LAN = 语言科学,TXT = 文本上下文,IMG = 图像上下文,NO = 无上下文,G1-6 = 1-6年级,G7-12 = 7-12年级。†仅文本的GPT-4,我们的评估。我们与仅文本的GPT-4的新颖模型集成在所有类别下一致提高了模型的性能,达到了新的最先进性能。
表8:设计选择消融实验(%)。与最佳变体的差异以红色文本报告。
消融实验。 我们在Science QA上对几种设计选择进行了消融实验,结果如表8所示。(i)视觉特征。我们尝试使用CLIP视觉编码器的最后一层特征,达到了89.96%的准确率,比最后一层之前的特征低0.96%。我们假设这是因为CLIP的最后一层特征可能更关注全局和抽象的图像属性,而最后一层之前的特征可以更关注有助于理解特定图像细节的局部属性。(ii)思维链。为了决定答案和推理过程在模型预测中的顺序,我们运行了两种变体,并观察到答案优先报告了最佳的89.77%准确率,而推理优先可以在6个epoch内快速达到89.77%的准确率,但在更多训练中没有进一步改进。训练模型24个epoch不会提高性能。我们得出结论,类似于CoT的推理优先策略可以显著改善收敛性,但对最终性能的贡献相对较小。(iii)预训练。我们跳过预训练并直接从头开始在Science QA上训练——性能下降到85.81%的准确率。5.11%的绝对下降表明预训练阶段的重要性,在保持大量预训练知识的同时对齐多模态特征。(iv)模型大小。我们保持所有配置与最佳的13B模型相同,并训练一个7B模型。这达到了89.84%的准确率,比90.92%低1.08%,表明模型规模的重要性。
6 结论
本文展示了视觉指令调优的有效性。我们提出了一个自动管道来创建语言-图像指令跟随数据,基于此我们训练了LLaVA,一个多模态模型,遵循人类意图完成视觉任务。在Science QA上进行微调时,它达到了新的最先进准确率,并在多模态聊天数据上进行微调时展示了出色的视觉聊天能力。此外,我们提出了第一个研究多模态指令跟随能力的基准。本文是视觉指令调优的初步步骤,主要关注现实生活任务。有关LLaVA在学术基准上的更多定量结果,请参阅通过视觉指令调优改进的基线[32]。我们希望我们的工作能够激发未来在构建更有能力的多模态模型方面的研究。
附录A 更广泛的影响
LLaVA作为一个通用视觉助手的更广泛影响,其部署和发布具有潜在的利益和风险。由于其视觉性质,LLaVA的一些考虑是独特的,而其他一些则与现有的指令跟随LLM(如Alpaca、Vicuna等)相似。由于LLaVA建立在LLaMA、Vicuna和CLIP之上,它继承了LLM和视觉编码器的一些问题。在下文中,我们概述了该模型发布的风险和缓解策略。
恶意输入。 为了最小化潜在的滥用和有害后果,我们对LLaVA采取了两种预防措施:(1)用户输入文本的OpenAI过滤API,以防止有害或不适当的文本指令被模型处理,以及(2)上传用户图像的NSFW过滤器,以检测和阻止不安全的工作(NSFW)内容或其他潜在有害的图像输入。
幻觉。 与LLM类似,LLaVA可能会生成与事实或输入数据不符的输出。这引发了关于推断的担忧,特别是在关键应用(如医疗)中。
偏见。 偏见可以从基础模型转移到LLaVA,无论是从视觉编码器(CLIP)还是语言解码器(LLaMA/Vicuna)。这可能导致有偏见的结果或对多样性内容的不公平表示。
能源消耗。 尽管由于较小的预训练数据集(详见附录C),能源消耗不是LLaVA的主要关注点,但在扩大预训练数据集或增加模型规模(例如到更大的LLaMA版本如65B模型)时,它可能成为一个关注点。
评估复杂性。 评估LLaVA的性能具有挑战性,因为它涉及语言和视觉任务。我们的评估基准涵盖了几个方面,包括准确性、概念覆盖、推理能力和创造力。然而,还需要考虑其他方面,如视觉内容幻觉的程度和视觉内容的细粒度理解。尽管在我们的研究中,基于仅文本的GPT-4的多模态评估是一致且准确的,但其在不同情况下的稳健性和评估其他未探索方面的能力是未来工作的主题。
尽管存在这些风险,我们相信向研究社区发布LLaVA的利益大于潜在的危害。它允许对模型进行持续调查和改进,并使社区参与开发更好的缓解策略来解决这些担忧。此外,LLaVA的发布可以激发新应用和研究方向的发展,最终为视觉-语言任务中基础模型的进步和负责任部署做出贡献。
附录B 更多结果
我们展示了更多LLaVA的定性结果,以分析其涌现行为和观察到的弱点。有关LLaVA在学术基准上的更多定量结果,请参阅通过视觉指令调优改进的基线[32]。在表9中,LLaVA在GPT-4论文中的另一个示例中展示了类似的行为。与OpenAI的GPT-4实时演示类似,LLaVA能够根据用户输入的简化草图生成交互式笑话网站的HTML/JS/CSS代码,尽管存在一个小错误。如图2所示,LLaVA可以根据用户指令以对话风格提供详细响应或创意写作。此外,LLaVA能够将视觉内容与预训练LLM的文本知识相关联,如图4和图5所示。
表9:比较LLaVA、GPT-4、BLIP-2和OpenFlamingo在理解幽默方面的视觉推理能力的示例提示。BLIP-2和OpenFlamingo未能遵循用户的指令。LLaVA和GPT-4都解释了表情包及其幽默,而GPT-4提供了更简洁的答案。
LLaVA的一个有趣的涌现行为是它能够理解训练中未涵盖的视觉内容。例如,在图6中,它能够识别Elon Musk在头像和幽默表情包中的形象,尽管Elon Musk从未出现在视觉特征对齐或视觉指令调优阶段的训练数据中。LLaVA在表9和图2中还展示了令人印象深刻的OCR(光学字符识别)能力,这在我们的训练数据中很少涵盖。
图2:LLaVA根据用户草图输入生成交互式网站的HTML/JS代码。在修复生成输出中的小错误(红色)后,交互界面可以工作。LLaVA的输出还有改进空间,例如将笑话和笑点分成两行,并在按钮点击时仅显示笑点,以更好地反映用户的意图。
图3:LLaVA能够根据用户的意图识别视觉内容,而无需直接提示视觉识别。当被提示后续请求时,它还提供了详细的响应,生成的响应与提供的视觉内容密切相关。
图4:LLaVA将电影场景与预训练LLM的文本知识相关联。
图5:LLaVA识别出列奥纳多·达·芬奇的著名艺术作品《蒙娜丽莎》。当我们开始新的对话时,它还解释了网络上模仿《蒙娜丽莎》创作的幽默艺术作品。
图6:LLaVA的一个有趣的涌现行为是它能够识别Elon Musk在头像和幽默表情包中的形象,其中他打扮成一只狗。这表明预训练的CLIP视觉编码器可能见过Elon Musk的图像。然而,这仍然令人惊讶,因为Elon Musk从未出现在LLaVA的视觉特征对齐或视觉指令调优阶段的训练数据中,这表明基础语言模型能够泛化到未见过的视觉概念。
表10:一个示例,展示了仅文本的GPT-4如何作为评判者集成LLaVA和仅文本的GPT-4的预测,并给出正确的最终答案。
我们希望这些额外的结果和观察能够展示LLaVA在各种应用领域的潜力。在未来的工作中,重要的是更彻底地研究这些涌现行为,并理解使LLaVA展示这种泛化能力的底层机制。这将铺平道路,以构建更好的LMM,包括增强鲁棒性、减少偏见以及改进对齐和学习的视觉-语言表示的范围。
附录C 训练细节
我们在过滤后的CC-595K子集上预训练我们的模型1个epoch,学习率为2e-3,批量大小为128,并在提出的LLaVA-Instruct-158K数据集上微调3个epoch,学习率为2e-5,批量大小为32。遵循Vicuna,我们使用没有权重衰减的Adam优化器和余弦学习率,预热比率为3%。在微调期间,我们使用FSDP(全分片数据并行)和梯度检查点来节省GPU内存,并且不使用卸载。启用BF16和TF32以在速度和精度之间取得平衡。
我们在8×A100上训练所有模型。在CC-595K上的预训练在4小时内完成。在Instruct-158K上的微调在10小时内完成。在Science QA上的微调在4小时内完成。
附录D 资产
我们的源代码、生成的指令调优数据和提出的基准已上传到匿名GitHub仓库:LLaVA-Annonymous/LLaVA。
-
源代码:链接
-
README:链接
-
启动演示的说明:链接
-
所有提示和用于查询GPT-4的少样本示例:链接
-
LLaVA-Instruct-158K:链接
-
LLaVA-Bench:COCO,In-The-Wild
-
模型检查点。压缩后的模型检查点大小为25GB,超过了GitHub LFS(大文件存储)5GB的限制。我们将公开发布检查点,或根据审稿人的要求提供。
附录E 数据
简要图像描述的指令。用于简要描述图像内容的指令列表如表11所示。它们以自然语言变体呈现相同的含义。
表11:简要图像描述的指令列表。
表12:详细图像描述的指令列表。
详细图像描述的指令。用于详细描述图像内容的指令列表如表12所示。它们以自然语言变体呈现相同的含义。
图7:过滤CC3M前后名词短语统计的比较。图例中报告了唯一名词短语的总数。
CC3M。我们使用Spacy为整个CC3M数据集中的每个字幕提取名词短语,并计算每个唯一名词短语的频率。我们跳过频率小于3的名词短语,因为它们通常是罕见组合的概念和属性,已经涵盖在常见组合中。我们过滤掉频率小于3的名词短语,并保留频率大于3的短语。如图7所示,过滤后的名词短语覆盖了CC3M中95%的图像。
附录F 提示
用于生成对话响应的提示。我们提供用于生成对话响应的提示,详见表13。我们还提供了上下文学习示例,详见表15和表16。我们建议读者查看代码库以获取用于生成其他两种类型响应(包括详细描述和复杂推理)的提示。
表13:对于每个查询,我们展示了使用少样本上下文学习为ChatGPT/GPT-4构建提示的过程,以从查询[‘context’]中收集查询[‘response’],其中示例来自fewshot_samples,每个示例包括输入样本[‘context’]和输出样本[‘response’]。请注意,messages是最终提示。在此示例中,我们提供了用于生成对话响应的提示,详见表15和表16中的上下文学习示例。我们建议读者查看代码库以获取用于生成其他两种类型响应(包括详细描述和复杂推理)的提示。
表14:一个示例来说明指令跟随数据。顶部块显示了用于提示GPT的上下文,如字幕和边界框,底部块显示了三种类型的响应。请注意,视觉图像不用于提示GPT,我们仅在此处显示它作为参考。
表15:用于构建视觉对话数据的上下文学习示例。
表16:用于构建视觉对话数据的上下文学习示例。