<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Transformer on 小盒子的技术分享</title><link>https://xiaobox.github.io/tags/transformer/</link><description>Recent content in Transformer on 小盒子的技术分享</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 06 Jul 2026 11:27:05 +0000</lastBuildDate><atom:link href="https://xiaobox.github.io/tags/transformer/index.xml" rel="self" type="application/rss+xml"/><item><title>图解 BERT 和 Transformer，一次讲清楚它俩到底什么关系</title><link>https://xiaobox.github.io/p/2026-07-06-tu-jie-bert-he-transformer-yi-ci-jiang-qing-chu-ta-lia-dao-d/</link><pubDate>Mon, 06 Jul 2026 11:27:05 +0000</pubDate><guid>https://xiaobox.github.io/p/2026-07-06-tu-jie-bert-he-transformer-yi-ci-jiang-qing-chu-ta-lia-dao-d/</guid><description>&lt;p&gt;想必不少小伙伴面试过程中,会遇到这道题,「说说 BERT 和 Transformer 的区别」。&lt;/p&gt;
&lt;p&gt;还别说,这问题真挺常问的。前几天有读者私信我说,面试官问了这题,他答了「BERT 用了 Transformer 的架构」,面试官追问「具体用了哪部分,为什么只用那部分」,他就卡住了。&lt;/p&gt;
&lt;p&gt;其实这道题一点都不难,关键是你脑子里要有一张清晰的图。&lt;/p&gt;
&lt;p&gt;今天咱们就用图把这件事讲透。看完你会知道,Transformer 是一个完整的翻译团队,而 BERT 和 GPT 分别只拿走了这个团队的一半。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 1" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/66d65696-b30b-4697-8648-2b09e6f6c76d-1.png"&gt;&lt;/p&gt;
&lt;h2 id="翻译团队transformer-的完整架构"&gt;&lt;a href="#%e7%bf%bb%e8%af%91%e5%9b%a2%e9%98%9ftransformer-%e7%9a%84%e5%ae%8c%e6%95%b4%e6%9e%b6%e6%9e%84" class="header-anchor"&gt;&lt;/a&gt;翻译团队,Transformer 的完整架构
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Transformer 到底长什么样?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;2017 年,Google 发了一篇论文叫「Attention Is All You Need」。这篇论文提出了 Transformer 架构,从此改变了整个 NLP 的走向。&lt;/p&gt;
&lt;p&gt;Transformer 最初是为了做机器翻译设计的,比如把「我爱你」翻译成「I love you」。&lt;/p&gt;
&lt;p&gt;要完成翻译,你需要两个能力,一个是「听懂原文」,一个是「说出译文」。&lt;/p&gt;
&lt;p&gt;Transformer 就是按照这个思路设计的,它由两部分组成,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Encoder(编码器)&lt;/strong&gt;,负责听懂输入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decoder(解码器)&lt;/strong&gt;,负责说出输出
我打个比方。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;你可以把 Transformer 想象成一个同声传译团队。左边坐着一个「听力官」,他负责听完整段中文,把意思理解透。右边坐着一个「口译官」,他负责根据听力官传过来的理解,一个词一个词地把英文说出来。&lt;/p&gt;
&lt;p&gt;听力官和口译官之间有一条「传话通道」,在 Transformer 里这个通道叫 &lt;strong&gt;Cross-Attention&lt;/strong&gt;,它让口译官在说每个英文词的时候,都能回头看一眼听力官的笔记,确认自己没理解错。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 2" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/7b0a0530-c545-4f64-9fa5-02236ce58251-1.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;这两个部分内部长什么样?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;听力官(Encoder)内部的工作流程是这样的,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;先把输入的中文句子转成向量(Input Embedding + Position Encoding)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;然后做 Self-Attention,让每个字都看看其他字,搞清楚它们之间的关系&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;再过一个前馈网络(Feed Forward),做一次非线性变换&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;以上这套流程重复 N 次(原始论文是 6 次)
口译官(Decoder)的流程类似,但多了一步,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;先把已经说出的英文词转成向量&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;做 Masked Self-Attention,每个词只能看到它左边已经说出的词,不能偷看右边还没说的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;做 Cross-Attention,回头看听力官的笔记&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;过前馈网络&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;同样重复 N 次&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="配图 3" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/5c833985-b2b1-42c0-842b-a89181efa255-1.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;为什么 Decoder 要遮住右边?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;这个问题很关键。&lt;/p&gt;
&lt;p&gt;想象你在做翻译,你正在说第三个英文词。如果你已经知道了第四个词和第五个词是什么,那这道题就没意义了,因为你直接照抄就行了。&lt;/p&gt;
&lt;p&gt;所以 Decoder 必须「遮住右边」,这叫 Masked Attention。每个词在预测的时候,只能看到它前面已经确定的词,不能偷看后面的答案。&lt;/p&gt;
&lt;p&gt;这就像考试时用手挡住下面的题,一道一道做。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 4" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/8cad8307-3bec-4d25-af4b-80ab3cdccfb8-1.png"&gt;&lt;/p&gt;
&lt;h2 id="环顾会议室self-attention-机制"&gt;&lt;a href="#%e7%8e%af%e9%a1%be%e4%bc%9a%e8%ae%ae%e5%ae%a4self-attention-%e6%9c%ba%e5%88%b6" class="header-anchor"&gt;&lt;/a&gt;环顾会议室,Self-Attention 机制
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;Self-Attention 到底是怎么工作的?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Self-Attention 是 Transformer 最核心的零件,无论是 Encoder 还是 Decoder 里都有它。&lt;/p&gt;
&lt;p&gt;我再打一个比方。&lt;/p&gt;
&lt;p&gt;想象你在一个会议室里,桌子上坐了 5 个人,分别代表句子里的 5 个词,「我」「爱」「吃」「苹」「果」。&lt;/p&gt;
&lt;p&gt;现在轮到「吃」这个词发言了。它要决定,在理解自己的意思时,应该重点关注桌上的哪个人。&lt;/p&gt;
&lt;p&gt;「吃」环顾了一圈会议室,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;看了一眼「我」,觉得还行,跟自己有点关系(谁在吃)&lt;/li&gt;
&lt;li&gt;看了一眼「爱」,觉得关系不大&lt;/li&gt;
&lt;li&gt;看了一眼「苹」,觉得关系很大(吃什么)&lt;/li&gt;
&lt;li&gt;看了一眼「果」,觉得关系也很大
于是「吃」决定,把更多注意力分给「苹」和「果」,少一点给「我」,几乎不理「爱」。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Self-Attention 干的就是这件事,让每个词都看一圈所有其他词,然后决定谁对自己最重要。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 5" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/5a07189e-0285-4d07-98b1-4e0e2961e13f-1.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;技术上是怎么实现的?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;在实际计算中,每个词会被变成三个向量,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q(Query)&lt;/strong&gt;,相当于这个词的「提问」,「我想找跟我相关的人」&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;K(Key)&lt;/strong&gt;,相当于这个词的「标签」,「我是什么身份」&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V(Value)&lt;/strong&gt;,相当于这个词的「内容」,「我能提供什么信息」
计算过程是,&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;用 Q 和所有的 K 做点积,算出每对词之间的相关度&lt;/li&gt;
&lt;li&gt;把相关度过一个 Softmax,变成 0-1 之间的注意力权重&lt;/li&gt;
&lt;li&gt;用注意力权重对 V 做加权求和,得到最终输出
用公式写就是,Attention(Q, K, V) = softmax(QK^T / √d_k) · V&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;那个 √d_k 是一个缩放因子,防止点积数值太大导致 Softmax 梯度消失。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 6" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/5b51785f-f6da-4313-9c7d-dec7ec1dcd9b-1.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;什么是 Multi-Head Attention?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Transformer 不止用一组 Q/K/V,而是同时用了多组,这叫 Multi-Head Attention。&lt;/p&gt;
&lt;p&gt;还是会议室的比喻。如果只有一个视角,「吃」可能只注意到「吃什么」这个关系。但如果同时有 8 个视角(8 个 head),那不同的 head 可以分别关注,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Head 1 关注「谁在吃」→ 注意力在「我」&lt;/li&gt;
&lt;li&gt;Head 2 关注「吃什么」→ 注意力在「苹果」&lt;/li&gt;
&lt;li&gt;Head 3 关注「什么态度」→ 注意力在「爱」
多个视角拼在一起,理解就更全面了。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="配图 7" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/1fcb3379-93c0-4ee1-a4b1-5f4984b5868a-1.png"&gt;&lt;/p&gt;
&lt;h2 id="只带耳朵的翻译bert"&gt;&lt;a href="#%e5%8f%aa%e5%b8%a6%e8%80%b3%e6%9c%b5%e7%9a%84%e7%bf%bb%e8%af%91bert" class="header-anchor"&gt;&lt;/a&gt;只带耳朵的翻译,BERT
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;BERT 到底是什么?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;2018 年,Google 又发了一篇论文,提出了 BERT(Bidirectional Encoder Representations from Transformers)。&lt;/p&gt;
&lt;p&gt;名字挺长,但核心就一句话,BERT 只用了 Transformer 的 Encoder 部分,把 Decoder 整个扔掉了。&lt;/p&gt;
&lt;p&gt;为什么?&lt;/p&gt;
&lt;p&gt;因为 BERT 的目标不是「翻译」也不是「写作」,它的目标是「理解」。&lt;/p&gt;
&lt;p&gt;还是用翻译团队的比喻。BERT 相当于一个只带耳朵的翻译,它不需要开口说话,它的工作就是,听完一段话之后,告诉你「这段话是正面情绪还是负面情绪」「这段话里的人名分别是谁」「这两段话是不是在说同一件事」。&lt;/p&gt;
&lt;p&gt;既然不需要说话,那口译官(Decoder)就不需要了。只留听力官(Encoder)就够了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 8" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/9b8c74c1-5c55-4af5-9e77-85529847c14f-1.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;BERT 的注意力和 Transformer 有什么不同?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;这是最关键的区别,&lt;strong&gt;BERT 的 Self-Attention 是双向的&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;在原始 Transformer 的 Decoder 里,每个词只能看到左边的词(Masked Attention),这是因为翻译/生成任务要求你一个词一个词地往外蹦,不能偷看后面的。&lt;/p&gt;
&lt;p&gt;但 BERT 不需要一个词一个词往外蹦,它的任务是「理解整段话」。理解一段话的时候,当然要前后都看。&lt;/p&gt;
&lt;p&gt;比如「苹果发布了新手机」这句话,你要判断「苹果」是水果还是公司,就必须看到后面的「新手机」。只看左边的话,你看到的是「苹果发布了」,没法确定是水果还是公司。&lt;/p&gt;
&lt;p&gt;所以 BERT 把 Mask 去掉了,让每个词都能同时看到左边和右边的所有词。&lt;/p&gt;
&lt;p&gt;这就是「Bidirectional」这个词的含义,双向。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 9" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/b9b96b4c-870c-435f-b6b4-8ede523b6bf9-1.png"&gt;&lt;/p&gt;
&lt;h2 id="填空题选手bert-的训练方式"&gt;&lt;a href="#%e5%a1%ab%e7%a9%ba%e9%a2%98%e9%80%89%e6%89%8bbert-%e7%9a%84%e8%ae%ad%e7%bb%83%e6%96%b9%e5%bc%8f" class="header-anchor"&gt;&lt;/a&gt;填空题选手,BERT 的训练方式
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;BERT 是怎么训练出来的?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;BERT 的训练方式非常巧妙,它用了两个任务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;任务一,Masked Language Model(MLM),做填空题&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;训练的时候,随机把句子里 15% 的词遮住,换成一个特殊符号 [MASK],然后让模型猜这个词是什么。&lt;/p&gt;
&lt;p&gt;比如原句是「我 爱 吃 苹 果」,遮住之后变成「我 [MASK] 吃 苹 果」,模型要猜出 [MASK] 的位置应该填「爱」。&lt;/p&gt;
&lt;p&gt;因为词被随机遮住,模型必须利用前后所有的上下文来猜。这就逼着它学会真正理解语义,而不是只记住一个方向的模式。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 10" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/73e89a0a-81de-40d0-9813-97b12ef29601-1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;任务二,Next Sentence Prediction(NSP),判断两句话是不是连着的&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;给模型两句话 A 和 B,让它判断 B 是不是 A 的下一句。&lt;/p&gt;
&lt;p&gt;比如,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A=「今天天气真好」 B=「适合出去走走」 → 是下一句 ✓&lt;/li&gt;
&lt;li&gt;A=「今天天气真好」 B=「股票又跌了」 → 不是下一句 ✗
这个任务让 BERT 学会理解句子之间的关系,对「问答」「推理」这些需要跨句子理解的任务特别有用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="配图 11" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/6bd0cd90-6234-4387-a1b2-379659279cc6-1.png"&gt;&lt;/p&gt;
&lt;h2 id="接龙选手gpt-的训练方式"&gt;&lt;a href="#%e6%8e%a5%e9%be%99%e9%80%89%e6%89%8bgpt-%e7%9a%84%e8%ae%ad%e7%bb%83%e6%96%b9%e5%bc%8f" class="header-anchor"&gt;&lt;/a&gt;接龙选手,GPT 的训练方式
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;GPT 又是怎么训练的?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;GPT 的训练方式完全不同。&lt;/p&gt;
&lt;p&gt;GPT 只用了 Transformer 的 Decoder 部分(把 Encoder 扔掉了,刚好和 BERT 反过来)。它的训练任务只有一个,&lt;strong&gt;预测下一个词&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;给 GPT 一句话的前面几个词,让它猜下一个词是什么,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入「我」→ 预测「爱」&lt;/li&gt;
&lt;li&gt;输入「我 爱」→ 预测「吃」&lt;/li&gt;
&lt;li&gt;输入「我 爱 吃」→ 预测「苹」&lt;/li&gt;
&lt;li&gt;输入「我 爱 吃 苹」→ 预测「果」
这叫**自回归(Autoregressive)**训练,模型像玩成语接龙一样,一个词一个词地往后接。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因为是往后接,所以每个词只能看到它前面的词,不能偷看后面的。这就是为什么 GPT 用的是 Masked Attention(单向)。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 12" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/7ab08602-2b7a-484a-b45d-80e5222c342c-1.png"&gt;&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;BERT 做填空,GPT 玩接龙,这两种方式各有什么好处?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;填空题(BERT)的好处是,模型必须前后都看,理解更深。坏处是,它不会「说话」,因为它从来没练过一个词一个词往外蹦的能力。&lt;/p&gt;
&lt;p&gt;接龙(GPT)的好处是,模型天生就会「说话」,你给它一个开头,它能一直往下写。坏处是,它只能看左边,理解不如 BERT 深。&lt;/p&gt;
&lt;p&gt;一句话总结,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BERT 是考试型选手,做阅读理解特别强,但你让它写作文它不行。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GPT 是写作型选手,写东西特别溜,但你让它做细粒度的分类判断,不如 BERT 精准。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 13" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/2917e341-dbcc-4d4f-9680-9e41af161e45-1.png"&gt;&lt;/p&gt;
&lt;h2 id="谁干什么活下游任务的分工"&gt;&lt;a href="#%e8%b0%81%e5%b9%b2%e4%bb%80%e4%b9%88%e6%b4%bb%e4%b8%8b%e6%b8%b8%e4%bb%bb%e5%8a%a1%e7%9a%84%e5%88%86%e5%b7%a5" class="header-anchor"&gt;&lt;/a&gt;谁干什么活,下游任务的分工
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;面试官经常问,BERT 和 GPT 分别适合什么场景?&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;BERT 这条线(Encoder-only)主要用在「需要理解但不需要生成」的场景,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;文本分类&lt;/strong&gt;,判断一句话是正面还是负面&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;命名实体识别(NER)&lt;/strong&gt;,找出句子里的人名、地名、机构名&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;问答系统&lt;/strong&gt;,给一段文本和一个问题,找出答案在文本的哪个位置&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;语义相似度&lt;/strong&gt;,判断两句话是不是在说同一件事&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;搜索排序&lt;/strong&gt;,判断搜索结果和查询词的相关度
GPT 这条线(Decoder-only)主要用在「需要生成」的场景,&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;对话&lt;/strong&gt;,ChatGPT、Claude 聊天&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;写作&lt;/strong&gt;,写文章、写邮件、写代码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;翻译&lt;/strong&gt;,虽然原始 Transformer 用的是 Encoder-Decoder,但现在大模型靠纯 Decoder 也能翻译得很好&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;代码补全&lt;/strong&gt;,GitHub Copilot
有意思的是,今天最火的大语言模型(LLM)全是 GPT 这条线的后代。GPT-4、Claude、LLaMA、千问、DeepSeek,清一色 Decoder-only 架构。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BERT 那条线没有消失,它的后代 RoBERTa、ALBERT、DeBERTa 还活跃在搜索引擎、广告系统、风控系统这些需要「快速精准判断」的场景里。只是不像 GPT 那条线这么出圈。&lt;/p&gt;
&lt;p&gt;&lt;img alt="配图 14" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/69f428a6-5902-4052-9b00-713617513c6a-1.png"&gt;&lt;/p&gt;
&lt;h2 id="回到面试一张表记住所有区别"&gt;&lt;a href="#%e5%9b%9e%e5%88%b0%e9%9d%a2%e8%af%95%e4%b8%80%e5%bc%a0%e8%a1%a8%e8%ae%b0%e4%bd%8f%e6%89%80%e6%9c%89%e5%8c%ba%e5%88%ab" class="header-anchor"&gt;&lt;/a&gt;回到面试,一张表记住所有区别
&lt;/h2&gt;&lt;p&gt;面试被问到的时候,你脑子里有这张表就够了,&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;对比项&lt;/th&gt;
 &lt;th&gt;BERT&lt;/th&gt;
 &lt;th&gt;GPT&lt;/th&gt;
 &lt;th&gt;原始 Transformer&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;用了哪部分&lt;/td&gt;
 &lt;td&gt;只用 Encoder&lt;/td&gt;
 &lt;td&gt;只用 Decoder&lt;/td&gt;
 &lt;td&gt;Encoder + Decoder&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;注意力方向&lt;/td&gt;
 &lt;td&gt;双向(左右都看)&lt;/td&gt;
 &lt;td&gt;单向(只看左边)&lt;/td&gt;
 &lt;td&gt;Encoder 双向,Decoder 单向&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;训练方式&lt;/td&gt;
 &lt;td&gt;填空(MLM + NSP)&lt;/td&gt;
 &lt;td&gt;接龙(预测下一个词)&lt;/td&gt;
 &lt;td&gt;翻译(Seq2Seq)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;擅长什么&lt;/td&gt;
 &lt;td&gt;理解、分类、NER&lt;/td&gt;
 &lt;td&gt;生成、对话、写作&lt;/td&gt;
 &lt;td&gt;翻译、摘要&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;代表模型&lt;/td&gt;
 &lt;td&gt;BERT/RoBERTa/DeBERTa&lt;/td&gt;
 &lt;td&gt;GPT-4/Claude/LLaMA&lt;/td&gt;
 &lt;td&gt;T5/BART&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;诞生年份&lt;/td&gt;
 &lt;td&gt;2018&lt;/td&gt;
 &lt;td&gt;2018(GPT-1)&lt;/td&gt;
 &lt;td&gt;2017&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img alt="配图 15" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/4f5cc59d-cc2d-4e7b-8278-55c83ae6f6da-1.png"&gt;&lt;/p&gt;
&lt;p&gt;最后用一句话帮你记住,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Transformer 是一个完整的翻译团队,BERT 只留了耳朵,GPT 只留了嘴巴。BERT 做填空题练出来的,所以它听得懂但不会说。GPT 玩接龙练出来的,所以它能一直往下说。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;下次面试被问到,先说这句话,再展开讲细节,稳了。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;图解系列持续更新,如果你觉得有用,帮我点个赞。&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>