当前位置: 首页 > news >正文

【论文笔记】Flamingo: a Visual Language Model for Few-Shot Learning

🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


基本信息

标题: Flamingo: a Visual Language Model for Few-Shot Learning
作者: Jean-Baptiste Alayrac, Jeff Donahue, Pauline Luc, Antoine Miech, Iain Barr, Yana Hasson, Karel Lenc, Arthur Mensch, Katherine Millican, Malcolm Reynolds, Roman Ring, Eliza Rutherford, Serkan Cabi, Tengda Han, Zhitao Gong, Sina Samangooei, Marianne Monteiro, Jacob L Menick, Sebastian Borgeaud, Andy Brock, Aida Nematzadeh, Sahand Sharifzadeh, Mikołaj Bińkowski, Ricardo Barreira, Oriol Vinyals, Andrew Zisserman, Karén Simonyan
发表: Advances in Neural Information Processing Systems 35 (NeurIPS 2022)
arxiv: https://arxiv.org/abs/2204.14198

基本信息

摘要

构建仅使用少量标注示例即可快速适应新任务的模型,是跨模态机器学习研究的一个开放挑战。

我们介绍了Flamingo,这是一系列具有这种能力的视觉语言模型(VLM)。
我们提出了关键架构创新:

  1. 连接强大的预训练视觉和语言模型。
  2. 处理任意交织的视觉和文本数据序列。
  3. 无缝地摄入图像或视频作为输入。

得益于其灵活性,Flamingo模型可以在包含任意交织文本和图像的大规模多模态网络语料库上进行训练,这对于赋予它们上下文少样本学习能力至关重要。

我们对我们的模型进行了彻底的评估,探索并测量了它们快速适应各种图像和视频任务的能力。

这些任务包括开放性任务,如视觉问答,其中模型被提示一个问题,它必须回答;字幕任务,评估描述场景或事件的能力;以及封闭性任务,如多项选择视觉问答。对于这个范围内的任何任务,单个Flamingo模型可以通过提示特定任务的示例,仅通过少样本学习实现新的最先进水平。

在众多基准测试中,Flamingo优于在数以千计的任务特定数据上微调的模型。

主要贡献

  1. 引入了Flamingo系列VLM,它可以从少量输入/输出示例中执行各种多模态任务(如标题生成、视觉对话或视觉问答)。得益于架构创新,Flamingo模型可以高效地接受任意交织的视觉数据和文本作为输入,并以开放式生成文本。
  2. 定量评估了Flamingo模型如何通过少样本学习适应各种任务。
  3. Flamingo在16个多模态语言和图像/视频理解任务上达到了少样本学习的SOTA水平。

概览图表

选自Flamingo-80B的输入和输出示例。Flamingo能够通过少量提示快速适应各种图像/视频理解任务(顶部)。开箱即用,Flamingo还具备多图像视觉对话功能(底部)。

Flamingo结果概述。左:我们最大的模型,称为Flamingo,在16个任务中有6个优于最先进的微调模型,且未进行微调。对于9个已发布少量样本结果的任务,Flamingo设定了新的少量样本最佳水平。注意:我们省略了第16个基准RareAct,因为它是一个零样本基准,没有可比较的微调结果。右:Flamingo的性能随着模型大小和样本数量的增加而提高。

方法

整体架构

Flamingo架构概述。Flamingo是一种视觉语言模型(VLM)家族,它以视觉数据与文本交织的形式作为输入,并产生自由形式的文本作为输出。

  • Visual Encoder: NFNet-F6,由像素图像得到视觉特征。
  • Perceiver Resampler: 类似 Perceiver 和 DETR,转换视觉特征到固定数量的视觉输出。

GATED XATTN-DENSE layers

GATED XATTN-DENSE layers。为了使语言模型对视觉输入进行条件化,我们在现有的预训练和冻结的语言模型层之间插入新的交叉注意力层。这些层的键和值来自视觉特征,而查询来自语言输入。随后是密集的前馈层。这些层是门控的,以确保在初始化时语言模型保持完整,从而提高稳定性和性能。

在各个 LM block 之间插入 GATED XATTN-DENSE 来获取视觉特征。

Multi-visual input support: per-image/video attention masking

通过 Mask 限制每个文本 token 能够看到的视觉 token。模型仅能关注到之前的一个视觉 token,而非前文出现过的所有视觉 token。这一限制比允许模型直接注意所有视觉 token 效果更好。

训练

使用三类数据进行训练:

  1. M3W,交错图像和文本数据。
  2. ALIGN,图像文本对数据。
  3. LTIP,视频文本对数据。

实验

主实验

与SOTA方案的比较

