大数跨境
0
0

LLM的Transformer可以处理视觉Token吗?LM4VisualEncoding:语言模型中的冻结编码器来提取视觉特征

LLM的Transformer可以处理视觉Token吗?LM4VisualEncoding:语言模型中的冻结编码器来提取视觉特征 极市平台
2023-11-15
1
↑ 点击蓝字 关注极市平台
作者丨科技猛兽
编辑丨极市平台

极市导读

 

本文通过一种非常简单的方式实现:使用预训练的 LLM 中的冻结参数的 Transformer Encoder 直接处理视觉的 token >>加入极市CV技术交流群,走在计算机视觉的最前沿

本文目录

1 LM4VisualEncoding:语言模型中的冻结编码器来提取视觉特征
(来自伊利诺伊大学香槟分校)
1.1 背景:当 LLM 遇到视觉任务
1.2 LM4VisualEncoding 框架
1.3 与 Vision-Language 模型比较
1.4 与 LLM 模型比较
1.5 图像分类实验结果
1.6 多模态任务实验结果
1.7 消融实验:其他的 LLM
1.8 消融实验:更大的 LLM
1.9 添加 LLM 有效的原因猜想:信息过滤假设

太长不看版

LM4VisualEncoding 发现一个有趣的现象:大语言模型 (large language models, LLM),尽管仅在文本数据上进行训练,但是在纯视觉任务上也有惊人的效果。更有趣的是,本文通过一种非常简单的方式实现:使用预训练的 LLM 中的冻结参数的 Transformer Encoder 直接处理视觉的 token。

LLM 一般是输入 prompt 和图片作为输入,来生成一些文本作为输出。本文的做法是把它配合 ViT,二者一起来处理视觉的输入 token,推动了将 LLM 用于计算机视觉任务的边界。

本文方法适合各种类型的 LLM,比如 LLaMA[1] 和 OPT[2]。以及多种任务,比如纯 2D 和 3D 视觉识别任务 (图像和点云分类),时间建模任务 (比如动作识别),非语义任务 (比如运动预测) 和多模态任务 (比如 2D/3D 视觉问答和图像文本检索)。

1 LM4VisualEncoding:语言模型中的冻结编码器来提取视觉特征

论文名称:Frozen Transformers in Language Models Are Effective Visual Encoder Layers

论文地址:

https://arxiv.org/pdf/2310.12973.pdf

代码地址:

https://github.com/ziqipang/LM4VisualEncoding

1 LM4VisualEncoding 论文解读:

1.1 背景:当 LLM 遇到视觉任务

在海量文本数据上训练的大语言模型 (large language models, LLM) 在多种任务中表现出了惊人的潜力。比如在计算机视觉领域,像[3]一样,LLM 展示出了与视觉输入进行交互,并将其解码为输出的能力。或者像 Flamingo[4],BLIP[5],BLIP-2[6]),VisionLLM[7]一样,对于图像和文本的 token 使用 Cross-Attention。随着探索将 LLM 用于计算机视觉任务的限制,一个有趣的问题出现了:

LLM 能否有效地处理完全视觉的任务,而不需要任何对语言的依赖?

在本文中,作者为了回答这个问题做了一些积极地论证:将预训练的 LLM 模型的冻结参数的 Encoder 层直接合并到 ViT 上面,使之成为通用的视觉编码器,来处理视觉 token

本文使用预训练的 LLM Transformer Block 作为视觉编码器的发现很有趣,因为把 LLM Transformer 作为 Visual Encoder:

  1. 独立于语言提示、输入或输出进行操作。
  2. 允许从头开始训练,而不需要像 CLIP 这样预先训练的 Backbone。
  3. 解耦和简化 LLM:简单直接地使用整个的 LLM Transformer Block。

1.2 LM4VisualEncoding 框架

LM4VisualEncoding 的框架如下图1所示。假设输入图片是 ,LM4VisualEncoding 映射到潜在表征 并使用编码器 和解码器 预测标签

