GIT: 一个用于视觉与语言的生成式图像到文本转换 Transformer

摘要

在本文中,我们设计并训练了一个生成式图像到文本转换 Transformer——GIT,以统一视觉-语言任务,如图像/视频字幕生成和问答。虽然生成式模型在预训练和微调之间提供了一致的网络架构,但现有工作通常包含复杂的结构(单/多模态编码器/解码器),并依赖于外部模块,如目标检测器/标注器和光学字符识别(OCR)。在 GIT 中,我们简化了架构,仅使用一个图像编码器和一个文本解码器,并采用单一的语言建模任务。此外,我们扩大了预训练数据规模并提升了模型的大小,以增强模型性能。无需额外的复杂设计,我们的 GIT 在多个具有挑战性的基准测试中取得了大幅领先的新 SOTA(State of the Art)。例如,我们的模型在 TextCaps 任务上首次超越了人类表现(CIDEr 分数 138.2 vs. 125.5)。此外,我们提出了一种新的基于生成的图像分类和场景文本识别方案,并在标准基准测试上取得了可观的表现。

1. 简介

在这里插入图片描述
在这里插入图片描述

近年来,在视觉-语言(VL)预训练方面取得了巨大的进展,特别是在基于大规模图文对数据的研究,例如 CLIP(Radford et al., 2021)、Florence(Yuan et al., 2021)和 SimVLM(Wang et al., 2021b)。所学习的表示极大地提升了各种下游任务的性能,如图像字幕生成(Lin et al., 2014)、视觉问答(VQA)(Goyal et al., 2017)以及图文检索。

在预训练过程中,掩码语言建模(MLM)和图文匹配(ITM)任务被广泛使用(Wang et al., 2020; Fang et al., 2021c; Li et al., 2020b; Zhang et al., 2021a; Chen et al., 2020b; Dou et al., 2021; Wang et al., 2021a; Kim et al., 2021)。然而,这些损失函数与下游任务不同,因此需要进行特定任务的适配。例如,在图像字幕生成任务中移除了 ITM(Wang et al., 2021a; Li et al., 2020b),而在 VQA 任务中额外添加了一个随机初始化的多层感知机(MLP)(Wang et al., 2021b; Li et al., 2020b)。为了减少这种不匹配,最近的方法(Cho et al., 2021; Wang et al., 2021b; Yang et al., 2021b; Wang et al., 2022b)尝试设计统一的生成式模型进行预训练,因为大多数 VL 任务都可以归结为文本生成问题。这些方法通常采用多模态编码器和文本解码器,并精心设计文本输入和文本目标。为了进一步推动这一方向的发展,我们提出了一种简单的生成式图像到文本 Transformer,称为 GIT,它仅由一个图像编码器和一个文本解码器组成。预训练任务仅仅是将输入图像映射到整个关联文本描述,使用语言建模目标进行训练。尽管架构简单,GIT 在多个具有挑战性的基准测试上以较大幅度取得了新的 SOTA,如表 1 所示。

图像编码器是一个 Swin 风格的视觉 Transformer(Dosovitskiy et al., 2021; Yuan et al., 2021),基于对比学习任务(Jia et al., 2021; Radford et al., 2021; Yuan et al., 2021)在大规模图文对数据上进行预训练。这消除了对目标检测器的依赖,而目标检测器在许多现有方法中被广泛使用(Anderson et al., 2018; Li et al., 2020b; Wang et al., 2020; Zhang et al., 2021a; Chen et al., 2020b; Fang et al., 2021c)。为了将其扩展到视频领域,我们简单地提取多个采样帧的特征,并将它们拼接成视频表示。文本解码器是一个 Transformer 网络,用于预测关联文本。整个网络使用语言建模任务进行训练。对于 VQA 任务,输入问题被视为文本前缀,并以自回归方式生成答案。此外,我们提出了一种新的基于生成的 ImageNet 分类方案,其中预测标签直接来自我们的生成式模型,而无需预定义词汇表。

该方法简单,但当我们扩展预训练数据和模型规模后,性能却令人惊讶地强大。图 1 展示了 GIT 在 TextCaps 上微调后生成的字幕。示例表明,该模型在识别和描述场景文本、表格、图表、食物、纸币、标志、地标、字符、名人、产品等方面表现出色,表明我们的 GIT 模型已编码了丰富的关于视觉世界的多模态知识。

