WhiteDLG's

Transformer Block

2026-1-21 AI / Architecture 128 Views

Transformer Block

理解

  • 代码层面:可以单独调用一个 Transformer Block。
  • 功能层面:一个单独的 Transformer Block 通常不被叫作“一个训练好的模型”,它只是大模型里的一层(或者说一个组件)。
  • 数据格式:必须把输入转为向量(Vectors)才能喂给它。

完整的模型,(如 GPT-4): 由 Embedding 层 + 几十层 Transformer Block 堆叠 + 输出层 Head 组成。

Transformer Block 可以理解为“模型的一个切片”。它具备处理数据的能力,但通常不会单独使用,而是排队接力处理数据。

Transformer Block Structure

Transformer Block 可以直接调用吗?

在写代码时(比如用 PyTorch):完全可以。

你可以把它看作一个函数或者一个黑盒子。假设你已经加载了训练好的参数,调用它的伪代码逻辑是这样的:

# 1. 实例化一个 Block(假设它已经加载了训练好的参数)
my_block = TransformerBlock(...)

# 2. 准备数据(必须是向量格式!)
# 假设输入形状是:[Batch_Size, 序列长度, 向量维度]
input_vectors = ...

# 3. 直接调用!
output_vectors = my_block(input_vectors)
  • 输入:一组向量(比如形状是 [1, 5, 768],代表 1 句话,5 个词,每个词 768 维)。
  • 输出:另一组形状一样的向量([1, 5, 768])。
  • 发生了什么?输入的向量经过 Block 内部的“搅拌”(Attention 和 FFN),信息被融合加工了,变成了更深层的特征向量。

结合 Engram 理解

回到 Engram 的内容,现在的流程变成了:

  1. 输入
    “牛顿” -> 向量化 -> 输入向量 A
  2. Engram 模块
    查外挂小抄 -> 记忆向量 B
  3. 融合
    输入向量 A + 记忆向量 B = 增强向量 C
  4. Transformer Block 调用
    • output = TransformerBlock(增强向量 C)
    • 这时候 Block 里的计算过程,就用到了你查出来的记忆。