图解 BERT 和 Transformer,一次讲清楚它俩到底什么关系

想必不少小伙伴面试过程中,会遇到这道题,「说说 BERT 和 Transformer 的区别」。

还别说,这问题真挺常问的。前几天有读者私信我说,面试官问了这题,他答了「BERT 用了 Transformer 的架构」,面试官追问「具体用了哪部分,为什么只用那部分」,他就卡住了。

其实这道题一点都不难,关键是你脑子里要有一张清晰的图。

今天咱们就用图把这件事讲透。看完你会知道,Transformer 是一个完整的翻译团队,而 BERT 和 GPT 分别只拿走了这个团队的一半。


翻译团队,Transformer 的完整架构

Transformer 到底长什么样?

2017 年,Google 发了一篇论文叫「Attention Is All You Need」。这篇论文提出了 Transformer 架构,从此改变了整个 NLP 的走向。

Transformer 最初是为了做机器翻译设计的,比如把「我爱你」翻译成「I love you」。

要完成翻译,你需要两个能力,一个是「听懂原文」,一个是「说出译文」。

Transformer 就是按照这个思路设计的,它由两部分组成,

你可以把 Transformer 想象成一个同声传译团队。左边坐着一个「听力官」,他负责听完整段中文,把意思理解透。右边坐着一个「口译官」,他负责根据听力官传过来的理解,一个词一个词地把英文说出来。

听力官和口译官之间有一条「传话通道」,在 Transformer 里这个通道叫 Cross-Attention,它让口译官在说每个英文词的时候,都能回头看一眼听力官的笔记,确认自己没理解错。


这两个部分内部长什么样?

听力官(Encoder)内部的工作流程是这样的,

  1. 先把输入的中文句子转成向量(Input Embedding + Position Encoding)
  2. 然后做 Self-Attention,让每个字都看看其他字,搞清楚它们之间的关系
  3. 再过一个前馈网络(Feed Forward),做一次非线性变换
  4. 以上这套流程重复 N 次(原始论文是 6 次) 口译官(Decoder)的流程类似,但多了一步,
  5. 先把已经说出的英文词转成向量
  6. 做 Masked Self-Attention,每个词只能看到它左边已经说出的词,不能偷看右边还没说的
  7. 做 Cross-Attention,回头看听力官的笔记
  8. 过前馈网络
  9. 同样重复 N 次


为什么 Decoder 要遮住右边?

这个问题很关键。

想象你在做翻译,你正在说第三个英文词。如果你已经知道了第四个词和第五个词是什么,那这道题就没意义了,因为你直接照抄就行了。

所以 Decoder 必须「遮住右边」,这叫 Masked Attention。每个词在预测的时候,只能看到它前面已经确定的词,不能偷看后面的答案。

这就像考试时用手挡住下面的题,一道一道做。


环顾会议室,Self-Attention 机制

Self-Attention 到底是怎么工作的?

Self-Attention 是 Transformer 最核心的零件,无论是 Encoder 还是 Decoder 里都有它。

我再打一个比方。

想象你在一个会议室里,桌子上坐了 5 个人,分别代表句子里的 5 个词,「我」「爱」「吃」「苹」「果」。

现在轮到「吃」这个词发言了。它要决定,在理解自己的意思时,应该重点关注桌上的哪个人。

「吃」环顾了一圈会议室,

Self-Attention 干的就是这件事,让每个词都看一圈所有其他词,然后决定谁对自己最重要。


技术上是怎么实现的?

在实际计算中,每个词会被变成三个向量,

  1. 用 Q 和所有的 K 做点积,算出每对词之间的相关度
  2. 把相关度过一个 Softmax,变成 0-1 之间的注意力权重
  3. 用注意力权重对 V 做加权求和,得到最终输出 用公式写就是,Attention(Q, K, V) = softmax(QK^T / √d_k) · V

那个 √d_k 是一个缩放因子,防止点积数值太大导致 Softmax 梯度消失。


什么是 Multi-Head Attention?

Transformer 不止用一组 Q/K/V,而是同时用了多组,这叫 Multi-Head Attention。

还是会议室的比喻。如果只有一个视角,「吃」可能只注意到「吃什么」这个关系。但如果同时有 8 个视角(8 个 head),那不同的 head 可以分别关注,


只带耳朵的翻译,BERT

BERT 到底是什么?

2018 年,Google 又发了一篇论文,提出了 BERT(Bidirectional Encoder Representations from Transformers)。

名字挺长,但核心就一句话,BERT 只用了 Transformer 的 Encoder 部分,把 Decoder 整个扔掉了。

为什么?

因为 BERT 的目标不是「翻译」也不是「写作」,它的目标是「理解」。