我们的主要贡献如下:

  • 我们提出了 GIT,仅由一个图像编码器和一个文本解码器组成,并基于语言建模任务在 8 亿个图文对数据上进行预训练。
  • 我们在多个任务上(图像/视频字幕生成和问答,见表 1)实现了新的 SOTA,而无需依赖目标检测器、目标标签和 OCR。在 TextCaps 任务上,我们首次超越了人类表现。这表明,即使是简单的网络架构,在规模扩展后也能取得强大性能。
  • 我们证明了,GIT 在图文对数据上进行预训练后,即使在没有专门针对视频任务设计编码器的情况下,也能够在视频任务上实现新的 SOTA。
  • 我们提出了一种新的基于生成的图像分类方案。在 ImageNet-1K 上,我们的 GIT 取得了 88.79% 的 top-1 准确率。

2. 相关工作

在 VL 预训练方面,多任务预训练被广泛用于增强网络的多种能力。例如,MLM 和 ITM 被广泛采用作为预训练任务(Li et al., 2020b; Kim et al., 2021; Zhang et al., 2021a; Wang et al., 2020; Xue et al., 2021b; Lu et al., 2019; Tan & Bansal, 2019)。最近,图文对比损失也被引入(Yu et al., 2022; Li et al., 2021a; Wang et al., 2021a)。由于大多数 VL 任务可以被表述为文本生成任务(Cho et al., 2021),一个单一的生成式模型可以被预训练以支持各种下游任务。这类方法通常通过精心设计的输入输出文本进行预训练。例如,在 Cho et al.(2021)中,文本被适当屏蔽作为网络输入,目标是恢复屏蔽的文本片段。而 SimVLM(Wang et al., 2021b)则随机拆分一个文本句子作为输入和目标输出。在这些方法中,多模态 Transformer 编码器用于在解码输出之前融合文本输入。

在图像表示方面,大多数现有方法使用 Faster RCNN 来提取区域特征(Anderson et al., 2018; Li et al., 2020b; Wang et al., 2020; Zhang et al., 2021a; Chen et al., 2020b; Fang et al., 2021c)。近年来,密集表示(dense representation)方法受到了越来越多的关注(Huang et al., 2020; Wang et al., 2021b;a; Kim et al., 2021; Fang et al., 2021b; Dou et al., 2021; Li et al., 2021a),它无需边界框标注,同时可以端到端地训练整个网络。除了来自特征图的表示之外,目标标签(Li et al., 2020b; Wang et al., 2020; Zhang et al., 2021a; Cornia et al., 2021; Fang et al., 2021b)也被用来帮助 Transformer 理解上下文,特别是新颖的目标。对于与场景文本相关的任务,OCR 通常用于生成场景文本作为额外的网络输入,例如 Hu et al.(2020)和 Yang et al.(2021c)。在文本预测方面,Transformer 网络通常被使用,它可以通过交叉注意力模块融合图像 token,例如 Cho et al.(2021)、Alayrac et al.(2022)、Yang et al.(2021b)、Yu et al.(2022),或者仅使用自注意力模块,将图像 token 与文本 token 连接,例如 Li et al.(2020b)、Chen et al.(2020b)、Zhang et al.(2021a)、Wang et al.(2020)、Fang et al.(2021b)。

在 VL 任务的扩展方向上,LEMON(Hu et al., 2021a)研究了基于检测器的字幕生成模型在 MLM 任务下的行为。CoCa(Yu et al., 2022)研究了不同的模型规模,但使用相同的预训练数据。在本论文中,我们在 9 个不同的基准(3 个在主论文,6 个在补充材料,包括图像/视频字幕生成和问答任务)上进行了全面研究,涵盖 3 种不同的模型规模和 3 种不同的预训练数据规模(每个基准 9 个数据点)。

3 生成式图像到文本转换器

在大规模图文数据的基础上,我们的目标是预训练一个简洁而高效的视觉语言(VL)模型,以提升图像/视频描述生成和问答任务的性能。由于输入是图像而输出是文本,最简化的模型结构仅需包含一个图像编码器和一个文本解码器——这也正是我们提出的 GIT(Generative Image-to-text Transformer)所采用的核心组件,如图2所示。

在这里插入图片描述

3.1 网络架构

图像编码器基于对比预训练模型(Yuan等,2021)。输入为原始图像,输出为紧凑的二维特征图,该特征图被展平为特征序列。通过额外的线性层和层归一化层,图像特征被投影至D维空间,作为文本解码器的输入。我们采用对比任务预训练的图像编码器,因为近期研究表明此类编码器具有更优性能(如Yuan等,2021;Dou等,2021;Alayrac等,2022)。在第4.6节和补充材料中,我们也观察到更强的图像编码器能显著提升视觉语言任务性能,这与基于目标检测方法的研究结论一致(如Wang等,2020;Zhang等,2021a)。并行研究CoCa(Yu等,2022)将对比任务和生成任务统一为单一预训练阶段,而我们的方法等效于将两者分步进行:(i) 使用对比任务预训练图像编码器;(ii) 使用生成任务联合预训练图像编码器与文本解码器。

