先介绍了解码器Decoder的解码流程
- 输出嵌入的右向偏移在开始处理输入序列之前,模型对输出嵌入进行向右偏移一个位置,确保在训练阶段,解码器内的每个符号都能正确地获取之前生成符号的上下文信息。
- 位置编码的整合仿照编码器的设计,模型将位置编码与输出嵌入相结合,以此保留符号的序列顺序信息。
- 带掩码的多头自注意力机制解码器利用带掩码的多头自注意力机制,专注于输入序列的相关片段以及之前产生的符号。在训练过程中,通过掩码技术,防止模型对未来符号的预知,确保每个符号仅能参考其之前的符号。
- 编码器-解码器注意力交互除了带掩码的自注意力机制外,解码器还融合了编码器-解码器注意力交互,这使得解码器能够聚焦于输入序列的重要部分,进而生成受输入语境影响的输出符号。
- 基于位置的前馈网络在自注意力层之后,解码器对每个符号独立施加位置编码的前馈网络。该网络旨在捕捉输入和已生成符号之间的复杂模式与关联,以助力精确输出序列的构建。
从图中看,Decoder和Encoder很像,它们的主要区别如下
特性 | Decoder | Encoder |
---|---|---|
掩码机制 | 带掩码的自注意力,屏蔽未来信息 | 无掩码,可全局访问输入序列 |
注意力类型 | 包含两种注意力: 1. 掩码自注意力 2. 编码器-解码器交叉注意力 |
仅标准多头自注意力 |
输出处理 | 末尾接线性层 + Softmax,预测词概率 | 无此结构 |
任务目标 | 生成输出序列,依赖因果性(逐步预测) | 提取输入序列全局特征 |
举例说明下这二者的区别,假设你是一位侦探小说作家,正在创作一部包含复杂谜团的作品。
1. 编码器:创作者的全知视角
类比:你作为小说创作者,掌握整个故事的全局设定,包括凶手身份、所有线索和结局。
编码器任务:
- 全局构建:自由设计所有章节的伏笔(如“凶器藏在书房”“目击者说谎”),确保逻辑自洽。
- 无掩码机制:可随时跳转到任意章节修改细节(如调整第五章的凶手动机,以匹配第三章的线索)。
例子:
你在写第三章时,发现“凶手的不在场证明”与第六章的“监控录像”矛盾,于是提前修改第六章,使凶手利用“双胞胎兄弟”制造假象。
2. 解码器:读者的逐步探索
类比:读者按章节顺序阅读小说,只能基于已读内容推测后续发展。
解码器任务:
- 因果性体验:读到第四章时,只能根据前三章的信息(如“雨夜脚印”“神秘信件”)猜测凶手。
- 掩码机制:无法预知后续章节(如第五章揭示“凶手是侦探的助手”),直到翻到下一页才揭晓。
例子:
读者在第四章看到“侦探发现书房有血迹”时,可能怀疑管家,但无法知道第五章将揭示血迹是凶手伪造的陷阱。
阶段 | 编码器(创作者) | 解码器(读者) |
---|---|---|
信息访问 | 通晓所有章节内容,可自由修改 | 只能阅读已发布的章节,未来内容被“掩码” |
核心目标 | 确保故事逻辑严密,伏笔合理 | 基于已读内容推理,保持悬念与沉浸感 |
关键操作</ |