多模态大模型解读

目录

1. CLIP

2. ALBEF

3. BLIP

4. BLIP2

参考文献


        (2023年)视觉+语言的多模态大模型的目前主流方法是:借助预训练好的LLM和图像编码器,用一个图文特征对齐模块来连接,从而让语言模型理解图像特征并进行深层次的问答推理。

        这样可以利用已有的大量单模态训练数据训练得到的单模态模型,减少对于高质量图文对数据的依赖,并通过特征对齐、指令微调等方式打通两个模态的表征。下图来自其他 up 的概括内容,来自:https://zhuanlan.zhihu.com/p/653902791

        对于CLIP部分公式均参照该链接,仅了解损失函数。

图 基础MLLM的架构整理

1. CLIP

        分别对图像、文本进行特征提取,两部分的backbone可以分别采用Resnet系列模型/VIT系列模型、BERT模型。特征提取后,直接相乘计算余弦相似度,然后采用对比损失(info-nce-loss)。

训练损失

  • 交叉熵代价损失(cross entropy):基础有监督学习分类损失函数。

图 n个类别多分类的交叉熵代价函数

  • NCE(noise contrastive estimation):相比于交叉熵损失,这里将多问题转化为二分类问题,即正样本和噪声样本,目标学习正样本和噪声样本之间的差异。

图 噪声对比

  • info-NCE:NCE的变体,将噪声样本按多类别看待。存在一个temp的温度系数。

图 info-NCE loss

2. ALBEF

        动机:该项工作之前的视觉预训练模型一般采用Object Detector的方式,这种Detector能够提取图像上的目标或边界信息。然而这种训练方式有如下几点限制:

  • 图像特征和文本编码token分别处于各子的特征空间,这使得多模态关联性挖掘存在巨大挑战;
  • 这种训练方式会产生额外的解释开销和计算开销;
  • 对于物体目标含量低的样本,模型性能受限于Detector的检测精度;
  • 图像文本样本数据一般来源于网络,具有严重的噪声影响,会导致模型性能降级。

        ALBEF模型架构:如图所示,ALBEF模型架构分为image encoder 、text encoder 和多模态编码器,其中左半部分类似Transformer,text encoder将12层分为两部分,前6层作为text encoder,后6层作为视觉特征和文本特征的融合。由于视觉和文本的编码都包含[CLS]标签,这种标签因自注意力机制的影响被认为包含全局信息,所以可以将视觉和文本的全局信息进行 Image-Text Contrastive Loss。

图 ALBEF架构图

        如图ITM部分,该部分称为图像文本匹配(Image-Text matching),该部分利用的负样本采用 hard negatives 的方式进行生成,即通过ITC(iamge-text Contrastive)计算出的次分类结果,该结果能够作为模型难以理解的样本,进而计算损失。

        除此之外,由于动机中描述的网络图文样本对的噪声影响,ALBEF设计一个Momentum Model(动量模型)解决上述问题。简要描述该组件的作用,即类似知识蒸馏方法,拷贝出原始模型的动量版本,通过动量模型对原始模型规约,加深原始模型和动量模型间的图文对匹配程度,进而消除原始样本数据中的噪声干扰。

3. BLIP

        动机:从模型的角度,当前预训练模型的任务涵盖范围受限。例如,基于Encoder的模型无法做生成任务,而基于Encoder-Decoder的模型无法做检索任务,不能更充分的理解任务信息。从数据的角度,网络图文对具有严重的数据噪声。

        BLIP模型架构:BLIP全称Bootstrapped Language-Image Pre-training,该模型包括三个下游任务:图像文本对比学习、图像文本匹配和语言建模(LM,该任务类似GPT,给定段落前一段话,预测后一段;而不是BERT那种完型填空的方式)。

图 BLIT模型架构

  • Bootstrapped机制:采用一种迭代的、自我改进的学习过程来提升模型性能,该机制有助于提高模型在跨模态任务中的对齐和理解能力。(1)初始模型训练阶段:首先使用大量的单模态数据(如图像/文本)对文本编码器和图像编码器进行预训练(如图中的 Image Encoder 和 Text Encoder)。然后利用多模态数据,即图文对数据,对初始模型进行训练;(2)迭代更新阶段:采用Captioning and Filtering的方式,从网页噪声图像文本对中学习,训练BLIP。
  • image-text contrastive(图像文本对比):和ALBEF类似,利用[CLS]信息进行对比学习。
  • Image-grounded Text Encoder(图像文本匹配编码器):采用一种 Cross Attention 模块,将图像信息融入文本编码过程中,增强文本的上下文表示,进而理解图像的相关描述。
  • Image-grounded Text Decoder(图像关联文本解码器):将原来的 Bi Self-Attention 替换为 Causal Self-Attention(用于预测下一个token),该解码器用于文本生成或多模态推理任务。
  1. soft lables:是指标签值在[0,1]之间的概率值,而不是离散的0或1,反映样本属于某一个类的置信度。有助于平滑标签分布,提高模型的泛化能力,减少过拟合。
  2. Hard Negative Mining Strategy:在训练过程中,专门选择那些模型难以区分的负样本,以增强模型的判别能力。

