Flamingo论文介绍:把视觉特征向语言模型看齐

news2024/12/23 17:13:31

今天介绍一篇经典的多模态论文,来自NeurIPS 2022的《Flamingo: a Visual Language Model for Few-Shot Learning》 ,论文地址:https://arxiv.org/pdf/2103.00020
在这里插入图片描述

文章目录

  • 一、Motivate
  • 二、Method
  • 三、模块细节:Perceiver Resampler 模块和Gated XATTN-DENSE 模块
    • 3.1 Perceiver Resampler 模块(感知重采样器)
    • 3.2 Gated XATTN-DENSE 模块(门控注意力模块)
  • 四、数据格式
  • 五、效果

一、Motivate

论文旨在桥接预训练好的视觉模型和语言模型,在不改变视觉模型和语言模型的基础上,做好两种模态模型的融合。简单来说这是一篇粘模型的工作,主要思想是将视觉模型的编码token向语言模型方向转化,使得语言模型能够直接利用视觉的token。

二、Method

Flamingo设计了两个模块达到多模态对齐, 一是 Perceiver Resampler 模块,这个模块将任意个数的输入的视觉(视频/图像)特征转换为固定个数的视觉tokens(64个);二是 Gated XATTN-DENSE 模块,将 Perceiver Resampler 输出的视觉 tokens,与新插入到 LM 中的层计算交叉注意力,从而将视觉信息注入到 LM 的生成过程中。过程中使用一个tanh做门控,使得融合更平滑缓慢。
在这里插入图片描述

三、模块细节:Perceiver Resampler 模块和Gated XATTN-DENSE 模块

3.1 Perceiver Resampler 模块(感知重采样器)

输入可以是图像也可以是视频,视频可以理解为多个帧的图像,在输入时,在时间维度上进行展开即可。以图像为例,输入图像后,通过一个视觉编码器(ResNet/NFNet/ViT)进行编码得到特征向量,展平,然后和64个可学习的token做交叉注意力,KV来自于视觉特征,Q来自于这64个可学习token(论文中叫做Learned latent queries),再经过多层 Attention + FFW 处理,这样这64个queries就能学习到来自视觉的特征信息,作为视觉表征。这里的 queries 就有点类似于 ViT 中的 cls token。在这里插入图片描述
视频过程可以理解为下图,其实就是把视频在时间维度上展开之后再铺平,后面的操作和图片一样。不管是视频还是图片,Learned latent queries的大小不会发生改变,都是64。
在这里插入图片描述

3.2 Gated XATTN-DENSE 模块(门控注意力模块)

Flamingo 将固定长度的视觉 query 注入到语言模型的方法称为 Gated xattn dense,其详细结构示意图及伪代码如下图所示。具体来说,在预训练好的 LM 的各层交替地插入一些随机初始化的交叉注意力层。所谓 gated门控,在每一新插入的层之后的残差链接之前添加一个 tanh gating,即 tanh(α) ,其中 α 是一个可学习的标量值,初始值为 0,从而保证初始化时的输出与原 LM 一致。
在这里插入图片描述

四、数据格式

Flamingo 的训练数据有三类:**图文交错数据集、图像文本对数据集和视频文本对数据集。**其中图文交错数据集是 Flamingo 数据的重点,其多模态 in-context learning (few-shot learning) 的能力可以说主要就是来自图文交错数据。作者收集了一个大规模图文交错数据集 M3W,通过解析 HTML 获取并标记图片在文本中的位置。

五、效果

可以通过论文中的示例图看到Flamingo的效果还是非常炸裂的,在多项任务上都有惊人的表现。当然Flaminggo也有一些待改进的地方,比如,Flamingo的输出只是单模态的文本
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【VSCode】常用插件汇总