然后在编码器 和解码器 之间插入来自 LLM (比如 LLaMa) 的单个预训练 Transformer Block (注意,是只有一层,不是全部),使用 表示。由于编码器 和 LLaMa Transformer Block 之间的特征维度不同,作者在 之前和之后使用两个线性层 来对齐维度:

在训练阶段,预训练的 LLaMa Block 保持冻结,如图2的伪代码所示,而所有其他模块和两个线性层 正常训练。

图1:LM4VisualEncoding 框架
图2:LM4VisualEncoding 伪代码

1.3 与 Vision-Language 模型比较

很多 Vision-Language 模型都是使用一个线性层直接将视觉特征投影到 LLM 的输入空间中。但是本文方法中的线性层 不一定是将视觉表征 对齐到文本空间中。这在以下 3 点中体现出来:

  1. 不依赖视觉预训练:LM4VisualEncoding 支持从头训练,而不依赖于预训练的视觉编码器,比如 CLIP。
  2. 不依赖文本:LM4VisualEncoding 可以在没有基于语言的输入或提示的情况下发挥作用,且适用于一般的视觉表征学习,而不仅仅是多模态任务。
  3. 简洁:以前的 Vision-Language 模型将 LLM 视为一个整体,而 LM4VisualEncoding 使用单个 LLaMa Block 进行视觉编码。

1.4 与 LLM 模型比较

由于视觉和文本数据之间的格式不同,本文改变了 LLM Transformer 的做法:

1) 注意力的掩码机制:LLM 通常用 Auto-Regressive Masks 来模拟文本生成的顺序。但视觉数据中的 token 是同时出现的。因此作者不使用 Auto-Regressive Masks,只使用 Attention Masks 来指示 padding 的 token。

2) 位置编码:LLaMa 中的位置编码,例如旋转位置编码,并不是视觉编码器的常见选择。因此,为了视觉 Backbone 的一致性,作者这里去掉了 LLM 的位置编码。

1.5 图像分类实验结果

对于图像分类任务而言,编码器 是 ViT 模型,解码器 是最后的分类头。编码器解码器之间插入 LLaMa Transformer Block。实验结果如图3所示,当插入 LLaMa Transformer Block之后,无论是干净的 ImageNet 图片,还是 corrupted,adversarial,以及 out-of-distribution 的 ImageNet 图片,ViT 模型的精度都不断提高。

而且,图4中进一步说明,性能的提升不是模型尺寸变大的结果。可能会有质疑说改进是否主要来自线性层 给模型带来的容量增加,而不是 LLM Transformer 中预训练的权重。为了分析模型容量带来的影响,作者创建了与 ViT-S-LLaMA 相比具有相同可训练参数的 ViT-SMLP。具体而言,ViT-S-MLP 去掉了 LLM Transformer ,然后在线性层 之间插入了 GELU 激活函数,和 Layer Norm 层。实验结果如图4所示,ViT-S-MLP 由于容量的增加,拥有比 ViT-S 更好的性能,但是改进仅仅为 ViT-S-LLaMA 的一般。因此, LLM Transformer 所带来的改进不一定只是模型容量增加的结果。

图3:图像分类实验结果
图4:模型容量的影响

作者进一步验证微调 LLM Transformer 的那一层 (ViT-S-LLaMa-FT) 是否使效果更好。实验结果发现微调降低了性能,损失函数曲线如下图5所示。尽管微调提高了短 Epoch 训练 (比如 100 Epoch 左右) 下的性能,但是当训练充分时会损害精度。当 LLM 的参数一起训练时,Train 的 Loss 更低但是 Val 的 Loss 更高,说明出现了过拟合。因此,本文保持了 LLM 参数的冻结。

图5:Train 和 Val Loss 的曲线:FT 代表微调 LLM Transformer 的参数

1.6 多模态任务实验结果