还是用翻译团队的比喻。BERT 相当于一个只带耳朵的翻译,它不需要开口说话,它的工作就是,听完一段话之后,告诉你「这段话是正面情绪还是负面情绪」「这段话里的人名分别是谁」「这两段话是不是在说同一件事」。

既然不需要说话,那口译官(Decoder)就不需要了。只留听力官(Encoder)就够了。


BERT 的注意力和 Transformer 有什么不同?

这是最关键的区别,BERT 的 Self-Attention 是双向的

在原始 Transformer 的 Decoder 里,每个词只能看到左边的词(Masked Attention),这是因为翻译/生成任务要求你一个词一个词地往外蹦,不能偷看后面的。

但 BERT 不需要一个词一个词往外蹦,它的任务是「理解整段话」。理解一段话的时候,当然要前后都看。

比如「苹果发布了新手机」这句话,你要判断「苹果」是水果还是公司,就必须看到后面的「新手机」。只看左边的话,你看到的是「苹果发布了」,没法确定是水果还是公司。

所以 BERT 把 Mask 去掉了,让每个词都能同时看到左边和右边的所有词。

这就是「Bidirectional」这个词的含义,双向。


填空题选手,BERT 的训练方式

BERT 是怎么训练出来的?

BERT 的训练方式非常巧妙,它用了两个任务。

任务一,Masked Language Model(MLM),做填空题

训练的时候,随机把句子里 15% 的词遮住,换成一个特殊符号 [MASK],然后让模型猜这个词是什么。

比如原句是「我 爱 吃 苹 果」,遮住之后变成「我 [MASK] 吃 苹 果」,模型要猜出 [MASK] 的位置应该填「爱」。

因为词被随机遮住,模型必须利用前后所有的上下文来猜。这就逼着它学会真正理解语义,而不是只记住一个方向的模式。


任务二,Next Sentence Prediction(NSP),判断两句话是不是连着的

给模型两句话 A 和 B,让它判断 B 是不是 A 的下一句。

比如,


接龙选手,GPT 的训练方式

GPT 又是怎么训练的?

GPT 的训练方式完全不同。

GPT 只用了 Transformer 的 Decoder 部分(把 Encoder 扔掉了,刚好和 BERT 反过来)。它的训练任务只有一个,预测下一个词

给 GPT 一句话的前面几个词,让它猜下一个词是什么,

因为是往后接,所以每个词只能看到它前面的词,不能偷看后面的。这就是为什么 GPT 用的是 Masked Attention(单向)。


BERT 做填空,GPT 玩接龙,这两种方式各有什么好处?

填空题(BERT)的好处是,模型必须前后都看,理解更深。坏处是,它不会「说话」,因为它从来没练过一个词一个词往外蹦的能力。

接龙(GPT)的好处是,模型天生就会「说话」,你给它一个开头,它能一直往下写。坏处是,它只能看左边,理解不如 BERT 深。

一句话总结,

BERT 是考试型选手,做阅读理解特别强,但你让它写作文它不行。

GPT 是写作型选手,写东西特别溜,但你让它做细粒度的分类判断,不如 BERT 精准。


谁干什么活,下游任务的分工

面试官经常问,BERT 和 GPT 分别适合什么场景?

BERT 这条线(Encoder-only)主要用在「需要理解但不需要生成」的场景,

BERT 那条线没有消失,它的后代 RoBERTa、ALBERT、DeBERTa 还活跃在搜索引擎、广告系统、风控系统这些需要「快速精准判断」的场景里。只是不像 GPT 那条线这么出圈。


回到面试,一张表记住所有区别

面试被问到的时候,你脑子里有这张表就够了,

对比项 BERT GPT 原始 Transformer 用了哪部分 只用 Encoder 只用 Decoder Encoder + Decoder 注意力方向 双向(左右都看) 单向(只看左边) Encoder 双向,Decoder 单向 训练方式 填空(MLM + NSP) 接龙(预测下一个词) 翻译(Seq2Seq) 擅长什么 理解、分类、NER 生成、对话、写作 翻译、摘要 代表模型 BERT/RoBERTa/DeBERTa GPT-4/Claude/LLaMA T5/BART 诞生年份 2018 2018(GPT-1) 2017


最后用一句话帮你记住,

Transformer 是一个完整的翻译团队,BERT 只留了耳朵,GPT 只留了嘴巴。BERT 做填空题练出来的,所以它听得懂但不会说。GPT 玩接龙练出来的,所以它能一直往下说。

下次面试被问到,先说这句话,再展开讲细节,稳了。


如果你觉得有用,帮我点个赞。

展开阅读全文

更新时间:2026-07-09

标签:科技   关系   模型   注意力   听力   这个词   接龙   句子   英文   团队   方式

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 71396.com 闽ICP备11008920号
闽公网安备35020302034903号

Top