大幅超越DALL·E 2和Imagen,斯坦福发布RA-CM3模型,融合检索与生成

d541eeceb57a9652c2dcc814d7802a28.png

文|QvQ

最近,DALL-E和CM3等模型在多模态任务尤其是图文理解上表现出色。然而,这些模型似乎需要将所有学到的知识存储都存储在模型参数中,这就不得不需要越来越大的模型和训练数据来获取更多的知识,俨然将bigger and better绑定在了一起。

那既然如此,哪还需要算法工程师?全体转行数据标注工程师和芯片制造工程师岂不是可以早日实现AI自由?b6c0b440085b26b5008e49d544a18516.png

这不,斯坦福和Meta AI一众学者为了证明算法工程师“不可取代”的地位,提出了一种检索增强的多模态模型:实现了通过可缩放和模块化的方式集成知识,从而使基础多模态模型(生成器)能够引用检索器从外部存储器(如Web上的多模态文档)获取的相关知识,大幅度增强模型性能。smaller also better跃然纸上。

论文题目
Retrieval-Augmented Multimodal Language Modeling

论文链接:
https://arxiv.org/pdf/2211.12561.pdf

21a0728256bd91b9aa2e4785cf756d44.png1.前言641b6fbc4a0fa8fb35a938a160b53c6e.png

1.1 整体架构

本文提出了一种检索增强多模态模型,那么啥是检索增强多模态模型?顾名思义,一个复杂的名词往往可以拆分来解析:检索增强多模态

  • 检索增强的操作之前往往应用在语言模型上即检索增强语言模型:框架由检索模块和生成器模块(例如,语言模型)组成。检索模块获取输入序列和文档的外部存储器,并返回文档的候选检索列表。然后,生成器获取输入序列x和检索到的文档(,,),并返回语言建模任务中的目标。

  • 多模态模型:可以处理如文本、图像、语音等多种形态信息的模型。

终上所述,将以上两者进行缝合,本文提出的检索增强多模态模型是一种可以检索和生成文本和图像的新方法。

整体架构如下图:

e572fdd841827ce3b785a35da1105bc3.png

(a):对于给定输入的多模态文档,使用检索器从外部存储器检索相关的多模态文件,并让生成器参考检索到的文档对输入进行预测多模态预测。

(b):多模态检索器是具有混合模态编码器的密集型检索器,其中编码器可以对文本和图像的进行混合编码(如使用CLIP预训练模型对文本和图像分别编码)。

(c):检索增强生成器的构建是基于CM3 Transformer架构,最终将检索到的多模态候选文档与原始输入一同作为输入以生成图像、文本作为最终目标。

作者表示这是第一个可以检索和生成混合文本图像的多模态模型,也是现有多模态模型中功能最全的模型。cee6e681709d187cef4dde7080487f47.png

1.2 CM3模型

因果式masked多模态模型:CM3是用于多模态文档的Transformer解码器模型。多模态文档定义为文本、图像或一系列富媒体的组合。CM3将每个多模态文档格式化为HTML序列,例如<img alt=[text]src=[image]>,其中[text]是文本标记序列,[image]是图像标记器获得的图像标记序列。

在训练时,CM3要么将原始序列作为输入(例如,=猫的照片:[image]),要么通过mask一些token并将其移动到末尾转换为预测目标(例如,=的照片:[image]猫),然后优化输入的token prediction loss:()。

41199bb6b2c1e1877ed699aa693e31b4.png2.细节13c726192b6b6a0655ccecc9b73b5179.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,从而确保没有信息泄漏。

44a08f5463c3333ff58db1ba7e7e3b59.png3. 实验8d8b4f33dd9477c7d0a27878c5b62b33.png

3.1 标题->图像生成实验

下表显示了MS-COCO数据集上的从标题到图像生成任务的性能。指标是FID分数,越低效果越好。0264a352b14be1addbdbc9603e7ab5e9.png本文提出的RA-CM3模型显著优于没有检索的基线CM3,以及DALL-E(12B参数)等其他模型。此外,RA-CM3模型以比现有模型拥有更少的参数计算实现了强大的性能。