作者也尝试了 2D 多模态任务,比如 visual question answering (VQA),使用 VQAv2 数据集。以及 Zero-Shot Image Retrieval,数据集是 Flickr30k。在这两个任务中,模型的输入包括图像和文本。因此,这些任务评估了冻结 LLM Transformer 融合下游任务的多模态视觉语言特征的能力。

作者采用 METER[8]作为基线模型。它首先为图像和文本提取单模态特征,然后融合跨模态特征,最后从跨模态特征解码输出。如图6所示,作者在 METER 的跨模态融合和解码器模块之间 (METER 编码器的末尾) 插入冻结参数的 LLM Transformer。

在实验中,作者使用 CLIP-B/32[9] 作为视觉编码器和 RoBERTa[10] 作为文本编码器初始化,然后联合微调 VQAv2 或 Flickr30k 上的所有模块,除了冻结的 LLM Transformer。

图6:LM4VisualEncoding 在 2D 多模态任务的模型

METER 使用的是2阶段的训练:第1阶段是在一个大规模的多模态数据集上进行预训练整个视觉语言模型 (VLM),这个数据集包括 COCO,Conceptual Captions,SBU Captions 和 Visual Genome。第2阶段是在目标任务 visual question answering (VQA) 或者 image-text retrieval 上进行微调。但是第1阶段的训练是计算密集的,因此作者跳过预训练步骤并直接在目标任务上进行训练。

作者完全遵循了 METER 提供的训练设置和超参数,比如 METER 为每个模块分配不同的学习率,与预训练的图像和文本编码器相比,Cross-modal Fusion 模块和 Decoder 具有更大的学习率,作者还设置了线性层 的学习率为 10 倍,因为它们是随机初始化的。VQAv2 和 Flickr30k 上的每次训练持续 10 个 Epoch,在 A100 GPU 上训练大约1天。

如图7所示,两个 2D 多模态任务都使用 LLaMa Transformer 实现了显著的增强,包括 VQAv2 上的问答质量提高和 Flickr30k 上的检索召回率。这一证据支持使用冻结的 LLM Transformer 来编码多模态特征的潜力。

图7:2D 多模态任务实验结果

1.7 消融实验:其他的 LLM

作者发现 LLM Transformer 显着影响视觉表征学习,具体而言,作者尝试了 LLAMA-7B 和 OPT 放在 ViT-S 上,训练 Epoch 数都是100。实验结果如下图8所示,使用第几层会显著地影响性能,以上结果也证明了本文方法适用于多种 LLM 类型,使用 LLM 的最后一层都会提升性能。

图8:其他的 LLM 消融实验

1.8 消融实验:更大的 LLM

作者使用 OPT 来分析 LLM Transformer 的规模的影响,本节实验将 OPT-{125M, 350M, 1.3B, 2.7B, 6.7B} 的最后一层合并到 ViT-S 中进行图像分类。训练 100 个 Epoch,并减小学习率训练。实验结果如图9所示,冻结参数的 LLM Transformer 的好处随着 OPT Transformer 容量的增加而增加。添加的 Transformer 仅在足够大 (1.3B、2.7B、6.7B) 的情况下才可以提升性能,在尺寸较小 (125M、350M) 时会损害精度。

图9:更大的 LLM 的消融实验

1.9 添加 LLM 有效的原因猜想:信息过滤假设

要解释冻结参数的预训练的 LLM Transformer 有利于视觉任务的原因,作者的假设可以表述为:

信息过滤假设 (Information filtering hypothesis):预训练的 LLM Transformer 函数是一个 "滤波器 (filter)",它区分信息量大的 token,并通过在特征激活中 "放大幅度或频率" 的形式放大它们的贡献。

作者对 ViT 的输出 token 进行了可视化,如下图 10(a) 所示,不同的层显示出了对幅度或频率的不同偏好。可以观察到, token 的激活值在添加了 LLM Transformer 之后可以更好地捕捉目标对象的区域,尤其是 的幅值特征和 的相位特征。

