Glittering's blog Glittering's blog
Home
  • 学习手册

    • 《TypeScript教程》
    • 《Git》
    • 《Vite》
    • 《Vue3》
    • 《React18》
    • 《CSS》
    • 《Tailwind CSS》
    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript 从零实现 axios》
  • 技术文档
  • 算法
  • 工作总结
  • 实用技巧
  • collect
About
  • Classification
  • Label
GitHub (opens new window)

Glitz Ma

前端开发工程师
Home
  • 学习手册

    • 《TypeScript教程》
    • 《Git》
    • 《Vite》
    • 《Vue3》
    • 《React18》
    • 《CSS》
    • 《Tailwind CSS》
    • 《JavaScript教程》
    • 《ES6 教程》
    • 《TypeScript 从零实现 axios》
  • 技术文档
  • 算法
  • 工作总结
  • 实用技巧
  • collect
About
  • Classification
  • Label
GitHub (opens new window)
  • 技术文档

  • 算法

  • 工作总结

    • 时区校正
    • 上传下载文件方式总结
    • web异常监控和分析
    • 前端优化指南
    • http缓存机制
    • 静态资源灰度发布
    • 浏览器原理及渲染机制
    • Chrome DevTools 渲染分析实战
    • Layout Thrashing(布局抖动)
    • Composite Layer(合成层)
    • 全局设置滚动条样式好吗?
    • 虚拟列表如何避免Layout和Paint
    • 前端安全知识
    • 安全(同源策略 / CSP / CORS)
    • 浏览器安全模型
    • 从chrome v8 讲安全
    • WebAssembly(Wasm)
    • XSS → JIT → 沙箱逃逸
    • 微前端总结
    • websocket聊天
    • Uni-app基础知识
    • react16高级特性
    • react16基础知识总结
    • vue2常见原理总结
    • vue2基础知识总结
    • webpack优化实践
    • webpack基础应用知识总结
    • Agent Skills是什么?跟MCP Workflow Command Prompt的关系。
    • 从cnn到transformer全解大模型
    • 什么是 Encoder 和 Decoder 结构
      • 一、为什么需要 Encoder 和 Decoder?
      • 二、Encoder 是什么?
        • ✅ Encoder = 理解模块
        • Encoder 的特点
      • 三、Decoder 是什么?
        • ✅ Decoder = 生成模块
        • Decoder 的特点
      • 四、Transformer 里的 Encoder / Decoder
        • 代表论文:
        • Encoder 每一层包含:
        • Decoder 每一层包含:
        • Cross-Attention 是什么?
      • 五、三种常见结构类型
        • 1️⃣ Encoder-only 模型
        • 2️⃣ Decoder-only 模型
        • 3️⃣ Encoder-Decoder 模型
      • 六、一个直观类比
        • Encoder 是:
        • Decoder 是:
      • 七、再讲一个关键点:为什么 GPT 不需要 Encoder?
      • 八、用一句话总结
    • GPT 为什么能“看懂”问题
    • GPT 是怎么学会数学的
    • 容器领域必学的黄金组合
    • 小程序笔记
    • 小程序工程模板设计
    • 地图标绘--射线法来计算点在多边形内
  • 实用技巧

  • 收藏夹

  • 技术
  • 工作总结
mamingjuan
2026-02-22
目录

什么是 Encoder 和 Decoder 结构

  1. 先讲它们解决什么问题
  2. 再讲结构长什么样
  3. 再讲 Transformer 里怎么实现
  4. 最后讲 BERT 和 GPT 分别用了哪一部分

# 一、为什么需要 Encoder 和 Decoder?

在早期做“机器翻译”时,研究者面临一个问题:

怎么把一句话变成另一句话?

比如:

中文:

我喜欢学习人工智能

英文:

I like studying artificial intelligence

这其实是一个两步过程:

1️⃣ 先“理解”原句 2️⃣ 再“生成”目标句

于是就有了:

Encoder → 负责理解
Decoder → 负责生成
1
2

# 二、Encoder 是什么?

# ✅ Encoder = 理解模块

它的任务是:

把输入句子变成一组“语义表示”

比如输入:

我 喜 欢 学 习
1

Encoder 会输出:

[向量1] [向量2] [向量3] [向量4]
1

这些向量不是普通数字。

它们是:

包含上下文信息的语义编码

意思是:

  • “喜欢”会知道主语是“我”
  • “学习”会知道前面是“喜欢”

# Encoder 的特点

  • 输入全部句子
  • 每个词都能看到所有词(Self-Attention)
  • 输出一组“上下文增强向量”

简单说:

Encoder 负责“看懂整句话”


# 三、Decoder 是什么?

# ✅ Decoder = 生成模块

它的任务是:

根据已有信息,一个词一个词生成输出

比如翻译时:

第一步生成:

I
1

第二步生成:

I like
1

第三步生成:

I like studying
1

一直生成到句子结束。


# Decoder 的特点

  • 只能看到前面已经生成的词
  • 不能看到未来
  • 每一步预测下一个词

这叫:

自回归生成(Auto-regressive)


# 四、Transformer 里的 Encoder / Decoder

# 代表论文:

Attention Is All You Need


Transformer 原始结构是:

Encoder 堆叠 N 层
Decoder 堆叠 N 层
1
2

# Encoder 每一层包含:

  • 1️⃣ Self-Attention
  • 2️⃣ 前馈神经网络

作用:

建立词与词之间的关系


# Decoder 每一层包含:

  • 1️⃣ Masked Self-Attention(只能看前面)
  • 2️⃣ Cross-Attention(看 Encoder 输出)
  • 3️⃣ 前馈神经网络

重点来了:

# Cross-Attention 是什么?

Decoder 在生成时,会:

  • 看自己已经生成的内容
  • 同时参考 Encoder 给的“理解结果”

所以:

Encoder 提供理解 Decoder 负责表达


# 五、三种常见结构类型

现在我们讲清楚三种变体。


# 1️⃣ Encoder-only 模型

代表:

BERT: Pre-training of Deep Bidirectional Transformers

结构:

只用 Encoder
1

用途:

  • 文本分类
  • 情感分析
  • 搜索排序

为什么?

因为它只需要:

理解,不需要生成


# 2️⃣ Decoder-only 模型

代表:

GPT-4 来自:OpenAI

结构:

只用 Decoder
1

为什么可以?

因为它把“输入内容”也当作已经生成的内容。

比如:

输入:

问题:什么是AI?
回答:
1
2

然后开始生成。

它本质是:

一直在预测下一个词

所以 GPT 不需要 Encoder。


# 3️⃣ Encoder-Decoder 模型

代表:

T5

来自:Google

结构:

完整 Transformer
1

常用于:

  • 翻译
  • 摘要
  • 复杂文本转换

# 六、一个直观类比

想象你请一个翻译:

# Encoder 是:

听完中文,完全理解意思。

# Decoder 是:

用英文重新表达出来。


如果是 BERT:

只有“理解者”。

如果是 GPT:

只有“写作者”。

如果是 T5:

听完再写。


# 七、再讲一个关键点:为什么 GPT 不需要 Encoder?

因为 GPT 做的是:

条件语言生成

输入内容已经在前面。

例如:

翻译:我爱你 → 
1

模型只需要预测:

I love you
1

所以:

输入本身就相当于“隐式编码”


# 八、用一句话总结

Encoder:

负责理解全局语义

Decoder:

负责按顺序生成文本

BERT:

只有理解

GPT:

只有生成

T5:

理解 + 生成

上次更新: 2026/02/22, 10:45:16
从cnn到transformer全解大模型
GPT 为什么能“看懂”问题

← 从cnn到transformer全解大模型 GPT 为什么能“看懂”问题→

Copyright © 2015-2026 Glitz Ma
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式