文本解码器是用于预测文本描述的Transformer模块,由多个Transformer块组成,每个块包含自注意力层和前馈层。文本经分词并嵌入为D维向量后,与位置编码相加并通过层归一化处理。图像特征与文本嵌入向量拼接后作为Transformer模块的输入。文本以[BOS]标记起始,并以自回归方式解码直至[EOS]标记或达到最大步长。如图3所示的序列到序列注意力掩码确保文本标记仅依赖先前标记及所有图像标记,同时图像标记可相互关注——这与单向注意力掩码不同(后者不允许所有图像标记相互依赖)。

我们未对图像编码器进行精细初始化,而是随机初始化文本解码器。这一设计选择受Wang等(2020)实验研究的启发:随机初始化与BERT初始化相比性能相当,可能因为BERT初始化无法理解对视觉语言任务至关重要的图像信号。摆脱初始化依赖后,我们能更自由探索不同架构设计。并行研究Flamingo(Alayrac等,2022)采用类似的"图像编码器+文本解码器"架构,但其解码器经预训练后冻结以保留大语言模型的泛化能力;而在GIT中,所有参数均参与更新以更好适配视觉语言任务。另一种替代架构是基于交叉注意力的解码器(通过交叉注意力融合图像信号而非与自注意力拼接)。补充材料(附录G.2)的实验表明:在大规模预训练下,基于自注意力的解码器整体性能更优;而在小规模训练时,基于交叉注意力的方法更佳。合理解释是:充足训练时解码器参数能同时处理图像与文本,且自注意力机制可使图像标记在文本生成过程中更好更新;而交叉注意力会限制图像标记间的相互关注。

在这里插入图片描述

3.2 预训练

对于每个图像-文本对,设I表示图像, y i ( i ∈ 1 , . . . , N ) y_i(i ∈ {1, ..., N}) yii1,...,N表示文本标记, y 0 y_0 y0为[BOS]标记, y N + 1 y_{N+1} yN+1为[EOS]标记。我们采用语言建模(LM)损失进行模型训练,即:

l = 1 N + 1 ∑ i = 1 N + 1 C E ( y i , p ( y i ∣ I , { y j , j = 0 , ⋯ , i − 1 } } ) , (1) l = { \frac { 1 } { N + 1 } } \sum _ { i = 1 } ^ { N + 1 } \mathrm { C E } ( y _ { i } , p ( y _ { i } | I , \{ y _ { j } , j = 0 , \cdots , i - 1 \} \} ) , \tag{1} l=N+11i=1N+1CE(yi,p(yiI,{yj,j=0,,i1}}),(1)

其中CE表示采用标签平滑系数为0.1的交叉熵损失函数。

另一种选择是掩码语言建模(MLM),该方法通常每次迭代预测15%的输入标记。若要预测全部标记,至少需要运行1/0.15≈6.7个训练周期。而语言建模(LM)每次迭代可预测所有标记,对于大规模预训练数据效率更高。Hu等(2021a)的消融实验也表明,LM在有限周期内能获得更优性能。由于计算资源限制,我们的大规模训练仅进行2个周期,因此选择LM。此外,近期大规模语言模型(如Brown等,2020;Chowdhery等,2022)也多基于LM架构。若去除图像输入,该模型可退化为仅含解码器的语言模型(架构类似GPT-3),这种设计未来可通过纯文本数据扩展解码器能力,我们将此留作后续工作。

3.3 微调

图像描述生成:由于训练数据格式与预训练阶段相同,我们采用相同的LM任务进行微调。

视觉问答(VQA):微调时将问题与真实答案拼接为特殊描述文本,但仅对答案及[EOS]标记计算LM损失。推理时,问题作为描述前缀,生成部分作为预测结果。相比现有VQAv2方法(Wang等,2021a;b;Zhang等,2021a;Li等,2022b),我们的生成式模型无需预定义候选答案(即使在推理阶段),这要求模型至少预测两个正确标记(答案标记与[EOS]标记)。现有方法则将问题转化为分类任务,仅需单次预测。尽管生成式方法在VQAv2上性能略逊于判别式方法,我们仍选择其自由形式答案的优势。对于场景文本相关VQA任务,现有方法(Yang等,2021c;Hu等,2020)通常依赖OCR引擎和动态指针网络,而我们的模型通过大规模预训练自主学会读取场景文本,在此类任务上达到新SOTA。

