问题定义
大语言模型(Large Language Model)指参数量巨大、训练数据海量的预训练语言模型。核心问题包括:模型规模与计算资源矛盾、长上下文建模能力、多模态融合、推理效率优化、以及模型对齐与安全。
核心算法
Transformer 架构
自注意力机制替代 RNN,通过 Query-Key-Value 注意力计算并行捕获长距离依赖,是 GPT、BERT、T5 等所有主流 LLM 的基础架构。
Attention(Q, K, V) = softmax(QK^T / √d_k) × V
其中 Q ∈ ℝn×d, K ∈ ℝm×d, V ∈ ℝm×d
其中 Q ∈ ℝn×d, K ∈ ℝm×d, V ∈ ℝm×d
GPT 系列(自回归语言模型)
预测下一个 token,GPT-3 达 1750 亿参数。损失函数为标准语言建模目标:
L = - Σt log P(x_t | x_{
其中 x_t 为第 t 个 token,x_{
BERT 系列(双向上下文建模)
通过掩码语言模型(MLM)和下一句预测(NSP)进行预训练:
L_MLM = - E_{(w,M)} [log P(w|M, θ)]
L_NSP = - E_{(s1,s2)} [log P(IsNext(s1,s2), θ)]
L_NSP = - E_{(s1,s2)} [log P(IsNext(s1,s2), θ)]
RLHF 与对齐
人类反馈强化学习(RLHF)通过 reward model 和 PPO 算法引导模型输出符合人类偏好:
L_RLHF = - E_{(x,y)~π_RL} [r(x,y)] - β × KL[π_RL(y|x) || π_SFT(y|x)]
其中 r 为 reward model,β 控制 KL 散度惩罚强度
其中 r 为 reward model,β 控制 KL 散度惩罚强度
算法复杂度分析
| 模型/组件 | 时间复杂度 | 空间复杂度 | 备注 |
|---|---|---|---|
| Transformer (Self-Attention) | O(n² × d) | O(n²) | n 为序列长度,d 为隐层维度 |
| GPT-3 (175B 参数) | Forward: O(n × D × H) | O(H² × L) | D 为解码长度,H 为隐层维度,L 为层数 |
| LLaMA (7B~70B) | O(β × n × d × L) | O(β × n × d) | β 为注意力头数 |
| Flash Attention | O(n² × d) (等价) | O(n × d) | 通过分块计算降低显存 |
| KV Cache | O(1) per token | O(b × n × d × L) | b 为 batch size,n 为上下文长度 |
工程实践指南
模型部署
- 推理框架选择:vLLM(高吞吐量)、TensorRT-LLM(低延迟)、Hugging Face Transformers(通用性)
- 量化策略:INT8 量化(性能损失 <5%)、INT4 量化(性能损失 10-15%)、GPTQ/AWQ 量化
- 显存优化:KV Cache 管理、连续 Batching、Paged Attention
参数调优
- 学习率:预训练 1e-4 ~ 5e-5,微调 5e-6 ~ 2e-5,使用 warmup + cosine decay
- Batch Size:根据显存动态调整,7B 模型单卡 8~16,70B 模型需要多卡
- 上下文长度:根据任务需求选择,注意力开销随 n² 增长
注意事项
- 显存溢出:梯度检查点(gradient checkpointing)可将显存降低 60%
- 长上下文:超过 4K tokens 时使用 Flash Attention 或 Ring Attention
- 推理延迟:使用投机解码(Speculative Decoding)加速 2-3 倍
- 部署成本:7B 模型单卡可部署,70B 模型需 8 卡以上
开源项目
Hugging Face Transformers
最广泛的 NLP 预训练模型库,集成 GPT、BERT、T5、LLaMA 等数百个模型,提供 Pipeline、Trainer、Tokenizers 等工具。
Meta LLaMA
Meta 开源的 LLM 系列,驱动了开源大模型生态发展。提供从 7B 到 70B 的多个规模版本,支持研究和企业使用。
LangChain
LLM 应用开发框架,支持 Chains、Agents、Memory、Tools 等模块,便于构建问答、摘要、对话等应用。
vLLM
PagedAttention 高效推理引擎,支持连续 batching 和 KV cache 管理,吞吐量比 HF Transformers 高 24 倍。
llama.cpp
纯 C/C++ 实现,支持 CPU 推理,INT4/INT5/INT8 量化,MacBook 即可运行 7B 模型。
参考文献
- Attention Is All You Need. Vaswani et al., 2017
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. Devlin et al., 2018
- Language Models are Few-Shot Learners. Brown et al., 2020 (GPT-3)
- LLaMA: Open and Efficient Foundation Language Models. Touvron et al., 2023
- Training language models to follow instructions with human feedback. Ouyang et al., 2022 (InstructGPT)
- Llama 2: Open Foundation and Fine-Tuned Chat Models. Touvron et al., 2023
- FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning. Dao, 2023