大语言模型里的Transformer还可以这么用?

宣传一下最近的新工作,个人感觉是读博以来做得最难最累但是成就感也最大的一个项目。它起源自一个很简单的问题——自 LLM 诞生以来,我们见到了很多把 LLM 接到 Vision Backbone 后面的算法,那么有两个自然的问题:

  • LLM 的 Transformer 是否可以直接处理视觉 Token?
  • LLM 的 Transformer 是否可以提升处理视觉 Token 的 Performance?

我们的工作回答了这两个问题(答案是 Yes)而且解释了其中的原因:在语言模型中 Pretrain 的 Transformer 可以用作视觉任务的 Encoder Layer。代码已经开源,欢迎大家点赞关注我们的 Paper 和 GitHub。

图片

论文题目:

Frozen Transformers in Language Models Are Effective Visual Encoder Layers

论文链接:

https://arxiv.org/abs/2310.12973

代码链接:

https://github.com/ziqipang/LM4VisualEncoding

图片

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,但是正常训练其它部分。

图片

▲ 以 ViT 为例,我们的模型结构非常简单,只需要额外两个线性层

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

图片

▲ ImageNet 图像分类

图片

▲ 2D/3D 语言多模态任务

图片

▲ 自动驾驶,轨迹预测

图片

为什么预训练的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

图片

2.2 在其它任务的也可以筛选有用的Token

类似的 “information filtering” 现象不只在 ViT 和图像分类上有,在其它任务上,LLM Transformer 也有效地提升了对目标任务最有用的 Token。这里我们举两个例子:

  • 在动作识别中,加了 LLaMA 的 Transformer 可以更好地集中到前景的手和物体(low threshold),也更多地筛选出了手和物体有实际动作的帧(high threshold)。

    图片

  • 在 3D VQA 中,我们可视化了点云 Token 的大小。可以看到,那些真正和预测目标、或者问题相关的点得到了更大的关注:比如在左图中,“behind me” 的点云显著得到了更大的 Activation(颜色更亮了)。

    图片

图片

一点Ablation Study

那么我们观察到的现象,即 LLM 的 Transformer 可以提升 Visual Encoding,是否和不同的层、LLM 有关呢?

  • 多种 LLM Transformer 都可以提升 Visual Encoding。 例如用 LLaMA 和 OPT 的不同 Transformer 层都会有提升,而且不同层之间也会体现不同的规律。

    图片

  • 只有足够大的 LLM 才有提升 Visual Encoding 的效果。 例如只有足够大的OPT才会提升 Visual Encoding 的效果。

    图片

图片

后记

最后写一些没有写在 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 的观察。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值