0. 背景

不论是在Language、Vision还是在多模态领域,Big Convergence是大势所趋。

也就是在超大的数据集上做大规模的预训练,一旦模型训练好之后,它的特征就已经非常好了,可以直接Transfer到下游任务上去,尤其是当模型足够大、数据足够多的时候,有可能预训练出来一个有通用性能的Foundation Model,这个Foundation Model能解决各种的模态或者各种下游任务,非常的强大。

相比之前的多模态模型如CLIP和CoCa,BEiT-v3 的关键词就是:Big Convergence大一统,即:将图像看成一种“语言”,用一个模型架构和一个训练任务,打造出多模态领域的集大成者,统一多模态学习中的模型结构、预训练任务以及模型规模

BEiT-v3 使用Transformer模型统一处理视觉和文本信息,使用Mask Data Modeling的训练策略统一建模视觉和文本信息。

  • BEiT-v3从三个方面实现了大一统:
  • 模型架构 Multiway Transformer
  • 其实就是VLMo中MoME
  • 统一输入形式(将图像看作是一种“语言”),文本English、图像Imaglish、图文对 Parallel Sentences
  • 预训练任务 Mask Data Modeling
  • 输入形式统一之后,也就不需要ITC、ITM、MLM等其他目标函数,可以使用统一的mask “language” modeling 的方式进行训练
  • 模型scaling up(将模型放大)
  • 模型扩大到了ViT-giant的配置,参数量达到了1.9B(vision/language各一半),提升多模态效果

1.模型架构

1.1 架构详解

BEiT-v3采用的是VLMo中使用的MoME(Mixture-of-Modality-Experts),这里改了个名字叫Multiway Transformer.

  BEiT-v3 预训练一个模型,通过模块化的搭积木,就可以灵活处理各种下游任务(每一个训练好的Transformer Block、SA层、FFN都可以随意的拼装和组合)。

输入的数据根据模态的不同选择不同的Expert,比如图片数据就使用Vision FFN,文本数据就使用Language FFN。模型前面的一些层是只有Vision FFN 和Language FFN,到了最后3层为了特征融合会再有 Vision-Language FFN.

  • 图中(a)所示是BEiT-v3模型转换为视觉编码器,适配任务:图像分类,目标检测,语义分割;

  • 图中(b)所示是BEiT-v3模型转换为文本编码器;

  • 图中©所示是单塔结构,联合编码图像-文本对以进行深度交互的融合编码器,适配任务:多模态理解任务;

  • 图中(d)所示是双塔结构,对每个模态进行单独编码以求高效的图文检索,适配任务:图文检索任务;

  • 图中(e)所示是单塔结构,用于图像到文本生成任务,适配任务:多模态生成任务

1.2 Multiway Transformer详解

1.2.1 为什么需要 Multiway Transformer?

在 BEIT-3 之前,多模态模型面临一个根本性矛盾:

模型类型 优势 劣势
双编码器 (Dual Encoder)(如 CLIP) 推理快,内存小,适合检索。 图像和文本在训练后期才对齐,缺乏深层交互,不适合 VQA 这类需要精细推理的任务。
融合编码器 (Fusion Encoder)(如 ViLT, ALBEF) 图像和文本 token 在每一层都深度交互,适合复杂理解 计算慢,内存消耗大,不适合任何需要高效推理的场景。
编码器-解码器 (Encoder-Decoder)(如 OSCAR, CoCa) 适合生成任务(如 Captioning)。 架构复杂,不灵活,解码器对于纯分类任务是冗余的。

根本问题:这些架构是互斥的。你无法用同一个模型,既高效地做检索,又深度地做问答。

Multiway Transformer 的设计目标就是:创建一个单一的、可微调的骨干网络,它既能作为双编码器高效运行,又能作为融合编码器深度交互,还能作为序列生成器生成文本。

1.2.2 Multiway Transformer Block 内部原理

Multiway Transformer 的基本单元叫 Multiway Transformer Block,它被堆叠了 40 层,形成完整的骨干。这个 block 的结构可以拆解为以下两个核心组件:

1. 共享的多头自注意力(Shared Multi-Head Self-Attention, MSA)
  1. 共享的多头自注意力(Shared Multi-Head Self-Attention, MSA)
  • “共享”的含义:所有输入序列的 token(无论是图像 patch 还是文本 word),都通过同一个多头自注意力模块进行处理。
  • 计算过程:标准的 Attention(Q, K, V)。
  • Q (Query), K (Key), V (Value) 向量都由输入 embeddings 通过线性层得到。
  • 计算所有 token 对之间的注意力权重: 。
  • 关键作用:
  • 跨模态对齐(Cross-modal Alignment):这是实现图像和文本“对话”的物理基础。例如,文本中的单词 “cat” 会通过高注意力分数“看到”图像中“猫”的区域。共享的MSA允许这种跨模态的信息流动。
  • 统一交互空间:为所有模态提供一个共用的交互平台,避免了为不同模态设计独立的注意力机制。
2. 模态专家前馈网络(Modality-Specific Feed-Forward Networks / Experts)

这是 “多路(Multiway)” 的具体体现。与共享的 MSA 不同,FFN 层是按模态划分的。 BEIT-3 定义了三个池中的 三种专家:

专家类型 处理的 Token 类型 使用层
视觉专家 (V-FFN) 图像的 patch embeddings 所有 40 层
语言专家 (L-FFN) 文本的 word embeddings 所有 40 层
视觉-语言专家 (VL-FFN) 混合模态的 token (在图文任务中) 仅顶层 3 层

