[阅读笔记21][RA-CM3]Retrieval-Augmented Multimodal Language Modeling

这篇论文是meta联合斯坦福在23年4月发表的论文,提出了一个使用外部知识检索增强的多模态模型。

这篇模型提出的RA-CM3模型是第一个能够检索并生成图像文本的多模态模型,在图像文本生成任务上优于现有的多模态模型,同时使用更少的训练量。
RA-CM3从结构上可以分为两大块,一块是检索器,一块是生成器。下图是整体的流程,对于一个给定的caption,要生成它对应的图像,可以先使用多模态检索器从外部存储中检索出若干相似的图文对,然后把这些图文对和一开始的caption输入生成器中,由生成器生成预测出来的图像。

第一部分是检索器的结构,对于一个询问q和候选文档m(其实就是图文对),用下面的公式计算它们的相关性得分,其中Eq是q的编码器,Em是m的编码器。由于这里的询问和文档都是多模态信息,所以编码器也应该是多模态编码器,这里作者选用冻结的CLIP,然后再平均一下这两个向量,并缩放至向量长度为1,这时候该向量就是多模态信息的表示向量了。
然后使用最大内积搜索,获得按照相关性得分排序的候选文档列表,然后在该列表中采样k个文档。
接下来作者讨论了一下检索过程中最关键的三个因素:相关性、多模态、多样性。
相关性指的是检索结果要和输入序列相关,不然检索出来的信息是没有用的。
多模态指的是这里检索出来的是多模态信息,与以往只检索单模态不太一样,通过消融实验证明多模态信息对后续生成器有正向帮助,毕竟这里文本和图像是关联的,多模态文档的信息量更大。
多样性指的是检索出来的信息应该尽量不重复,如果简单取topk相关的k个文档,那么多样性就很很差,导致生成器性能也很差。作者对此有两个改进,第一个改进是跳过跟query或已检索到的文档相似度特别高的候选文档,这个改进称之为Avoid Redundancy。第二个改进是Query Dropout,顾名思义就是对query进行dropout,随机丢弃query中20%的token。这样query转为向量后,即使取最相似的几个文档也跟原始的query没那么相似了。

接下来是第二部分,生成器的设计。作者沿用了CM3作为生成器,然后输入的时候之前检索到的文档作为上下文拼接起来一起输入,然后损失函数分两部分,一部分是当前样本的,还有一部分是检索出来的文档的,文档那部分有个系数可以调,论文里说一般取0.1。目前的检索增强模型都只计算当前样本的损失,作者这里加入检索样本的损失是因为反正都会被算一遍,不如顺手加上,而且这还相当于扩大了batchsize,又不需要引入太多额外的计算。

接下来是训练过程,训练用的数据集来自LAION的一个子集,经过清洗后得到150M文本对,然后沿用CM3中数据的格式,将图文对转成html文档,然后外部知识库同样使用这150M的数据。训练时在检索的时候要么用图像,要么用文本,如果直接用图文对那对于模型来说预测可能会变得很容易,另外这和推理时行为也不一致。
然后是RA-CM3的结果展示,左图是在COCO数据集上图像生成的性能对比,可以看到基本上优于大部分自回归的模型,并且参数量非常少。右边是图像生成质量和训练计算量的图,RA-CM3在自回归模型中取得了更好的训练效率。

左边是文生图的结果,右边是涉及一些罕见的或者说是不存在的场景生成。例如法国国旗插在月球上,没有检索能力的模型很难生成符合要求的图像。

接下来是图像填充的结果,左图预测的时候使用检索出来的样本作为上下文,直观感受上要比baseline好不少。右图预测的时候没用检索,因为检索出来的也是放到prompt里,所以自然可以手动把需要的图放到prompt中,代替检索的结果,这样就能达到一种图像编辑的效果。

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

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

相关文章

SL7220线性降压恒流3.6A 外围只需两个电阻 耐压40V汽车大灯IC

