当前位置: 首页 > news >正文

Transformer的核心组成:编码器(Encoder)和解码器(Decoder)

Transformer 的编码器(Encoder)和解码器(Decoder)是其核心组成部分,最初由 Vaswani 等人在 2017 年的论文《Attention Is All You Need》中提出。下面我们将逐层、逐模块详细解析它们的架构、功能、数学原理和工作流程。

🌐 一、整体结构概览

Encoder-Decoder 架构主要用于序列到序列任务(Seq2Seq),如机器翻译、文本摘要等。
而像 BERT 这类模型只用 Encoder,GPT 等只用 Decoder

🔧 二、共享基础:Positional Encoding

由于 Transformer 没有 RNN 的时序结构,必须显式引入位置信息

公式(正弦/余弦位置编码):

  • pos:token 在序列中的位置(0, 1, 2, ...)
  • i:维度索引(0 到 d/2)
  • d:模型隐藏维度(如 512)

✅ 位置编码与词嵌入相加后输入 Encoder/Decoder。

🏗️ 三、Encoder 详细架构(每层重复 N 次,通常 N=6)

每个 Encoder Block 包含两个子层:

1. Multi-Head Self-Attention(多头自注意力)

功能:

让每个 token 能“看到”整个输入序列,动态计算与其他 token 的相关性。

计算流程:

✅ 所有 token 并行计算,无顺序依赖。

2. Add & Norm + Feed-Forward Network(FFN)

  • 两层全连接,中间 ReLU

  • 每个位置独立处理
  • 中间维度通常为 4d4d(如 d=512 → 2048)

✅ FFN 引入非线性,增强表达能力。


🏗️ 四、Decoder 详细架构(每层重复 N 次)

每个 Decoder Block 包含三个子层

1. Masked Multi-Head Self-Attention

与 Encoder 的区别:加了掩码(Mask)
  • 在训练时,防止 Decoder “偷看”未来 token(保证自回归性质)
  • 掩码方式:将未来位置的注意力分数设为 −∞,经 softmax 后为 0

✅ 例如:预测第 3 个词时,只能看到第 1、2 个词。


2. Multi-Head Cross-Attention

功能:让 Decoder 关注 Encoder 的输出(即源序列)
  • Query 来自 Decoder 的上一层输出
  • Key 和 Value 来自 Encoder 的最终输出

✅ 这是 Encoder-Decoder 之间的“桥梁”,实现源-目标对齐(如翻译中“cat” → “猫”)。


3. Add & Norm + FFN(与 Encoder 相同)

  • 残差连接 + LayerNorm
  • FFN 结构完全一致

📊 五、Encoder vs Decoder 对比表

组件EncoderDecoder
Self-Attention标准多头自注意力Masked 多头自注意力
Cross-Attention❌ 无✅ 有(Query 来自自身,Key/Value 来自 Encoder)
输入源序列(如英文句子)目标序列(如中文句子,右移一位)
输出用途供 Decoder 查询用于预测下一个 token
并行性完全并行训练时并行(因有目标序列),推理时自回归(逐个生成)

🔁 六、训练 vs 推理的区别

训练阶段(Teacher Forcing):

  • Decoder 输入是真实目标序列(右移一位)
  • 所有 token 并行计算(因有完整目标)
  • 例如:目标是 [BOS] 我 爱 你 [EOS],输入为 [BOS] 我 爱 你,预测 我 爱 你 [EOS]

推理阶段(自回归生成):

  • 每次只生成一个 token
  • 将已生成的 token 作为下一次输入
  • 速度慢,但无需真实标签

🧠 七、参数规模示例(原始 Transformer)

参数数值
层数(Encoder/Decoder)6
隐藏维度 dd512
注意力头数8
FFN 中间维度2048
词汇表大小37000
总参数量≈ 60M

✅ 八、总结:核心思想

模块作用
Encoder将输入序列编码为富含上下文的表示,供 Decoder 查询
Decoder1) 自回归生成输出;2) 通过 cross-attention 聚焦源序列相关信息
Self-Attention捕捉序列内部依赖
Cross-Attention实现源-目标对齐
Positional Encoding引入顺序信息
残差 + LayerNorm支持深层网络训练

📌 附:现代变体

  • BERT:仅用 Encoder,用于理解任务(分类、问答)
  • GPT:仅用 Decoder(无 cross-attention),用于生成任务
  • T5 / BART:Encoder-Decoder,用于生成式 NLP(摘要、翻译)
  • Vision Transformer (ViT):将图像视为序列,用纯 Encoder 处理
http://www.dtcms.com/a/496903.html

相关文章:

  • 可以做英文教师的网站有趣的个人网站
  • 建设小学瓯江小区网站百度app官方下载
  • 深度解析 mysql 作为向量数据库如何存储和查询向量数据
  • 骑行,安全和自由冲突吗?
  • 长沙商城网站建设报价公示泉州做网站企业
  • 杨和网站开发泰州建筑人才网
  • 边传数据边充电,Type-c 5V OTG应用方案普及讲解
  • 社区自助建站网建网站软件
  • 凡科建站官网页更换视频马鞍山网站建设咨询电
  • 网站收录优化北京网站建设开发公司哪家好
  • 建设网站的建筑公司wordpress更换登录账号
  • MySQL的中继日志(relay-log)的实践
  • 临沂seo网站管理网络营销推广品牌
  • 惠州市建设工程交易中心网站什么是网络营销的核心竞争力
  • 一文精通 Python DDGS 模块:解锁多引擎智能搜索,给大模型添加联网搜索知识库
  • dede网站正在维护中应该怎样设置图片在线制作二维码生成器
  • SAP MM发票校验接口分享
  • 网站建设费经营范围省建设厅网站建筑材料备案申请
  • 红色培训网站源码电视直播网站开发
  • 网站开发费是无形资产吗建晨网站建设有限公司
  • 包装设计网站排行榜莘庄网站建设
  • 网站后端怎么做wordpress为导航添加图标
  • 数据透视表
  • 网页设计第7次作业Apifox的使用
  • ps如何做网站首页宜昌外贸网站建设优化推广
  • 深圳市南山网站建设山东兴华建设集团网站
  • 网站建设平台ui确认书wordpress 前台刷新
  • 目前网站类型主要包括哪几种单页网站定义
  • Blender4.5 几何节点组织方式(对象,实例,几何,属性,域)
  • 使用Blender设计灵鱼