模型背后:LLM内部机制
一、整体架构:Transformer
现代大模型几乎都基于 Transformer 架构(2017 年由 Google 提出)。其核心思想是用"注意力机制"来处理序列数据,而不是像 RNN 那样逐步递推。
二、核心机制详解
2.1 Token 化(Tokenization)
输入文本首先被切分成 token(词片段),例如 "unhappiness" 可能被切成 ["un", "happi", "ness"]。模型处理的是 token 序列,而非原始字符。
2.2 词嵌入(Embedding)
每个 token 被映射为一个高维向量(如 4096 维),这个向量捕捉了词的语义信息。位置编码(Positional Encoding) 会叠加在上面,让模型知道每个 token 在序列中的位置。
2.3 自注意力机制(Self-Attention)
这是 Transformer 的核心。对于序列中的每个 token,模型会计算它与其他所有 token 的"相关性权重",然后加权聚合信息。
每个 token 会生成三个向量:
- Q(Query):我在找什么?
- K(Key):我能提供什么?
- V(Value):我实际携带的信息
注意力分数的计算公式为:
Attention(Q, K, V) = softmax(QKᵀ / √d) · V
这让模型能够捕捉长距离依赖,比如理解代词指代关系。
2.4 多头注意力(Multi-Head Attention)
并行运行多个注意力头(如 32 个),每个头关注不同类型的语义关系(句法、语义、指代等),最后拼接结果。
2.5 前馈网络(FFN)
每个注意力层之后接一个两层全连接网络,负责对信息进行非线性变换和"记忆存储"。研究表明 FFN 层存储了大量事实性知识。
2.6 层叠结构(Stacking Layers)
上述结构重复堆叠(GPT-4 估计有 120+ 层),浅层捕捉语法,深层捕捉语义和推理。
2.7 自回归生成(Autoregressive Generation)
推理时,模型每次只预测下一个 token,然后将其加入输入,再预测下一个,循环往复。这就是为什么生成是逐字出现的。
三、堆叠的 Transformer 块
3.1 单个 Transformer 块的结构
每个 Transformer 块(也叫 Layer)包含两个子模块:
输入 x
↓
[Multi-Head Self-Attention] + 残差连接 → LayerNorm
↓
[Feed-Forward Network (FFN)] + 残差连接 → LayerNorm
↓
输出 x'
残差连接(Residual Connection) 的作用是将输入直接加到输出上:
output = LayerNorm(x + SubLayer(x))
这解决了深层网络的梯度消失问题。
3.2 为什么要"堆叠"?
单个 Transformer 块的表达能力有限,堆叠多层可以让模型逐层抽象:
Token Embeddings
↓
Block 1 ← 捕捉局部语法(词性、短语结构)
↓
Block 2 ← 捕捉句子内部关系
↓
Block 3 ← 捕捉跨句语义
↓
......
↓
Block N ← 捕捉高层抽象概念、推理关系
↓
最终隐藏状态 h
不同层关注的信息是不同的。研究(如 BERTology)发现:浅层更关注语法,深层更关注语义和世界知识。GPT-3 有 96 层,GPT-4 估计超过 120 层。
四、语言建模头(Language Modeling Head)
4.1 它是什么?
语言建模头(LM Head)是模型最顶层的一个线性变换,负责将最后一个 Transformer 块输出的隐藏向量,转换为词表上的概率分布。
最后一层 Block 的输出
h ∈ R^(d_model) ← 比如维度 4096
↓
线性层(无偏置)
W ∈ R^(vocab_size × d_model) ← 比如 32000 × 4096
↓
logits ∈ R^(vocab_size) ← 每个词的原始分数
↓
Softmax
↓
概率分布 P(next token | context)
4.2 权重共享(Weight Tying)
LM Head 的权重矩阵 W 通常与最底层的**词嵌入矩阵(Embedding Matrix)**共享,即它们是同一个矩阵。这样做大幅减少参数量,同时语义上也合理——"把词映射到向量"和"把向量映射回词"本质上是互逆操作。
4.3 推理时的采样策略
得到概率分布后,有多种采样策略:
| 策略 | 说明 |
|---|---|
| Greedy | 每次取概率最高的 token |
| Temperature | 调整分布的"平坦度",temperature 越高越随机 |
| Top-k | 只从概率最高的 k 个 token 中采样 |
| Top-p (nucleus) | 从累积概率达到 p 的最小集合中采样 |
4.4 完整的前向传播流程
输入文本: "The cat sat on the"
↓
Tokenizer → [The, cat, sat, on, the]
↓
Embedding + Positional Encoding
↓
Block 1 → Block 2 → ... → Block N
↓
取最后一个位置的隐藏向量 h_last
↓
LM Head(线性层 + Softmax)
↓
输出概率: P("mat")=0.32, P("floor")=0.18, ...
↓
采样得到下一个 token → 拼接回输入 → 继续循环
五、训练过程
大模型的训练分三个阶段:
5.1 预训练(Pre-training)
在海量文本上做"下一个 token 预测",学习语言的统计规律和世界知识。这一步消耗绝大部分算力。
5.2 指令微调(SFT, Supervised Fine-Tuning)
用高质量的"问题—回答"对进行监督学习,让模型学会遵循指令。
5.3 强化学习对齐(RLHF)
通过人类反馈训练奖励模型,再用 PPO 等算法优化,让输出更符合人类偏好(有用、无害、诚实)。
六、前向推理的输出质量保障
6.1 训练数据的统计压缩
模型在预训练阶段看过海量的人类书写文本,本质上是在学习"什么样的词序列在人类语言中是合理的"。通顺性主要来自这里——训练数据中几乎不存在语法混乱的句子,所以模型学到的分布天然倾向于生成流畅的文本。
6.2 注意力机制维持上下文一致性
每次预测下一个 token 时,模型通过注意力机制"看到"整个已生成的上下文,并计算当前位置与所有历史 token 的关联权重,保证了局部连贯性。
已生成: "今天天气很好,我决定去公园__"
↑
注意力会强烈关注"公园"、"天气好"、"决定"
→ 下一个词大概率是"散步"、"跑步"、"玩"
而不是"手术"、"编程"
6.3 RLHF 对"好输出"的强化
预训练只保证流畅,不保证有用或正确。RLHF 在此基础上做了关键的校正:人类标注员对模型的多个输出进行排序,训练出一个奖励模型,然后用强化学习让语言模型朝着"人类认为好的输出"方向优化。
6.4 Chain-of-Thought 推理
模型并没有内置的逻辑推理模块,但训练数据中包含大量推理过程的文本(数学解题步骤、论文推导、代码注释等),模型学会了模拟推理的形式。
Chain-of-Thought(思维链)技术正是利用了这一点——让模型先生成中间步骤,再给出答案:
不用 CoT: "问题 → 直接答案" (容易出错)
用 CoT: "问题 → 步骤1 → 步骤2 → 步骤3 → 答案"
↑ 每一步都约束了下一步的预测空间
七、涌现能力(Emergent Abilities)
当模型规模超过某个阈值,会突然涌现出小模型完全不具备的能力,比如逻辑推理、代码生成、少样本学习(In-context Learning)。这背后的机制目前仍是研究热点。
八、局限性的根源
理解了机制,也就理解了局限:
| 局限性 | 根本原因 |
|---|---|
| 幻觉(Hallucination) | 模型本质上是概率预测,没有"知道自己不知道"的内在机制 |
| 知识截止 | 知识来自训练数据,无法实时更新 |
| 上下文窗口限制 | 注意力计算复杂度是 O(n²),处理超长文本代价极高 |
| 无持久记忆 | 每次对话独立,没有跨会话的记忆(除非外挂存储) |
| 精确计算弱 | 模型是在"预测看起来像正确答案的 token",而非真正执行算法 |
核心结论:大模型的输出质量,本质上是训练数据质量、模型规模、以及对齐训练三者共同作用的结果,而不是任何形式的逻辑验证或事实核查机制。它是一个极其精密的"下一个词预测器",恰好在足够大的规模下涌现出了看起来像推理的能力。
文档生成时间:2026-04-25
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)