图10:(a) ViT 的特征大小和频率的特激活:不同的层显示出了对幅度或频率的不同偏好。(b) CLS token 和视觉 token 之间的注意力分数

与特征激活相比,作者研究了最后一个 Transformer Block 中的 CLS token 和视觉 token 之间的注意力分数 (Attention Score):对于 ViT 模型,是最后一个 ViT Block 。对于 ViT-LLaMa 模型,是最后一个 LLM Block 。有监督训练得到的 ViT 模型通常有比较嘈杂的注意力分数,无监督训练得到的 ViT 模型 (比如 DINO) 才会得到比较干净的类似于分割出来的特征样式。可以看到 ViT-LLaMA 也有一些类似于分割的特征样式,但是也不可避免地受到了噪声的影响。

作者对于以上现象给出了简单的推导:从下面的 CLS token 的计算公式开始

其中, 分别是 LLM Transformer 的 Attention head 和 FFN 层, 是第2个线性层, 是视觉 token。作者进一步将视觉 token 分成有信息量的 token 和无信息量的 token 。上式就变为了:

进一步变成了:

对于有信息量的 token , LLM Transformer 增大了其激活值,以获得更好的表征。

作者又通过下面的实验证明以上发现:首先使用 ImageNet-S 数据集,使用它 ground truth 的语义分割掩码来代替 "信息区域"。作者首先根据特征中激活值比较大的部分生成 pseudo-mask,再对比生成的 pseudo-mask 与 GT 的 segmentation mask 之间的 mIoU 关系。

图11:ViT-LLaMA 的 pseudo mask 与 GT 的 segmentation mask 有更高的 mIoU 值

实验结果如上图11所示,相比于 ViT 模型,ViT-LLaMA 的 pseudo mask 与 GT 的 segmentation mask 有更高的 mloU 值,说明了使用冻结参数的 LLM Transformer 带来的优势。而且也可以发现 的 mlou 较大,说明了使用本文方法训练 ViT 有利于早期阶段的特征。

参考

1.LLaMA: Open and Efficient Foundation Language Models

2.Opt: Open pre-trained transformer language models

3.Grounding Language Models to Images for Multimodal Inputs and Outputs

4.Flamingo: a Visual Language Model for Few-Shot Learning

5.Blip: Bootstrapping language-image pretraining for unified vision-language understanding and generation

6.Blip-2: Bootstrapping language-image pre-training with frozen image encoders and large language models

7.VisionLLM: Large Language Model is also an Open-Ended Decoder for Vision-Centric Tasks

8.An empirical study of training end-to-end vision-and-language transformers

9.Learning transferable visual models from natural language supervision

10.RoBERTa: A Robustly Optimized BERT Pretraining Approach

公众号后台回复“数据集”获取100+深度学习各方向资源整理

极市干货

技术专栏:多模态大模型超详细解读专栏搞懂Tranformer系列ICCV2023论文解读极市直播
极视角动态欢迎高校师生申报极视角2023年教育部产学合作协同育人项目新视野+智慧脑,「无人机+AI」成为道路智能巡检好帮手!
技术综述:四万字详解Neural ODE:用神经网络去刻画非离散的状态变化transformer的细节到底是怎么样的?Transformer 连环18问!


极市平台签约作者#


科技猛兽

知乎:科技猛兽


清华大学自动化系19级硕士

研究领域:AI边缘计算 (Efficient AI with Tiny Resource):专注模型压缩,搜索,量化,加速,加法网络,以及它们与其他任务的结合,更好地服务于端侧设备。


作品精选

搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了
用Pytorch轻松实现28个视觉Transformer,开源库 timm 了解一下!(附代码解读)
轻量高效!清华智能计算实验室开源基于PyTorch的视频 (图片) 去模糊框架SimDeblur



投稿方式:
添加小编微信Fengcall(微信号:fengcall19),备注:姓名-投稿
△长按添加极市平台小编

点击阅读原文进入CV社区

收获更多技术干货

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读197
粉丝0
内容8.2k