多模态LLM是LLM的自然演变,扩大了它们的能力,使其能够超越纯文本模态工作。随着研究行人设计新型架构和视觉与语言 Adapter ,本文作者专注于赋予这些模型回答需要外部知识的问题的能力。
作者的方法称为Wiki-LLaVA,旨在整合一个多模态文档的外部知识源,通过分层检索 Pipeline 访问该知识源。
通过这种方法,从外部知识源检索相关段落,并将其作为LLM的附加上下文,增强了生成对话的有效性和精确性。作者在针对视觉问答的外部数据定制的数据集上进行了大量实验,并证明了作者方法的适用性。
1 Introduction
近期,大型语言模型(LLM)在零样本文本任务中展现了令人印象深刻的性能。特别是,近期的研究设计出了能够根据用户指示处理多样任务的模型[6, 30, 41]。在这个背景下,经典的方法是在多种通过自然语言描述的任务上微调模型[7, 34],从而使模型能够吸收外部提供的指示,并促进在多个领域内的强大泛化能力。 在这些进展之后,计算机视觉界开始研究将这些模型扩展到视觉和语言的情境中,从而生成多模态大型语言模型(MLLMs)。在这方面,通过视觉到语言的 Adapter 将视觉特征融合到LLM的主干中,引起了显著的性能提升,使得对需要精心设计的视觉描述的视觉和语言任务能够广泛泛化。
图1:标准多模态LLM与Wiki-LLaVa的比较。作者的模型通过分层检索 Pipeline 从外部文档知识库中整合知识。因此,在需要外部知识的提问任务中,它能提供更精确的答案。
在这种背景下,MLLMs只需简单地包含一个小模块(即 Adapter )来对齐视觉特征与文本特征。然而,尽管这些模型建立在基于大规模数据训练的LLM之上,当面对高度特定的用户 Query 或需要一定的复合推理来形成回答时,它们表现出明显的局限性。此外,某些知识由于训练数据中的长尾信息稀缺,证明难以编码在MLLM的参数中。为了应对这一挑战,最近引入了用于评估MLLM处理与外部数据相关的 Query 能力的评估方法,例如InfoSeek[5]和Encyclopedic-VQA[28]。尽管不同的研究已经在这些基准上进行测试,强调这一领域的重要性,但它们中没有开发专门用于处理外部知识的架构。
基于这些考虑,在本文中,作者提出了第一个带有检索模块的MLLM,从而将重点转向教导模型利用不同信息进行回答,并学习区分各自的相对重要性。
特别是,作者的模型从外部文档知识库中检索适当的信息,并采用分层检索方法来识别相关段落。这额外的知识随后被送入MLLM,不改变其结构但提升了其回答能力。据作者所知,作者的工作是第一个利用外部来源检索能力的MLLM。作者通过进行广泛的实验和与最近的MLLMs的比较来评估所提出方法的质量,并展示作者的设计选择的有效性。实验结果表明了从外部来源检索的优势和作者的模型设计的适当性。总的来说,作者认为作者的工作是向检索增强的MLLM迈出的第一步,这可能会促进该领域未来工作的开展。
2 Related Work
多模态大型语言模型(MLLMs)。 大型语言模型(LLM)显著改变了人工智能研究和应用的格局,以OpenAI的ChatGPT和GPT-4等著名模型为代表。这些模型利用了指令微调[30]和基于人类反馈的强化学习[39]等对齐技术,并在语言理解和推理方面取得了显著能力。开源的LLM,如Flan-T5[7]、Vicuna[6]、LLaMA[41]和Alpaca[40]进一步加速了研究界的发展。LLM的这种发展随后催生了多模态大型语言模型(MLLMs)[3],它们能够将视觉输入的理解与自然语言生成结合起来。
早期的构建MLLMs的尝试,如Visual-GPT[4]和Frozen[42],使用了预训练的语言模型来增强针对图像字幕和视觉问答等任务的视觉语言模型。这一初步研究为该领域后续的研究铺平了道路,随着Flamingo[1]或BLIP-2[21]等解决方案的推出,它们分别通过在LLM中直接的可训练跨注意力层或者通过可学习的 Query 结合图像和文本特征的Q-Former块,实现了图像特征与LLM的整合。在此基础上,FROMAGe[19]、Kosmos-1[14]和MiniGPT-4[48]等后续模型被引入,以进一步改进LLM架构中视觉和语言模态之间的交互。
与此同时,LLaVA系列模型[23, 24, 25]在多模态领域引入了指令微调的使用,通过在由GPT-4收集的精选数据集上进行训练。这种策略现在是构建MLLMs的最有前景的方法之一。
检索增强型语言模型。 近年来,检索增强技术被应用于语言模型,通过从外部来源[10]提取相关的文本段落,或最终直接从网络上检索[29],来扩展其输入空间。这些技术已经在知识密集型任务中显示出巨大的改进,并在模型大小方面实现了显著的节省。
传统上,将外部知识整合到文本生成中一直局限于初始阶段。不同的解决方案[17]提出在专有的LLM之上自适应地检索生成所需的段落。而有些工作[10]则专注于以更模块化和可解释的方式捕获知识,通过在语言模型预训练中增加一个潜在的知识检索器。这使得模型能够从大型语料库(如维基百科)中检索并关注文档。
虽然很多关注点都集中在文本增强上,但最近在视觉语言任务背景下也投入了类似的研究努力。沿着这个方向,[13]中的工作提出了一种检索增强型的视觉语言模型,将世界知识编码到大规模记忆中。其他方法[35, 36]也将检索应用于特定的下游任务,如图像字幕。与所有上述方法不同,作者的工作是首次将检索增强应用于MLLMs。作者通过在多模态文档构成的知识库上应用分层检索策略来实现这一点。
基于知识的视觉问答。 近年来,新出现的基准测试如Encyclopedia-VQA[28]和InfoSeek[5]提高了基于知识型VQA[16, 27, 38]的难度,提出的问题需要针对特定实体进行密集的知识了解,以至于没有从外部来源检索信息的LLM型模型表现不佳。通常,对比图像文本编码器被用于给定 Query 图像时检索目标实体[44, 46]。然后,实体名称用作访问外部知识库的键,该知识库通常由包含正确答案的多个文本段落组成。在这项工作中,作者设计了一个基于CLIP[33]和Contriever模型[15]的分层检索方案,以提炼出相关段落,并将它们输入到MLLM中,以帮助答案生成。
3 Proposed Method
作者的目标是让多模态大型语言模型(MLLMs)具备回答仅凭图像内容和预训练知识无法解决的复杂且具体问题的能力。为了实现这一点,作者提出了Wiki-LLaVA,它将外部记忆中提取的外部知识整合到LLaVA模型中,而无需显著改变其设计。相反,作者通过将检索信息作为额外的输入上下文来增强模型的能力。总的来说,Wiki-LLaVA由三个部分组成,如图2所示:视觉编码器,用于为MLLM提供视觉上下文,并作为从外部知识库检索的 Query ;知识库本身(例如,维基百科);以及分层检索模块,它从外部知识库检索相关文档和段落,作为MLLM的额外上下文使用。
Knowledge-based Augmentation
多模态融合与自回归生成。 MLLM(多模态语言模型)通常以包含图像和文本的多模态输入 Query 作为输入,并以自回归的方式生成文本输出。从形式上讲,该架构被训练用来模拟概率分布 ,其中 表示模型的参数, 代表输入图像, 表示文本提示。文本提示通常包括预定义的系统级提示和用户给出的与输入图像相关的问题。显然,标准的MLLM只能依赖于用户提示、输入图像及其内部参数中存储的知识(即 )来满足请求,从而限制了其回答依赖外部知识的问题的能力。
在本文的其余部分,作者采用LLaVA [24] 作为作者参考的MLLM。LLaVA利用了预训练的LLM(即Vicuna [6])和预训练的视觉模型(即基于CLIP的视觉编码器[33])的能力,通过一个MLP Adapter 连接起来,负责将CLIP特征转换为密集输入 Token 。对于输入图像 ,因此,LLaVA使用预训练的CLIP视觉编码器 ,提取密集的视觉特征网格 ,然后通过可学习的MLP进行投影,产生一系列密集嵌入 Token 。最后,这些 Token 被添加到系统提示之前,完整的视觉和文本 Token 序列随后作为输入提供给模型的LLM部分。
外部知识的增强。 为了用外部知识增强MLLM,作者通过注入来自外部记忆(由文档组成)的相关文本数据来丰富输入上下文。从形式上讲,MLLM的分布取决于附加的文本检索知识 Token ,导致
其中 表示从外部记忆中添加的 Token 。与MLLM的标准公式不同,通过丰富输入上下文,作者允许模型通过利用从记忆中检索到的 Token 来生成更具体的答案。
图2:Wiki-LLaVA架构概述,通过分层的检索 Pipeline ,将多模态大型语言模型与外部知识相融合。
从外部记忆中进行分层检索。 外部记忆包含从文档中提取的(文档、图像、文本标题)三元组集合,表示为 。在这个记忆中,作者进行两步的分层搜索以检索适当的信息。首先,作者找到最相关的文档,然后识别特定文档中的相关段落,这随后被作为附加输入上下文在MLLM中使用。
在第一阶段,给定一个输入 Query 图像 ,作者使用文档标题作为可检索的键,在外部记忆中进行近似的-最近邻搜索。 Query 图像与文本标题之间的相似性被建模为它们各自嵌入的内积,这些嵌入是通过视觉和文本的CLIP编码器计算出来的(即 和 ),如下所示:
然后,知识检索器返回与上述过程检索到的最相关项目相关联的前个文档。
检索文档段落。 在第二步中,作者分析每个检索到的文档,以识别与用户问题最相关的段落。每个文档被定义为块的序列,表示为 ,并且,给定输入问题,作者检索与问题相似度最高的块。作者使用Contriever架构[15]嵌入每个选定文档的块以及 Query (即用户提供的问题),并计算嵌入之间的内积作为相似性。通过在每一个检索到的文档内部检索个最适当的段落,作者总共得到个段落。
上下文丰富。 一旦作者找到最相关的块,作者就使用它们的原始内容作为MLLM的附加输入。具体来说,作者使用的最终提示包括图像标记、检索到的原始块、系统级提示和用户问题。正式地,考虑到三个检索到的段落,最终提示定义如下:
Training
虽然上述方法可以以零样本的方式工作,使用预训练MLLM的原始权重 ,但作者也研究了微调模型的情况,以增强其利用检索到的段落的能力。特别是在这种情况下,模型在需要外部知识的问题和真实答案对上进行训练。由于这可能潜在地降低MLLM在不需外部知识的任务上的能力(即,模型最初训练的所有其他任务),作者采用了一种数据混合方法,在这种方法中,需要外部知识的事实对与不需要外部知识的事实对在同一小批量中混合。
4 Experiments
在本节中,作者首先介绍实验设置,描述所使用的数据集、评估协议以及执行实验时所用的实现和训练细节。然后,作者展示实验结果,分析CLIP微调的有效性,并评估如何在MLLM中融合检索到的知识。最后,报告所提方法的局限性及可能的未来工作。
Datasets
Encyclopedic-VQA [28]. 该数据集包含大约221k个与16.7k个不同细粒度实体相关的问题-答案对,每个实体最多有5张代表相同实体的图片。总的来说,有超过1M个由图片、问题和相应答案组成的三元组。细粒度实体和相关图片从iNaturalist 2021 [43]和Google Landmarks Dataset V2 [45]中提取,并与对应的维基百科文章关联。问题分为四类,即单跳、自动生成、多答案和双跳。特别是,单跳问题已经手动标注,只需一个维基百科文章就能回答它们。自动生成的问题与单跳问题类似,但由自动模型生成。多答案问题可以由一系列术语回答,但始终指代单一细粒度实体。最后,双跳问题需要两个检索步骤来回答。数据集还附带了一个由2M维基百科文章组成的知识库,适用于回答数据集问题。
数据集三元组分为训练、验证和测试集,分别由1M、13.6k和5.8k个样本组成。在实验中,作者使用训练集来微调LLaVA模型,并在数据集的测试集上报告结果。在测试期间,作者过滤掉双跳问题,得到4,750个测试三元组。
InfoSeek [5]. 该数据集包含1.3M个图像-问题-答案三元组,对应大约11k个不同实体(即维基百科文章)。绝大多数问题是通过几乎完全自动化的程序获得的,通过填充由人类撰写的模板,使用来自Wikidata的知识三元组。在这种情况下,图片源自OVEN数据集[12]。三元组分为训练、验证和测试集,分别约有934k、73k和348k个样本。在提交时,测试集的 GT 答案不可用。因此,作者在验证集上报告作者的结果。验证集和测试集都包含与训练集中未包含的新实体相关的问题,以及训练期间未见的问题。
除了图像-问题-答案三元组之外,还提供了一个由6M维基百科实体组成的知识库。在实验中,作者考虑了一个随机提取的100k实体子集,作者确保其中包含与数据集问题相关的11k个实体。
Implementation Details
LLaVA微调。 作者采用了两种不同的微调方法,每种方法专门用于一个数据集。为了保持LLaVA模型在已确立的多语言学习(MLLM)数据集上的性能,作者在微调数据中补充了来自LLaVA-Instruct数据集[24]的样本。具体来说,鉴于其158k的大小,作者使得每个小批量中来自这个数据集的样本概率翻倍。为了减少可训练参数的数量,作者使用低秩 Adapter [11]进行训练,总批量大小为512个样本。
检索。 来自维基百科内容的文本文档通过Contriever架构[15]进行嵌入,将文本分割成每个600个字符的块。此外,为了提高效率,该过程涉及使用单个视觉编码器。具体来说,遵循LLaVA架构[24],作者使用CLIP ViT-L/14@336主干网络将图像嵌入为输入到MLLM,同时利用它在初始分层检索步骤中提取 Query 视觉特征,从而方便集成外部记忆组件。
为了执行实体检索,作者采用了近似的_k_NN搜索而不是精确的_k_NN搜索,因为它显著提高了整个 Pipeline 的计算速度。为此,作者使用了Faiss库[18]和一个基于图的HNSW索引,每个顶点32个链接。
Evaluation Protocol
作者分别在两种设置下评估作者的模型:不使用外部知识库和使用外部知识库。前者意味着作者要求模型仅依靠预训练和/或微调期间学到的能力直接回答视觉问题。另一方面,在后一种设置中,作者利用所提出的分层检索方法在外部知识库中搜索附加信息。在实践中,这由两个维基百科转储组成,分别包含200万和10万个页面,用于Encyclopedic-VQA和InfoSeek。关于评估指标,作者遵循数据集提供的官方评估脚本,报告Encyclopedic-VQA测试集和InfoSeek验证集的准确率。
Experimental Results
分析CLIP性能 。作者从评估使用CLIP的实体检索结果开始。在这种设置中,作者考虑来自Encyclopedic-VQA测试集和InfoSeek验证集的图像,并测量CLIP在各自数据集的知识库中找到正确实体的能力(即Encyclopedia-VQA由200万个条目组成,InfoSeek由10万个条目组成)。如前所述,作者使用图像作为 Query 和维基百科标题作为可检索项进行检索。
结果在表1中以召回率@_k_(R@_k_)的形式报告,,这衡量了在顶部-_k_检索元素中找到正确实体的次数百分比。值得注意的是,正确检索与输入图像相关联的维基百科实体强烈依赖于所使用的知识库的大小。实际上,当使用10万个条目,如在InfoSeek的情况下,正确实体作为第一个条目被检索到的概率为36.9%,在顶部-10中的概率为66.1%。相反,当使用像Encyclopedic-VQA那样显著更大的知识库(包含200万个条目)时,检索结果在R@1和R@10方面分别显著降低至3.3%和9.9%。
Encyclopedic-VQA和InfoSeek的结果 。然后作者在表2中报告了视觉问答的结果。作者包括了零样本模型如BLIP-2 [21],InstructBLIP [8]和LLaVA-1.5 Baseline 模型[24]的性能,这些模型没有在考虑的数据集上进行微调,也没有利用外部知识库。此外,作者考虑了LLaVA-1.5在Encyclopedic-VQA和InfoSeek的训练集上进行微调但不增加检索上下文的准确度结果。作者方法的报告结果(即WikiLLaVA)包括在标准设置下,使用CLIP从知识库中检索最具代表性的实体,及其_oracle_版本,后者使用与输入图像-问题对相对应的实体。对于这两种情况,作者考虑了不同数量的检索文本块,所有这些文本块均对应于顶部-1(或 GT )实体。当使用CLIP时,作者也改变了检索实体的数量(即),当大于1时使用。这个选择是由于Vicuna作为输入的上下文最大长度设置为2,048个 Token 。可以看出,零样本MLLM在正确回答给定问题方面面临困难,因为这些模型只能依赖于嵌入在LLM中的知识。而当使用外部知识库时,准确度结果显著提高,特别是在有10万个可检索项的InfoSeek数据集上。然而,CLIP模型在较大知识库中检索正确实体的有限性能导致准确度分数略有下降。这是由于提供给MLLM的附加外部上下文中的噪声文本段落,这些文本段落与不同实体相关,通常不包含信息性内容。
总体来说,从不同实体检索段落并不总是能帮助提高结果。相反,为MLLM提供多个文本块作为附加上下文通常可以提高InfoSeek验证集上的最终准确度,当时整体提高了2.1个准确度点,当时提高了3.4个准确度点。此外,值得注意的是,采用最优实体显著提高了最终准确度。特别是,与基于CLIP的实体检索的最佳表现配置(即Encyclopedic-VQA上的和,InfoSeek上的和)相比,最优表现的最优实体版本(即Encyclopedic-VQA上的和,InfoSeek上的和)在Encyclopedic-VQA上提高了13.8%,在InfoSeek上提高了22.6%。这些结果证实了直接使用检索到的段落来增强预训练MLLM的有效性,并进一步强调了拥有一个好的实体检索模型以限制向MLLM提供不相关内容的重要性。
在图3中,作者报告了Encyclopedic-VQA(第一行)和InfoSeek(第二行)的样本图像-问题对上Wiki-LLaVA给出的答案与原始LLaVA-1.5模型给出的答案的比较。为了完整性,作者还报告了一些失败案例(第三行),这两种模型都无法正确回答给定的问题。
评估微调数据集的重要性。 如第3.2节和第4.2节所述,MLLM的微调是使用包含Encyclopedic-VQA或InfoSeek训练集中的图像-问题-答案三元组和来自LLaVA-Instruct [24]的视觉指令调整数据的混合数据完成的,后者最初用于微调LLaVA模型。在表3中,作者评估了混合知识型VQA任务的微调数据的效果。在这种设置中,作者只报告了在无外部知识检索的情况下微调的模型的结果。值得注意的是,使用视觉指令调整数据可以帮助规范InfoSeek数据集上的微调阶段,与仅在该数据集的训练集图像-问题-答案三元组上微调的模型相比,整体提高了1.9个准确度点。而在Encyclopedic-VQA上,使用指令调整数据进行训练不会带来性能提升,尽管也没有降低原始结果。
LLaVA性能的保持。 最后,作者分析了在常见的MLLM评估基准[3]上评估模型时,LLaVA在知识型VQA数据集上的微调影响。特别是,作者包括了MME [9]的结果,它包含覆盖14个不同任务的图像-问题对,分为两个宏观类别(即认知和感知)、MMMU [47]它由来自不同大学教材和在线课程的可能的多个选择题和开放式问题组成,MMBench (MMB) [26]它包括20个不同领域的多项选择题,以及专注于评估目标幻觉的POPE [22],包含与图像相关的二元分类条目。关于评估指标和样本数量的更多详细信息可以在各数据集的原论文中找到。
结果显示在表4中,比较了原始LLaVA模型与在Encyclopedic-VQA和InfoSeek上的两个微调版本,以及是否使用视觉指令调整数据的情况。总体而言,采用LLaVA-Instruct数据集样本可以更好地保留原始模型的性能,与原始模型相比,在考虑的基准测试上性能只有部分下降。虽然在MME数据集上性能下降最为显著,但在其他设置中原始性能得到了更好的保留,并且与LLaVA-1.5的结果相比,在MMMU和POPE基准测试上还略有提升。
Limitations and Future Works
虽然作者的工作为能够适当利用外部多模态数据的MLLM迈出了初步步骤,但值得提到的是,在两个方向上还需要进行大量研究。第一个方向是定义适当的嵌入空间,以便可以从问题和输入图像中检索文档,从而提高作者分层检索的更高层次的性能。第二个方向是建模一个高效且可持续的范式,以从一个或多个文档中进行选择。在这里,挑战在于提高MLLM区分检索项目适当性的能力。这一点可能还需要新颖的架构设计,可能超出了在上下文中纯粹包含检索项目的范围。不管其当前的局限性如何,作者的研究证明了将多模态外部知识添加到MLLM中的潜力,并继承了所有检索增强方法的优点,比如适应不同领域的灵活性以及预训练信息与可检索数据之间的松耦合关系。
5 Conclusion
图3:在Encyclopedic-VQA(第一行)和InfoSeek(第二行)的样本图像-问题对上,比较所提出的方法与原始LLaVA-1.5模型。第三行展示了某些失败案例及其对应的真实情况。
作者提出了Wiki-LLaVA,这是一种通过外部知识增强现有MLLM的架构。作者的 Proposal 利用外部文档知识源来提高MLLM在处理问题和对话时的有效性。特别是,作者设计了一种分层架构,用于检索文档并引出要包含在MLLM输入上下文中的选定部分。广泛的实验证明了所提出解决方案的有效性,并展示了其在不同任务中保持MLLM熟练度的能力。
参考
[1].Wiki-LLaVA:.
