在深度学习模型中,Encoder 和 Decoder 描述的是组件的功能。
| Encoder | Decoder | |
|---|---|---|
| 理解 | 把复杂信息压缩成有意义的特征表示 | 利用特征生成输出 |
| CNN | 分辨率降低,语义增强 | 恢复空间信息,恢复尺寸 |
| Transformer | 理解语义(这句话是什么意思?) | 逐词生成(怎么表达?) |
Encoder:
把输入变成更抽象的表示。负责“看懂世界”,将输入转换成机器能够理解的高维特征。ResNet, ViT, DINOv2, Depth Pro Encoder 都是 Image Encoder。
Encoder-only 模型只提取特征,用于分类、检索、特征提取,比如判断句子的情感。
代表模型:BERT。
Decoder:
把抽象表示变成任务需要的输出。负责“表达世界”,将这些特征转换成我们需要的结果。
Decoder-only 模型用于生成,可以根据前面的token生成后面的。
代表模型:GPT。
Encoder-Decoder:
从输入到输出,例如翻译任务。