3.2 图像->标题生成实验。

下表显示了MS-COCO数据集上的图像到标题的生成性能,没有进行微调。衡量标准是CIDEr分数,其中越高越好。d59347993f049ce4fd7ceddd3cc1e24d.png本文提出的RA-CM3的CIDEr得分为89,显著优于没有检索的基线CM3(CIDEr 72)。此外,RA-CM3性能明显优于其他模型(如Parti的20B参数和Flamingo的3B、4-shot)

3.3 冗余分析

21cd2b246ce9cd5faf4ccdda8e3e11d3.png(1) 检索相关性实验(上表的第一行) 模型的相关性计算候选是基于CLIP的检索器检索的相关文档,一个自然的基线是使用随机文档训练模型而不进行检索。这一基线导致了显著的性能下降,这表明在上下文中有相关文档对于模型训练至关重要。此外,还研究了其他基线,例如在训练时间使用检索到的文档,但在推断时间使用随机文档,或者在训练和推断时间使用任意文档。两者都会导致性能显著下降。这些结果证实了相关性在训练和推理时间都是检索的关键因素。

(2) 多模检索实验(上表的第二行) 检索器通常只为生成器检索图像或文本,但本文中基于混合模态编码器的检索器可以检索由图像和文本组成的多模态文档。实验发现检索多模式文档比仅检索图像或文本效果更好。直觉上多模式文档可以提供更多信息,因为其中的文本和图像可以相互关联。

(3) 检索多样性实验(上表的第三行) 鼓励检索文件的多样性非常重要。简单地从按检索器分数排序的候选文档列表中获取前K实际上会导致较差的性能,比没有检索增强的基线稍差。文中采用的第一种方法“相似抛弃”避免了检索文档中的冗余,从而显著提高了性能。第二种技术“查询丢弃”(Query Dropout)在训练过程中鼓励更多的检索多样性,从而进一步提高了评估效果。

(3) 生成器训练实验(上表的第四行) 生成器的一个关键设计是加权α联合优化主输入文档和检索文档的token prediction loss。现有的检索增强模型通常只优化主文档的损失(α=0),实验发现联合优化(α>0)有助于训练并提高性能。且在α=0.1效果最好。如果α设置得太大(例如,α=1)会影响训练,因为这会对检索到的文档而不是主文档的建模造成太大的影响。

697777344929c6b47ee2817225b7bbcc.png一点碎碎念43a0783185cd06a127f74cb46e09640c.png

文本主要将检索增强语言模型框架推广到多模态场景下,使得输入和输出都可以是一个多模态文档。虽然,检索模块和生成模块,都是建立在现有技术CLIP和CM3的基础上,但本文是第一个通过对整体框架的设计和广泛分析将它们进行统一,并进一步提高性的检索增强模型的方法。

最近大火的ChatGPT使得人们一度怀疑,生成式问答是否可以直接代替搜索引擎的功能。但当越来越多无厘头的回答出现后,可以发现ChatGPT的回答可能看似能回答问题本身,但又完全不符合事实根据。1f7231411e9f604d3759a1af2f710437.png

然而,在检索增强语言模型的框架下,如果能先检索候选答案,再根据top候选进行整合,进而生成最终目标答案,这样既可为最终答案增加了一份可信计算的依赖,避免了真实性误差;又可以真正实现搜索引擎上真正意义上的Top1满足,可想而知能有多多么震撼的效果!

不管怎样,未来可期~ 乐乐QvQ

2f823706a3577fa9c19157d007fe85f3.png卖萌屋作者:乐乐QvQ

硕士毕业于中国科学院大学,前ACM校队队长,区域赛金牌。竞赛混子,Kaggle两金一银,国内外各大NLP、大数据竞赛Top10。校招拿下国内外数十家大厂offer,超过半数的SSP。目前在百度大搜担任搜索算法工程师。知乎ID:QvQ

作品推荐:

1.13个offer,8家SSP,谈谈我的秋招经验

2.BERT为何无法彻底干掉BM25??

3.训练双塔检索模型,可以不用query-doc样本了?

