LLM 架构(DeepWiki 课程笔记)

LLM 架构(DeepWiki 课程笔记)

LLM 架构

来源:DeepWiki 对 mlabonne/llm-course 的 AI 生成文档。

架构演进

现代 LLM 基于 Transformer,从最初的 Encoder-Decoder 演变为以 Decoder-Only 架构为主(GPT、Llama、Mistral 等)。

Decoder-Only 核心组件

组件作用实现细节
Token EmbeddingsToken ID → 向量可学习嵌入矩阵 (vocab_size × d_model)
Positional Encoding编码位置信息RoPE(现代标准)
Attention Layers处理 token 间关系Causal Self-Attention(因果掩码)
Feed-Forward Networks非线性变换SwiGLU / GELU(现代标准)
Layer Normalization训练稳定Pre-norm(RMSNorm)
Output Layer投影到词表Linear(d_model → vocab_size)

关键演进

原始 Transformer (2017)
└─ Encoder-Decoder(机器翻译)
├─ BERT → Encoder-Only(理解任务)
└─ GPT → Decoder-Only(生成任务,现代主流)
├─ GPT-3/4:Scaling Law 证明
├─ LLaMA:开源,RoPE + SwiGLU + RMSNorm
└─ Mistral:Sliding Window + GQA(分组查询注意力)

Tokenization

将原始文本转换为 LLM 能处理的数值表示。

主流策略

策略原理使用者特点
BPE迭代合并高频字节对GPT-2/3/4压缩好,处理生僻词
WordPiece用似然合并BERT, Gemini优化 LM 似然
Unigram概率性子词分割T5, mBART多种分割可能
SentencePiece语言无关,直接处理纯文本LLaMA, Mistral空格当普通字符

关键实践

  • Vocabulary Size: 128k-256k → 缩短序列但增大嵌入矩阵;32k-50k → 序列增长但参数量少
  • Special Tokens<|begin_of_text|>, <|end_of_text|>, <|pad|>
  • Byte-Level Fallback:确保无未知 token(封闭词表)

注意力机制

标准多头注意力 (MHA)

Q,K,V = Linear(x) for each head
scores = softmax(QK^T / sqrt(d_k))
output = scores · V

高效注意力变体

变体特点使用者
GQA(分组查询注意力)多个查询头共享一组 Key/Value 头,减少 KV CacheLLaMA 2/3, Mistral
MQA(多查询注意力)所有查询头共享一组 KV,极致压缩PaLM
Sliding Window Attention只关注局部窗口,长序列线性扩展Mistral
Flash AttentionGPU 显存优化,IO 感知的精确注意力几乎所有现代模型

KV Cache(推理优化核心)

  • 自回归生成时缓存已算好的 K 和 V 矩阵,避免重复计算
  • 显存占用:2 × batch_size × seq_len × d_model × num_layers × dtype
  • GQA 可将 KV Cache 减半

生成策略

策略原理适用场景
Greedy Decoding每一步选最高概率 token短文本,确定性输出
Beam Search维护 top-k 候选路径翻译、摘要
Top-K Sampling从 top-k 个 token 中采样创意写作
Top-P (Nucleus)累积概率超过 p 的 token 集创意写作(推荐)
Temperature缩放 logits 分布控制随机性

外部资源

相关页面