arXiv2022-12 | FLIP:Scaling Language-Image Pre-training via Masking

news2025/1/13 1:33:46

凯明团队新作。

论文地址:https://arxiv.org/abs/2212.00794

一、问题

Even using high-end infrastructures, the wall-clock training time is still a major bottleneck hindering explorations on scaling vision-language learning.

即使使用高端的基础设施,wall-clock training time仍然是阻碍视觉语言学习规模化探索的主要瓶颈。

二、模型

通过对图像patches的mask,有两点好处:

在相同的wall-clock training time下,从更多的图像-文本对中学习

在相同的内存约束下,对更大的batch有一个对比目标。

1、细节

Image masking.

image encoder采用ViT-L/16,mask patches ratio为50%、75%。mask50%(或者75%)可以将Vit编码的时间复杂度减低1/2(或者1/4)。在同内存成本下,可以采用2* (或者4*)的batch size。

Text masking.

由于文本编码器较小,没有进行mask

Objective.

只进行对比学习,不使用MAE进行decoder。因此只有对比学习损失。

Unmasking.

虽然编码器是预训练masked image,但是可以应用于完整的图像。(下游推理不用mask)

2、实现

在图像编码器的末尾使用global average pooling。输入尺寸为224,文本编码器是一种非自回归变压器,WordPiece tokenizer,将序列填充或剪切为固定的长度32。CLIP使用自回归文本编码器、BytePairEncoding标记器和77的长度,这些设计产生了微小的差异。

图像编码器和文本编码器的输出通过线性层投影到同维embedding空间。通过可学习温度参数缩放的embedding余弦相似度是InfoNCE损耗的输入。在zero-shot中,使用他们提供的7个prompt template进行ImageNet ImageNet zero-shot transfer。在TPU v3上训练。

三、Experiments

1、Ablations

在LAION-400M上进行训练,并在ImageNet-1K验证上评估zero-shot精度。

Masking ratio. 更改mask ratio,保持相同的内存占用。FLOPs大量减少,训练时间减少。

Batch size. 在上面(a),mask 50%时精度acc有提升,可能是batch_size带来的增益。因此有实验:

可以看到mask50% mask75%随着batch size的增大,精度acc有提升,但是mask75%时,由于失去太多信息,因此在微调时效果acc不佳。

Text masking. (image进行masking了,自然就是text进行masking)

随机mask50%时acc降低2.2%。因为语言数据的信息密度比图像高,因此文本掩蔽率应该更低。

当对可变长度的文本序列进行填充以生成固定长度的批处理时,可以优先屏蔽填充的token。优先采样比均匀地随机屏蔽填充序列保留更多的有效标记。acc仅降低到0.4%。

总体速度增益很小。这是因为文本编码器更小,文本序列更短。与图像编码器相比,文本编码器的计算成本仅为4.4%(没有屏蔽)。在这种设置下,文本屏蔽不是一种值得的权衡,在其他实验中没有屏蔽文本。因此这里只对image masking。

Inference unmasking.

在推理阶段是否masking:

可以看到without masking精度是最高的。因为在推理阶段mask的话,会丢失很多信息。ensemble减少了差距,但仍然落后于简单的全视图推理。

Unmasked tuning.

前面是zero-shot,如果下游turning,acc有提升,表明调优可以有效地缩小预训练和推理之间的分布差距。

Reconstruction. 添加一个重构损失函数。遵循MAE:小的解码器和重建归一化图像像素。将重构损耗加到对比损耗中。

精度下降,说明重建具有较小的负面影响。虽然这可能是次优超参数(例如,平衡两个损失)的结果,但为简化,不使用重构损失,提高精度/时间的权衡

Accuracy vs. time trade-off.

FLIP明显比CLIP有更好的权衡。达到与CLIP相似的精度,同时享受>3×的加速。在相同的32 epoch下,FLIP比CLIP方法的准确率高约1%,速度快2倍(mask 50%)

