赞
踩
论文:https://proceedings.mlr.press/v162/li22n/li22n.pdf
代码:https://github.com/salesforce/BLIP
BLIP(Bootstrapping Language-Image Pre-training)是一个用于统一视觉-语言理解和生成任务的预训练框架。
专门设计来提升多种视觉和语言任务的性能,包括图像-文本检索、图像描述生成、视觉问答(VQA)、自然语言视觉推理(NLVR^2)、和视觉对话(VisDial)等。
组成:
多模态混合编解码器(Multimodal Mixture of Encoder-Decoder, MED):
数据集引导(Dataset Bootstrapping):
预训练目标:
零样本迁移学习:
开源和可访问性:
BLIP的核心方法论,解决现有 视觉-语言预训练模型 在模型结构和数据噪声方面的局限性:
在图像描述生成任务中,MED以图像基础文本解码器的形式操作,通过学习图像内容来生成描述文本。
在图像-文本检索任务中,MED则以图像基础文本编码器的形式操作,匹配图像和文本之间的相似性。
MED提供了三种功能:单模态编码器、图像基础文本编码器、和图像基础文本解码器,使模型能够灵活地在不同的任务之间切换,并且通过共享某些层来提高训练效率和促进多任务学习。
这种结构的灵活性意味着同一个模型可以适应多种类型的任务,无需为每种任务定制单独的模型结构。
假设有一张网络图像,其关联的文本是“蓝天下的一座桥”。
然而,这个文本与图像的实际内容不符,因为图像可能显示的是一场足球比赛。
标题生成器(Captioner)可能会生成一个更准确的描述,如“足球场上的比赛”,然后过滤器(Filter)会识别并去除原始不准确的描述,保留合成的准确描述。
这样,BLIP就能通过改善训练数据的质量来提升模型的性能。
通过引入MED架构和CapFilt方法,BLIP不仅能够在多个视觉-语言任务上实现最先进的性能,还能在零样本场景下直接迁移到视频-语言任务,展现出极强的泛化能力。
3. 子问题3: 知识蒸馏在视觉语言预训练中的应用限制
比如老师用自己的方式解释了一幅画的含义,而学生们都尝试记住老师的解释。
但如果每个学生只是简单地复述老师的话,那么他们可能无法真正理解画的深层含义。
在BLIP模型中,通过CapFilt进行知识蒸馏就像是让学生们创造自己的故事来描述这幅画,然后老师会指出哪些故事真正理解了画的意义(过滤器移除不准确的故事)。
这样不仅学生能更深刻地理解画作,还能在类似的未来任务中更好地表现。
上图 是使用标题生成器(Captioner, 缩写为Cap)和过滤器(Filter, 缩写为Filt)进行数据集引导(Bootstrapping)的过程。
标题生成器用于为网络图像生成合成标题,而过滤器用于移除噪声或不相关的标题。
一个巧克力蛋糕的图像和两个标题:“blue sky bakery in sunset park”被标记为红色的叉,表示过滤器已将其识别为噪声或不相关的标题。
而“chocolate cake with cream frosting and chocolate sprinkles on top”被标记为绿色的勾,表示过滤器已认可该标题准确且相关。
一位作家正在尝试为一系列的图片写下描述,为了训练自己的创造力,他不仅使用直接观察到的元素,还尝试添加一些虚构的细节来丰富故事。
BLIP模型中利用合成标题进行数据增强就像这位作家一样,它不仅使用现有的图片描述,还创造新的描述来扩展训练数据。
这样,BLIP模型就能学习到更丰富的语言表达和更多样化的场景理解。
当模型遇到一个新的图片时,它不仅能够识别图中明显的内容,还能够使用它在数据增强过程中学到的知识来创造出富有想象力和详细的描述。
这种方法大大超越了简单复制网络上现有描述的传统方法,使模型能够更好地理解和生成与图片内容相关的文本,增强了它处理视觉-语言任务的能力。
一个厨师正在准备一顿大餐,他必须同时处理烤箱里的烤肉、锅里的汤,以及准备甜点。
每道菜都需要不同的技巧和注意力,但他需要确保它们全部都能按时完美地呈现出来。
这就像BLIP在预训练阶段做的工作。
它不仅需要确保能理解图像(像是烤肉需要正确的温度),还要能匹配相关的文本(就像汤要加对调料),并且生成吸引人的图像描述(就像制作诱人的甜点)。
通过同时关注这三个目标,BLIP确保在完成任务时能够取得最佳的综合性能,就像厨师确保每道菜都能达到最高标准一样。
一位艺术家正在为一本图画书创作插图,他可以用同样的风格画出所有的画面,这样虽然一致,但可能有些单调。
相反,如果他决定在每一页尝试不同的颜色和风格,那么图画书将会更加丰富多彩和吸引人。
BLIP模型使用核采样(nucleus sampling)来生成合成标题,就像这位艺术家在每页上尝试新风格一样,它创造出多样化的描述,使模型能从更广泛的样本中学习。
一个设计团队正在创建一款新的电子产品。
如果团队的每个成员都在各自独立的部分上工作,而没有共享他们的设计理念,那么最终的产品可能会出现不协调的问题。
但是,如果他们在设计的大部分阶段共享想法,只在最后的细节上进行独立工作,那么产品就更可能成为一个协调一致的整体。
同样,在BLIP模型的预训练中,大部分参数(如前馈网络和嵌入层)被共享,以维持模型的一致性和效率,而在CapFilt过程中,通过独立微调captioner和filter来确保噪声数据能够被有效识别并去除,从而避免了因共享相同参数而可能导致的模型在去噪时的盲点。
BLIP通过微调图像-文本对比(ITC)和图像-文本匹配(ITM)损失,显著提高了在COCO和Flickr30K数据集上的图像到文本和文本到图像的检索性能。
BLIP在NoCaps和COCO数据集上的图像描述生成任务中,通过采用语言模型(LM)损失并添加提示词进行微调,成功改善了图像描述的准确性和质量。
BLIP的预训练模型架构和目标:
该模型是一个多模态的编解码器混合体,具有三种功能:
BLIP优化了模型,将VQA任务视为答案生成任务,并使用LM损失进行微调,从而在生成开放式答案方面超越了现有的VLP方法。
BLIP在自然语言视觉推理(NLVR^2)任务中,通过对双图像处理能力的增强(两个交叉注意力层),提高了推理准确率。
在视觉对话(VisDial)任务中,BLIP通过整合图像、标题、对话历史,并使用ITM损失来训练对话编码器,实现了领先的性能。
BLIP模型在三种下游任务中的架构:视觉问答(VQA),自然语言视觉推理(NLVR^2),以及视觉对话(VisDial):
每一部分的架构都被设计用于处理特定任务的需求:
BLIP在视频-语言任务上实现了出色的零样本性能,证明了即使在没有特定视频数据训练的情况下,通过对视频输入进行简单处理,如均匀采样帧,BLIP也能够有效地处理文本到视频的检索和视频问答任务。
CLIP(Contrastive Language-Image Pre-training)模型和BLIP(Bootstrapping Language-Image Pre-training)模型虽然都是视觉-语言预训练模型,但它们在设计和功能上有一些关键的不同。
https://blog.csdn.net/qq_41739364/article/details/135063268
训练方式:
数据依赖:
图像编码器:
文本编码器:
Zero-shot学习:
训练方式:
数据依赖:
图像编码器:
文本编码器与解码器:
应用领域:
CLIP在设计上更侧重于通过大规模的数据和对比学习来学习强大的通用图像和文本表示.
BLIP则采用了更精细的数据处理方法来进一步提升模型的性能,特别是在多任务适用性方面进行了优化。
两者都展示了在各自领域内的先进性能,但BLIP在数据处理和任务适应性上更为灵活。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。