BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Genera

article/2025/10/22 14:36:38

Paper name

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation

Paper Reading Note

URL: https://arxiv.org/abs/2201.12086

TL;DR

  • ICML 2022 文章,提出了BLIP,一种新的 Vision-Language Pre-training (VLP) 框架,同时提出了一种图像文本对的数据集清洗方法

Introduction

背景

  • 大多数现有的预训练模型仅在基于理解的任务或基于生成的任务中表现出色
  • 此外,通过使用从网络收集的有噪声的图像-文本对放大数据集,在很大程度上提高了性能,这是次优的监督来源

本文方案

在这里插入图片描述

  • 提出了BLIP,一种新的 Vision-Language Pre-training (VLP) 框架,它可以灵活地转移到视觉语言理解和生成任务中

    • 通过引导 caption 来有效地利用有噪声的网络数据,其中 captioner 生成合成 caption,filter 去除有噪声的 caption
  • 在广泛的视觉语言任务上取得了最先进的结果,例如图像文本检索(平均+2.7%recall@1)、图像字幕(CIDEr中+2.8%)和VQA(VQA得分+1.6%)

  • 本文主要贡献

    • Multimodal mixture of Encoder-Decoder (MED):一种有效的多任务预训练和灵活迁移学习的新模型体系结构。MED 既可以作为单模态编码器,也可以作为基于图像的文本编码器,或基于图像的文字解码器。该模型与三个视觉语言目标联合预训练:图像文本对比学习、图像文本匹配和图像条件语言建模
    • Captioning and Filtering (CapFilt):一种从噪声图像文本对中学习的新数据集增强方法。将预先训练的 MED 微调为两个模块:一个用于生成给定网络图像的合成 caption 的 captioner,以及一个用于从原始网络文本和合成文本中去除噪声 caption 的 filter

Dataset/Algorithm/Model/Experiment Detail

实现方式

在这里插入图片描述

模型结构

  • 提出 multimodal mixture of encoder-decoder (MED):
    • Unimodal encoder:
      • text encoder 是 BERT
      • image encoder 使用 ViT
    • Image-grounded text encoder
      • 通过在自关注(SA)层和前馈网络(FFN)之间为文本编码器的每个 transformer 块插入一个附加的交叉关注(CA)层来注入视觉信息。特定于任务的[Encode]标记被附加到文本,[Encode]的输出嵌入被用作图像-文本对的多模态表示
    • Image-grounded text decoder
      • 用因果自关注层替换基于图像的文本编码器中的双向自关注层。[Decode]标记用于表示序列的开始,序列结束标记用于表示其结束

Pre-training Objectives

  • 联合优化了三个目标,包括两个基于理解的目标和一个基于生成的目标,每个图像-文本对只需要一次前向通过计算量较大的视觉转换器,三次前向通过文本转换器
    • Image-Text Contrastive Loss (ITC):集成 ALBEF 中的 ITC 损失。通过鼓励正面图像文本对具有相似的表示,负面图像文本相反,对齐视觉变换器和文本变换器的特征空间
    • Image-Text Matching Loss (ITM):旨在学习图像-文本多模态表示,捕捉视觉和语言之间的细粒度对齐。ITM是一个二分类任务,给定其多模态特征,其中模型使用ITM头(线性层)来预测图像文本对是正(匹配)还是负(不匹配)
    • Language Modeling Loss (LM):旨在生成给定图像的文本描述。优化交叉熵损失,该损失训练模型以自回归方式最大化文本的可能性

CapFilt

  • 背景
    • 有标注数据集类似 COCO 这样包含图像与文本的数据集较少
    • 网络收集的图片文本对一般准确性较差
  • 提出 Captioning and Filtering (CapFilt),一种提高文本语料库质量的新方法
    • 基于两个子模型清洗网络数据集
      • captioner:对给定的网络图片生成 captions,基于 LM 损失训练
      • filter:移除有噪声的图片文本对,基于 ITC and ITM 损失训练;去除原始web文本Tw和合成文本Ts中的噪声文本,如果 ITM 头预测文本与图像不匹配,则认为文本有噪声,移除该文本
      • 以上两个模型基于 MED 初始化,分别在 COCO 上 finetune
        在这里插入图片描述
  • 将清洗后的网络数据与 COCO 等标注数据合并后用于模型 pretrain

