Transformer、BERT、GPT、LLaMA:四个名字,一条大模型主线
小刘檀木的大模型日记 · Day17 · Transformer、BERT、GPT、LLaMA-帮普通人把AI学进简历系列

Day17|Transformer、BERT、GPT、LLaMA:四个名字,一条大模型主线
前言:别再把四个名词背成四张孤岛卡片
学大模型最容易出现一种幻觉:你以为自己在学技术,其实是在背一串英文缩写。
Transformer、BERT、GPT、LLaMA,四个名字排在一起,像极了技术圈版“亲戚关系表”。
今天谁是爷爷,谁是儿子,谁又是堂弟?背到最后,脑子里只剩一句话:我好像都听过,但我说不清它们到底差在哪。
上一篇 Day16 我们讲了 RNN、LSTM、GRU。那一代模型像排队读句子:第一个词读完,传给第二个词;第二个词读完,再传给第三个词。
Transformer 一出来,画风就变了。
它不再让 token 排队传话,而是把所有 token 拉进一个会议室:每个人都可以直接看别人一眼,再决定自己该记住谁。

所以今天这篇,我们不背论文,不堆公式。就把这四个名字串成一条线:
Transformer 是地基,BERT 和 GPT 是两条用法,LLaMA 是开源工程现场最常见的入口。
PART 01:Transformer 是地基——注意力让每个 token 都能看见全局
先把最容易混的地方说清楚:Transformer 不是 ChatGPT,也不是某一个模型产品。
它更像一套搭楼的结构图。后来的 BERT、GPT、LLaMA,很多都是在这套结构图上盖出来的楼,只是楼的朝向和用途不一样。
Transformer 的核心,是 Self-Attention,自注意力。
这个名字听起来很玄,其实可以拆成三个角色:
- Query:我现在想找什么信息
- Key:别人身上有什么标签
- Value:如果我决定关注你,我要拿走什么内容
比如一句话:“小明把苹果放进书包,因为它太重了。”
这里的“它”到底指苹果还是书包?人读的时候,会自动回头看上下文。Self-Attention 做的就是类似的事:让每个 token 都去看其他 token,算一遍“我应该更关注谁”。

上一个极简版代码,感受一下注意力在干嘛:
import torch
import torch.nn.functional as F
def scaled_dot_product_attention(q, k, v):
dim = q.size(-1)
scores = q @ k.transpose(-2, -1) / (dim ** 0.5)
weights = F.softmax(scores, dim=-1)
return weights @ v, weights
q = torch.randn(1, 4, 8)
k = torch.randn(1, 4, 8)
v = torch.randn(1, 4, 8)
output, attention_weights = scaled_dot_product_attention(q, k, v)
print(output.shape) # torch.Size([1, 4, 8])
print(attention_weights.shape) # torch.Size([1, 4, 4])
attention_weights 的 [4, 4] 很关键。
它表示:4 个 token 里,每个 token 都给其他 4 个 token 打了一次关注分。也就是说,它不是只看前一个状态,而是直接建立了一张“全局关系表”。
这就是 Transformer 比 RNN 更适合大规模训练的原因之一:它把顺序传话,改成了全员并行对齐。
当然,代价也很明显。序列越长,这张关系表越大,计算和显存压力也越高。后来长上下文、稀疏注意力、FlashAttention 等优化,本质上都在想办法让这张表算得更快、更省。
PART 02:BERT 和 GPT 是两条路线——一个擅长理解,一个擅长生成
有了 Transformer 这套地基之后,问题来了:这栋楼到底怎么盖?
BERT 和 GPT 给出了两种经典答案。
BERT 走的是 Encoder-only 路线。
Encoder 的特点是:它可以双向看上下文。左边能看,右边也能看,所以它特别适合“理解一段已有文本”。
- 判断一句评论是正面还是负面
- 从合同里抽取甲方、乙方、金额
- 判断两个句子是不是同一个意思
- 给 RAG 检索结果做 rerank 重排序
BERT 的训练方式里有个经典任务叫 Masked Language Modeling。简单说,就是把句子里某些词遮住,让模型根据左右上下文猜回来。
text = "我今天用 [MASK] 写了一段代码"
target = "Python"
# BERT 类任务:看左右上下文,猜中间被遮住的词
GPT 走的是 Decoder-only 路线。
Decoder 的特点是:它只看左边已经出现的 token,然后预测下一个 token。这个动作不断重复,就变成了生成。
tokens = ["我", "今天", "用"]
# GPT 类任务:根据前面的 token,预测下一个 token
next_token = "Python"
这就是 GPT 为什么天然适合对话、写作、代码生成、Agent 推理链。
它不是在“填空”,而是在一路往下续写。

所以工程上别再问:“BERT 和 GPT 谁更先进?”
这个问题有点像问螺丝刀和电钻谁更先进。真正该问的是:你的任务到底是理解,还是生成?
如果你要做文本分类、实体抽取、语义匹配、embedding、reranker,BERT 这条 Encoder 路线依然很有价值。
如果你要做聊天机器人、文案生成、代码助手、复杂任务规划,那 GPT 这条 Decoder 路线就是主场。
PART 03:LLaMA 的意义——把 GPT 路线带进开源工程现场
讲到这里,LLaMA 就好理解了。
它不是 BERT 的升级版,也不是 Transformer 之外的新物种。它更像是 Decoder-only 大模型路线在开源世界里的代表选手。
普通开发者为什么会关心 LLaMA?
不是因为它名字好听,也不是因为参数量看起来吓人,而是因为它把很多过去只能通过闭源 API 使用的能力,带进了可以下载、部署、微调、量化、私有化的工程现场。
比如你在公司做一个 AI 助手,老板说了三句话:
- 数据不能出内网
- 成本不能失控
- 最好能用我们自己的业务语料调一下
这时候你就会发现,开源模型不是情怀,是方案空间。

但我也想泼一盆冷水:不要把 LLaMA 神化成万能答案。
真实选型时,参数量只是一个维度。你还要看:
- 中文能力够不够
- 上下文长度够不够
- 推理成本压不压得住
- 是否方便量化和部署
- 生态工具是否成熟
- 你的业务到底需要生成、检索、分类,还是多工具调用
很多项目不是“模型不够大”死掉的,而是“问题没拆清楚”死掉的。
如果只是做 FAQ 问答,RAG + 中等模型可能就够了;如果只是做候选文档排序,一个 reranker 可能比大模型更稳;如果要做复杂流程自动化,再考虑 GPT/LLaMA 这类生成模型接工具。
结尾:名词不是护城河,结构才是
我们把今天这张图再收一下:
- Transformer:地基,核心是注意力,让 token 建立全局关系
- BERT:Encoder-only,偏理解,适合分类、抽取、匹配、重排序
- GPT:Decoder-only,偏生成,适合对话、续写、代码和 Agent
- LLaMA:开源 Decoder 大模型代表,把生成能力带进私有化和本地工程
你看,四个名词并不复杂。复杂的是,我们总想一次性把所有细节吞下去。
真正的入门,不是把名词背得滚瓜烂熟,而是知道它们在系统里各自负责哪一段路。
当你能说清楚“这个任务该用理解模型,还是生成模型”,你就已经从背概念,开始走向做系统了。
互动时间:你现在最容易混的是 Transformer、BERT、GPT、LLaMA 里的哪一个?评论区留一个词,我下一篇可以顺手把它拆得更细。
下一篇预告:我们继续往工程里走,聊聊大模型推理时最常见的几个参数:temperature、top_p、max_tokens,到底该怎么调。
— END —
小刘檀木 · 帮普通人把 AI 学进简历
更多推荐

所有评论(0)