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

news2024/9/20 2:43:43

这篇论文是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.coloradmin.cn/o/1611970.html

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

相关文章

模型 框架效应

系列文章 分享 模型,了解更多👉 模型_思维模型目录。部分真相不等于真相。 1 框架效应的应用 1.1 框架效应在营销策略上的应用 亚洲航空公司面临的挑战是如何在竞争激烈的航空市场中吸引更多的顾客,并提高机票的预订率。这家低成本航空公司…

2.Vue简介

Vue简介 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,V…

Scala的函数至简原则

对于scala语言来说,函数的至简原则是它的一大特色。下面让我们一起来看看分别有什么吧! 函数至简原则:能省则省! 初始函数 def test(name:String):String{return name }1、return可以省略,Scala会使用函数体的最后一…

排序算法集合

912. 排序数组 趁着这道题总结下排序方法 1.快速排序 算法描述 1.从数列中挑出一个元素,称为"基准"(pivot), 2.重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基…

网络安全基础技术-常见web漏洞之XSS跨站脚本攻击

首先,我们来探究XSS(跨站脚本攻击)的基本概念。简而言之,这种攻击方式涉及将用户的输入错误地作为前端代码执行。在Web应用领域,前端代码通常由HTML、CSS和JavaScript三大构件组成: HTML(超文本…

力扣HOT100 - 19. 删除链表的倒数第N个节点

解题思路: 链表题目:哑节点、栈、快慢指针(双指针) 方法一:计算链表长度 class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dum new ListNode(0, head);int len getLen(head);…

binary tree Leetcode 二叉树算法题

144.二叉树的前序遍历 前序遍历是&#xff1a;根-左-右 所以记录序列的的时候放在最前面 递归 class Solution {List<Integer> ans new ArrayList<>();public List<Integer> preorderTraversal(TreeNode root) {if(root null) return ans;ans.add(root…

书生·浦语大模型实战营Day05作业

作业 基础作业 完成以下任务&#xff0c;并将实现过程记录截图&#xff1a; 配置 LMDeploy 运行环境: 书生浦语大模型实战营Day05LMDeploy实践 以命令行方式与 InternLM2-Chat-1.8B 模型对话: 书生浦语大模型实战营Day05LMDeploy实践 进阶作业 完成以下任务&#xff0c;并将…

PCIe总线-PCIe配置空间介绍(三)

1.概述 配置空间是PCIe设备/桥的标识符&#xff0c;其保存了设备/桥的信息。主机在枚举设备/桥的时候需要先访问配置空间&#xff0c;获取设备厂家、型号、类型、所需资源等信息&#xff0c;然后再分配资源&#xff0c;最后才能访问PCIe设备的存储或IO地址空间。PCIe总线规定了…

JavaScript之分时函数、分时间段渲染页面、提高用户体验、参数归一化、高阶函数、分段、appendChild、requestIdleCallback

MENU 前言效果图html原始写法优化方式一(参数归一化)优化方式二(当浏览器不支持requestIdleCallback方法的时候)优化方式三(判断环境) 前言 当前需要向页面插入十万个div元素&#xff0c;如果使用普通的渲染方式&#xff0c;会造成延迟。这时候就需要通过分时函数来实现渲染了。…

【R数据分析-基础】

R语言介绍 为什么使用R&#xff1f; R&#xff1a;数据分析与可视化平台 R的获取和安装 http://cran.r-project.org 免费下载 一、R、Rtools安装 R语言&#xff1a; 免费开源 支持多平台&#xff0c;包括Windows、UNIX、Mac OS 擅长统计与可视化 Rtools&#xff1a;R语言…

Android安卓写入WIFI热点自动连接NDEF标签

本示例使用的发卡器&#xff1a;Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/网址/海报-淘宝网 (taobao.com) package com.usbreadertest;import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.EditText; impo…

C++从入门到出门

C 概述 c 融合了3中不同的编程方式&#xff1a; C语言代表的过程性语言C 在C语言基础上添加的类代表的面向对象语言C 模板支持的泛型编程 1、在c语言中头文件使用扩展名.h,将其作为一种通过名称标识文件类型的简单方式。但是c得用法改变了&#xff0c;c头文件没有扩展名。但是…

大数据平台搭建2024(二)

二&#xff1a;Hive安装 只在node01上操作 1 安装MySQL 8.0 最小化安装需要安装这个 yum install -y wget1-1 下载MySQL的yum源 wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm检查是否安装成功 rpm -qpl mysql80-community-release-el7-7.n…

[Collection与数据结构] 二叉树(三):二叉树精选OJ例题(下)

1.二叉树的分层遍历 OJ链接 上面这道题是分层式的层序遍历,每一层有哪些结点都很明确,我们先想一想普通的层序遍历怎么做 /*** 层序遍历* param root*/public void levelOrder1(Node root){Queue<Node> queue new LinkedList<>();queue.offer(root);while (!qu…

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制伊甸火山3D网格曲面图

11.4.2小节我们使用3D曲面图可视化分析伊甸火山数据&#xff0c;本小节我们采用3D网格曲面图可视化分析伊甸火山数据&#xff0c;以展示其地形&#xff0c;具体示例代码如下。 购书地址&#xff1a;https://item.jd.com/14102657.html

C语言开源库iniparser解析ini文件

1 ini文件介绍 INI&#xff08;Initialization File&#xff09;文件是一种简单直观的数据存储格式&#xff0c;常用于配置应用程序的初始化设置。这种文件通常包含若干个节&#xff08;section&#xff09;和键值对&#xff08;key-value pairs&#xff09;。INI文件的每一部…

数据结构10:堆和堆排序

文章目录 树的概念及结构树的概念树的相关概念树的表示树在实际中的应用表示文件系统的目录树结构 二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构顺序存储链式存储 二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构 堆的实现堆的插入堆的删除堆的创建向…

【大数据】TiDB: A Raft-based HTAP Database

文章目录 数据库知识介绍数据库系统的ACID特性分布式系统和CAP理论关系型数据库与非关系型数据库关系型数据库非关系型数据库 OldSQL、NoSQL、NewSQLOldSQLNoSQLNewSQL OLTP、OLAP、HTAP 前言&#xff1a;为什么选择TiDB学习&#xff1f;pingCAP介绍TiDB介绍TiDB的影响力TiDB概…