4.他与她,一个两年前的故事

5.Bing与DuckDuckGo搜索结果惊人一致?Google展现强势差异

a4e7c5f558b5ef9466362f56499c31cd.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是域名服务器(DNS)

问题&#xff1a;什么是域名服务器&#xff1f;域名服务器是什么意思&#xff1f; 域名服务器即DNS&#xff0c;全称是Domain Name Server&#xff0c;一种程序&#xff0c;它保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表&#xff0c;以解析消息的域名。…

python判断正负的函数_Python |在计算操作的函数内将负数转换为正数?

我一直在寻找将负数转换为正数&#xff0c;我发现了一些东西&#xff0c;但没有成功.. 这是一个来自在线Python页面的练习&#xff0c;我正在学习Python。 我希望你明白这一点。 这是去洛杉矶旅行&#xff0c;我用功能计算钱&#xff0c;但现在有一个问题&#xff0c;我“从洛杉…

LeetCode 1325. 删除给定值的叶子节点(递归)

1. 题目 给你一棵以 root 为根的二叉树和一个整数 target &#xff0c;请你删除所有值为 target 的 叶子节点 。 注意&#xff0c;一旦删除值为 target 的叶子节点&#xff0c;它的父节点就可能变成叶子节点&#xff1b; 如果新叶子节点的值恰好也是 target &#xff0c;那么…

[翻译] python Tutorial 之一

声明&#xff1a;本文做为IronPython-2.0 B3的Tutorial 中文译文&#xff0c;内容全部来自其英文原文&#xff0c;其中本人认为存在疑问的或翻译不当之处会用原文中的内容加以标记&#xff0c;且本文内容完全用于研 究和学习IronPython 之用&#xff0c;限于本人英文翻译功底有…

用python控制钉钉软件_Python—实现钉钉后台开发

二、实现钉钉免登流程 免登流程分四步&#xff1a;1、前端获取钉钉免登授权码code&#xff1b;2、后端获取access_token&#xff1b;3、使用授权码code和access_token换取用户userid&#xff1b;4、通过access_token和userid换取用户详情userinfo。 前端获取授权码code。// 获取…

LeetCode 1123. 最深叶节点的最近公共祖先(递归比较子树高度)

1. 题目 给你一个有根节点的二叉树&#xff0c;找到它最深的叶节点的最近公共祖先。 回想一下&#xff1a; 叶节点 是二叉树中没有子节点的节点树的根节点的 深度 为 0&#xff0c;如果某一节点的深度为 d&#xff0c;那它的子节点的深度就是 d1如果我们假定 A 是一组节点 S…

万字综述:目标检测模型YOLOv1-v7深度解析

文&#xff5c;Rocky Ding源&#xff5c;WeThinkln大家好&#xff0c;我是Rocky。近年来YOLO系列层出不穷&#xff0c;更新不断&#xff0c;已经到v7版本。Rocky认为不能简单用版本高低来评判一个系列的效果好坏&#xff0c;YOLOv1-v7不同版本各有特色&#xff0c;在不同场景&a…

python手枪_Python入门,爬虫训练——枪械查询

一、效果图&#xff1a;二、怎么做到的&#xff1f; 1&#xff0c;首先安装requests、bs4. 这两个第三方模块。 我们按住winR 在弹出来的窗口上输入cmd&#xff0c;来到命令窗口&#xff0c;输入pip install requests、pip install bs4即可&#xff0c;网速慢的可以切换至国内源…

LeetCode 865. 具有所有最深结点的最小子树(递归)

1. 题目 给定一个根为 root 的二叉树&#xff0c;每个结点的深度是它到根的最短距离。 如果一个结点在整个树的任意结点之间具有最大的深度&#xff0c;则该结点是最深的。 一个结点的子树是该结点加上它的所有后代的集合。 返回能满足“以该结点为根的子树中包含所有最深的…

为什么python是解释型面向对象的语言_python为什么是面向对象的