Flamingo模型在广泛的图像(I)和视频(V)理解任务中,通过少样本学习达到了SOTA水平,显著优于之前最佳的无样本和少样本方法,只需四个示例即可。更重要的是,仅使用32个示例且未调整任何模型权重,Flamingo在七个任务上优于当前最佳方法——这些方法是在数千个标注示例上微调的。

微调Flamingo与SOTA方案的比较

作者在Flamingo使用少量样本学习未能达到SOTA的九项任务上对Flamingo进行了微调。在其中的五项任务上,Flamingo创造了新的SOTA,超越了使用诸如模型集成或特定领域指标优化(例如CIDEr优化)等技巧的方法(标记为†)。

消融实验

消融实验

  1. 训练数据混合的重要性。(i)对训练数据进行了消融实验,特别是对M3W图文交织数据的有无进行了消融,发现图文交织数据能提供大约17%的提升。
  2. 视觉训练的冻结LM。(iii)不使用tanh gating会导致约4.2%的性能下降,且会使训练不稳定。(iv)使用GATED XATTN-DENSE比使用原始的Transformer交叉注意力效果更好。
  3. 计算/内存与性能权衡。(v)添加新的GATED XATTN-DENSE块的频率越高,模型效果越好,但模型的可训练参数数量和时间复杂度会显著增加。每四个块插入一次可以加速训练66%,同时整体分数仅下降1.9%。(vi)MLP和原始Transformer在性能和速度上都不如Perceiver。
  4. 视觉编码器。(vii)NFNet-F6的效果比CLIP ViT-L/14好5.8%,比NFNet-F0好8.0%。
  5. 冻结LM组件可防止灾难性遗忘。(viii)训练随机初始化的LM层,性能会下降12.9%。微调预训练LM也会导致性能下降8.0%。这表明模型出现了“灾难性遗忘”,即模型在训练新目标时逐渐忘记了其预训练。在本文的设置中,冻结语言模型是比在混合中使用预训练数据集(MassiveText)进行训练更好的替代方案。

相关文章:

【论文笔记】Flamingo: a Visual Language Model for Few-Shot Learning

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Flamingo: a Visual Langu…...

问:JAVA阻塞队列实现类及最佳实践?

在多线程编程中,阻塞队列作为一种关键的数据结构,为线程间安全、高效的数据交换提供了重要支持。Java的java.util.concurrent包中提供了多种阻塞队列的实现,每种实现都有其独特的特点和适用场景。 一、阻塞队列实现类 以下是Java中Blocking…...

Springboot3 + MyBatis-Plus + MySql + Vue + ProTable + TS 实现后台管理商品分类(最新教程附源码)

Springboot3 MyBatis-Plus MySql Uniapp 商品加入购物车功能实现(针对上一篇sku) 1、效果展示2、数据库设计3、后端源码3.1 application.yml 方便 AliOssUtil.java 读取3.2 model 层3.2.1 BaseEntity3.2.1 GoodsType3.2.3 GoodsTypeSonVo3.3 Controll…...

消费电子制造企业如何使用SAP系统提升运营效率与竞争力

在当今这个日新月异的消费电子市场中,企业面临着快速变化的需求、激烈的竞争以及不断攀升的成本压力。为了在这场竞赛中脱颖而出,消费电子制造企业纷纷寻求数字化转型的突破点,其中,SAP系统作为业界领先的企业资源规划(ERP)解决方…...

算法记录——树

二叉树 3.1二叉树的最大深度 思路:二叉树的最大深度 根节点的最大高度。因此本题可以转换为求二叉树的最大高度。 而求高度的时候应该采用后序遍历。遍历顺序为:左右中。每次遍历的节点按后序遍历顺序,先收集左右孩子的最大高度,…...

单片机在控制和自动化任务中的应用场景广泛

单片机在控制和自动化任务中的应用场景广泛,以下是一些具体示例: 1. 家电控制 洗衣机:单片机用于控制洗衣周期、温度和水位。微波炉:控制加热时间、功率和用户界面。 2. 工业自动化 生产线监控:单片机用于控制传送…...

UEFI EDK2框架学习(三)——protocol

一、Protocol协议 搜索支持特定Protocol的设备&#xff0c;获取其Handle gBS->LocateHandleBuffer 将内存中的Driver绑定到给定的ControllerHandle gBS->OpenProtocol 二、代码实现 Protocol.c #include <Uefi.h> #include <Library/UefiLib.h> #includ…...

PostgreSQL的字段存储类型了解

PostgreSQL的字段存储类型了解 在 PostgreSQL 中&#xff0c;每个字段&#xff08;列&#xff09;都有其存储类型&#xff0c;这些存储类型决定了数据库如何存储和处理该字段的数据。了解和适当地利用这些存储类型&#xff0c;可以提高数据库的性能和存储效率。 主要的存储类…...

