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怎么选?






程序员数学扫盲课
AI周刊:大模型、智能体与产业动态追踪
Claude Code 全体系指南:AI 编程智能体实战
Karpathy神经网络零基础课程
最新评论
开源的AI对话监控面板很实用,正好团队在找这类工具。准备试用一下。
折叠屏市场确实在升温,不过售罄也可能是备货策略。期待看到实际销量数据。
从磁盘I/O角度解释B树的设计动机,这个切入点很好。终于理解为什么数据库不用二叉树了。
IT术语转换确实是个痛点,之前用搜狗总是把技术词汇转成奇怪的词。智谱这个方向值得期待。
这个工具结合LLM和搜索API的思路很有意思,正好解决了我在做知识管理时遇到的问题。请问有没有部署文档?
这个漏洞确实严重,我们团队上周刚遇到类似问题。建议补充一下如何检测现有项目是否受影响的方法。
从简单规则涌现复杂性这个思路很有意思,让我想起元胞自动机。不过数字物理学在学术界争议还挺大的。
我也遇到了指令跟随变差的问题,特别是多轮对话时容易跑偏。不知道是模型退化还是负载优化导致的。