Skip to content

Transformer 架构详解

版本:v1.1

最后更新:2026-07-06

说明:本文默认“transform 架构”指的是 Transformer 架构。

适用对象:希望从原理、数学直觉、工程实现和现代大模型演进角度系统理解 Transformer 的学习者。

1. Transformer 是什么

Transformer 是一种以 Attention 为核心的神经网络架构,最早由论文 Attention Is All You Need 提出。它最重要的变化是:

  • 不再依赖 RNN 的逐步递归来处理序列。
  • 不再主要依赖 CNN 的局部卷积来扩大感受野。
  • 通过 self-attention 让序列中任意两个位置可以直接交互。

一句话理解:

  • Transformer 用注意力机制让每个 token 根据上下文重新理解自己。

今天的大语言模型、文本编码模型、视觉 Transformer、多模态模型,大多都可以看成 Transformer 家族的不同变体。


2. Transformer 要解决什么问题

在 Transformer 之前,序列建模主要依赖 RNN / LSTM / GRU 和 CNN 序列模型。

2.1 RNN 的问题

RNN 按时间步处理序列:

text
x1 -> h1 -> h2 -> h3 -> ... -> hn

它的优点是天然适合序列,但缺点也明显:

  • 训练时难以并行。
  • 长距离依赖要经过很多步传递。
  • 梯度容易衰减或不稳定。
  • 序列很长时训练效率低。

2.2 CNN 序列模型的问题

CNN 可以并行计算,但它主要通过局部窗口看上下文。

如果想让两个距离很远的 token 互相影响,通常需要:

  • 更大的卷积核
  • 更多层堆叠
  • dilation 等技巧

这能解决一部分问题,但全局关系建模仍然不够直接。

2.3 Transformer 的切入点

Transformer 的思路更直接:

  • 每个 token 都可以直接看见其他 token。
  • 模型自己学习应该关注哪些 token。
  • 训练时可以并行处理整个序列。

所以它的核心价值是:

  • 并行训练效率高。
  • 长距离依赖路径短。
  • 结构统一,容易扩展到大模型。

3. 原始 Transformer 的整体结构

原始论文中的 Transformer 是 Encoder-Decoder 架构,主要用于机器翻译这类序列到序列任务。

整体流程:

text
Source Tokens
 -> Source Embedding
 -> Positional Encoding
 -> Encoder Stack
 -> Encoder Memory

Target Tokens
 -> Target Embedding
 -> Positional Encoding
 -> Decoder Stack
 -> Linear Projection
 -> Softmax
 -> Next Token Probability

原始论文中的基础配置包括:

参数
Encoder 层数6
Decoder 层数6
d_model512
attention heads8
d_ff2048
dropout0.1

这些数值不是 Transformer 的硬性要求,而是论文实验中的基准配置。现代大模型会把层数、隐藏维度、head 数、上下文长度和参数量扩展很多倍。


4. Transformer 的数据形状

理解 Transformer 时,最好先掌握张量形状。

假设:

  • batch size = B
  • sequence length = T
  • hidden size = D

输入 token 经过 embedding 后,通常得到:

text
X: [B, T, D]

每一层 Transformer block 都会接收这个形状,并输出同样形状:

text
TransformerBlock(X) -> [B, T, D]

这也是 Transformer 易堆叠的原因:每层输入输出接口一致。


5. Token Embedding

模型不能直接处理文字,需要先把文本切成 token,再把 token 映射成向量。

例如:

text
"I love AI"
 -> ["I", "love", "AI"]
 -> [token_id_1, token_id_2, token_id_3]
 -> vectors

如果 d_model = 512,那么每个 token 会变成 512 维向量。

text
Token IDs: [B, T]
Embedding: [B, T, D]

Embedding 层可以理解成一个查表矩阵:

text
Embedding Table: [vocab_size, D]

每个 token id 对应表中的一行向量。


6. 为什么需要位置编码

Self-attention 本身不包含顺序信息。

如果只看 token embedding,模型看到的是一组向量,而不是天然有顺序的句子。

例如:

text
小明 喜欢 小红
小红 喜欢 小明

这两句话的 token 类似,但顺序变化会导致含义变化。

所以 Transformer 必须引入位置编码,让模型知道:

  • token 在哪里
  • token 之间距离多远
  • 谁在前,谁在后

