Transformer 学习篇 五——Transformer 是怎么输出新内容

📅 2026/8/25 11:39:26
Transformer 学习篇 五——Transformer 是怎么输出新内容
Transformer 是怎么输出新内容如果说 Transformer 的 Encoder编码器是一个阅读理解专家负责把原文拆解、消化成深度的语义特征那么 Decoder解码器就是一个写作翻译专家负责根据这些理解把新的句子一个字一个字地“憋”出来。为了实现这个目标解码器在架构上比编码器多出了一些非常特殊的设计。1. 核心桥梁交叉注意力 (Cross-Attention)**解码器怎么知道编码器读懂了什么**秘密就在它独有的交叉注意力层Encoder-Decoder Attention中。在上一轮我们聊过 Q、K、V 的角色。在解码器的这一层里Q、K、V 发生了一次“异地恋”QQuery来自解码器自己 解码器根据当前已经写出的半句话发出查询“我接下来需要一个表示‘动作’的词原文里哪个部分能给我线索”KKey和 VValue来自编码器 编码器把它消化好的整句话的特征作为 K 和 V 暴露出来。于是解码器的 Q 去匹配编码器的 K找到原文中相关的部分然后把对应的 V 提取过来。这就是解码器“参考原文”的本质机制。2. 蒙眼狂奔掩码自注意力 (Masked Self-Attention)除了看原文解码器也要看自己已经写出的词也就是自注意力。但这里有一个极其严格的限制绝对不能偷看未来。在训练时我们是一次性把目标句子喂给解码器的。如果让词汇像在编码器里那样自由建立注意力前面的词就会“偷看到”后面的词这就像是开卷考试直接抄了答案模型什么都学不到。解决方案Mask掩码。模型会在注意力矩阵的高维空间里把“当前词”之后的所有位置强行遮挡数学上就是给未来的词加上一个无穷大的负数 经过 Softmax 后权重就变成了 0。这样每一个词在计算 QKV 时只能把注意力放在自己和自己之前的词上。3. 词汇的诞生回归自回归 (Autoregressive)万事俱备解码器是如何在推理真实聊天阶段像挤牙膏一样把句子写出来的呢这是一个被称为自回归Autoregressive的严格循环过程1输入启动信号告诉模型开始说话解码器接收一个特殊的起始符号通常记为 Begin of Sentence并结合位置编码进入网络。2生成第一个词结合交叉注意力求助解码器通过交叉注意力层参考编码器的特征然后在最后一层的输出经过 Softmax 计算出词表假设有 5 万个词中每个词的概率。选出概率最高的词比如生成了 “I”。3自产自销循环输入吃掉自己的输出将刚刚生成的 “I” 和之前的 拼在一起作为下一轮的已知输入喂回给解码器。现在它看着 I再次计算预测出下一个词比如 “love”。4触发停止信号直到输出 EOS结束符这个过程不断循环 I love AI…直到模型在某一步预测出的最高概率词是代表句子结束的特殊符号 End of Sentence整个生成过程彻底结束。 一个关于 ChatGPT 的“美丽误会”当年 Google 提出 Transformer 时用于机器翻译它是由 Encoder Decoder两部分组成的。但 OpenAI 在研发 GPTGenerative Pre-trained Transformer系列时做了一个非常大胆的决定直接砍掉 EncoderChatGPT 的底层架构GPT-3 / GPT-4是一个纯解码器Decoder-only模型。它把用户的提示词Prompt和自己生成的回答一视同仁全部当成一个长长的序列。它不再需要“交叉注意力”去连结两个不同的网络而是只用“掩码自注意力”不断地玩“根据上文猜下一个词”的游戏。事实证明只要模型足够大、数据足够多大力真的能出奇迹这种纯解码器架构最终统一了大语言模型的江湖。