TL;DR
面试官问你Transformer原理,你能答到什么深度?本文从12个高频面试题入手,带你搞懂大模型的底层架构——不是背概念,是真正理解为什么GPT用单向注意力、LLaMA为什么选RoPE、多头注意力到底在干什么。读完这篇,你能用生活比喻讲清楚自注意力机制,能画出三种LM范式的架构图,还能回答"什么场景用BERT、什么场景用LLaMA"这种送分题。
一、什么是LLM?与传统NLP模型的本质区别
核心定义
大语言模型(LLM)是基于Transformer架构、通过海量文本预训练的自回归生成模型。它的"大"体现在三个维度:
- 参数规模:从GPT-3的1750亿到LLaMA 3.1的4050亿参数
- 训练数据:万亿级token(LLaMA 3用了15T tokens)
- 涌现能力:规模突破临界点后出现的零样本推理、上下文学习等能力
与传统NLP的四大区别
维度
传统NLP模型
大语言模型
训练范式
任务特定监督学习
预训练+微调
数据需求
需要大量标注数据
无监督预训练,少量标注微调
泛化能力
单任务专家
多任务通才
知识来源
特征工程+规则
从数据中自动学习
生活比喻:传统NLP像专科医生,只会看心脏病;LLM像全科医生,啥病都能聊两句,虽然不一定比专科医生精准,但胜在覆盖面广。
二、主流模型对比:GPT vs BERT vs LLaMA
架构差异表
特性
GPT系列
BERT
LLaMA系列
架构类型
Decoder-only
Encoder-only
Decoder-only
注意力机制
单向因果注意力
双向注意力
单向因果+GQA
位置编码
绝对位置编码
绝对位置编码
RoPE旋转位置编码
归一化
Layer Normalization
Layer Normalization
RMSNorm + Pre-LN
激活函数
GELU
GELU
SwiGLU
训练目标
下一词预测
MLM + NSP
下一词预测
LLaMA 3最新参数(基于2025年技术报告)
- 词表大小:128K tokens(用tiktoken替代sentencepiece)
- 上下文长度:8K(LLaMA 3)→ 128K(LLaMA 3.1)
- RoPE频率:500,000(支持超长上下文)
- 405B模型:126层、16384维、128个注意力头
关键洞察:LLaMA的优势不在参数量,而在架构细节的极致打磨——RMSNorm比LayerNorm快7%-64%,RoPE让模型能处理比训练时更长的序列。
参考资料:Meta LLaMA 3技术报告 (arXiv:2407.21783)
三、Transformer核心原理:自注意力机制为什么有效?
自注意力的本质
自注意力(Self-Attention)让模型在处理每个词时,能"看到"整个句子的其他词,并动态决定关注哪些词。
计算步骤(6步拆解)
-
生成Q/K/V向量:输入词向量通过三个权重矩阵变换
Query = 输入 × W_Q (我要找什么?)
Key = 输入 × W_K (我是什么?)
Value = 输入 × W_V (我的内容是什么?) -
计算注意力分数:Query和Key做点积
Score = Q · K^T -
缩放归一化:除以√d_k(防止梯度消失)
Score = Score / √64 -
Softmax归一化:转换为概率分布
Attention_Weights = Softmax(Score) -
加权求和:用权重对Value加权
Output = Attention_Weights × V -
拼接输出:多头注意力的结果拼接后通过线性层
生活比喻
想象你在图书馆找资料:
- Query:你的问题("我要找关于Transformer的书")
- Key:每本书的标签("深度学习"、"NLP"、"计算机视觉")
- Value:书的内容
- 注意力分数:你的问题和每本书标签的匹配度
- 加权求和:根据匹配度,重点看最相关的几本书
为什么比RNN好?
维度
RNN
Self-Attention
并行化
必须顺序处理
所有位置同时计算
长距离依赖
梯度消失/爆炸
直接建模任意距离
计算复杂度
O(n)
O(n²)(但可并行)
关键洞察:RNN像接力赛,信息要一棒一棒传;Self-Attention像群聊,所有人同时说话,谁说的重要就多听谁的。
参考资料:Attention Is All You Need (arXiv:1706.03762)
四、多头注意力的必要性
为什么不用单头?
单头注意力只能学习一种关注模式,就像你只能用一个角度看问题。
多头注意力把注意力分成多个"头",每个头学习不同的关注模式:
- Head 1:关注句法关系(主谓宾)
- Head 2:关注语义相似性(同义词)
- Head 3:关注位置信息(相邻词)
数学表达
MultiHead(Q, K, V) = Concat(head_1, ..., head_h) × W_O
其中 head_i = Attention(Q×W_Q^i, K×W_K^i, V×W_V^i)
实验证据
LLaMA 3 405B使用128个注意力头,每个头的维度是128(16384 / 128)。研究表明:
- 不同头确实学到了不同的语言模式
- 某些头专注于位置信息,某些头专注于语义
- 移除任何一个头都会导致性能下降
生活比喻:看一部电影,你可以关注剧情、演技、摄影、配乐——多头注意力就是让模型同时从多个角度理解文本。
参考资料:Analyzing Multi-Head Self-Attention (arXiv:1905.09418)
五、位置编码:绝对位置 vs 相对位置 vs RoPE
为什么需要位置编码?
Self-Attention本身是位置无关的——打乱句子顺序,注意力分数不变。但语言是有顺序的,"狗咬人"和"人咬狗"意思完全不同。
三种位置编码对比
方法
原理
优势
劣势
代表模型
绝对位置编码
直接叠加位置向量
简单直观
难以外推到更长序列
GPT-2, BERT
相对位置编码
在注意力矩阵中加入相对距离偏置
泛化能力强
计算复杂度高
T5, DeBERTa
RoPE旋转位置编码
通过复数旋转注入位置信息
外推能力强,计算高效
理论复杂
LLaMA系列
RoPE的核心思想
旋转位置编码(Rotary Positional Embeddings)把词向量成对分组,在二维平面上旋转一个角度:
旋转角度 = 位置索引 m × 频率参数 θ
关键特性:两个token的注意力分数只取决于它们的相对距离,而非绝对位置。
为什么LLaMA选RoPE?
- 长上下文外推:LLaMA 3.1训练时用8K上下文,推理时能处理128K
- 计算效率:不需要额外的位置嵌入层
- RoPE频率调整:LLaMA 3.1把base frequency调到500,000,支持超长上下文
生活比喻:绝对位置编码像门牌号("我住3号楼"),相对位置编码像方向("我在你左边两栋楼"),RoPE像指南针旋转角度("我在你东北45度方向")。
参考资料:RoFormer论文 (arXiv:2104.09864)、LLaMA 3技术报告
六、Tokenizer原理:BPE vs WordPiece vs SentencePiece
为什么需要Tokenizer?
模型不能直接处理文本,需要把文本切分成token(词元),再转换成数字ID。
三种算法对比
算法
原理
优势
代表模型
BPE
从字符开始,迭代合并高频字符对
平衡词表大小和OOV
GPT系列
WordPiece
类似BPE,但用似然最大化选择合并
更好的语言建模
BERT
SentencePiece
直接从原始文本训练,无需预分词
支持多语言,无空格依赖
LLaMA 1/2
BPE工作流程
- 初始化:词表 = 所有字符
- 统计:找出最高频的字符对(如"e"+"r" → "er")
- 合并:把"er"加入词表
- 重复:直到词表达到目标大小(如32K)
示例:
原文:lower lower newest widest
初始:l o w e r _ l o w e r _ n e w e s t _ w i d e s t
迭代1:l o w er _ l o w er _ n e w e s t _ w i d e s t
迭代2:l ow er _ l ow er _ n e w e s t _ w i d e s t
...
LLaMA 3的重大变化
LLaMA 3放弃SentencePiece,改用tiktoken(GPT-4同款):
- 词表从32K扩大到128K
- 更好的多语言支持
- 更高效的压缩率(同样文本用更少token)
参考资料:Neural Machine Translation of Rare Words with Subword Units (arXiv:1508.07909)
七、prefix LM vs causal LM vs encoder-decoder
三种范式架构图
Encoder-only (BERT):
[输入] → [双向Encoder] → [输出表示]
Decoder-only (GPT/LLaMA):
[输入] → [单向Decoder] → [生成下一词]
Encoder-Decoder (T5):
[输入] → [双向Encoder] → [单向Decoder] → [生成输出]
详细对比
维度
Causal LM
Prefix LM
Encoder-Decoder
注意力
单向因果
前缀双向+后缀单向
Encoder双向+Decoder单向
适用任务
文本生成
理解+生成
Seq2Seq任务
代表模型
GPT, LLaMA
GLM, PaLM
T5, BART
优势
生成流畅
兼顾理解和生成
任务适配性强
劣势
理解能力弱
训练复杂
参数量大
Causal LM(因果语言模型)
核心:只能看到当前位置之前的token(单向注意力)
掩码矩阵:
t1 t2 t3 t4
t1 [ 1 0 0 0 ]
t2 [ 1 1 0 0 ]
t3 [ 1 1 1 0 ]
t4 [ 1 1 1 1 ]
为什么GPT/LLaMA选这个:
- 自回归生成天然适配
- 训练和推理一致
- 扩展性好(参数越大效果越好)
Prefix LM
核心:前缀部分双向注意力,生成部分单向注意力
应用场景:
- 问答任务(问题部分双向,答案部分单向)
- 填空任务
代表模型:GLM(ChatGLM的前身)
Encoder-Decoder
核心:Encoder处理输入(双向),Decoder生成输出(单向+交叉注意力)
适用任务:
- 机器翻译
- 文本摘要
- 任何输入输出差异大的任务
为什么现在不流行:
- 参数量是Decoder-only的2倍
- 预训练目标不如下一词预测简单
- 大规模实验证明Decoder-only效果更好
参考资料:GLM论文 (arXiv:2103.10360)
八、Layer Normalization的三种实现
三种方法对比
方法
公式特点
优势
代表模型
Post-LN
LN(x + Sublayer(x))
原始设计,理论分析充分
原始Transformer
Pre-LN
x + Sublayer(LN(x))
梯度流更稳定,深层模型训练更易
GPT-3/4
RMSNorm
仅缩放,省略均值中心化
计算效率高(减少7%-64%时间)
LLaMA系列
RMSNorm在LLaMA中的实现
核心思想:LayerNorm的成功主要靠缩放不变性,而非平移不变性。RMSNorm舍弃均值计算,只用均方根缩放。
数学公式:
RMS(a) = √(1/n × Σ(a_i²))
ā_i = (a_i / RMS(a)) × g_i
代码实现:
class RMSNorm(nn.Module):
def __init__(self, layer_shape, eps=1e-6):
super().__init__()
self.scale = nn.Parameter(torch.ones(layer_shape))
def forward(self, x):
rms = torch.sqrt(torch.mean(x ** 2, dim=-1, keepdim=True) + self.eps)
return x / rms * self.scale
为什么LLaMA选RMSNorm?
- 计算效率:减少均值计算和减法操作
- 梯度稳定性:处理不同量级激活值时更鲁棒
- 2025年技术报告新发现:优化的fused kernels让LayerNorm速度接近RMSNorm,历史性能差距主要来自naive实现
参考资料:LLaMA技术报告、Root Mean Square Layer Normalization (arXiv:1910.07467)
九、涌现能力的本质
什么是涌现能力?
涌现能力(Emergent Abilities)指模型规模突破某个临界点后,突然出现的新能力:
- 零样本推理:不需要示例就能完成任务
- 上下文学习:从prompt中的示例学习
- 思维链推理:逐步推理复杂问题
规模定律 vs 数据质量
规模定律派(OpenAI、DeepMind):
- 参数越多、数据越多、计算越多 → 能力越强
- 涌现是量变到质变的必然结果
数据质量派(Meta、Mistral):
- LLaMA 2用2T tokens训练,性能超过用更多数据的模型
- 高质量数据 > 海量低质量数据
2025年技术报告共识
两者都重要:
- 规模是基础(7B以下很难出现涌现)
- 数据质量决定上限(垃圾数据再多也没用)
- 训练策略很关键(课程学习、数据去重)
生活比喻:规模定律像健身房练肌肉,数据质量像营养摄入——光练不吃长不大,光吃不练也白搭。
参考资料:Scaling Laws for Neural Language Models (arXiv:2001.08361)
十、模型幻觉的根源与缓解方案
幻觉分类
- 内在幻觉:与输入源内容矛盾
- 外在幻觉:无法从输入验证的内容
- Prompt诱导幻觉:不良提示结构导致
- 模型内部幻觉:架构、预训练数据或推理行为导致
根源分析(基于2025年OpenAI研究报告)
幻觉本质是激励问题:下一词预测训练目标奖励"自信猜测"而非"校准的不确定性"。
生活比喻:考试时不会的题,瞎蒙一个答案比写"我不知道"得分更高——模型学会了"自信地瞎说"。
最新检测方法(基于2024-2025技术报告)
方法
类型
核心原理
Semantic Entropy (Nature 2024)
不确定性估计
通过语义空间熵检测"confabulations"
SelfCheckGPT
零资源黑盒
多次生成比对,波动大则风险高
FActScore
原子事实验证
将输出分解为原子事实逐一验证
MHAD (IJCAI 2025)
内部表征分析
利用LLM内部层间互补信息检测
缓解最佳实践
- RAG检索增强生成 — 最主流方案,让模型基于检索到的事实回答
- Chain-of-Thought提示 — GPT-4o幻觉率从53%降至23%
- DPO偏好优化 — 替代复杂RLHF流程,训练模型拒绝幻觉
- 引用机制 — 输出与源文档关联,可追溯验证
参考资料:ACM TOIS 2024幻觉综述、Nature 2024语义熵论文
十一、复读机问题:为什么LLM会重复输出?
根源分析
- 自我强化效应:已生成token概率在后续步骤被放大
- 注意力机制倾向:倾向于"复制"已见token
- 解码策略问题:Greedy search最易产生重复
主流解决方案
方案
原理
推荐值
Repetition Penalty
对已出现token的logit施加惩罚
1.1-1.2
Nucleus Sampling (Top-p)
从累积概率超过阈值p的最小token集合采样
0.9-0.95
Temperature
调整概率分布尖锐程度
任务依赖
Frequency Penalty
惩罚与token出现次数成正比
0.3-0.5
基于2024-2025技术报告的最新进展
- Min-p Sampling (ICLR 2025):动态调整采样阈值,高温度下比top-p更好平衡质量和多样性
- LZ Penalty (2025):基于LZ77压缩算法的惩罚机制,使推理模型能用greedy解码而不退化
实战建议:
- 创意写作:temperature=0.8-1.0, top_p=0.95
- 代码生成:temperature=0.2-0.5, repetition_penalty=1.1
- 问答任务:temperature=0.7, top_p=0.9
参考资料:ACL 2025 Findings、ICLR 2025 Min-p论文
十二、什么场景用BERT,什么场景用LLaMA?
核心判断标准
看任务类型:
- 理解任务 → BERT(Encoder-only)
- 生成任务 → LLaMA(Decoder-only)
详细场景对比
任务类型
推荐模型
原因
文本分类
BERT
双向注意力,更好的语义理解
命名实体识别
BERT
需要看到完整上下文
情感分析
BERT
理解任务,不需要生成
问答系统(抽取式)
BERT
从文本中抽取答案
文本生成
LLaMA
自回归生成,流畅度高
对话系统
LLaMA
需要生成回复
代码生成
LLaMA
自回归生成代码
问答系统(生成式)
LLaMA
生成答案而非抽取
2025年趋势
Decoder-only一统天下:
- LLaMA等模型通过微调也能做理解任务
- 统一架构降低工程复杂度
- 生成式问答效果超过抽取式
BERT的生存空间:
- 资源受限场景(BERT-base只有110M参数)
- 对延迟极度敏感的任务
- 不需要生成能力的纯理解任务
生活比喻:BERT像阅读理解专家,只会分析文本;LLaMA像作家,既能读懂也能写作——现在大家更喜欢多面手。
小结
本文从12个高频面试题入手,系统梳理了大模型的基础架构:
- LLM定义:参数规模、训练数据、涌现能力三位一体
- 模型对比:GPT单向生成、BERT双向理解、LLaMA架构极致优化
- 自注意力:Q/K/V机制让模型动态关注重要信息
- 多头注意力:从多个角度理解文本
- 位置编码:RoPE让LLaMA能处理超长上下文
- Tokenizer:BPE/WordPiece/SentencePiece各有千秋
- 三种LM范式:Decoder-only成为主流
- Layer Normalization:RMSNorm效率更高
- 涌现能力:规模+数据质量缺一不可
- 幻觉问题:RAG+CoT+DPO三管齐下
- 复读机问题:调整解码参数即可缓解
- 场景选择:理解用BERT,生成用LLaMA
下一篇预告:训练与优化篇——LoRA、QLoRA、RLHF、DPO怎么选?