7. 原始正弦位置编码

原始 Transformer 使用固定的正弦和余弦位置编码。

公式:

$$ PE(pos, 2i) = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right) $$

$$ PE(pos, 2i+1) = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right) $$

其中:

  • pos 是 token 位置。
  • i 是维度索引。
  • 偶数维使用 sin。
  • 奇数维使用 cos。

直觉上,不同维度对应不同频率的位置波形。低频维度表达粗粒度位置,高频维度表达细粒度位置。

原始论文选择这种方式,是因为它不需要学习参数,也有机会泛化到训练长度之外的位置。


8. 现代位置编码

现代大模型常见的位置方案已经不只正弦编码。

方法核心思路常见用途
Learned Position Embedding每个位置有可学习向量BERT、GPT 早期模型
Relative Position Encoding建模相对距离长文本、结构化序列
RoPE对 Q/K 做旋转位置编码很多现代 decoder-only LLM
ALiBi给注意力分数加距离偏置长上下文外推

8.1 RoPE 的直觉

RoPE 来自 RoFormer,它不是简单把位置向量加到 token embedding 上,而是把位置信息注入到 Query 和 Key 的旋转变换里。

它的直觉是:

  • token 的表示会随着位置发生旋转。
  • Query 和 Key 的点积自然包含相对位置信息。

这使它很适合自回归模型和长上下文扩展。

8.2 ALiBi 的直觉

ALiBi 不显式学习位置 embedding,而是在注意力分数中加入和距离相关的线性偏置。

距离越远,偏置越不利于关注。

它的目标是让模型在训练上下文长度之外也能更自然地外推。


9. Self-Attention 的核心问题

Self-attention 要回答一个问题:

  • 当前 token 在更新自己的表示时,应该从其他 token 那里拿多少信息?

例如句子:

text
小明把书放进包里,因为它很重。

这里的“它”到底指什么?模型需要关注前面的“书”或“包”,并根据上下文判断。

Self-attention 让每个 token 都可以对其他 token 分配权重。


10. Q、K、V 是什么

给定输入:

text
X: [B, T, D]

模型通过三个线性层得到:

text
Q = XW_Q
K = XW_K
V = XW_V

直觉理解:

名称含义
Query我现在想找什么信息
Key我能被别人以什么方式匹配到
Value如果别人关注我,实际拿走什么信息

更口语一点:

  • Query 像问题。
  • Key 像索引标签。
  • Value 像真正内容。

注意:Q、K、V 都来自同一个输入 X 时,叫 self-attention。若 Query 来自 decoder,Key/Value 来自 encoder,就叫 cross-attention。


11. Scaled Dot-Product Attention

原始论文中的注意力公式是:

$$ Attention(Q, K, V) = softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$

拆成四步:

11.1 计算匹配分数

$$ QK^T $$

每个 query 和每个 key 做点积,得到注意力分数。

如果忽略 batch 和 head,形状是:

text
Q: [T, d_k]
K: [T, d_k]
QK^T: [T, T]

[T, T] 就是注意力矩阵。

第 i 行表示第 i 个 token 对所有 token 的关注分数。

11.2 除以 sqrt(d_k)

$$ \frac{QK^T}{\sqrt{d_k}} $$

当维度很大时,点积值容易变大,softmax 后可能过于尖锐,导致训练不稳定。缩放项让分数落在更合适的范围。

11.3 softmax

softmax 把分数变成权重:

text
[0.1, 0.7, 0.2]

这些权重表示当前 token 分别从其他 token 拿多少信息。

11.4 加权求和 Value

最后乘以 V:

$$ softmax(score)V $$

得到每个 token 的新表示。


12. Attention 矩阵的含义

注意力矩阵是 Transformer 里最有代表性的中间结构。

text
          key_1 key_2 key_3 key_4
query_1   0.1   0.6   0.2   0.1
query_2   0.3   0.2   0.4   0.1
query_3   0.0   0.1   0.8   0.1
query_4   0.2   0.2   0.1   0.5

每一行通常归一化为 1。

它表达的是:

  • 每个位置在更新自己时,从其他位置读取多少信息。

但要小心:注意力权重不等于完整解释。它能提供一些可视化直觉,但不能简单地把最大权重解释成模型“原因”。