每个专家本质上是一个标准的两层前馈网络(MLP):

但它们的参数矩阵 是完全独立的,不会跨模态共享。

3. 路由机制(Modality Routing)

这是将“共享”与“分离”结合起来的关键机制。它可以看作是一个“智能开关”。 在每个 Transformer Block 内:

  1. 输入的 token 序列进入 共享 MSA 层进行处理,所有 token 可以互相“看到”。
  2. MSA 的输出是一系列经过注意力加权的新表示。
  3. 核心步骤:系统为每个 token 贴上一个“模态标签”(是“图”还是“文”)。
  4. 根据这个标签,MSA 的输出被路由(Routed)到对应的 FFN 专家中:
  • 来自图像块的 token → 送入 V-FFN 进行计算。
  • 来自文本词元的 token → 送入 L-FFN 进行计算。
  1. (顶层特殊处理)在第 38、39、40 层,拼接后的图文对中的 token 在经过 MSA 后,还会被额外路由到 VL-FFN,进行更深层次的模态融合。

1.3 使用场景

Multiway Transformer 的神奇之处在于,它自身的结构是固定的,但它的行为会随着输入数据的组合方式而动态变化。这使得 BEIT-3 可以在不修改任何代码的情况下,扮演多个角色。

1.3.1. 场景 1:纯视觉输入(如图像分类)

  • 输入:只有图像 patch tokens。
  • 路由:所有 token 都是“图像”模态。
  • 行为:所有的 token 都经过 MSA(计算 patch 间关系),然后全部路由到 V-FFN。
  • 结果:Multiway Transformer 退化成了一个标准的 ViT(Vision Transformer)。L-FFN 专家完全不激活。

1.3.2. 场景 2:纯文本输入

  • 输入:只有文本 word tokens。
  • 路由:所有 token 都是“文本”模态。
  • 行为:经过 MSA(计算词间依赖),然后全部路由到 L-FFN。
  • 结果:退化成了一个 BERT-style 文本 Transformer。V-FFN 专家完全不激活。

1.3.3. 场景 3:图文对拼接输入(如VQA - 融合编码器模式)

  • 输入: [Image_patch_1, …, Image_patch_N, Text_word_1, …, Text_word_M] 的一个拼接长序列。
  • MSA:共享注意力起关键作用。每个图像 patch token 和每个文本 word token 都会计算彼此之间的注意力。
  • 图像 patch A 会“看”到所有文本词,尤其是与其相关的词。
  • 文本词 “ball” 会“看”到图像中可能有球的几个 patch。
  • 路由:
  • 图像 patch tokens → V-FFN
  • 文本 word tokens → L-FFN
  • 顶层特殊处理:在最后三层,这些混合 token 可能还会通过 VL-FFN 进行更深入的跨模态融合。
  • 结果:实现了深度的跨模态理解,适合 VQA、NLVR2 等任务。

1.3.4. 场景 4:图像和文本独立处理(如图像-文本检索 - 双编码器模式)

  • 输入:图像和文本不拼接。它们分别独立地送入同一个 Multiway Transformer 网络。
  • 图像路径:
  • 输入纯图像 patches。
  • 仅激活 V-FFN 专家。
  • 文本路径:
  • 输入纯文本 words。
  • 仅激活 L-FFN 专家。
  • 结果:网络分别输出一个图像嵌入向量和一个文本嵌入向量。它们在整个过程中从未“见面”,但它们的表示空间是通过预训练(掩码建模)对齐的。这实现了与 CLIP 完全相同的双编码器架构,但使用的是同一个模型权重。

2. 预训练任务

文本中以BERT为代表的MLM+视觉中以BEiT为代表的MIM,这两种Mask Data Modeling(MDM)预训练方式已经 取得了成功。 BEiT-v3,将MDM扩展到多模态领域,进一步将所有多模态数据都看作是一种“语言”,以此统一预训练:

  • 文本 English
  • 图像 Imaglish(Image+English造出来的词,Sequence of Token)
  • 图文对 Parallel Sentences(双语句对,句子1后面跟了个句子2)

MDM的具体方法:

  • 文本数据:由SentencePiece tokenizer进行token化
  • 图像数据:由BEiT-v2的tokenizer进行token化,变成Sequence of Token
  • 具体mask方法:还是原来的MLM、MIM中的mask方法,从单模态文本中随机mask掉15%的文本,从图片-文本对中随机mask掉50%的文本,在mask图像时采用block-wise掩码策略mask掉40%。
  • 预训练目标:还是一样做完形填空,恢复掉被遮住的图像或文本。

4. 总结

BEiT-v3其实从方法上来说就是之前BEiT、BEiT-v2、VL-BEiT、VLMo等一系列的工作的一个集合体,本身没有提出新的内容,主要就是把它做大做强,展示了一个Unified Framework能达到的性能。

到这里时,其实已经呈现了一个趋势,多模态模型的规模在不断扩大,训练用的数据规模也在扩大,虽然一定程度上对性能有利的,但是端到端训练的成本也会随之增加。

此时也就会有另外一种思考,有没有什么高效的对齐方法,直接利用已经预训练好的视觉、文本模型就能快速对齐,完成对模态任务。BLIP2就进行了验证。

5. 对比

如何学习大模型 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%免费

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