视频任务:尽管模型未专门针对视频设计,但通过简单架构调整(从视频片段采样多帧,经图像编码器独立编码后添加可学习时序嵌入,最后拼接特征)即可实现竞争力甚至SOTA性能。

图像分类:将类别名称视为图像描述,以自回归方式微调GIT进行预测。不同于现有基于预定义词表与线性分类层的方法,这种生成式方案便于新增数据和类别时无需引入新参数即可持续训练。

温馨提示:
阅读全文请访问"AI深语解构" GIT: 一个用于视觉与语言的生成式图像到文本转换 Transformer

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

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

相关文章

20250706-9-Docker快速入门(下)-Docker在线答疑_笔记

一、Kubernetes核心概念与集群搭建 1. 在线答疑  1)答疑Docker需要掌握到什么程度 学习目标:达到入门水平即可,重点掌握第一章Docker入门视频内容学习建议:预习时间约3-4小时,建议吸收视频内容的80%学…

Node.js-http模块

HTTP 协议 概念 HTTP(hypertext transport protocol)协议;中文叫超文本传输协议,是一种基于TCP/IP的应用层通信协议这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。协议中主要规定了两个方面的内容 客户端:用来…

Java JDBC的初步了解

文章目录 基本流程注册驱动的两种方法DriverManagerDriverManager 的核心作用核心原理自动注册驱动的机制关键方法 示例代码: 连接Mysql数据库StatementPreparedStatement JDBC全称Java DataBase Connectivity。 定义: JDBC 是 Java 语言中用于连接和执行 SQL 操作的标准接口。…

[netty5: ChunkedInput ChunkedWriteHandler]-源码分析

ChunkedInput ChunkedInput<B> 是 Netty 中用于按块读取不定长数据流的接口&#xff0c;常配合 ChunkedWriteHandler 实现流式写入&#xff0c;支持如文件、流、HTTP 和 WebSocket 等多种数据源。 实现类简要说明ChunkedFile用于将常规文件按块传输&#xff08;使用传统…

QT 第十二讲 --- 控件篇 LineEdit,TextEdit与ComboBox

前言&#xff1a;欢迎进入 QT 控件世界的第十二讲&#xff01;在上一讲《QT 第十一讲 --- 控件篇 LCDnumber&#xff0c;ProgressBar与CalenderWidget》中&#xff0c;我们探索了用于信息展示和状态反馈的控件&#xff1a;精准的数字显示器 LCD Number、直观的进度指示器 Progr…

VSCode遇到的一些小毛病(自动保存、运行后光标不再处于编辑区)

1. 右键点击Run Code没有触发自动保存 1. 打开 VS Code 设置&#xff08;Ctrl ,&#xff09; 2. 搜索&#xff1a;code runner save 3. 勾选你需要的 2. 运行后光标仍然处于编辑区&#xff08;容易误输入&#xff09; 1. 打开 VS Code 设置&#xff08;Ctrl ,&#xff09; 2.…

Maixcam的使用2

1.单文件和项目&#xff08;多个 py 文件项目/模块化&#xff09;# 在编写代码时&#xff0c;一般两种模式&#xff0c;执行单个文件&#xff0c;或者执行一个完成项目&#xff08;包含多个 py 文件或者其它资源文件&#xff09;。 单文件模式&#xff1a;MaixVision 创建或者…

征信系统架构思想:打造商业信任基石_东方仙盟—仙盟创梦IDE

一、建设必要性在复杂的商业环境中&#xff0c;企业面临多元交易对象与业务场景&#xff0c;准确评估合作方信用状况及潜在价值的难度显著增加。传统经验判断和简单背景调查存在局限性&#xff0c;难以满足现代商业决策需求&#xff0c;因此构建科学的征信体系具有现实必要性。…

网安-XSS-pikachu

介绍 XSS&#xff0c;即跨站脚本攻击&#xff0c;是指攻击者利用Web服务器中的代码漏洞&#xff0c;在页面中嵌入客户端脚本&#xff08;通常是一段由JavaScript编写的恶意代码&#xff09;&#xff0c;当信任此Web服务器的用户访问 Web站点中含有恶意脚本代码的页面&#xff…

算法入门——字典树(C++实现详解)