13. Attention Mask

Attention mask 用来控制哪些位置可以被看见。

13.1 Padding Mask

批量训练时,不同样本长度不同,会补 padding。

padding token 不应该参与注意力,所以要 mask 掉。

13.2 Causal Mask

自回归生成时,模型不能看未来 token。

例如预测第 3 个 token 时,只能看第 1、2 个 token。

Causal mask 的形状类似:

text
1 0 0 0
1 1 0 0
1 1 1 0
1 1 1 1

其中 1 表示可见,0 表示不可见。

Decoder-only LLM 的生成能力就建立在 causal mask 上。

13.3 自定义 Mask

有些模型还会使用:

  • sliding window mask
  • block sparse mask
  • prefix mask
  • retrieval mask

这些 mask 会改变模型能看见的上下文范围,从而影响能力和成本。


14. Multi-Head Attention

单个注意力头只能从一个子空间看关系。多头注意力让模型并行学习多种关系。

公式:

$$ head_i = Attention(QW_i^Q, KW_i^K, VW_i^V) $$

$$ MultiHead(Q,K,V) = Concat(head_1,...,head_h)W^O $$

如果:

  • D = 512
  • num_heads = 8

常见设置是每个 head 的维度:

text
d_head = 512 / 8 = 64

14.1 多头为什么有用

不同 head 可以关注不同关系:

  • 近邻词搭配
  • 长距离指代
  • 句法关系
  • 分隔符和格式
  • 主题相关 token
  • 工具调用参数

14.2 多头不是越多越好

head 数增加会改变计算、显存、并行方式和单头维度。

如果 head 太多,每个 head 维度太小,也可能影响表达能力。

现代模型还会使用:

  • MHA:标准多头注意力
  • MQA:多 query 共享 K/V
  • GQA:分组 query 共享 K/V

MQA 和 GQA 常用于降低推理时 KV cache 的显存占用。


15. Feed-Forward Network

每个 Transformer block 里除了注意力,还有前馈网络。

原始论文中的 FFN 是:

$$ FFN(x) = max(0, xW_1 + b_1)W_2 + b_2 $$

它是逐位置独立应用的。

也就是说:

  • 注意力负责 token 之间的信息交换。
  • FFN 负责对每个位置的表示做非线性变换。

原始配置中:

text
d_model = 512
d_ff = 2048

FFN 通常会先升维,再降维。

现代模型里常见改进包括:

  • GELU
  • SwiGLU
  • GeGLU
  • gated FFN

这些改进通常能提升表达能力和训练效果。


16. Residual Connection

Transformer 每个子层都有残差连接:

$$ y = x + Sublayer(x) $$

作用:

  • 保留原始信息。
  • 改善梯度传播。
  • 让深层网络更容易训练。
  • 允许模型逐层增量更新表示。

如果没有 residual,深层 Transformer 会更难稳定训练。


17. LayerNorm、Pre-Norm 与 Post-Norm

LayerNorm 来自论文 Layer Normalization,它对一个样本内部的特征维度做归一化,不依赖 batch 统计量。

这很适合序列任务,因为:

  • 序列长度可以变化。
  • batch size 可能受显存影响。
  • 推理时也需要稳定行为。

17.1 Post-Norm

原始 Transformer 更接近:

text
x -> Sublayer -> Add -> LayerNorm

17.2 Pre-Norm

现代深层 Transformer 常见:

text
x -> LayerNorm -> Sublayer -> Add

Pre-Norm 通常更利于深层训练稳定,因为梯度路径更直接。

17.3 RMSNorm

很多现代 LLM 使用 RMSNorm。它比 LayerNorm 更简单,不减均值,只按均方根做缩放,计算更轻。


18. Encoder Block

Encoder 层主要包含:

text
Input
 -> Multi-Head Self-Attention
 -> Add & Norm
 -> Feed-Forward Network
 -> Add & Norm
 -> Output

Encoder 的 self-attention 通常是双向的:

  • 每个 token 可以看见整个输入序列。

因此 encoder 适合理解类任务:

  • 分类
  • 匹配
  • 抽取
  • embedding
  • reranking
  • 语义表示

BERT 就是典型 encoder-only 模型。


19. Decoder Block

原始 Encoder-Decoder Transformer 的 decoder 层包含:

