大语言模型里的Transformer还可以这么用?
前言 自 LLM 诞生以来,我们见到了很多把 LLM 接到 Vision Backbone 后面的算法,那么有两个自然的问题:(1)LLM 的 Transformer 是否可以直接处理视觉 Token?(2)LLM 的 Transformer 是否可以提升处理视觉 Token 的 Performance?我们的工作回答了这两个问题(答案是 Yes)而且解释了其中的原因:在语言模型中 Pretrain 的 Transformer 可以用作视觉任务的 Encoder Layer,代码已经开源。
本文转载自PaperWeekly
作者:庞子奇
单位:UIUC
仅用于学术分享,若侵权请联系删除
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【CV技术指南】CV全栈指导班、基础入门班、论文指导班 全面上线!!
![](https://pic2.zhimg.com/80/v2-903e8e9b2ca61ead63483e641491ae55_1440w.webp)
论文题目:
Frozen Transformers in Language Models Are Effective Visual Encoder Layers
论文链接:
https://arxiv.org/abs/2310.12973
代码链接:
https://github.com/ziqipang/LM4VisualEncoding
![](https://pic4.zhimg.com/80/v2-3ed52510189b245e6a83be61108ccc7f_1440w.webp)
LLM的Transformer可以处理视觉Token吗?
在 LLM 的加持下,很多 Vision-language Model 会直接把来自图像的 Embedding 输入给 LLM,并让 LLM 作为 Decoder 输出文字、类别、检测框等。但是在这些模型中,LLM 并不会直接处理来自图像的 Token,它们更多地是(1)处理提前设计好的语义 Token,例如 CLIP 中的 cls token;(2)处理被压缩过的 Token,例如 BLIP 里面经过 information bottleneck 的 token。
那么 LLM 是否可以直接作用于其它模态的 Token 呢,即 LLM 是否可以用作 Encoder,而不只是 Decoder 呢?
1.1 实验方法
验证这个事情非常简单,以 ViT 为例,我们只需要:
- 取出某一个 LLM 的 Transformer Layer(例如 LLaMA 的最后一个 Transformer),请注意这里只需要一个 Transformer Block 而不是整个 LLM;
- 把它加入到最后一个 Encoder Block 后面,只需要额外两个 Linear Layers 把Feature Dimensions 拉齐;
- 冻结 LLM 的 Transformer,但是正常训练其它部分。
![](https://pic4.zhimg.com/80/v2-c68669e6d2c23bcb3063af39013ce63f_1440w.webp)
1.2 和现在的Vision-language Model的异同
- 是否需要 Pretraining?我们的方法重在提升 Encoding 能力,所以我们既支持 Train-from-scratch,也支持 Finetune,而不是必须要依赖预训练好的 Backbones。
- 是否需要 Language?虽然我们用的是 LLM 的 Transformer,但是我们的 Framework 独立于使用 Language(比如 Prompts 或者 Alignment),而不是像 Vision-language Models 一样必须要 Language。
- 可以处理多少模态?我们的 Framework 可以泛化到多个模态和任务,而不是只能处理图像。
- Encoder 和 Decoder有什么区别?Encoder 需要直接和 Visual tokens 打交道,比如 H×W 个图像 token 的信息做 Cross-attention 去改变 cls token。
- 现在已经有这么多 Vision-language Models 了,你们的研究有什么用?首先,我们的研究和现在的 vision-language Models 不矛盾而且互相补充——现在 vision-language model 研究如何把视觉 embedding 输入给 LLM,而我们的研究聚焦如何提供更好的 embedding。
1.3 一个预训练的LLaMA Transformer在许多不同模态、任务的Encoder上都有用
在论文中,我们发现把 LLM 的 Transformer 用作视觉 Encoder 可以泛化到极其多样的场景。
- 2D 语义:图像分类(image classification)
- 点云:点云分类(point cloud classification)
- 视频:动作识别(action recognition)
- 无语义,回归任务:轨迹预测(motion forecasting)
- 2D 多模态:2D VQA 和图像搜索(2D VQA and Retrieval)
- 3D 多模态:3D VQA
在这些任务中,我们的模型不只要处理图像上像 patch 一样的 Token,还要处理
- 点云中无规则的 3D 点
- 视频中形状 T×H×W 的长方体形状的 token
- 轨迹预测里面来自 Agent 和高精地图的 Polylines
- 多模态任务中混合了图像和语言的 Token
![](https://pic3.zhimg.com/80/v2-057409ec529bcd40756b16a5ae30fd9a_1440w.webp)
![](https://pic2.zhimg.com/80/v2-fd1bd43bbda1dfff9b17ac750e9b9981_1440w.webp)
![](https://pic4.zhimg.com/80/v2-f12f1ea2028b83fc87a2eee64b9d622f_1440w.webp)
![](https://pic1.zhimg.com/80/v2-7489ea407a05ae6daaedc047dc6e24d0_1440w.webp)
为什么预训练的LLM Transformer有用:Information Filtering Hypothesis
虽然我们在许多任务和模态上都看到了性能的提升,但是如何解释这一点呢?我们在研究的过程中感觉如果把加了 LLM 的提升都归结于 “LLM 包含了可以泛化的知识”,其实比较偷懒而且不一定正确。所以我们研究了 Token 在加 LLM transformer 前后的变化提出了 Information Filtering 假设:
LLM Transformer 模块能够在训练的过程中筛选和目标任务相关的 Visual Tokens 并且放大他们的贡献。
这个结论是我们 paper 里面可能最重要的发现。
2.1 在ViT上的观察——LLM Transformer筛选出了前景
为什么可以这么说呢?我们看下图中我们对 ViT 的 Token Activation 的可视化:为了体现不同 Token 的贡献,我们从本身 Activation 的大小(L2-norm)和频率大小进行了可视化(做傅里叶变换后算角度的 L2-norm)。
可以看到:在有了 LLM Transformer 之后,ViT 的 Activation 能更干净地集中到前景区域,而这个性质只有在无监督学习的 ViT 中(e.g. DINO)中可以见到,在监督学习的 ViT 中很少见。
另一方面,我们对比了有/没有 LLM transformer 对于 Attention weight 的影响:普通的 ViT 的 Attention Weight 几乎是完全 Noisy 的(和 DINO 的观察吻合),在加了 LLMTransformer 之后(1)有极少的 Attention Head 体现出了干净的前景分割的样子,但是(2)它们的数量较少不足以解释 Token Activation 更显著地好。
因此,我们观察到的提升来自有用的 Feature 被放大了,这也是为什么我们称之为 information filtering hypothesis。
![](https://pic3.zhimg.com/80/v2-348e046e02fcffa4a53c0a24928d320e_1440w.webp)
2.2 在其它任务的也可以筛选有用的Token
类似的 “information filtering” 现象不只在 ViT 和图像分类上有,在其它任务上,LLM Transformer 也有效地提升了对目标任务最有用的 Token。这里我们举两个例子:
- 在动作识别中,加了 LLaMA 的 Transformer 可以更好地集中到前景的手和物体(low threshold),也更多地筛选出了手和物体有实际动作的帧(high threshold)。
![](https://pic4.zhimg.com/80/v2-58cf032981774a06d679325e2d121dcb_1440w.webp)
- 在 3D VQA 中,我们可视化了点云 Token 的大小。可以看到,那些真正和预测目标、或者问题相关的点得到了更大的关注:比如在左图中,“behind me” 的点云显著得到了更大的 Activation(颜色更亮了)。
![](https://pic4.zhimg.com/80/v2-4c9f1dd2339e55d80c65859503c63d03_1440w.webp)
![](https://pic2.zhimg.com/80/v2-c8b2c613614ff9a1f7c33484b7e05981_1440w.webp)
一点Ablation Study
那么我们观察到的现象,即 LLM 的 Transformer 可以提升 Visual Encoding,是否和不同的层、LLM 有关呢?
- 多种 LLM Transformer 都可以提升 Visual Encoding。例如用 LLaMA 和 OPT 的不同 Transformer 层都会有提升,而且不同层之间也会体现不同的规律。
![](https://pic3.zhimg.com/80/v2-157ed24f2078e0f6121eaab24e05491e_1440w.webp)
- 只有足够大的 LLM 才有提升 Visual Encoding 的效果。例如只有足够大的OPT才会提升 Visual Encoding 的效果。
![](https://pic3.zhimg.com/80/v2-81a017a608fcca8773a63fb7bc846286_1440w.webp)
![](https://pic4.zhimg.com/80/v2-15094330ffaca98fa86ae44a4fe88677_1440w.webp)
后记
最后写一些没有写在 Paper 里面的自己的感受和思考:
在论文中最让我感到兴奋的不是结合了 LLM 在很多 Task 上都有提升,而是在我们 Information filtering 假设的分析中看到了质变:神经网络能够更好地学习到那些和任务最相关的 Token。
那么为什么会有这样的效果?我猜测是 LLM 的 Transformer 的参数矩阵,例如 FFN 的矩阵,有一些很好的性质,例如在某些情况下是一个高通滤波器。我们可以从反面思考,如果一个参数矩阵是随机初始化(低通滤波器),或者干脆就是一个单位矩阵,那么必然不可能去筛选出来有用的 Token,并且放大他们的贡献。
在尝试解释这个现象的时候,我们发现用 transfer learning 的工具来分析会非常有难度,因为我们不能保证 vision 和 language 确实在一层 transformer 之后就 align 了。
最终,一个比较合理的直觉是受到了我本科同学许逸伦 “A Theory of Usable Information Under Computational Constraints” 这篇 Paper 的启发:我们可以把 LLM Transformer 看作一种 Decipher,它提升了 Feature 的有用性,使得一层 MLP 或者 Decoder 的有限计算资源可以把 Feature 映射到和真实结果 Mutual Information 更高的空间中。事实上,这也契合我们 Information filtering 的观察。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【技术文档】《从零搭建pytorch模型教程》122页PDF下载
QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。
其它文章
LSKA注意力 | 重新思考和设计大卷积核注意力,性能优于ConvNeXt、SWin、RepLKNet以及VAN
CVPR 2023 | TinyMIM:微软亚洲研究院用知识蒸馏改进小型ViT
ICCV2023|涨点神器!目标检测蒸馏学习新方法,浙大、海康威视等提出
ICCV 2023 Oral | 突破性图像融合与分割研究:全时多模态基准与多交互特征学习
HDRUNet | 深圳先进院董超团队提出带降噪与反量化功能的单帧HDR重建算法
南科大提出ORCTrack | 解决DeepSORT等跟踪方法的遮挡问题,即插即用真的很香
1800亿参数,世界顶级开源大模型Falcon官宣!碾压LLaMA 2,性能直逼GPT-4
SAM-Med2D:打破自然图像与医学图像的领域鸿沟,医疗版 SAM 开源了!
GhostSR|针对图像超分的特征冗余,华为诺亚&北大联合提出GhostSR
Meta推出像素级动作追踪模型,简易版在线可玩 | GitHub 1.4K星
CSUNet | 完美缝合Transformer和CNN,性能达到UNet家族的巅峰!