【大模型的原理架构对比解析】Encoder-Decoder 架构与 Decoder-Only 架构的输入输出详解

文章目录

前言

在自然语言处理中,Transformer 模型主要有两种架构:Encoder-Decoder (编码器-解码器)和 Decoder-Only(仅解码器)。下面分别介绍它们的每次输入和输出,并用具体例子说明关键过程。

一、Encoder-Decoder 架构

这种架构通常用于序列到序列任务,如机器翻译、文本摘要。它包含一个编码器和一个解码器。

  • 编码器:接收完整的源序列,输出每个位置的上下文表示(或整个序列的编码)。
  • 解码器自回归地生成目标序列,每一步基于已生成的部分和编码器的输出,预测下一个词。

1. 每次输入和输出

  • 编码器
    • 输入 :整个源序列的 token ID 列表(例如 [x1, x2, ..., xm])。
    • 输出 :每个 token 对应的隐藏状态向量 [h1, h2, ..., hm](即上下文表示)。
  • 解码器(推理时)
    • 第 1 步
      • 输入:起始符 <sos> + 编码器输出的上下文向量。
      • 输出:下一个 token 的概率分布,选择概率最高的 token(如 y1)。
    • 第 2 步
      • 输入:<sos>, y1 + 编码器输出。
      • 输出:下一个 token 的概率分布,选择 y2
    • 依次类推,直到生成结束符 <eos> 或达到最大长度。

2. 详细例子:英译法

源句子"I love you"
目标句子"Je t'aime"(法语)

假设分词为:["I", "love", "you"] → 法语 ["Je", "t'", "aime"]

(1)编码器阶段
  • 输入 :三个 token ID(I, love, you)。
  • 输出 :三个隐藏向量 h_I, h_love, h_you(每个向量包含整个句子的上下文信息)。
(2)解码器推理过程

解码器使用自回归 方式,每一步输入已生成的词编码器输出 ,通过交叉注意力关注源句子。

步骤 解码器输入(当前已生成序列) 解码器输出(概率分布) 选择的 token 关键中间过程
1 <sos> 预测下一个词的概率 "Je" 自注意力(只有 <sos>) + 交叉注意力(关注源句子的 "I",因为 "Je" 对应 "I"
2 <sos>, "Je" 预测下一个词的概率 "t'" 自注意力(看到 <sos>"Je") + 交叉注意力(关注 "love",因为 "t'""te" 的一部分,对应爱)
3 <sos>, "Je", "t'" 预测下一个词的概率 "aime" 自注意力(看到前三个) + 交叉注意力(关注 "love"
4 <sos>, "Je", "t'", "aime" 预测下一个词的概率 <eos> 自注意力(看到全部) + 交叉注意力,模型判断句子结束
  • 关键点 :解码器的每一步都使用因果自注意力掩码 (防止看到未来的词),同时通过交叉注意力从编码器输出中提取源句子的信息。

二、Decoder-Only 架构

这种架构通常用于自回归语言模型 ,如 GPT 系列。它只有一个解码器,通过因果自注意力依次预测下一个词。

  • 每次输入:当前已经生成的所有 token 序列(包括起始符,如果有)。
  • 每次输出:下一个 token 的概率分布。

详细例子:文本生成

前缀"The cat sat on the"
下一个词"mat"

假设分词为:["The", "cat", "sat", "on", "the"](无起始符,直接输入前缀)。

推理过程(预测下一个词)

步骤 模型输入 模型输出(概率分布) 选择的 token 关键中间过程
1 ["The", "cat", "sat", "on", "the"] 预测第 6 个词的概率 "mat" 因果自注意力:每个位置只能看到前面的 token,例如 "the" 能看到 "The""cat""sat""on",但不能看到未来。最终从最后一个位置的输出预测下一个词。

如果继续生成:

步骤 模型输入 模型输出 选择的 token
2 ["The", "cat", "sat", "on", "the", "mat"] 下一个词概率 "."
3 ["The", "cat", "sat", "on", "the", "mat", "."] 下一个词概率 <eos>(或停止)
  • 关键点 :每一步的输入都是完整的已生成序列,模型通过因果掩码确保自注意力只关注过去的位置,从而进行自回归预测。

三、对比总结

架构 输入(推理时) 输出 核心机制
Encoder-Decoder 编码器 :整个源序列;解码器:已生成的目标序列(每一步) 解码器每一步输出下一个词的概率 编码器提取源信息,解码器通过交叉注意力融合源信息,同时自注意力保持因果性
Decoder-Only 已生成的所有 token(包括前缀) 每一步输出下一个词的概率 仅使用因果自注意力,所有信息来自已生成的序列

两种架构的本质区别在于:Decoder-Only 只依赖已生成的内容,而 Encoder-Decoder 还依赖一个额外的源序列编码。

相关推荐
薛定谔的猫36913 小时前
LLM Agents: 从大语言模型到自主智能体的演进与架构解析
ai·llm·agent·machine learning·architecture
冬奇Lab14 小时前
RAG 系列(一):大模型为什么需要「外挂记忆」
人工智能·llm
冬奇Lab14 小时前
一天一个开源项目(第86篇):VibeVoice —— 微软开源的前沿语音 AI,单次处理 90 分钟多说话人音频
人工智能·llm
Flynt18 小时前
微软OpenAI终止独家合作:多云部署背后的技术架构变化
llm
量子位18 小时前
银河通用LDA定义全域数据利用范式,跨本体世界动作大模型开启具身GPT-2时刻
llm
带娃的IT创业者19 小时前
深度解析:从零构建高性能 LLM API 中转网关与成本优化实战
开发语言·gpt·llm·php·高性能·成本优化·api网关
DigitalOcean19 小时前
DigitalOcean 打造 AI 原生云,帮助 AI 应用大幅降低成本与运维复杂度
llm·agent
熊猫钓鱼>_>20 小时前
大型复杂远程AI Agent应用:从架构困局到进化突围
人工智能·ai·架构·开源·大模型·llm·agent
bryant_meng21 小时前
【Hung-yi Lee】《Introduction to Generative Artificial Intelligence》(11)
人工智能·深度学习·llm·speculative·预言家
白熊1881 天前
【大模型Agent】基于LangGraph搭建 多轮对话客户支持机器人 项目示例
人工智能·大模型·llm·agent·langgraph