Embedding和Transformer

为什么 embedding 和 Transformer 是一体的? 为什么训练这么贵,而推理(inference)相对轻?

我来分三层讲清楚:

  • 一层讲结构:embedding 在 Transformer 里是什么位置
  • 一层讲机制:为什么训练资源消耗惊人
  • 一层讲直觉:为什么训练 = 学世界的几何,推理 = 在几何里走一小步

🧩 一、Embedding 是 Transformer 的“输入语言”

Transformer 模型(包括 GPT、BERT、Claude、Gemini…)内部都是在处理向量。 而我们输入的文本是离散符号(tokens)。 两者之间的桥梁,就是 embedding 层


🔹 1️⃣ Token Embedding

假设我们输入句子:

"AI changes the world"

首先会被分词器切成 token,例如:

["AI", "changes", "the", "world"]

然后每个 token 都会被查表变成一个向量:

"AI"      [0.2, -0.4, 0.8, ...]
"changes" [0.1,  0.9, -0.5, ...]

这些向量就构成了一个矩阵: [ E = \begin{bmatrix} v_{AI}
v_{changes}
v_{the}
v_{world} \end{bmatrix} \in \mathbb{R}^{4 \times d} ] 这里 d 通常是 768、1024、4096……这就是 embedding 维度


🔹 2️⃣ Transformer 接着干什么?

Transformer 的多头注意力层(Multi-Head Attention) 会在这些向量之间计算: [ \text{Attention}(Q, K, V) = \text{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V ] 这里的 (Q,K,V) 也是从 embedding 线性变换来的。

它的本质是:

学会哪些词之间该互相关注, 从而在向量空间中重组语义关系。

经过 N 层这种注意力与前馈网络堆叠后, 输出的每个 token 向量,就携带了上下文语义—— 这是 contextual embedding(上下文嵌入)


🔹 3️⃣ 总结结构关系

模块 功能 向量空间角色
Embedding 层 把离散 token 变成连续向量 进入语义空间的入口
Transformer Encoder/Decoder 在语义空间中动态重组、传播、聚焦信息 改变语义流形的形状
Output Head(Linear + Softmax) 把高维语义向量投影回词表概率分布 语言输出的出口

所以可以说:

Transformer = Embedding 的几何操纵器 它在 embedding 空间里,不断拉伸、旋转、压缩这些语义点,让语言逻辑变成向量运算。


⚙️ 二、为什么训练比推理贵得多

现在讲重点: 为什么训练阶段耗费几百万 GPU 小时,而推理阶段只需要几毫秒?

🔹 1️⃣ 因为训练不仅要“跑模型”,还要“算梯度”

在训练时,模型不是只做前向推理(forward), 还要做反向传播(backward)来更新参数。

前向: [ y = f_\theta(x) ]

反向: [ \nabla_\theta L = \frac{\partial L(f_\theta(x))}{\partial \theta} ]

这个反向传播需要:

  • 保存每一层的中间结果;
  • 对所有参数求偏导;
  • 累积梯度并更新。

所以一次训练步骤的内存和计算量 ≈ 前向 × 3~5 倍

而推理只要 forward 一遍,没有反向更新。 所以单次推理的 FLOPs(浮点运算量)要小得多。


🔹 2️⃣ 因为训练要遍历海量语料

以 GPT-4 级模型为例:

  • 训练数据:几万亿 token;
  • 迭代轮数(epochs):多次遍历;
  • 参数数量:数千亿;
  • 每步 batch:数千条样本;
  • 每次更新:全参数矩阵乘法。

这意味着:

训练阶段是在“让模型学世界”,要覆盖所有语义流形。 推理阶段是在“让模型走路径”,只探索其中一小段。

打个比方:

  • 训练 = 把整个地图绘出来;
  • 推理 = 在地图上走一步。

🔹 3️⃣ 因为训练要同步更新数十亿参数

在分布式训练中(如 GPT、Claude、Gemini 都用的方式):

  • 模型参数会被分布到成千上万个 GPU;
  • 每个 GPU 计算一部分梯度;
  • 然后所有 GPU 要在每步迭代后 同步(all-reduce)更新权重

网络通信(NCCL、InfiniBand)本身就可能占掉 30~40% 的时间。

推理则不需要这些通信,只要加载权重、forward 一次即可。


🧬 三、直觉总结:训练是在“学几何”,推理是在“走几何”

我们可以这么理解:

阶段 在语义流形中的操作 比喻
训练 学习语义流形的形状:不同语句、概念、领域之间的几何关系 “绘制地图”
推理 在这张流形上找到从输入到输出的最短路径 “在地图上导航”

绘地图很难,要走遍每个角落、不断校正误差; 导航相对简单,只要知道地图怎么走。


💡 四、延伸:Embedding 和 Transformer 在训练中的分工

模块 学习内容 消耗资源
Embedding 层 学习词与语义的基础对应 相对较少
Attention 层 学习词与词的交互关系 大量矩阵乘法
FeedForward 层 学习非线性组合(语义抽象) 最耗 FLOPs
Output Softmax 学习语言分布 较轻

这就是为什么显卡大多在 attention + MLP 层被吃满。


✅ 五、总结一句话

Embedding 是 Transformer 的语言入口,Transformer 是在 embedding 空间中塑造语义几何的机器。

训练阶段是绘制整张“语义地图”——计算巨大、数据海量、要反向传播; 推理阶段只是沿着这张地图走一步——所以便宜得多。