2、Comparisons with CLIP

ImageNet zero-shot transfer

可以看到FLIP的效果比OpenCLIP、CLIP好。FLIP、OpenCLIP比CLIP好可能是训练数据带来的偏差。

ImageNet linear probing.

线性探测结果,即在具有冻结特征的目标数据集上训练一个线性分类器。FLIP的准确率为83.6%,比CLIP的准确率高1.0%。也比使用相同的SGD训练器传输的原始CLIP检查点高0.6%。

Zero-shot classification on more datasets.

Zero-shot retrieval.

Zero-shot robustness evaluation.

Image Captioning. Visual Question Answering.

3、Scaling Behavior

Model scaling:ViT-H代替ViT-L,

Data scaling:使用LAION-2B,4亿→20亿

Schedule scaling:将采样数据从12.8B增加到25.6B

Training curves.

Transferability.

 

关于文章的个人经验(不一点适合全部图像、模型):

1、由于最近在做VLP预训练,发现Mask vision modeling(MAE架构),该任务对下游任务其实增益很少,甚至还有损耗。

2、采用预训练的MAE权重作为视觉分支的预训练权重,对下游任务是有提升的,因为visual encoder具备了一定的先验知识。

3、对于mask 50%的权重对下游任务的增益更大,mask75%时信息损失太多了,导致模型对部分内容是根据经常出现的元素在猜测,而不是根据现有信息推理。

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

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

相关文章

人工智能:声纹相关基础概念介绍

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

移动端开发——APP端上H5容器化建设

1. 背景 当前移动端和前端的结合愈加紧密,尤其是在偏重活动运营的电商App中,受制于App版本审核,具备研发成本低、可灵活发布等特点的H5页面受到青睐,使其在APP端上承接了越来越多的业务。然而H5页面本身也存在一些亟需解决的问题…

nginx配置错误三例漏洞-

路径:nginx/insecure-configuration 运行成功后,Nginx将会监听8080/8081/8082三个端口,分别对应三种漏洞。 8080:CRLF注入漏洞 8081: 目录穿越漏洞 8082: add_header被覆盖 $uri导致的CRLF注入漏洞 Nginx…

股票分时成交明细接口的数据怎么看?

今天的文章我们主要针对于股票日线级别的行情数据,介绍了一些获取和处理的方法,其实最原始的数据是交易明细数据,level2行情软件的各种周期和统计的数据都是通过明细数据跨周期转换而形成的,比如分钟K线、小时K线、当日成交量、成…

基于STM32蓝牙控制的app智能台灯设计

提示:记录毕设 文章目录前言一、任务书1.1设计(研究)目标:1.2设计(研究)内容:二、代码思路三、硬件设计3.1总体设计3.2蓝牙部分设计四、联系我们五、部分代码喜欢请点赞哦!前言 基于STM32蓝牙控制的app智能台灯设计,主控使用STM32F103ZET6&a…

web服务器及IDEA部署Tomcat服务器

目录 一、程序开发体系结构 1.1 C/S体系结构 1.2 B/S体系结构 二、Web服务器 2.1 概念 2.1.1 什么是Web 2.1.2 什么是Web服务器 2.2 常见Web服务器 2.3 Tomcat服务器 2.3.1 Tomcat的下载 2.3.2 Tomcat的安装 2.3.3 Tomcat的目录结构 2.3.4 Tomcat的启动 2.3.5 To…

MFC树控件的属性和初始化(基于对话框的编程)

目录 一、控件属性 1.找控件Tree Control 2.Has Lines和Has Buttons属性 3.Lines At Root属性 二、代码操作Tree Control显示内容 1.添加Tree Control变量 2.在OnInitDialog中添加初始化代码 3.设置图标 3.1导入icon 3.2 写入加载图片代码 3.3添加节点 4.设置默认选…

抗击疫情静态HTML网页作业作品 大学生抗疫感动专题页设计制作成品 简单DIV CSS布局网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