实验结果

Effect of CapFilt

  • 清洗数据集后有明显涨点,训练数据量更大精度更高(即便不清洗数据也是一样结论)
    在这里插入图片描述
  • caption 示例,前两个看起来能过滤掉与图像不想关的网络文本
    在这里插入图片描述

Diversity is Key for Synthetic Captions

  • 使用 nucleus sampling 来生成合成 caption,nucleus sampling 是一种随机解码方法,其中每个 token 从一组累积概率质量超过阈值 p (p = 0.9) 的 tokens 中采样;与 beam search 方法(旨在以最高概率生成 caption 的确定性解码方法)相比,nucleus sampling 精度更高,原因可能是 nucleus sampling 产生的结果更多变
    在这里插入图片描述

与 SOTA 模型对比

  • Image-Text Retrieval
    在这里插入图片描述
  • Image Captioning
    在这里插入图片描述
  • Visual Question Answering (VQA)
    在这里插入图片描述
  • 在微调过程中,重新排列预训练的模型,其中图像问题首先被编码为多模态嵌入,然后被提供给答案解码器;基于 LM 损失进行 finetune
    在这里插入图片描述

Thoughts

  • 训练 loss 与技巧主要是继承之前工作,主要创新点在融合多模态数据的模型结构设计和数据集清洗上

http://chatgpt.dhexx.cn/article/2Oq24ows.shtml

相关文章

2022: BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and

摘要 大多现有的视觉语言预训练好的模型只善于基于理解的任务或基于生成的任务,而且,性能的提高很大程度上是通过扩大来自web上收集的有噪声的图像-文本对的数据集,这是一个次优的监督来源。本文,提出BLIP,一种新的VLP…

同态加密:以CKKS为例的Bootstrapping操作介绍(不定期更新)

同态加密的Bootstrapping操作最早由Gentry在他的博士论文里提出,是实现分级同态加密到全同态加密之间转换的关键步骤。目前所有的bootstrapping工作都是基于Gentry的这个想法,未有出其右者。 这篇博客打算讲一下Bootstrapping的原理,同时看一…

TFHE拓展:Programmable Bootstrapping

Improved Programmable Bootstrapping with Larger Precision and Efficient Arithmetic Circuits for TFHE(对TFHE优化的可编程同态刷新的方案,拥有高精度和高效率) 索引 Improved Programmable Bootstrapping with Larger Precision and Ef…

十分流行自举法(Bootstrapping )为什么有效

我们的项目并不总是有充足的数据。通常,我们只有一个样本数据集可供使用,由于缺乏资源我们无法执行重复实验(例如A/B测试)。 幸运的是,我们有重采样的方法来充分利用我们所拥有的数据。自举法(Bootstrapping)是一种重…

《Hand Keypoint Detection in Single Images using Multiview Bootstrapping》及模型推理

论文:《Hand Keypoint Detection in Single Images using Multiview Bootstrapping》2017 链接:1704.07809.pdf (arxiv.org) code:Hand Keypoint Detection using Deep Learning and OpenCV | LearnOpenCV 论文略读 1.Introduction In th…

bootstraping

之前一位同学问及bootstrap,由此我查阅了几篇文献,初步知晓个皮毛:它是一种非参检验方法,利用重复抽样理论,来减少偏差、控制方差、得到有效置信区间等统计方法。国内bootstrap研究比较少,这里摘录了国外研…

CKKS自举笔记(CKKS Bootstrapping)

文章目录 CKKS Bootstrapping流程流程的框架如何做同态取模操作直接泰勒展开(naive idea)采用二倍角公式来拟合(欧密2018) 如何做同态编码或解码CKKS的编码和解码基础知识(明文下面怎么做)同态的旋转、共轭…

解决:‘config.status: error: Something went wrong bootstrapping makefile fragments......’问题

解决:‘config.status: error: Something went wrong bootstrapping makefile fragments......’问题 一、问题二、解决方法 一、问题 首先我们来看安装sqlite时报的这个错误: config.status: error: in ‘/home/dengyonghao/Downloads/sqlite-autoconf…

Bootstrapping的意义