概述: SL7220 是一款双路线性降压LED恒流驱动器,外围只需两个电阻,输出电流10MA-3600MA。 SL7220 内置过热保护功能,内置输入过压保护功能。 SL7220 静态电流典型值为120uA。 特点 ●输入电压范围:2.5V-40V ●电…

如何合理利用多个中国大陆小带宽服务器?

我们知道在中国大陆带宽单价非常昂贵,一个1Mbps 带宽的机子一年就得卖好几百人民币,这是不值当的,当然我们可以去低价漂阿里云、腾讯云的轻量服务器,99包年,但是带宽太小很难崩。 所以,我们必须构建一个能够…

Shapley量化调峰成本?高比例可再生能源电力系统的调峰成本量化与分摊模型程序代码!

前言 在能源安全、环境污染和气候变化的大背景下,大力发展可再生能源是应对全球气候变化,实现“碳达峰、碳中和”和可持续发展的重大需求。截至2020年底,中国风电总装机容量为281GW,风力发电466.5TWh,同比增长约15%&a…

节点加密技术:保障数据传输安全的新利器

随着信息技术的快速发展,网络数据的安全传输问题日益凸显。节点加密技术作为一种新兴的加密手段,正逐渐成为保障数据传输安全的重要工具。本文将探讨节点加密技术的原理、应用及其优势,并分析其未来的发展趋势。 节点加密技术的原理 节点加密…

Python 实现视频去抖动技术

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 视频去抖动是视频处理中的一项重要技术,它可以有效地减少视频中由于相机震动或手…

springboot+java照相馆预约管理系统ssm

框架:ssm/springboot都有 jdk版本:1.8 及以上 ide工具:IDEA 或者eclipse 数据库: mysql 编程语言: java 前端:layuibootstrapjsp 详细技术:HTMLCSSJSjspspringmvcmybatisMYSQLMAVENtomcat 开发工具 IntelliJ IDEA: 一…

springboot实现SSE之牛刀小试

文章目录 一,概述1.SSE是何方神圣?2.sse与webscoket区别 二,实现过程1.效果展示2. 简要流程3. 源码放送4.完整项目 一,概述 1.SSE是何方神圣? SSE 全称Server Sent Event,直译一下就是服务器发送事件。 …

力扣:104. 二叉树的最大深度(Java,DFS,BFS)

目录 题目描述:输入:输出:代码实现:1.深度优先搜索(递归)2.广度优先搜索(队列) 题目描述: 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从…

VSCode搭建内核源码阅读开发环境

0. 参考链接 使用VSCode进行linux内核代码阅读和开发_vscode阅读linux内核-CSDN博客 1. 搭建Linux内核源码阅读环境 现状,Linux内核源码比较庞大文件非常多,其中又包含的众多的宏定义开关配置选项,这使得阅读内核源代码称为一件头疼的事。 …

11.接口自动化测试-Allure报告(2)

目录 1.如何同时执行多个测试文件2.Allure的不同层级应用Allure报告: 1.如何同时执行多个测试文件 (1)新建bat文件 (2)写命令 cd ./testCase pytest -s --alluredir ./report --clean-alluredir allure serve ./repo…

【一竞技DOTA2】双冠王N0tail将发布新书自传《性格胜过天赋》

1、近日Ti双冠王N0tail,在个人推特上宣布将发布自己的自传《性格胜过天赋》。N0tail职业生涯豪夺两届Ti冠军,700万美元个人生涯奖金亦是电竞史最高的传奇选手。 “经过许多年的努力和收到的大量请求,我将发布我的自传新书《性格胜过天赋》&am…

1.PROXY-代理内容

SwitchyOmega,浏览器插件(edge,火狐插件库都是存在的),安装后的样式 1.安装 2.设置 我们常用的功能,主要是设置一个代理ip访问学习网站入github等,或者docker服务等 3.启动代理 4.验证 https…