1 Path Autocomplete(路径提示的插件) 步骤一:在vscode的扩展搜索中直接搜索Path Autocomplete,直接安装 步骤二:配置 配置 VS Code settings.json "path-autocomplete.pathMappings": {"": &q…

STM32F103 | Embedded IDE03 - 使用OpenOCD在STM32F103项目时出现下载固件失败

导言 在上一篇备忘录介绍使用OpenOCD的stlink-v2.cfg接口下载固件,在STM32F407的项目上很顺利。但是,在stm32f103上会出现下载失败。 在网上搜了一下,这位博主的文章解决了这个问题: https://www.iotword.com/26738.html 一、修改stm32f1x.c…

易语言 OCR 文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…

Linux 网络维护相关命令简介

目录 零. 概要一. ping二. ip命令2.1 ip address2.2 ip route2.3 ip neighbour 三. traceroute四. DNS查询4.1 nslookup4.2 dig 五. ss 查看网络连接状态 零. 概要 ⏹在Linux系统中有2套用于网络管理的工具集 net-tools 早期网络管理的主要工具集,缺乏对 IPv6、网…

vscode中同时运行两个python文件(不用安装插件)

如何在vscode中同时运行两个python文件呢?今天在工作中遇到了这个问题。 查了网上的方法是安装coder runner插件,后来发现自身就有这个功能。所以记录一下,方便后续查找: 这是我的第一个文件,点击右上角的运行旁边的小箭头,有一…

matlab绘图时设置左、右坐标轴为不同颜色

目录 一、需求描述 二、实现方法 一、需求描述 当图中存在两条曲线,需要对两条曲线进行分别描述时,应设置左、右坐标轴为不同颜色,并设置刻度线,且坐标轴颜色需要和曲线颜色相同。 二、实现方法 2.1、实现目标: 1…

解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题

配置一下apache里面的配置文件:httpd.conf 和 httpd.vhosts.conf httpd.conf httpd-vhosts.conf 重启服务 展示: 浏览器中中文乱码问题:

RunCam WiFiLink连接手机图传测试

RunCam WiFiLink中文手册从这里下载 一、摄像头端 1.连接天线(易忘) 2.打开摄像头前面的盖子(易忘) 3.接上直流电源,红线为正,黑线为负 4.直流电源设置电压为14v,电流为3.15A, 通…

用JAVA做了一个登录窗体练习

目 录 说明运行后的效果代码 说明 做了一个登录窗体作为练习,分享给大家,其中涉及到窗体、图板、随机数等内容,为了方便和我一样的小白可以看的比较明白,所以尽量详细的标注了注释,希望能帮到同样在学习路上的朋友 运…

《开启微服务之旅:Spring Boot 从入门到实践》(一)

Spring Boot Spring Boot 入门 Spring Boot 简介(脚手架) 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 优点:快速创建独立运行的spring项目以及与主流…

springboot466大学生就业服务平台(论文+源码)_kaic

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统大学生就业服务平台信息管理难度大,容错率低&…

ROS1入门教程2:主题发布和订阅

一、创建发布者 创建源文件publisher.cpp&#xff0c;并写入以下内容&#xff1a; #include <iostream>#include "ros/ros.h" #include "std_msgs/String.h"int main(int argc, char* argv[]) {std::string nodeName "publisher"; // 节…

WALN无线网络的创建和管理-二层组网

⼆层组⽹配置过程&#xff1a; 在AC上配置DHCP 1&#xff0c;先将AP划分到管理vlan&#xff0c;并在相关链路上运⾏vlan数据通过 2&#xff0c;在AC上创建管理vlan的vlanif接⼝&#xff0c;配置IP参数 3&#xff0c;在AC上配置DHCP服务器 4&#xff0c;指定WLAN管理vlan&am…

EasyGBS国标GB28181平台P2P远程访问故障排查指南:客户端角度的排查思路

在现代视频监控系统中&#xff0c;P2P&#xff08;点对点&#xff09;技术因其便捷性和高效性而被广泛应用。然而&#xff0c;当用户在使用P2P远程访问时遇到设备不在线或无法访问的问题时&#xff0c;有效的排查方法显得尤为重要。本文将从客户端的角度出发&#xff0c;详细探…

基于Controller模式部署RocketMQ集群

RocketMQ简介 RocketMQ是一种分布式消息中间件&#xff0c;它由阿里巴巴集团开发&#xff0c;并且后来捐献给了Apache软件基金会。RocketMQ最初是为了解决阿里巴巴内部因业务增长带来的高吞吐量需求而设计的。随着其不断发展和完善&#xff0c;RocketMQ已经成为了一个能够处理…

性能】JDK和Jmeter的安装与配置

一、JDK环境配置 1. 下载JDK 官网下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 选择对应系统的安装包&#xff0c;下载后安装&#xff0c;安装中记录JDK安装的地址&#xff0c;之后一直点击下一…

分布式协同 - 分布式事务_2PC 3PC解决方案

文章目录 导图Pre2PC&#xff08;Two-Phase Commit&#xff09;协议准备阶段提交阶段情况 1&#xff1a;只要有一个事务参与者反馈未就绪&#xff08;no ready&#xff09;&#xff0c;事务协调者就会回滚事务情况 2&#xff1a;当所有事务参与者均反馈就绪&#xff08;ready&a…

ubuntu 如何重装你的apt【apt-get报错: symbol lookup error/undefined symbol】

副标题:解决error:apt-get: symbol lookup error: /lib/x86_64-linux-gnu/libapt-private.so.0.0: undefined symbol: _ZNK13pkgTagSection7FindULLENS_3KeyERKy, version APTPKG_6.0 文章目录 问题描述报错分析解决方案:重装你的apt1、查看你的ubuntu版本2、下载适配你的ap…

RK3588 , mpp硬编码yuv, 保存MP4视频文件.

RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ Ubuntu x64 架构, 交叉编译aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBRK3588 , mpp硬编码yuv, 保存MP4视频文件.

纯血鸿蒙APP实战开发——动态注册字体案例

介绍 本示例介绍利用上传下载模块和注册自定义字体模块实现从网络上下载字体并注册应用字体的功能&#xff0c;该场景多用于由特殊字体要求的场景。 效果图预览 使用说明 进入本案例页面后&#xff0c;可点击下方按钮切换字体。目前仅提供了思源宋体的注册&#xff0c;第一次…