如何消除网络样本噪声的影响:BLIP采用 Filter-Captioner 的方式,如图所示,通过生成+过滤的方式生成更匹配图像的Caption,进而完善样本集。具体而言,对于给定的训练集
$D$,包含网络文本 T_w、人工正确标注文本 T_h,由于前文有 ITC、ITM 和 LM 损失,因此在部分利用这些指标训练 Filter(grounded Encoder)和 Captioner(grounded Decoder),Captioner会生成文本数据 T_s,将 T_w 和 T_s 交由 Filter 微调更加匹配图像的文本信息,最终获得信息匹配程度更紧密的样本集。

图 Filter-Captioner机制

4. BLIP2

动机:回顾之前的研究,无论是视觉预训练模型还是语言预训练模型,其规模都是庞大的,这种模型架构会产生巨额开销。

BLIP2架构:BLIP2全称Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models,视图将视觉预训练模型和语言预训练模型参数均进行冻结。然而,这会导致视觉特征和文本特征都处于各自的特征空间,存在巨大的 modality gap。因此BLIP2中采用 Q-Former(Query Transformer) 的一种轻量级Transformer技术,该技术用于弥补视觉和语言两种模态的 modality gap,选取最匹配的视觉特征给后续LLM生成文本。

图 BLIP2的模型架构

        Q-Former是一个可学习的组件,学习的参数包括若干queries,这些queries最终从 image encoder中提取固定数量的视觉特征,学习与文本更匹配的视觉特征。

        queries间的彼此交互通过共享自注意力层,和冻结的图像特征交互使用的跨模态注意力机制层,然后queries也能通过共享自注意力层与文本特征进行交互。整个Q-Former由Image Transformer和Text Transformer两个子模块构成,它们共享相同自注意力层。

  • Image Transformer:通过和image encoder交互来提取视觉特征,输入是一系列(文中用的32个*768长度)可学习的 Queries,这些Query通过自注意力层相互交互,并通过交叉注意力层与冻结的图像特征交互,还可以通过共享的自注意力层与文本进行交互;输出的query尺寸是32*768,远小于冻结的图像特征257*1024(ViT-L/14)。
  • Text Transformer:既作为文本编码器也作为文本解码器,它的自注意力层与Image Transformer共享,根据预训练任务,用不同的self-attention masks来控制Query和文本的交互方式。

参考文献

多模态大模型 CLIP, BLIP, BLIP2, LLaVA, miniGPT4, InstructBLIP 系列解读

BLIP2的前世与今生

ALBEF原文

BLIP原文

BLIP2原文

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

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

相关文章

王思聪隐形女儿曝光

王思聪"隐形"女儿曝光!黄一鸣独自面对怀孕风波,坚持生下爱情结晶近日,娱乐圈掀起了一场惊天波澜!前王思聪绯闻女友黄一鸣在接受专访时,大胆揭露了她与王思聪之间的爱恨纠葛,并首度公开承认&#…

【C++入门(4)】引用、内联函数、auto

一、引用与类型转换 我们看下面这个例子。 用 int & 给 double 类型的变量起别名,编译器报错: int main() {double b 3.14;int a b;int& x b;return 0; } 用 const int & 给 double 类型的变量起别名,成功: in…

ROS 机器人运动控制

