大语言模型工作原理深度解析
速览
本文深入探讨了大语言模型(LLM)的运作机制,从预训练到微调,再到推理过程。理解这些原理有助于开发者更好地优化模型性能并应用于实际场景。
AI 深度解读
大型语言模型(LLM)是如何工作的:深度解读
背景
大型语言模型(LLM)的崛起彻底改变了人工智能的格局,但大多数用户对其内部运作机制知之甚少。现代 LLM 的核心架构主要基于 Transformer 模块的堆叠。理解 Transformer 的底层机制,是理解整个 LLM 工作原理的关键。
尽管不同模型在训练数据、规模配置以及后训练(post-training)阶段存在差异,但它们共享相同的 Transformer 家族骨架。本文旨在剥离复杂的数学公式,通过通俗易懂的方式,深入解析现代基于 Transformer 的 LLM 的核心机制。通过阅读此文,读者将能够读懂大多数现代 LLM 的论文或模型卡片,并清楚每一部分架构所对应的功能。
核心内容
现代 LLM 的工作流程可以拆解为以下几个关键步骤,从文本输入到最终生成,每一步都至关重要。
1. 分词(Tokenization):从文本到整数
模型并不直接“阅读”文本,而是读取整数 ID。将提示词(prompt)转换为整数序列的过程称为分词。
- 机制:分词器(Tokenizer)接收一个字符串,并输出一个整数序列。每个整数指向固定词汇表中的一个条目。现代 LLM 的词汇表通常包含数万到数十万个条目。
- 子词分词(Subword Tokenization):Token 通常不是完整的单词,而是子词片段。例如,“tokenization”可能被拆分为
["token", "ization"],“running”被拆分为["run", "ning"]。- 原因:全词词汇表过大且无法泛化到新词;字符级词汇表过小,迫使模型从头学习简单模式。子词分词在两者之间取得了平衡:常见片段作为独立 Token,罕见或新词由较小片段组合而成。
- 影响:这种机制解释了为什么 LLM 在回答“strawberry 中有几个 r”这类问题时曾经常出错——模型操作的是 Token ID,而非直接操作字母。
- 差异:不同模型家族使用不同的分词器。GPT 模型使用字节对编码(Byte Pair Encoding, BPE)的变体;LLaMA 风格模型常用 SentencePiece。尽管选择影响计算量和多语言覆盖能力,但基本形态一致:文本输入,整数输出。
2. 嵌入(Embeddings):赋予整数意义
分词后的整数 ID 本身没有意义,它只是一个行索引。赋予其意义的是巨大的嵌入矩阵(Embedding Matrix)。
- 机制:嵌入矩阵是一个查找表,每一行对应词汇表中的一个条目,每一行是一个长向量(向量长度即模型的隐藏层大小,如 7B 参数模型通常为 4,096)。当分词器提供整数 ID 时,模型查找对应的行,使用该向量作为该 Token 的嵌入表示。
- 语义结构:嵌入向量在训练过程中学习而来,具有语义相似性的 Token 在向量空间中距离相近。例如,“king”的向量接近“queen”,“Paris”接近“France”。
- 向量运算:嵌入空间具有几何结构,可以进行算术运算。著名的例子是:
king - man + woman ≈ queen。这种结构并非硬编码,而是模型为了更好地预测文本而自然涌现的。
3. 位置编码(Positional Encoding):确立顺序
嵌入向量本身不包含 Token 在序列中的位置信息。无论“dog”出现在提示词的第一位还是第五位,其嵌入向量是相同的。然而,语序对意义至关重要。
- 原始 Transformer 方案:Vaswani 等人(2017)提出的原始方案使用正弦和余弦波在不同频率下的模式,将位置信息直接加到 Token 的嵌入向量上。
- 局限性:这种加法方案存在两个问题:
- 嵌入向量需同时承载意义和位置信息,容量有限。
- 绝对位置嵌入难以泛化。如果训练时最大长度为 2,048,模型从未见过位置 5,000,该位置的嵌入无法以相同方式学习。
- 现代方案:旋转位置编码(RoPE):目前 LLaMA、Mistral、Gemma、Qwen 等主流开源模型均采用 Su 等人(2021)提出的 RoPE。
- 机制:RoPE 不添加位置向量,而是根据位置旋转 Token 的向量。位置 1 的旋转角度小,位置 100 的旋转角度大。
- 优势:在注意力机制中,两个 Token 比较时,关键在于它们旋转角度的差值,这自然地编码了相对距离。RoPE 更好地泛化到长上下文,且不增加额外参数。
4. 注意力机制(Attention):信息共享
这是 Transformer 的核心。通过注意力机制,Token 可以与其他 Token 共享信息,从而捕捉上下文依赖关系。
5. 多头注意力(Multi-head Attention):并行关系追踪
模型通过多个“头”同时追踪多种不同类型的关系,增强了捕捉复杂语义关联的能力。
6. 前馈神经网络(Feed-Forward Network, FFN):知识存储
FFN 是模型存储大部分结构知识的地方。每个 Token 的嵌入向量经过 FFN 处理,进行非线性变换和特征提取。
7. 残差流与层归一化(Residual Stream & Layer Normalization):训练基石
- 残差连接:允许信息在深层网络中流动,缓解梯度消失问题。
- 层归一化:稳定神经网络的训练过程,确保深层堆叠的可训练性。
8. 预测下一个 Token:生成循环
LLM 的最终输出是预测序列中的下一个 Token。
- 输出机制:模型输出一个概率分布,表示词汇表中每个 Token 作为下一个 Token 的可能性。
- 生成循环:通过采样或贪婪解码选择下一个 Token,将其追加到序列中,然后重复上述过程(分词->嵌入->位置编码->Transformer 层->预测),直到生成停止条件满足。
9. 架构与训练权重:共性与差异
- 共性:现代 LLM 共享上述 Transformer 骨架。
- 差异:区别在于训练数据、模型规模、配置选择以及后训练阶段(如 RLHF)。
关键要点
- 分词是基础:LLM 处理的是整数 ID 而非原始文本。子词分词(Subword Tokenization)在词汇表大小和泛化能力之间取得了平衡,但也导致了模型对字符级任务(如计数字母)的天然劣势。
- 嵌入蕴含语义:Token 通过嵌入矩阵转化为向量,语义相似的词在向量空间中距离更近。这种几何结构是训练涌现的结果,支持了类似
king - man + woman ≈ queen的向量运算。 - 位置信息至关重要:由于注意力机制本身不具备顺序感知能力,必须通过位置编码注入顺序信息。现代模型普遍采用 RoPE(旋转位置编码),因为它能更好地处理相对位置和长上下文泛化。
- Transformer 是核心:现代 LLM 主要由堆叠的 Transformer 块组成。理解嵌入、位置编码、注意力机制、前馈网络以及残差连接,就掌握了 LLM 运作的大部分原理。
- 生成即预测:LLM 的本质是下一个 Token 预测器。通过迭代地预测并追加 Token,模型完成文本生成任务。
意义与影响
理解 LLM 的内部机制对于正确评估和使用这些模型至关重要。
- 消除误解:明确模型基于 Token ID 而非直接理解语义或字母,有助于用户设计更有效的提示词(Prompt Engineering),并理解模型在特定任务(如精确计数、拼写检查)上的局限性。
- 架构选择依据:了解 RoPE 等位置编码技术的优势,有助于开发者在部署模型时考虑上下文长度的需求。
- 技术演进方向:从加法位置编码到旋转位置编码的演变,反映了 AI 领域对长上下文处理和泛化能力的持续追求。未来模型的改进可能继续围绕如何更高效地编码位置信息和增强语义