text
Input
 -> Masked Self-Attention
 -> Add & Norm
 -> Cross-Attention
 -> Add & Norm
 -> Feed-Forward Network
 -> Add & Norm
 -> Output

19.1 Masked Self-Attention

让 decoder 只能看当前位置之前的 token。

19.2 Cross-Attention

Query 来自 decoder,Key/Value 来自 encoder。

它让 decoder 在生成目标序列时读取源序列信息。

19.3 Decoder-Only 的简化

GPT 类模型通常没有 encoder,也没有 encoder-decoder cross-attention。

它们主要是:

text
Token Embedding
 -> N 层 Causal Transformer Block
 -> LM Head
 -> Next Token

这种结构特别适合 next-token prediction。


20. Encoder-Only、Decoder-Only、Encoder-Decoder

类型代表模型注意力方式适合任务
Encoder-OnlyBERT双向 self-attention理解、分类、抽取、embedding
Decoder-OnlyGPT 系列causal self-attention生成、对话、代码、Agent
Encoder-Decoder原始 Transformer、T5encoder 双向 + decoder causal + cross-attention翻译、摘要、改写、seq2seq

20.1 BERT 为什么适合理解

BERT 使用双向上下文,能同时看左边和右边。

它适合:

  • 判断句子关系
  • 做分类
  • 抽取实体
  • 做文本表示

20.2 GPT 为什么适合生成

GPT 类模型使用 causal mask,只预测下一个 token。

训练目标简单统一:

text
给定前文,预测下一个 token

这个目标可以扩展到超大规模文本和代码数据。

20.3 T5 为什么适合文本到文本

T5 把各种 NLP 任务统一成 text-to-text 格式。

例如:

  • 翻译是 text -> text
  • 摘要是 text -> text
  • 分类也可以是 text -> label text

这种统一接口让多任务训练更自然。


21. 训练目标

Transformer 是架构,不等于某一种训练目标。

常见训练目标包括:

21.1 Next Token Prediction

Decoder-only LLM 的核心训练目标。

text
P(token_t | token_1, ..., token_{t-1})

优点:

  • 数据来源广。
  • 目标简单。
  • 适合生成。

21.2 Masked Language Modeling

BERT 的经典目标。

随机 mask 一些 token,让模型预测被 mask 的内容。

优点:

  • 可以利用双向上下文。
  • 适合理解任务。

21.3 Seq2Seq Teacher Forcing

Encoder-decoder 模型常用。

训练时 decoder 输入真实目标序列右移后的版本,预测下一个目标 token。


22. 推理:为什么生成仍然逐 token

训练 decoder-only 模型时,可以并行计算所有位置的 loss。

但推理时没有未来 token,只能:

text
输入 prompt
 -> 预测 token_1
 -> 拼回上下文
 -> 预测 token_2
 -> 拼回上下文
 -> ...

这就是为什么生成长文本会慢。

Transformer 的训练并行和推理逐 token,是很多人容易混淆的点。


23. KV Cache

自回归推理时,如果每生成一个 token 都重新计算全部历史 token 的 K/V,会非常浪费。

KV cache 的思路是:

  • 历史 token 的 Key 和 Value 缓存下来。
  • 生成新 token 时,只计算新 token 的 Q/K/V。
  • 新 token 的 Q 去关注历史 K/V 和当前 K/V。

简化流程:

text
Step 1:
tokens: [A, B, C]
cache: K/V for A,B,C

Step 2:
new token: D
compute K/V for D
attention over cached K/V + D
append D to cache

KV cache 能显著降低推理重复计算,但会带来显存占用。

显存大致随这些因素增长:

  • batch size
  • sequence length
  • number of layers
  • number of heads
  • head dimension

这也是长上下文推理昂贵的重要原因。


24. Attention 的复杂度

标准 full attention 的注意力矩阵大小是:

text
T × T

所以计算和显存通常近似为:

$$ O(T^2) $$

当上下文长度从 4k 增加到 8k,注意力矩阵规模不是翻倍,而是约 4 倍。

这解释了为什么长上下文模型很贵,也解释了为什么后来出现很多注意力优化方法。


25. FlashAttention

FlashAttention 论文的目标是让注意力计算更快、更省显存,同时保持精确 attention 结果。