Python虽然是解释型语言&#xff0c;但从设计之初就已经是一门面向对象的语言&#xff0c;对于Python来说一切皆为对象。正因为如此&#xff0c;在Python中创建一个类和对象是很容易的&#xff0c;当然如果习惯面向过程或者函数的写法也是可以的&#xff0c;Python并不做硬性的…

AI写剧本炸场戏剧节!DeepMind出品,马斯克看了直夸,网友看到接口悟了

文&#xff5c;羿阁 萧箫 发自 凹非寺源&#xff5c;量子位OpenAI的ChatGPT大火后&#xff0c;DeepMind终于也坐不住了&#xff01;这次&#xff0c;他们推出一款名为“Dramatron”的新AI&#xff0c;用上它人人都可以变身编剧或作家。只需给出一句话大纲&#xff0c;Dramatron…

程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)

1. 题目 给定一个布尔表达式和一个期望的布尔结果 result&#xff0c;布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。 实现一个函数&#xff0c;算出有几种可使该表达式得出 result 值的括号方法。 示例 1: 输入: s "1^0|0|1", r…

推荐优质的深度学习公众号

人工智能行业目前已接近饱和状态&#xff0c;如何从内卷中脱颖而出&#xff0c;除了极强的自律之外&#xff0c;系统性的学习方法也很重要。今天给大家推荐10个原创公众号&#xff0c;这些公众号定期会发些高质量原创&#xff0c;希望可以让你更高效的学习。小白学视觉哈工大博…

SQLServer安装挂起解决方法

出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”错误。无法进行下去。 具体步骤是&#xff1a; 1&#xff09;添加/删除程序中彻底删除sql server。 2&#xff09;将没有删除的sql server目录也删除掉。 …

程序员面试金典 - 面试题 17.06. 2出现的次数(找递推规律)

1. 题目 编写一个方法&#xff0c;计算从 0 到 n (含 n) 中数字 2 出现的次数。 示例: 输入: 25 输出: 9 解释: (2, 12, 20, 21, 22, 23, 24, 25)(注意 22 应该算作两次)提示&#xff1a; n < 10^9来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;…

python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架

上图是您应该在2019年根据各种&#xff0c;统计和事实寻找的8种最佳编程语言和框架的列表。在技​​术不断进步的当代世界中&#xff0c;计算机无处不在。为计算机编写程序是当前IT市场上最关键的工作配置文件之一。 您是否想过还有比这更忙的任务&#xff1f;它正在选择合适的…

ChatGPT进入百度“弱智吧”后,疯了

文 | 兔子酱无论你玩不玩贴吧&#xff0c;“弱智吧”的大名很多人应该听说过。如今弱智吧的关注人数已经超过了200万。。。不得不说&#xff0c;能将这么多“弱智”聚在一起&#xff0c;“弱智吧”撑起了后百度贴吧时代的辉煌。。。来一起感受下“弱智吧”的日常&#xff1a;能…

打印网页时背景图片的问题

当我们打印一个网页时&#xff0c;默认情况下&#xff0c;网页的背景图片是不会被打印出来的 这与我们的打印代码无关&#xff0c;需要设置IE便可&#xff0c;如下图&#xff1a; 转载于:https://www.cnblogs.com/blodfox777/archive/2008/08/05/1260860.html

程序员面试金典 - 面试题 08.02. 迷路的机器人(DFS/动态规划)

文章目录1. 题目2. 解题2.1 DFS2.2 动态规划1. 题目 设想有个机器人坐在一个网格的左上角&#xff0c;网格 r 行 c 列。 机器人只能向下或向右移动&#xff0c;但不能走到一些被禁止的网格&#xff08;有障碍物&#xff09;。 设计一种算法&#xff0c;寻找机器人从左上角移动…

python数据分析开发环境_在MAC上搭建python数据分析开发环境

最近工作转型到数据开发领域&#xff0c;想在本地搭建一个数据开发环境。自己有三年python开发经验&#xff0c;马上想到使用numpy、scipy、sklearn、pandas搭建一套数据开发环境。 ubuntu的环境&#xff0c;百度中文章比较多&#xff0c;搭建起来非常顺利。MAC环境的资料比较少…