菜单

LLM 架构

相关源文件

本文档提供了大型语言模型 (LLM) 架构的技术概述,重点关注使这些模型能够理解和生成文本的核心组件和流程。我们涵盖了现代 LLM 的基本构建块,包括 Transformer 架构、Tokenization(分词)、注意力机制和文本生成策略。

有关训练 LLM 的信息,请参阅 训练管道。有关评估 LLM 性能的信息,请参阅 评估与量化

架构概览

现代 LLM 基于 Transformer 架构,特别是使用像 GPT (Generative Pre-trained Transformer) 这样的仅解码器(decoder-only)变体。完整的管道通过几个关键阶段处理从原始输入到生成输出的文本。

来源: README.md159-166

架构演进

LLM 已从最初包含编码器和解码器组件的 Transformer 架构,演变为如今占主导地位的更精简的仅解码器架构。

来源: README.md159-162

架构类型主要用途示例特性
编码器-解码器翻译、摘要原始 Transformer、T5生成输出前处理整个输入
仅编码器理解文本BERT、RoBERTa双向上下文,适用于分类
仅解码器 (Decoder-only)文本生成GPT、Llama、Mistral单向上下文,自回归生成

像 GPT-4、Llama 3 和 Claude 这样的现代 LLM 都是针对文本生成优化的仅解码器架构。

分词

Tokenization(分词)是 LLM 处理的第一步,将原始文本转换为模型可以处理的数字 Token。

来源: README.md163-164 README.md171-172

常见分词方法

方法描述用途特性
BPE (Byte-Pair Encoding)迭代合并最频繁的字符对GPT、Llama平衡词汇量和序列长度
WordPiece类似于 BPE,但考虑了语言学上的合理性BERT更好的语言学拆分
SentencePiece将文本视为 Unicode 序列许多多语言模型语言无关
Tokenizer V2字节对 BPE 配合特殊规则Llama 3提高了效率,更好地支持多语言

分词器对模型性能有显著影响

  • 它决定了文本表示的效率(效率越高=上下文越长)
  • 它影响模型处理罕见词、数字和多语言文本的方式
  • 它创建了模型工作的词汇表(通常为 32K-100K tokens)

Transformer 解码器层

现代 LLM 的核心由多个堆叠的 Transformer 解码器层组成。每一层处理序列并将其传递给下一层。

来源: README.md165-166

每个 Transformer 层包含

  1. 多头自注意力 (Multi-head self-attention):允许每个 Token 注意其他 Token
  2. 前馈神经网络 (Feed-forward neural network):独立处理每个位置
  3. 残差连接和层归一化 (Residual connections and layer normalization):促进深层网络的训练

现代 LLM 堆叠了许多这样的层(8 到 100+ 层)以实现复杂推理能力。

注意力机制

注意力机制是使 LLM 能够处理词语之间上下文关系的关键创新。

自注意力计算

  1. 每个 Token 被投影到三个向量

    • 查询 (Query, Q):Token 在寻找什么
    • 键 (Key, K):Token 包含什么信息
    • 值 (Value, V):要检索的实际内容
  2. 注意力分数通过查询和键向量的点积计算得出

  3. 分数被缩放并通过 Softmax 函数以获得注意力权重

  4. 输出是基于注意力权重的、值向量的加权总和

多头注意力

来源: README.md165-166

多头注意力允许模型共同关注来自不同表示子空间的信息。每个注意力头可以关注输入序列的不同方面(例如,语法、语义、实体关系)。

注意力优化

已开发出多种优化方法来提高注意力效率

优化描述优点
Flash Attention优化的算法,以减少内存使用更快的计算,更长的上下文
多查询注意力 (Multi-Query Attention, MQA)在多个头之间共享键和值投影减少推理过程中的内存使用
分组查询注意力 (Grouped-Query Attention, GQA)介于 MQA 和标准注意力之间的折衷方案效率和性能之间的平衡
稀疏注意力 (Sparse Attention)仅关注 Token 的子集能够处理非常长的序列

来源: README.md378-380

文本生成

在处理完所有 Transformer 层后,模型会为下一个 Token 生成整个词汇表的概率分布。

来源: README.md167-168

采样技术

LLM 使用各种策略将概率分布转换为具体的 Token 选择

技术描述权衡
贪婪解码 (Greedy Decoding)始终选择概率最高的 Token确定性但重复
束搜索Beam Search跟踪多个最可能的序列
更全面但仍是确定性的温度采样 (Temperature Sampling)调整概率分布的锐度
控制随机性与可预测性Top-k 采样 (Top-k Sampling)限制在 k 个最可能的 Token
防止采样到不太可能的 TokenNucleus (Top-p) 采样从覆盖 p% 概率质量的 Token 中采样

基于置信度的自适应截断

生成参数

来源: README.md167-168 README.md65-66

参数描述范围效果
温度控制随机性。0.0-2.0越低=越确定性
Top-p概率阈值0.0-1.0越低=越聚焦
Top-k要考虑的 Token 数量1-100+越低=越受限
重复惩罚 (Repetition Penalty)惩罚重复的词元1.0-2.0越高=重复越少

这些参数允许针对不同应用微调输出,从创意写作(更高的随机性)到事实性响应(更低的随机性)。

键值缓存 (Key-Value Cache)

在文本生成过程中,LLM 维护一个键值缓存,以避免重新计算先前处理过的 Token 的注意力。

来源: README.md378-379

键值缓存通过以下方式显著提高了生成速度:

  • 存储所有先前 Token 的键和值向量
  • 仅计算最近生成的 Token 的新键值向量
  • 避免了自回归生成过程中的冗余计算

这种缓存机制是使实时 LLM 应用成为可能的重要优化。

位置编码

由于 Transformer 架构本身没有 Token 顺序的概念,因此必须明确提供位置信息

来源: README.md163-166

方法描述优势
正弦 (Sinusoidal)固定的正弦模式可以外推到未见过的位置
学习的 (Learned)可训练的位置向量对已见过的位置表现更好
RoPE对嵌入空间应用旋转更好的相对位置建模
ALiBi向注意力分数添加偏差更好地外推到更长的序列

有效的 positional encoding(位置编码)对于扩展上下文窗口和确保模型理解序列关系至关重要。

模型规模

LLM 的特点是其规模,以参数(权重)衡量

尺寸类别参数数量示例典型用例
小型<10亿Phi-2, Gemma 2B边缘设备,专业任务
中等10亿 - 100亿Llama 3 8B, Mistral 7B消费级设备,通用助手
大型100亿 - 1000亿Llama 3 70B, Claude Opus企业应用,复杂推理
超大1000亿+GPT-4, Gemini Ultra高级推理,多模态任务

随着模型规模的扩大,它们获得了

  • 提高的推理和知识能力
  • 更好的指令遵循能力
  • 在专业领域的能力增强
  • 涌现出在小型模型中不存在的能力

来源: README.md154-168

总结

大型语言模型是基于 Transformer 解码器架构构建的复杂系统。它们通过 Tokenization(分词)处理文本,用位置信息对其进行嵌入,通过具有自注意力机制的多个 Transformer 层进行处理,并使用各种采样策略生成新文本。

关键架构组件包括

  • 用于将文本转换为数字表示的 Tokenization(分词)
  • 用于捕捉 Token 之间关系的自注意力
  • 用于处理信息的深度 Transformer 层
  • 用于文本生成的复杂采样策略

理解这些架构元素对于使用现有 LLM 和开发新应用及模型都是基础。

来源: README.md159-168