它的核心思想不是改变注意力数学定义,而是改变计算和内存访问方式。

传统 attention 会显式构造较大的注意力矩阵:

text
QK^T -> softmax -> multiply V

FlashAttention 使用分块和 IO-aware 计算,减少高带宽内存读写,避免完整 materialize attention matrix。

直觉:

  • 数学结果仍是精确 attention。
  • 实现方式更贴近 GPU 内存层级。
  • 显存更省,速度更快。

这类工程优化是现代 LLM 能跑长上下文和大 batch 的关键之一。


26. 长上下文改进方向

标准 Transformer 面临长上下文压力,所以出现很多改进。

方向代表思路目标
稀疏注意力只关注部分 token降低复杂度
滑动窗口只看局部窗口适合长文和流式
全局 token少量 token 看全局保留全局汇聚能力
RoPE scaling扩展位置编码范围支持更长上下文
FlashAttention优化内存访问加速精确 attention
KV cache 优化MQA / GQA / cache 压缩降低推理显存
检索增强不把所有知识塞进上下文用外部检索补充知识

要注意:

  • 长上下文不是无限记忆。
  • 上下文能放进去,不代表模型一定能稳定使用。
  • RAG、摘要、索引和工具调用仍然很重要。

27. Scaling Laws 与大模型

Transformer 的另一个关键特点是可扩展。

Kaplan 等人的 scaling laws 研究发现,模型性能与参数量、数据量、计算量之间存在相对规律的缩放关系。Chinchilla 论文进一步强调,在给定计算预算下,模型参数量和训练 token 数需要更平衡,不能只盲目扩大参数。

这对大模型工程的启发是:

  • 架构重要,但数据、计算、训练配比同样重要。
  • 大模型能力不是只靠多堆层数。
  • 数据质量和训练 token 规模会强烈影响最终效果。

Transformer 的统一结构让这种扩展更容易发生。


28. Transformer 为什么适合 LLM

大语言模型通常使用 decoder-only Transformer,因为它具备这些特点:

  • next-token prediction 训练目标简单。
  • 能利用海量文本和代码。
  • 训练时可并行。
  • 推理时可自回归生成。
  • 架构容易扩展参数量。
  • 注意力能建模上下文依赖。
  • 可以通过指令微调、RLHF、工具调用等方式扩展能力。

但也要看到:

  • Transformer 本身不是“智能”的全部。
  • 数据、训练目标、对齐方法、推理策略、工具系统都很关键。

29. Transformer 在视觉和多模态中的扩展

Vision Transformer 把图像切成 patch,把每个 patch 当成 token。

text
Image
 -> Patches
 -> Patch Embedding
 -> Position Embedding
 -> Transformer Encoder
 -> Classification / Representation

论文 An Image is Worth 16x16 Words 证明了 Transformer 可以直接应用到图像 patch 序列上,并在大规模数据下取得很强效果。

多模态模型会进一步把:

  • 文本 token
  • 图像 patch
  • 音频片段
  • 视频帧
  • 工具结果

映射到统一或可交互的表示空间里。

这也是现代多模态模型的基础之一。


30. Transformer 的常见现代改造

模块原始 Transformer现代常见变化
位置编码sinusoidalRoPE、ALiBi、learned position
NormLayerNorm post-normPre-norm、RMSNorm
FFNReLU FFNGELU、SwiGLU、gated FFN
AttentionMHAMQA、GQA、FlashAttention
架构Encoder-DecoderDecoder-only LLM
容量扩展Dense FFNMoE
上下文full attentionsliding window、sparse、long context

这些改造大多不是推翻 Transformer,而是在同一骨架上优化训练稳定性、效率、上下文长度和推理成本。


31. MoE 与 Transformer

MoE 是 Mixture of Experts。

它常见做法是在 FFN 部分放多个 expert,由 router 为每个 token 选择少数 expert。

直觉:

text
Token Representation
 -> Router
 -> Expert 3 + Expert 7
 -> Combine

MoE 的目标:

  • 增加总参数量。
  • 每个 token 只激活部分参数。
  • 在相近计算成本下提升模型容量。

代价:

  • 训练更复杂。
  • 负载均衡更难。
  • 通信成本更高。
  • 推理部署更复杂。

32. 工程实现时最容易错的地方

32.1 mask 方向写反