CTFshow 命令执行 web29~web36(正则匹配绕过)

目录 web29 方法一&#xff1a;include伪协议包含文件读取 方法二&#xff1a;写入文件 方法三&#xff1a;通识符 web30 方法一&#xff1a;filter伪协议文件包含读取 方法二&#xff1a;命令执行函数绕过 方法三&#xff1a;写入文件 web31 方法一&#xff1a;filter伪…...

【顺序表使用练习】发牌游戏

【顺序表使用练习】发牌游戏 1. 介绍游戏2. 实现52张牌3. 实现洗牌4. 实现发牌5. 效果展示 1. 介绍游戏 首先先为大家介绍一下设计要求 实现52张牌&#xff08;这里排除大小王&#xff09;洗牌——打乱牌的顺序发牌——3个人&#xff0c;1人5张牌 2. 实现52张牌 创建Code对象创…...

1.7 编码与调制

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言前言1 基本术语2 常用的编码方法2.1 不归零编码2.2 归零编码2.3 反向归零编码2.4 曼彻斯特编码2.5 差分曼彻斯特编码 3 常用的调制方法3.1 调幅&#xff08;AM&#xff09…...

004集—— txt格式坐标写入cad(CAD—C#二次开发入门)

如图所示原始坐标格式&#xff0c;xy按空格分开&#xff0c;将坐标按顺序在cad中画成多段线&#xff1a; 坐标xy分开并按行重新输入txt&#xff0c;效果如下&#xff1a; 代码如下 &#xff1a; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; us…...

CSS中的font-variation-settings:探索字体的可变性

随着Web字体的发展&#xff0c;设计师们不再局限于传统的字体样式。现代Web字体支持可变字体&#xff08;Variable Fonts&#xff09;&#xff0c;这种字体允许开发者在单一的字体文件中包含多种字形样式。通过使用CSS中的font-variation-settings属性&#xff0c;我们可以控制…...

组合优化与凸优化 学习笔记5 对偶拉格朗日函数

有的时候约束条件有点难搞&#xff0c;我们可以把它放到目标函数里面。 记得之前凸函数的时候的结论吗&#xff1f;一大堆函数&#xff0c;每一段都取最大的&#xff0c;最后会得到一个凸函数。同理&#xff0c;每一段都取最小的&#xff0c;得到的是一个凹函数。就这样&#x…...

监控易监测对象及指标之:Exchange邮件服务器监测

在现代企业运营中&#xff0c;邮件服务器的作用至关重要&#xff0c;它不仅承载着企业内外的信息传递&#xff0c;还是协同工作的重要工具。为了确保邮件服务器的稳定运行&#xff0c;以及邮件的顺畅收发&#xff0c;采用高效的监控系统是不可或缺的。监控易作为一款专业的监控…...

【机器学习基础】Transformer学习

Transformer学习 梯度消失FeedForward层激活函数的主要作用是在网络中加入非线性变换 梯度消失 梯度爆炸 FeedForward层 Transformer结构: Transformer结构主要分为两大部分: 一是Encoder层结构:Encoder 的输入由 Input Embedding 和 Positional Embedding 求和输入Multi…...

mysql如何不使用窗口函数,去统计出入库情况

mysql如何不使用窗口函数&#xff0c;去统计出入库情况 你把这个表看做 进出库表&#xff0c;每个物料把时间正序后 依次累加数量 &#xff0c;看这个物料的时间线上 是否会出现负数&#xff0c;1号进货5个 2号出库3个 3号你不能出库3个 最多俩个 不然就是负库存&#xff0c;…...

uni-app canvas文本自动换行

封装 支持单行文本超出换行。多行文本顺位排版 // 填充自动换行的文本function fillFeedText({ctx, text, x, y, maxWidth, lineHeight, color, size}) {// 文本配置ctx.setFontSize(size);ctx.setFillStyle(color);// 计算文本换行宽高&#xff0c;换行逻辑const words text…...

【设计模式-职责链】

定义 职责链模式是一种行为设计模式&#xff0c;**它通过将请求发送给链上的多个处理者来避免请求发送者与处理者之间的紧密耦合。每个处理者可以选择处理请求或将其传递给链中的下一个处理者。**这样&#xff0c;可以将处理请求的责任链式组织&#xff0c;从而实现更灵活的请…...

Prompt:在AI时代,提问比答案更有价值

你好&#xff0c;我是三桥君 随着AI技术的飞速发展&#xff0c;我们进入了一个信息爆炸的时代。在这个时代&#xff0c;只要你会提问&#xff0c;AI就能为你提供满意的答案。这种现象让很多人开始思考&#xff1a;在这个答案触手可及的时代&#xff0c;答案的价值是否还像以前…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...