ROS 机器人运动控制 机器人运动 当我们拿到一台机器人,其配套的程序源码中,通常会有机器人核心节点,这个核心节点既能够驱动机器人的底层硬件,同时向上还会订阅一个速度话题。我们只需要编写一个新的节点(速度控制节点…

白酒:中国的酒文化的传承与发扬

中国,一个拥有五千年文明史的国度,其深厚的文化底蕴孕育出了丰富多彩的酒文化。在这片广袤的土地上,酒不仅仅是一种产品,更是一种情感的寄托,一种文化的传承。云仓酒庄的豪迈白酒,正是这一文化脉络中的一颗…

文件加密软件排行榜|常用三款文件加密软件推荐

Top 1: 安秉网盾文件加密软件 加密模式多样:采用多种加密模式,对企业重要的文档、图纸进行全方位360度保护。可根据企业不同工作场景设置不同的加密模式。 全透明加密:通过全透明加密模式,对企业重要的图纸文件类型进行全盘透明…

521. 最长特殊序列 Ⅰ(Rust单百解法-脑筋急转弯)

题目 给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列 的长度。如果不存在,则返回 -1 。 「最长特殊序列」 定义如下:该序列为 某字符串独有的最长 子序列 (即不能是其他字符串的子序列) 。 字符串 s …

XHS-Downloader是一款小红书图片视频下载工具

这款软件可以提取账号发布、收藏、点赞作品链接;提取搜索结果作品链接、用户链接;下载小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件! 📑 功能清单 ✅ 采集小红书图文 / 视频作品信息…

全国第四轮软件工程学科评估结果

#计算机专业好吗##高考填志愿选择专业##计算机专业还能不能报# 又到了让各位家长头疼的高考填志愿时刻。 前几天的头条,张雪峰直播卖卡3小时入账2亿,为了孩子的前途,家长们确实是不惜重金。 作为毕业如今18个年头一直从事软件领域的老码农&am…

MTU 和 MSS 关系、 IP分片、TCP分段

从四层模型:链路层,网络层,传输层,应用层说 一 、以太网V2格式数据帧 : 链路层 Destination Source Type DataAndPad FCS 6 6 2 46~1500 4 二、IP: 网络层 0 1 …

ubuntu18.04离线源制作

给客户部署有时需要纯内网环境,那这样就连不了网络。 一些包就下载不下来,而大家都知道用deb离线安装是非常麻烦的,各种依赖让你装不出来。 这里教大家打包源。 我准备2台机器,42和41 42可以联网,41不能联网。我想在…

Redis的缓存击穿与解决

缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的Key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。 Redis实战篇 | Kyles Blog (cyborg2077.github.io) 目录 解决方案 互斥锁 实现 逻辑过期 实现 解决方案…

linux中“PXE高效批量装机”

在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB光驱、移动硬盘等安装方法显然已经难以满足需求。 PXE …

数学建模----单源最短路径模型建立和求解

目录 1.引言和声明 2.单源最短路径 3.建立模型 4.代码求解 1.引言和声明 (1)最近又在准备学习matlab,有了一些新的理解和体会,记录一下; (2)这个首先要声明两个符号,这两个符号也是今天才知…

conda下安装32位版本python

前言:当前主流的系统为64bit系统,conda软件为64bit软件,因此使用conda创建虚拟环境安装python时默认安装的python为64bit版本,但部分研发场景需要调用32bit依赖,只能使用32bit的python,因此需要安装32bit的…

【因果推断python】44_评估因果模型2

目录 累积弹性曲线 累积增益曲线 考虑差异 关键思想 累积弹性曲线 再次考虑将价格转换为二元处理的说明性示例。我们会从我们离开的地方拿走它,所以我们有弹性处理带。我们接下来可以做的是根据乐队的敏感程度对乐队进行排序。也就是说,我们把最敏感…

spring中@Conditional

多环境切换 java配置使用profile Profile设置在某个环境下,spring注入对应的bean public class JavaConfig {BeanProfile("dev")DataSource devDs(){DataSource ds new DataSource();ds.setUrl("dev");ds.setUsername("dev");ret…

2024年了,C++还值得学吗?6个C++的就业方向打消你的疑虑

C语言是一种广泛应用于计算机编程的高级编程语言,自从其首次问世以来,就在软件开发领域取得了广泛的应用和成功。作为一种强大的编程语言,C语言不断发展和改进,也在不断地适应新的技术和需求。在未来几年,C语言将继续保…

手把手!从头构建LLaMA3大模型(Python)

1. 前期准备 让我们先来想一想大概需要做什么。 首先是模型架构的选择。原工作用的是 GPT Neo 架构(可以看他们的 config),这个算是很老的模型了,最初是 EleutherAI 用来复现追踪 GPT-3 的工作的,现在用的也比较少了…

洛谷 P1726:上白泽慧音 ← Tarjan算法

【题目来源】https://www.luogu.com.cn/problem/P1726【题目描述】 在幻想乡,上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚集最多人数的村庄作为新…

redis复习

redis知识点 redis持久化redis 订阅发布模式redis主从复制哨兵模式redis雪崩,穿透缓存击穿(请求太多,缓存过期)缓存雪崩 redis持久化 redis是内存数据库,持久化有两种方式,一种是RDB(redis dat…