核心定义
Encoder(编码器)是负责将一种 输入表示 转换为另一种 内部表示 的模型或模块:
其中:
- x:输入,如 文本、Token、图像、音频等;
- z:模型可进一步利用的 Representation(表示),如 Feature(特征)、Hidden State(隐藏状态)、Embedding(嵌入)或 Latent(潜在表示);
Encoder 描述的是一种功能角色,而不是具体算法。
Transformer、CNN 等可以作为 Encoder 的具体实现。
为什么需要 Encoder
原始输入通常不适合模型后续模块直接处理。Encoder 的作用是从输入中提取、组织和转换信息,形成更适合后续任务的表示:
Raw Input(原始输入)
↓
Encoder
↓
Representation(表示)
↓
Downstream Model(下游模型)例如:
Text → Text Encoder → Semantic Features(语义特征)
Image → Vision Encoder → Visual Features(视觉特征)
Image → VAE Encoder → Latent(潜在表示)Encoder 最关键的是:
哪些信息应该保留,以及应该以什么形式表示这些信息。
不等于压缩
Encoder 经常伴随降维或压缩,但压缩不是 Encoder 的定义,比如:
降维:Image → VAE Encoder → Compact Latent(紧凑潜在表示)
等维:Token Features(词元特征) → Transformer Encoder → Hidden States(隐藏状态)
升维:Low-dimensional Input(低维输入) → Encoder → High-dimensional Features(高维特征)其本质始终是:Representation Transformation(表示转换)。
与 Decoder
经典结构:
Input
↓
Encoder
↓
Representation
↓
Decoder
↓
Output可以粗略理解为:
- Encoder:输入 → 内部表示
- Decoder:内部表示 → 目标输出
例如 VAE:
Image
↓
VAE Encoder(VAE 编码器)
↓
Latent(潜在表示)
↓
VAE Decoder(VAE 解码器)
↓
Reconstructed Image(重建图像)与 Embedding
两者不在同一概念层级:
- Encoder:执行表示转换的模块;
- Embedding:一种向量表示;
例如 Transformer:
Token IDs
↓
Embedding Layer(嵌入层)
↓
Token Embeddings(词元嵌入)
↓
Transformer Encoder
↓
Contextual Hidden States(上下文隐藏状态)Embedding 可以是 Encoder 的输入、输出或中间表示,不能简单等同于 Encoder。
AI 中的典型 Encoder
BERT
Tokens(词元)
↓
Transformer Encoder(Transformer 编码器)
↓
Contextual Hidden States(上下文隐藏状态)CLIP
Image → Image Encoder → Image Representation(图像表示)
Text → Text Encoder → Text Representation(文本表示)Stable Diffusion
Prompt → Text Encoder → Text Conditioning(文本条件)
Image → VAE Encoder → Latent(潜在表示)同样叫 Encoder,但输入、输出、目标以及内部实现都可能完全不同。
判断一个 Encoder
看到 Encoder 时,优先问三个问题:
- 输入是什么?
- 输出成什么 Representation(表示)?
- 这个 Representation(表示)给谁使用?
再进一步判断:
Encoder
├── 输入:Text(文本) / Image(图像) / Audio(音频) / Multimodal(多模态)
├── 输出:Embedding(嵌入) / Feature(特征) / Hidden State(隐藏状态) / Latent(潜在表示)
└── 实现:Transformer(Transformer 模型) / CNN(卷积神经网络) / VAE Network(VAE 网络) / ...关联概念
Representation(表示)
├── Embedding(嵌入)
├── Feature(特征)
├── Hidden State(隐藏状态)
└── Latent(潜在表示)
Encoder(编码器)
├── Text Encoder(文本编码器)
├── Vision Encoder(视觉编码器)
├── Audio Encoder(音频编码器)
└── Multimodal Encoder(多模态编码器)
Architecture(架构)
├── Encoder-only(仅编码器)
├── Decoder-only(仅解码器)
└── Encoder–Decoder(编码器–解码器)一句话记忆:
Encoder 是一个功能角色:将输入转换为适合模型后续处理的内部表示;它定义“做什么”,而不是规定“用什么算法做”。