HTML期末大作业(HTML+CSS+JavaScript响应式游戏资讯网站bootstrap网页)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

12月5日:thinkphp模板

今天学习ThinkPHP中的模板部分内容 接口开发,看不到dom结构,页面信息都是通过js或者一些其他技术引入 模板:是用来渲染前端页面,在后端的api接口开发中并不会常用到模板,但是后台管理页面却会使用MVC模式开发&#xf…

Camera API2使用流程分析

1.首先看下framework层CameraService服务初始化流程分析 <1>. main_cameraserver.cpp的路径 /frameworks/av/camera/cameraserver/ CameraService::instantiate&#xff08;&#xff09;实际调用的是BinderService中的函数&#xff0c;因为CameraService是继承BinderSer…

[附源码]计算机毕业设计JAVA疫情状况下生活物资集体团购系统

[附源码]计算机毕业设计JAVA疫情状况下生活物资集体团购系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a…

学习ITIL4又给数字人带来哪些优势

2019新的ITIL 指南将被称为ITIL 4。这个名称反映了ITIL 4 在支持个人和组织应对第四次工业革命方面的作用。 IT 是当今世界每个企业的核心。该更新将使ITIL 能够反映我们所处的快节奏和复杂的环境&#xff0c;以及新的工作方式和新兴实践&#xff0c;所有这些都不仅对于ITSM 专…

鹿蜀:一个基于日常开发任务体现开发人员工作状况的系统

一、背景 为了能够更方便、更直观的让Boss&#xff0c;让同伴&#xff0c;让自己了解到自己近期的工作情况&#xff0c;我拉了一个小队&#xff0c;利用农闲的时间&#xff0c;结合已有的项目管理系统中的数据&#xff0c;开发了一个新系统&#xff0c;名叫 “鹿蜀”。 二、系…

K8s 实战 动态PV StorageClass 存储类

前面我们学习了 PV 和 PVC 的使用方法&#xff0c;但是前面的 PV 都是静态的&#xff0c;什么意思&#xff1f;就是我要使用的一个 PVC 的话就必须手动去创建一个 PV&#xff0c;我们也说过这种方式在很大程度上并不能满足我们的需求&#xff0c;比如我们有一个应用需要对存储的…

说说你对slot的理解?

首先&#xff0c;大概了解一下插槽&#xff1a; 插槽是什么 ![在这里插入图片描述](https://img-blog.csdnimg.cn/90b04660769e49c286ee2e1821d2a2bb.png 插槽&#xff1a;在HTML中 slot 元素 &#xff0c;作为 Web Components 技术套件的一部分&#xff0c;是Web组件内的一…

【蓝桥杯选拔赛真题33】python回文数升级 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 ​编辑 python回文数升级 一、题目要求 1、编程实现 2、输入输出

Spring 框架介绍和使用

微信公众号&#xff1a;运维开发故事&#xff0c;作者&#xff1a;老郑 历史的选择 Spring 作为一个基础的框架&#xff0c;是在 Java EE 开发历史中&#xff0c;是成千上万公司选择。单独使用 Spring 的非常少了&#xff0c;很多都是用 Spring-Boot/Spring-Cloud 来开发&…

文件系统监视器

QFileSystemWatcher类通过监视指定路径的列表来监视文件系统对文件和目录的更改。 构造函数&#xff1a; 常用函数&#xff1a; addPath&#xff08;&#xff09;添加路径addPaths&#xff08;&#xff09;添加多个路径directory&#xff08;&#xff09;返回正在监视的目录的…

【JS】数据结构之队列

文章目录基本概念代码实现基本概念 队列&#xff1a;它是一种运算受限的线性表&#xff0c;FIFO&#xff08;先进先出&#xff09;特性&#xff1a;它只运行表的前端进行删除操作&#xff0c;在表的后端进行添加操作面对无法同时处理多个请求的场景&#xff0c;我们通常就会使…