想必不少小伙伴面试过程中,会遇到这道题,「说说 BERT 和 Transformer 的区别」。
还别说,这问题真挺常问的。前几天有读者私信我说,面试官问了这题,他答了「BERT 用了 Transformer 的架构」,面试官追问「具体用了哪部分,为什么只用那部分」,他就卡住了。
其实这道题一点都不难,关键是你脑子里要有一张清晰的图。
今天咱们就用图把这件事讲透。看完你会知道,Transformer 是一个完整的翻译团队,而 BERT 和 GPT 分别只拿走了这个团队的一半。

“
Transformer 到底长什么样?
2017 年,Google 发了一篇论文叫「Attention Is All You Need」。这篇论文提出了 Transformer 架构,从此改变了整个 NLP 的走向。
Transformer 最初是为了做机器翻译设计的,比如把「我爱你」翻译成「I love you」。
要完成翻译,你需要两个能力,一个是「听懂原文」,一个是「说出译文」。
Transformer 就是按照这个思路设计的,它由两部分组成,
你可以把 Transformer 想象成一个同声传译团队。左边坐着一个「听力官」,他负责听完整段中文,把意思理解透。右边坐着一个「口译官」,他负责根据听力官传过来的理解,一个词一个词地把英文说出来。
听力官和口译官之间有一条「传话通道」,在 Transformer 里这个通道叫 Cross-Attention,它让口译官在说每个英文词的时候,都能回头看一眼听力官的笔记,确认自己没理解错。

“
这两个部分内部长什么样?
听力官(Encoder)内部的工作流程是这样的,

“
为什么 Decoder 要遮住右边?
这个问题很关键。
想象你在做翻译,你正在说第三个英文词。如果你已经知道了第四个词和第五个词是什么,那这道题就没意义了,因为你直接照抄就行了。
所以 Decoder 必须「遮住右边」,这叫 Masked Attention。每个词在预测的时候,只能看到它前面已经确定的词,不能偷看后面的答案。
这就像考试时用手挡住下面的题,一道一道做。

“
Self-Attention 到底是怎么工作的?
Self-Attention 是 Transformer 最核心的零件,无论是 Encoder 还是 Decoder 里都有它。
我再打一个比方。
想象你在一个会议室里,桌子上坐了 5 个人,分别代表句子里的 5 个词,「我」「爱」「吃」「苹」「果」。
现在轮到「吃」这个词发言了。它要决定,在理解自己的意思时,应该重点关注桌上的哪个人。
「吃」环顾了一圈会议室,
Self-Attention 干的就是这件事,让每个词都看一圈所有其他词,然后决定谁对自己最重要。

“
技术上是怎么实现的?
在实际计算中,每个词会被变成三个向量,
那个 √d_k 是一个缩放因子,防止点积数值太大导致 Softmax 梯度消失。

“
什么是 Multi-Head Attention?
Transformer 不止用一组 Q/K/V,而是同时用了多组,这叫 Multi-Head Attention。
还是会议室的比喻。如果只有一个视角,「吃」可能只注意到「吃什么」这个关系。但如果同时有 8 个视角(8 个 head),那不同的 head 可以分别关注,

“
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 的训练方式非常巧妙,它用了两个任务。
任务一,Masked Language Model(MLM),做填空题
训练的时候,随机把句子里 15% 的词遮住,换成一个特殊符号 [MASK],然后让模型猜这个词是什么。
比如原句是「我 爱 吃 苹 果」,遮住之后变成「我 [MASK] 吃 苹 果」,模型要猜出 [MASK] 的位置应该填「爱」。
因为词被随机遮住,模型必须利用前后所有的上下文来猜。这就逼着它学会真正理解语义,而不是只记住一个方向的模式。

任务二,Next Sentence Prediction(NSP),判断两句话是不是连着的
给模型两句话 A 和 B,让它判断 B 是不是 A 的下一句。
比如,

“
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
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302034844号