文|QvQ
最近,DALL-E和CM3等模型在多模态任务尤其是图文理解上表现出色。然而,这些模型似乎需要将所有学到的知识存储都存储在模型参数中,这就不得不需要越来越大的模型和训练数据来获取更多的知识,俨然将bigger and better绑定在了一起。
那既然如此,哪还需要算法工程师?全体转行数据标注工程师和芯片制造工程师岂不是可以早日实现AI自由?
这不,斯坦福和Meta AI一众学者为了证明算法工程师“不可取代”的地位,提出了一种检索增强的多模态模型:实现了通过可缩放和模块化的方式集成知识,从而使基础多模态模型(生成器)能够引用检索器从外部存储器(如Web上的多模态文档)获取的相关知识,大幅度增强模型性能。smaller also better跃然纸上。
论文题目:
Retrieval-Augmented Multimodal Language Modeling
论文链接:
https://arxiv.org/pdf/2211.12561.pdf
1.前言![641b6fbc4a0fa8fb35a938a160b53c6e.png](https://i-blog.csdnimg.cn/blog_migrate/9ca0a61fe0c799090764094a9b872280.png)
1.1 整体架构
本文提出了一种检索增强多模态模型,那么啥是检索增强多模态模型?顾名思义,一个复杂的名词往往可以拆分来解析:检索增强与多模态。
检索增强的操作之前往往应用在语言模型上即检索增强语言模型:框架由检索模块和生成器模块(例如,语言模型)组成。检索模块获取输入序列和文档的外部存储器,并返回文档的候选检索列表。然后,生成器获取输入序列x和检索到的文档(,,),并返回语言建模任务中的目标。
多模态模型:可以处理如文本、图像、语音等多种形态信息的模型。
终上所述,将以上两者进行缝合,本文提出的检索增强多模态模型是一种可以检索和生成文本和图像的新方法。
整体架构如下图:
![e572fdd841827ce3b785a35da1105bc3.png](https://i-blog.csdnimg.cn/blog_migrate/d31ec04bfc6ebcd648c60aa044cf2f95.png)
(a):对于给定输入的多模态文档,使用检索器从外部存储器检索相关的多模态文件,并让生成器参考检索到的文档对输入进行预测多模态预测。
(b):多模态检索器是具有混合模态编码器的密集型检索器,其中编码器可以对文本和图像的进行混合编码(如使用CLIP预训练模型对文本和图像分别编码)。
(c):检索增强生成器的构建是基于CM3 Transformer架构,最终将检索到的多模态候选文档与原始输入一同作为输入以生成图像、文本作为最终目标。
作者表示这是第一个可以检索和生成混合文本图像的多模态模型,也是现有多模态模型中功能最全的模型。
1.2 CM3模型
因果式masked多模态模型:CM3是用于多模态文档的Transformer解码器模型。多模态文档定义为文本、图像或一系列富媒体的组合。CM3将每个多模态文档格式化为HTML序列,例如<img alt=[text]src=[image]>,其中[text]是文本标记序列,[image]是图像标记器获得的图像标记序列。
在训练时,CM3要么将原始序列作为输入(例如,=猫的照片:[image]),要么通过mask一些token并将其移动到末尾转换为预测目标(例如,=的照片:[image]猫),然后优化输入的token prediction loss:()。
2.细节![13c726192b6b6a0655ccecc9b73b5179.png](https://i-blog.csdnimg.cn/blog_migrate/79caf89d9f48fccdac09685c2f98dec6.png)
2.1 检索流程
同传统检索方式一样:检索器获取查询q(即输入序列)并从存储器中或许候选文档列表,并计算相关性得分r(q,m)。这里作者团队选择了双塔结构的编码网络:
,
其中,查询编码器 和文档编码器 分别为query和doc生成密集型检索向量。给定一个多模式文档,将其分为文本部分和图像部分,使用现有的CLIP文本编码器和图像编码器分别对这两个部分进行编码,然后将二者的输出做mean pooling,将L2范数缩放为1,作为文档的向量表示。和都采用使用相同的编码方法。
对于给定的检索器,对所有候选结果执行最大内积搜索,以获得按相关性得分排序的候选文档列表。然后从这个列表中对最终检索到的个文档进行采样。
2.3 采样策略
本节讨论在实践中为生成器采样信息检索候选文档的三个关键因素。
相关性:检索到的文档需要与输入序列相关;否则,检索到的文件不能为主要输入序列建模提供有用信息。基于CLIP的密集检索器得分能cover这一相关性因素。
多模态:虽然现有的检索工作通常只为生成器检索图像或文本,但实验表明,检索由图像和文本组成的多模态文档可提高生成器性能。多模态文档可以提供更多信息,因为其中的文本和图像可以相互关联。因此,在最终的系统中,同时保留检索到的多模式文档,这些文档为生成器保留全部图像和文本信息。
多样性:实验发现确保检索文档的多样性也很重要。首先,简单地基于相关性得分从文档列表中采样的可能会导致重复或高度相似的图像或文本,从而导致生成器性能不佳。即使文档本身不是重复的,其中包含的图像或文本可能是重复的,这会影响生成器的性能。为了避免冗余:①从候选列表顶部获取文档时,如果候选文档与查询或已经检索到的文档太相似(例如,相关性得分>0.9),跳过该候选文档。②为了进一步鼓励多样性,在训练时还应用了一种查询丢弃(Query Dropout)机制,它丢弃了用于检索的查询query的一些token。该技术用作训练的正则化,并使得生成器性能的进一步提高。
2.4 多模态生成器
文中使用CM3作为多模态生成器的基础。为了将检索到的文档(,,)合并到生成器中,作者将它们前置到原始输入序列,并将生成的序列(,,,)一同送入Transformer。换句话说,检索到的文档是原始输入的上下文示例。
为训练生成器,优化以下loss
αα
其中和分别是CM3模型对于主输入序列和检索到的文档(,,)的token prediction loss。
在这里,作者特别指出需要使用α联合优化两个损失项。因为现有的检索增强模型通常只优化主序列的损失(即,α)。虽然,Transformer结构在计算主序列中token prediction loss时通常会涉及候选检索到的文档中的token prediction loss。但α提供了一种类似于增加batch_size大小(优化中所有涉及的tokens数量)的效果,而无需额外的计算,并提高了训练效率。
2.5 Training and inference
(1)Training给定完整的输入文档,使用其文本部分或图像部分作为检索文档的查询query。然后通过标准的Teacher-Forcing优化整个级联序列(公式2)上的loss。训练时只使用文本或图像的一部分作为查询。一方面,因为对于生成器来说,基于完整的输入文档可能会使生成器的token predict任务在训练期间过于容易;另一方面,该训练设置接近于文本到图像和图像到文本生成的典型推理场景(大部分多模推理场景都是输入较短的篇幅)。
(2)Inference使用作为检索的查询,然后让生成器将检索到的多模文档作为输入的一部分,以解码并产出多模目标。例如,对于文本到图像的生成:即采用源标题,目标是生成对应的内容图像。对于从图像到文本,即为获取的源图像,而目标是为源图生成标题。因此,检索器只使用简短的提示作为query,而不会看到要评估的ground-truth,从而确保没有信息泄漏。
3. 实验![8d8b4f33dd9477c7d0a27878c5b62b33.png](https://i-blog.csdnimg.cn/blog_migrate/4cc6f4c821c8d90b629806597f7f3436.png)
3.1 标题->图像生成实验
下表显示了MS-COCO数据集上的从标题到图像生成任务的性能。指标是FID分数,越低效果越好。本文提出的RA-CM3模型显著优于没有检索的基线CM3,以及DALL-E(12B参数)等其他模型。此外,RA-CM3模型以比现有模型拥有更少的参数计算实现了强大的性能。
3.2 图像->标题生成实验。
下表显示了MS-COCO数据集上的图像到标题的生成性能,没有进行微调。衡量标准是CIDEr分数,其中越高越好。本文提出的RA-CM3的CIDEr得分为89,显著优于没有检索的基线CM3(CIDEr 72)。此外,RA-CM3性能明显优于其他模型(如Parti的20B参数和Flamingo的3B、4-shot)
3.3 冗余分析
(1) 检索相关性实验(上表的第一行) 模型的相关性计算候选是基于CLIP的检索器检索的相关文档,一个自然的基线是使用随机文档训练模型而不进行检索。这一基线导致了显著的性能下降,这表明在上下文中有相关文档对于模型训练至关重要。此外,还研究了其他基线,例如在训练时间使用检索到的文档,但在推断时间使用随机文档,或者在训练和推断时间使用任意文档。两者都会导致性能显著下降。这些结果证实了相关性在训练和推理时间都是检索的关键因素。
(2) 多模检索实验(上表的第二行) 检索器通常只为生成器检索图像或文本,但本文中基于混合模态编码器的检索器可以检索由图像和文本组成的多模态文档。实验发现检索多模式文档比仅检索图像或文本效果更好。直觉上多模式文档可以提供更多信息,因为其中的文本和图像可以相互关联。
(3) 检索多样性实验(上表的第三行) 鼓励检索文件的多样性非常重要。简单地从按检索器分数排序的候选文档列表中获取前K实际上会导致较差的性能,比没有检索增强的基线稍差。文中采用的第一种方法“相似抛弃”避免了检索文档中的冗余,从而显著提高了性能。第二种技术“查询丢弃”(Query Dropout)在训练过程中鼓励更多的检索多样性,从而进一步提高了评估效果。
(3) 生成器训练实验(上表的第四行) 生成器的一个关键设计是加权α联合优化主输入文档和检索文档的token prediction loss。现有的检索增强模型通常只优化主文档的损失(α=0),实验发现联合优化(α>0)有助于训练并提高性能。且在α=0.1效果最好。如果α设置得太大(例如,α=1)会影响训练,因为这会对检索到的文档而不是主文档的建模造成太大的影响。
一点碎碎念![43a0783185cd06a127f74cb46e09640c.png](https://i-blog.csdnimg.cn/blog_migrate/fe7d921f7c39d14ac0eb336b27fae05c.png)
文本主要将检索增强语言模型框架推广到多模态场景下,使得输入和输出都可以是一个多模态文档。虽然,检索模块和生成模块,都是建立在现有技术CLIP和CM3的基础上,但本文是第一个通过对整体框架的设计和广泛分析将它们进行统一,并进一步提高性的检索增强模型的方法。
最近大火的ChatGPT使得人们一度怀疑,生成式问答是否可以直接代替搜索引擎的功能。但当越来越多无厘头的回答出现后,可以发现ChatGPT的回答可能看似能回答问题本身,但又完全不符合事实根据。
然而,在检索增强语言模型的框架下,如果能先检索候选答案,再根据top候选进行整合,进而生成最终目标答案,这样既可为最终答案增加了一份可信计算的依赖,避免了真实性误差;又可以真正实现搜索引擎上真正意义上的Top1满足,可想而知能有多多么震撼的效果!
不管怎样,未来可期~ 乐乐QvQ
卖萌屋作者:乐乐QvQ。
硕士毕业于中国科学院大学,前ACM校队队长,区域赛金牌。竞赛混子,Kaggle两金一银,国内外各大NLP、大数据竞赛Top10。校招拿下国内外数十家大厂offer,超过半数的SSP。目前在百度大搜担任搜索算法工程师。知乎ID:QvQ
作品推荐:
后台回复关键词【入群】
加入卖萌屋NLP、CV、搜推广与求职讨论群