Causal mask 方向错了,模型可能偷看未来 token,训练 loss 看起来很好,但推理崩掉。

32.2 shape 对不上

多头注意力经常要 reshape:

text
[B, T, D] -> [B, num_heads, T, d_head]

如果维度转置错了,模型还能跑,但语义完全不对。

32.3 忘记 scaling

不除以 sqrt(d_k),训练可能不稳定。

32.4 padding 没 mask

padding token 参与注意力,会污染表示。

32.5 KV cache 与 position 对不上

推理时如果位置编码和 cache index 不一致,长文本生成会异常。

32.6 训练和推理配置不一致

例如训练时用一种 mask,推理时用另一种;训练上下文短,推理强行拉长,效果可能不稳定。


33. 如何阅读 Transformer 论文

建议按这个顺序读 Attention Is All You Need

  1. 先看摘要和引言,理解为什么去掉 recurrence。
  2. 看模型架构图,建立 encoder-decoder 全局结构。
  3. 看 scaled dot-product attention 公式。
  4. 看 multi-head attention。
  5. 看 positional encoding。
  6. 看训练配置和机器翻译实验。
  7. 回头把公式和张量形状对应起来。

不要一开始就纠结所有符号。先抓住三件事:

  • 输入输出是什么。
  • 每层怎么变换。
  • attention 为什么能让 token 交互。

34. Transformer 与 RAG、Embedding、Agent 的关系

Transformer 是底层架构,RAG、Embedding、Agent 是应用形态或系统方法。

概念和 Transformer 的关系
Embedding常由 Transformer 编码模型生成文本表示
RAG检索后把证据交给 Transformer LLM 生成答案
Fine-tuning在 Transformer 模型上继续训练或对齐
Evals评测 Transformer 应用链路的效果
Agent用 Transformer LLM 做规划、工具调用和对话
多模态把不同模态转成 token 或 embedding 后交给 Transformer

理解 Transformer,不是为了手写一个大模型,而是为了知道这些系统能力从哪里来、瓶颈在哪里。


35. 常见误区

35.1 Attention 等于解释性

注意力权重能提供线索,但不能直接等同于模型决策原因。

35.2 Transformer 天然理解顺序

不对。它需要位置编码或位置机制。

35.3 上下文越长越好

长上下文会增加成本,也可能带来注意力稀释。能放进去不等于能用好。

35.4 Decoder-only 只能生成,不能理解

不准确。Decoder-only 模型也能做理解任务,只是训练和使用方式偏生成式。

35.5 Encoder 模型已经过时

也不准确。Embedding、reranker、分类、抽取等场景仍然大量使用 encoder 或 encoder-like 模型。


36. 面试式总结

如果要用几句话解释 Transformer,可以这样说:

  1. Transformer 是以 self-attention 为核心的序列建模架构。
  2. 它让每个 token 通过 Q/K/V 注意力机制直接和其他 token 交互。
  3. 原始 Transformer 是 encoder-decoder 结构,每层由 attention、FFN、残差连接和归一化组成。
  4. Encoder 适合理解,decoder 适合自回归生成,encoder-decoder 适合 seq2seq。
  5. 它的优势是并行训练、长距离依赖建模和可扩展性。
  6. 它的主要瓶颈是标准 attention 的 O(T^2) 成本和长上下文推理显存。

37. 学习路线

建议按这个顺序学:

  1. 先读 Attention Is All You Need
  2. 理解 Q/K/V、attention matrix、mask、multi-head。
  3. 理解 encoder-only、decoder-only、encoder-decoder 差异。
  4. 再读 BERT 和 GPT 类模型资料。
  5. 再补 RoPE、ALiBi、FlashAttention、KV cache。
  6. 最后把 Transformer 和 RAG、Embedding、fine-tuning、Agent 联系起来。

38. 推荐搭配阅读


39. 参考资料

以下资料在 2026-07-06 检查时可访问:

经典论文

现代改进

学习材料


40. 一句话总结

Transformer 的核心不是某个单独公式,而是一套把 token 表示、位置机制、自注意力、前馈网络、残差归一化和可扩展训练组合起来的通用架构。现代 LLM 的生成能力、Embedding 的语义表示能力、多模态模型的跨模态交互能力,都可以在这套架构里找到根。