一、原理解释 Bootstrapping 方法是种集成方法,通俗解释就是盲人摸象,很多盲人摸一头象,各自摸到的都不一样,但是都比较片面,当他们在一起讨论时,就得到了象的整体。 Bootstrap的过程,类似于重…

Bootstrapping method

Bootsrapping指的就是利用有限的样本资料经由多次重复抽样,重新建立起足以代表母体样本分布的新样本。 统计中我们常常需要做参数估计,具体问题可以描述为:给定一系列数据 假设它们是从分布F中采样得到的,参数估计就是希望估计分…

【强化学习】n步Bootstrapping

目录 n步TD 预测 n-step Sarsa n步off - policy学习 Per-reward Off - policy 方法 n步Tree Backup算法 BootStrapping原是推论统计学里的概念。所谓推论统计学,就是根据样本统计量来推算总体的统计量。n部方法通常会被用作eligibility trace思想的一个例子&am…

Bootstrapping

Bootstrapping从字面意思翻译是拔靴法,从其内容翻译又叫自助法,是一种再抽样的统计方法。自助法的名称来源于英文短语“to pull oneself up by one’s bootstrap”,表示完成一件不能自然完成的事情。1977年美国Standford大学统计学教授Efron提…

Bootstrapping?

一、什么是Bootstrapping? 中文翻译也叫“自助法(自举法)”。 类似于给鞋子穿鞋带,把鞋带穿进去在穿出来再穿进去。 举个例子,一个总体有五十人,没有办法直接测量总体的情况,我们就从总体中抽取一些样本,用…

华为机试题整理

1、整数反转后求和 #include <iostream> using namespace std; int reversenum(int x) {int a0;while (x>0) {aa*10x%10;x/10;}return a; } int reverseAdd(int a,int b) {if(a<1||a>70000||b<1||b>70000){return -1;}int num1reversenum(a);int num2re…

2021.华为机试某题

问题描述&#xff1a; 有M*N的节点矩阵&#xff0c;每个节点可以向8个方向&#xff08;上、下、左、右及四个斜线方向&#xff09;转发数据包&#xff0c;每个节点转发时会消耗固定时延&#xff0c;连续两个相同时延可以减少一个时延值&#xff08;即当有K个相同时延的节点连续…

牛客网华为机试题训练汇总(JavaScript)

牛客网华为机试题训练&#xff08;JavaScript Node环境&#xff09; 文章目录 牛客网华为机试题训练&#xff08;JavaScript Node环境&#xff09;前言一、题目1. HJ11 数字颠倒2. HJ22 汽水瓶3. HJ53 杨辉三角的变形4. HJ2 计算某字母出现次数5. HJ8 合并表记录6. HJ17 坐标移…

1、华为机试题记录

1、小型机通常采用RISC和unix操作系统。 RISC&#xff1a;精简指令集计算机&#xff0c;指令少&#xff0c;运行效率更高。 unix&#xff1a;商用UNIX现在主要是三大分支IBM的AIX,SUN的solaris&#xff0c;HP的hp-ux&#xff0c;运行在小型机上。金融电信等行业应用广泛&#x…

华为机试练习题汇总

华为机试练习广场&#xff1a; [华为机试练习题]1.周期串问题 - Yoona - 博客频道 - CSDN.NET[华为机试练习题]2.大数求和 - Yoona - 博客频道 - CSDN.NET[华为机试练习题]3.分解字符串 - Yoona - 博客频道 - CSDN.NET[华为机试练习题]4.简单密码破解 - Yoona - 博客频道 - CSD…

华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典

文章目录 2023 年用 Python 语言解华为 OD 机试题&#xff0c;一篇博客找全。华为 OD 机试题清单&#xff08;机试题库还在逐日更新&#xff09; 2023 年用 Python 语言解华为 OD 机试题&#xff0c;一篇博客找全。 在 2023 年&#xff0c;Python 已成为广泛使用的编程语言之一…

华为OD机试真题2022Q4 A + 2023 B卷(JavaJavaScript)

大家好&#xff0c;我是哪吒。 五月份之前&#xff0c;如果你参加华为OD机试&#xff0c;收到的应该是2022Q4或2023Q1&#xff0c;这两个都是A卷题。 5月10日之后&#xff0c;很多小伙伴收到的是B卷&#xff0c;那么恭喜你看到本文了&#xff0c;抓紧刷题吧。B卷新题库正在更…