字典树&#xff08;Trie&#xff09;是处理字符串匹配的高效数据结构&#xff0c;广泛应用于搜索提示、拼写检查等场景。本文将带你从零掌握字典树的原理与实现&#xff01; 一、什么是字典树&#xff1f; 字典树&#xff08;Trie&#xff09;是一种树形数据结构&#xff0c;…

SpringBoot整合SpringCache缓存

SpringBoot整合SpringCache使用缓存 文章目录SpringBoot整合SpringCache使用缓存1.介绍2.SpringBoot整合1.导入xml依赖2.配置yml3.使用EnableCaching启用SpringCache4.Cacheable5.CachePut6.CacheEvict7. Caching8.CacheConfig3.其他属性配置1.keyGenerator 属性2. cacheManage…

WPF学习笔记(20)Button与控件模板

Button与控件模板一、 Button默认控件模板详解二、自定义按钮模板一、 Button默认控件模板详解 WPF 中的大多数控件都有默认的控件模板。 这些模板定义了控件的默认外观和行为&#xff0c;包括控件的布局、背景、前景、边框、内容等。 官方文档&#xff1a;https://learn.mic…

蓝天居士自传(1)

蓝天居士何许人&#xff1f; 蓝天居士是我的笔名&#xff0c;也可以说是号。就好像李白号青莲居士、欧阳修号六一居士一样。笔者本名彭昊 —— 一个有不少重名重姓者的名字。 笔者小的时候上语文课&#xff0c;无论是小学、初中抑或是高中&#xff0c;都会有鲁迅&#xff08;…

短剧系统开发定制全流程解析:从需求分析到上线的专业指南

一、短剧行业数字化趋势与系统开发必要性在短视频内容爆发式增长的时代背景下&#xff0c;短剧作为一种新兴的内容形式正在迅速崛起。数据显示&#xff0c;2023年中国短剧市场规模已突破300亿元&#xff0c;用户规模达到4.5亿&#xff0c;年增长率超过200%。这一迅猛发展的市场…

getBoundingClientRect() 详解:精准获取元素位置和尺寸

getBoundingClientRect() 是 JavaScript 中一个强大的 DOM API&#xff0c;用于获取元素在视口中的精确位置和尺寸信息。它返回一个 DOMRect 对象&#xff0c;包含元素的坐标、宽度和高度等关键几何信息。 基本用法 const element document.getElementById(myElement); cons…

EXCEL 基础技巧

来源&#xff1a;WPS 官网 初步了解WPS表格-WPS学堂https://www.wps.cn/learning/course/detail/id/635.html 1、格式刷 1.1使用格式刷隔行填充颜色。 首先设置部分表格颜色&#xff0c;选中此区域&#xff0c;双击点击格式刷&#xff0c;然后选中其他表格区域。 这样就可以…

【RK3568 编译rtl8723DU驱动】

RK3568 编译rtl8723DU驱动 编译源码1.解压rtl8723du2.修改Makefile 验证1.加载模块2.开启wifi 在驱动开发中&#xff0c;驱动的编译与集成是实现设备功能的关键环节。本文聚焦于基于 RK3568 处理器平台编译 RTL8723DU WiFi/BT 二合一模块驱动的完整流程&#xff0c;涵盖源码编译…

基于Simulink的二关节机器人独立PD控制仿真

文章目录 理论模型仿真窗口控制函数目标函数仿真 本文是刘金琨. 机器人控制系统的设计与MATLAB仿真的学习笔记。 理论模型 对于二关节机器人系统&#xff0c;其动力学模型为 D ( q ) q C ( q , q ˙ ) q ˙ r D(q)\ddot qC(q,\dot q)\dot q r D(q)q​C(q,q˙​)q˙​r 式…

【技术架构解析】国产化双复旦微FPGA+飞腾D2000核心板架构

本文就一款基于飞腾D2000核心板与两片高性能FPGA的国产化开发主板进行技术解析&#xff0c;包括系统架构、主要硬件模块、关键接口及软件环境&#xff0c;重点阐述各子系统间的数据路径与协同工作方式&#xff0c;旨在为行业内同类产品设计与应用提供参考。 随着国产化要求的加…

Python 数据分析:计算,分组统计1,df.groupby()。听故事学知识点怎么这么容易?

目录1 示例代码2 欢迎纠错3 论文写作/Python 学习智能体1 示例代码 直接上代码。 def grpby1():xls "book.xls"df pd.DataFrame(pd.read_excel(xls, engine"xlrd"))print(df)"""序号 分类 销量0 1 文学 51 2 计算机…