一句话定义
编码器-解码器(Encoder-Decoder)是一种把「一串输入」变成「另一串输出」的模型骨架:前半部分(编码器)先把输入整个读进去、理解成内部表示,后半部分(解码器)再根据这份理解,一个词一个词地把结果写出来。
打个比方
像一位笔译员。第一步,他通读整段中文,脑子里形成对这段话的理解——这一步不产出任何东西,只是「读进去」。第二步,他对着理解,逐句写出英文,每写一个词都要回头看看原文对应的部分。编码器和解码器就是这两个步骤,只不过分别由两组神经网络承担。
它怎么工作
- 编码器把输入(一句话、一段文字,或语音、图像切成的序列)逐位置编码成一组向量。因为每个位置都吸收了上下文,所以「bank」在这句里到底是河岸还是银行,编码器能分得清。
- 中间靠注意力(Attention)搭桥。解码器每生成一个词,都回头「看」输入里最相关的部分,而不是只能依赖一个被压扁的固定长度表示。这是让这套结构真正好用起来的关键改动。
- 解码器是自回归(AI 词典:Autoregressive">Autoregressive)的:它看「已经写出来的部分 + 编码器给的信息」,预测下一个词,再把预测结果接上去继续写。
- 训练时通常把真实的前缀喂给解码器(teacher forcing),让它预测下一个词,和标准答案比对后调整参数。这也是为什么它能学会「开头几个词错了也要往下写完整」和「错了就崩」之间的差别。
和相邻概念的区别
| 结构 | 代表 | 擅长 | 典型任务 |
|---|---|---|---|
| 仅编码器 | BERT 类模型 | 理解、打标签 | 分类、检索、信息抽取 |
| 仅解码器 | GPT 类模型 | 续写、对话 | 写作、问答、写代码 |
| 编码器-解码器 | T5、BART 类模型 | 把 A 改写成 B | 翻译、摘要、语音识别 |
判断方法很简单:如果任务是「把一样东西忠实改成另一样东西」,而且输入输出长度往往不一样,编码器-解码器是自然选择;如果任务是「接着往下写」,仅解码器更直接。
对从业者和普通人的意义
从业者层面,这套结构解释了一个常见现象:为什么翻译、摘要、语音转写这些任务能处理输入输出长度悬殊的情况,而纯生成模型在「必须忠于原文」时更容易跑偏。选架构前先问自己:这是「改写」还是「续写」。
普通人层面,你每天用到的机器翻译、会议录音转纪要、字幕生成,背后大概率都是这套骨架。它的强项是忠实改写,弱项是自由发挥;遇到长输入时还容易受表示容量和注意力的限制,工程上会做分块或检索等处理。具体实现细节和参数,以各家官方文档为准。
