Hotdry.

Article

从Token到注意力:图解LLM内部推理机制与训练动态

深入解析LLM从tokenization到注意力计算的内部机制,涵盖RoPE位置编码、多头注意力、FFN知识存储与残差流设计,提供可落地的工程参数与部署要点。

2026-06-06ai-systems

大型语言模型(LLM)看似复杂的输出背后,是一套精密的流水线机制。从输入文本到生成下一个 token,数据经历了 tokenization、embedding、位置编码、注意力计算、前馈网络处理等多个阶段。理解这些内部机制,不仅有助于优化模型性能,更能指导实际的工程部署决策。

Tokenization:文本到整数的转换

模型无法直接 "阅读" 文本,它们处理的是整数序列。Tokenization 负责将字符串转换为 token ID 序列。现代 LLM 采用子词(subword)而非整词或字符级别的切分策略 ——"tokenization" 可能被切分为 ["token", "ization"],"running" 则变为 ["run", "ning"]。这种设计在词汇表大小与泛化能力之间取得平衡。

工程要点:词汇表规模通常在 3 万到 15 万之间。GPT 系列使用 BPE(Byte Pair Encoding),LLaMA 系列采用 SentencePiece。切分策略直接影响序列长度,进而影响计算成本。例如,中文内容在 BPE 编码下往往比英文产生更多 token,需要在成本估算时予以考虑。

Embedding:语义向量的空间映射

Token ID 本身无意义,真正的语义来自 embedding 矩阵 —— 一个 vocab_size × hidden_size 的查找表。当模型接收到整数 1024 时,它提取矩阵的第 1024 行(如 4096 维向量)作为该 token 的表示。训练过程中,语义相近的 token 会在向量空间中彼此靠近,"king" 与 "queen" 的距离小于 "king" 与 "apple"。

这种几何特性甚至支持简单的向量算术:king - man + woman ≈ queen。Embedding 空间的结构完全从数据中学习而来,而非人工编码。

位置编码:RoPE 的旋转机制

纯注意力机制缺乏位置感知能力 ——"dog bites man" 与 "man bites dog" 会产生相同的注意力模式。原始 Transformer 使用正弦位置编码,但现代模型普遍采用 RoPE(Rotary Position Embeddings)。

RoPE 不直接添加位置向量,而是根据 token 位置旋转向量本身:位置 1 的向量旋转小角度,位置 100 旋转大角度。当两个 token 进行注意力计算时,它们的相对旋转角度差自然编码了距离信息。这种设计使模型能更好地泛化到训练时未见过的序列长度。

已知局限:即便使用 RoPE,LLM 仍存在 "lost in the middle" 问题 —— 长文本中间部分的信息利用率显著低于开头和结尾。实际应用中,应将关键信息置于 prompt 前端或重复于末尾。

注意力机制:Q/K/V 的信息交换

注意力是 Transformer 的核心。每个 token 被投影为三个角色:Query("我在寻找什么")、Key("我能提供什么匹配")、Value("匹配成功时传递什么信息")。

计算过程如下:

  1. 当前 token 的 Query 与所有可见 token 的 Key 计算点积相似度
  2. Softmax 将相似度转换为权重分布(和为 1)
  3. 以权重对 Value 向量加权求和,得到当前 token 的新表示

因果掩码:自回归模型(如 GPT)采用因果掩码,确保 token 只能关注自身及之前的 token,无法 "偷看" 未来。这通过在 softmax 前将未来位置的分数设为极小值实现。

多头注意力:单一注意力头只能捕捉一种关系模式。现代模型使用多头注意力(如 32 或 64 头),每个头学习不同的投影矩阵,独立计算后拼接输出。研究发现不同头会自然分化 —— 有的追踪语法关系,有的处理代词指代,有的识别位置模式。

前馈网络:知识存储与参数分布

注意力层之后,每个 token 独立通过前馈网络(FFN)。FFN 采用 "扩张 - 变换 - 压缩" 结构:先将向量扩展到更高维度(如 4 倍),应用非线性激活,再压缩回原维度。

关键事实:FFN 存储了模型的大部分参数和事实知识。研究表明,特定神经元会对特定概念(如 "埃菲尔铁塔"、编程语言、过去时态)产生强激活。甚至可以通过 ROME 等方法直接编辑 FFN 权重来修改模型知识,无需重新训练。

现代变体包括:

  • SwiGLU:LLaMA、Mistral 等采用的激活函数,替代传统 ReLU/GELU
  • MoE(Mixture of Experts):用多个并行 FFN(专家)加路由网络替代单一 FFN,如 Mixtral 8x7B 有 8 个专家但每 token 只激活 2 个,总参数量达 467 亿但每 token 仅使用 129 亿

残差流与层归一化:深层训练的基础设施

深层网络面临梯度消失 / 爆炸问题。残差连接通过将子层输出加到输入上(而非替换),为信息和梯度提供捷径。经过数十层后,每个 token 的表示是所有层贡献的累加和,原始 embedding 仍可通过残差路径影响深层。

层归一化(现代多用 RMSNorm)在每层之间 rescale 向量,防止数值爆炸或坍缩。关键演进是从 post-norm(子层后归一化)到 pre-norm(子层前归一化),后者使百层级 Transformer 的训练更加稳定。

工程部署的关键参数

理解内部机制后,以下参数直接影响部署效果:

组件 关键参数 工程影响
Tokenization 词汇表大小、切分算法 序列长度、多语言支持
Embedding hidden_size (如 4096) 内存占用、表达能力
注意力 头数、GQA 分组数 计算并行度、KV 缓存内存
FFN 扩张倍数、MoE 专家数 吞吐量、参数效率
位置编码 RoPE 基数、缩放策略 长上下文外推能力

KV 缓存优化:自回归生成时,为避免重复计算,需缓存历史 token 的 Key 和 Value。GQA(Grouped-Query Attention)让多个 Query 头共享 KV 头,如 LLaMA-2 70B 的 64 个 Query 头共享 8 个 KV 头,显著降低缓存内存。

推测解码:用小模型预测未来多个 token,大模型并行验证,接受则批量推进,拒绝则回退。在保持输出分布不变的前提下提升生成速度 2-3 倍。

总结

LLM 的内部机制可概括为:tokenization 将文本转为整数,embedding 赋予语义,RoPE 编码位置,注意力实现 token 间信息交换,FFN 存储知识,残差流与归一化确保深层可训练。这些组件的协同工作,使模型能够从海量文本中学习语言规律与事实知识。

不同模型(GPT、Claude、LLaMA)在架构层面高度相似,差异主要来自训练数据、规模配置与后训练优化。理解这些通用机制,有助于在面对新模型时快速定位其设计选择,并做出合理的部署与优化决策。


参考来源

  • 0xkato: "How LLMs Actually Work" (2026-06-01)
  • Vaswani et al. (2017): "Attention Is All You Need"

ai-systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com