跳转至

第四章 训练与优化

本章概览

本章覆盖 LLM 从基座模型到可用 Agent 的训练全链路, 以及推理部署优化。从预训练到 SFT, 从 RLHF/DPO/GRPO 对齐到 PEFT 高效微调, 再到 Agentic-RL 与推理加速、模型服务化, 理解"模型如何被造出来、如何被高效部署"。

小节目录


4.1 训练阶段全景

定义

LLM 训练分四阶段 — 预训练 (Pre-training) → 监督微调 (SFT) → 对齐 (Alignment) → 后训练 (Post-training)。四阶段递进展开, 把一个只会"预测下一个 token"的统计模型逐步塑造成可用、可控、专门化的智能体大脑。该划分是当前主流 LLM (GPT/Claude/Llama/Qwen/DeepSeek) 训练的标准范式。

原理

预训练阶段在海量无标注文本上自监督学习, 习得语言规律与世界知识; SFT 阶段用"指令-响应"对监督学习, 让模型学会遵循指令与对话格式; 对齐阶段通过 RLHF/DPO 等技术让模型符合人类偏好 (安全/有用/诚实); 后训练是面向特定能力 (如 Agent/推理) 的额外训练, 例如 DeepSeek-R1 的推理强化、CodeLlama 的代码专精。各阶段数据量与成本递减但精细化递增, 形成从"广覆盖"到"精调优"的漏斗。

关键点

预训练最贵 (千万美元级算力投入), 决定模型能力上限; SFT 与对齐成本可控 (万到百万美元级), 决定模型可用性; 后训练是新趋势, 推理模型与 Agent 专用模型都依赖此阶段; 各阶段数据质量比数据量更重要, 高质量小数据常胜过低质量大数据。

应用·对比

阶段 目标 数据规模 成本量级 产出模型形态
预训练 语言规律与世界知识 万亿 token 千万美元级 基座模型 (Base)
SFT 指令遵循与对话格式 万到百万条 万到十万美元级 指令模型 (Chat)
对齐 符合人类偏好 数万到数百万偏好对 十万到百万美元级 对齐模型 (Aligned)
后训练 特定能力强化 (推理/Agent) 任务相关 万到百万美元级 专用模型 (Specialized)

4.2 预训练

定义

预训练 (Pre-training) 是在海量无标注文本上自监督学习, 让模型习得语言规律与世界知识的过程。它是 LLM 训练四阶段中最昂贵、最基础、也最具决定性的一环, 决定模型的"原生能力上限"。所有现代 LLM (GPT/Claude/Llama/Qwen/DeepSeek) 的起点都是预训练。

原理

数据来源包括网页爬虫 (Common Crawl)、书籍 (Books)、代码 (GitHub)、学术论文 (arXiv) 等, 需经过去重、过滤、质量筛选等清洗流程。Scaling Law (Kaplan 2020) 描述 loss 与参数量、数据量、算力之间的幂律关系 (loss ∝ 参数量^-α + 数据量^-β + 算力^-γ); Chinchilla 定律 (DeepMind 2022) 进一步指出数据量与参数量应等比例增长, 最优比例约 20 token/参数。分布式训练是预训练的工程难点, 主流策略包括数据并行 (DP)、张量并行 (TP)、流水线并行 (PP) 与 ZeRO 优化, 实际系统常混合多种策略以适配万卡集群。

关键点

数据质量决定模型上限, 高质量数据 (代码/论文/精选网页) 比单纯堆数据量更有效; Chinchilla 最优比例约 20 token/参数, 但现代 LLM 常过度训练 (over-training) 以降低推理成本; 分布式训练是工程难点, 通信开销与显存效率是核心权衡; 预训练成本高昂, 万亿参数模型单次训练成本可达千万美元级。

应用·对比

并行策略 通信开销 显存效率 适用规模 典型实现
数据并行 (DP) 高 (梯度同步) 低 (每卡完整模型) 中小模型 DDP/FSDP
张量并行 (TP) 中 (层内通信) 高 (切分权重) 大模型层内 Megatron-LM
流水线并行 (PP) 低 (气泡开销) 高 (切分层) 超大模型层间 PipeDream
ZeRO 中 (状态切分) 极高 (优化器/梯度/参数切分) 各规模 DeepSpeed ZeRO-3

4.3 监督微调 SFT

定义

SFT (Supervised Fine-Tuning) 用"指令-响应"对监督学习, 让模型学会遵循指令与对话格式, 完成从"会接话"到"会听话"的转变。SFT 是预训练后的第一个精细化阶段, 让基座模型 (Base) 升级为指令模型 (Chat/Instruct), 具备多轮对话与任务执行能力。

原理

指令数据通常为 (instruction, input, output) 三元组, 来源包括人工标注、强模型蒸馏 (如用 GPT-4 生成响应)、开源数据集 (Alpaca/ShareGPT/WizardLM)。对话模板 (Chat Template) 决定如何把三元组编码为模型输入, 主流格式包括 ChatML (OpenAI 系)、Vicuna (Llama 系)、Qwen-Chat 等, 注入 system/user/assistant 角色标记。过拟合风险是 SFT 的主要挑战 — 数据量小易过拟合, 需控制 epoch (通常 2-3) 与学习率 (常用 1e-5 到 5e-5 量级), 并配合正则化与早停策略。

关键点

数据质量远胜数据量, LIMA 论证 1k 高质量数据可胜过 52k 低质量数据; 对话模板影响下游推理与部署, 不同模板不可混用; SFT 后模型才具备真正的对话能力, 之前的基座模型只是"续写机器"; SFT 也可针对特定领域 (代码/数学/医学) 做专精微调。

应用·对比

维度 预训练 SFT
数据格式 无标注纯文本 指令-响应三元组
损失函数 全 token CLM loss 仅响应部分 CLM loss
数据规模 万亿 token 万到百万条
学习率 1e-4 量级 1e-5 到 5e-5 量级
训练成本 千万美元级 万到十万美元级
产出能力 语言规律与世界知识 指令遵循与对话能力

4.4 对齐技术

定义

对齐 (Alignment) 让模型输出符合人类偏好 (有用 helpful / 诚实 honest / 安全 harmless, 简称 HHH), 是 SFT 后的关键阶段。对齐技术解决"模型会说话但说得不对、不安全、不诚实"的问题, 是 LLM 从"能聊"到"可用可信"的必经之路。

原理

三种主流方法各有侧重。RLHF (Reinforcement Learning from Human Feedback) 先用人类偏好数据训练奖励模型 (Reward Model), 再用 PPO 算法优化策略模型最大化奖励, 流程复杂但效果好, 是 InstructGPT/ChatGPT 的核心方法。DPO (Direct Preference Optimization) 直接用偏好对 (chosen, rejected) 优化策略模型, 绕过显式奖励模型与 RL 训练, 流程大幅简化, Zephyr 与 Llama 3 部分采用。GRPO (Group Relative Policy Optimization, DeepSeek 提出) 用组内 baseline 替代独立 critic 模型, 显著降低训练成本, 在 DeepSeek-Math 与 DeepSeek-R1 的训练中表现突出, 成为推理模型训练的新趋势。

关键点

RLHF 最成熟但工程最复杂, 需训练奖励模型并维护 PPO 的稳定性; DPO 简单稳定但效果略逊于 RLHF, 适合资源受限场景; GRPO 是新趋势, 在推理模型训练中表现突出, 降低了对独立 critic 的依赖; 三者并非互斥, 现代 LLM 常组合使用 (如先 DPO 再 RLHF 微调)。

应用·对比

方法 是否需奖励模型 训练稳定性 计算成本 代表模型
RLHF-PPO 是 (独立 RM) 较差 (PPO 易震荡) 高 (4 个模型并存) InstructGPT/ChatGPT
DPO 否 (隐式偏好) 中 (2 个模型) Zephyr/Llama 3
GRPO 否 (组内 baseline) 中低 (无 critic) DeepSeek-Math/R1

4.5 PEFT 参数高效微调

定义

PEFT (Parameter-Efficient Fine-Tuning) 只训练少量额外参数即可微调大模型, 大幅降低显存与存储成本, 让消费级硬件也能微调数十亿参数模型。PEFT 是大模型时代"人人可微调"的关键技术, 也是垂直领域定制化的主流方案。

原理

四种代表方法各有思路。LoRA (Low-Rank Adaptation) 冻结原权重, 在权重旁路训练低秩分解矩阵 A·B (秩远小于原权重秩), 推理时可将 A·B 合并回原权重, 实现零推理开销。QLoRA 在 LoRA 基础上对基座模型做 4bit 量化 (NF4), 让单张消费级 GPU 即可微调 65B 模型, 是平民化微调的标杆。Adapter 在 Transformer 层间插入小 MLP 模块, 训练时只更新 Adapter 参数, 推理时有额外计算开销。Prefix Tuning 在每层注意力前拼接可学习 prefix 向量, 不改动原模型结构但需修改注意力计算。

关键点

LoRA 是当前主流, 效果接近全参数微调且实现简单; QLoRA 让消费级 GPU (如 RTX 4090) 可微调大模型, 推动平民化微调浪潮; 秩 (rank) 选择影响效果, 常用 8/16/64, 越大表达能力越强但参数越多; PEFT 适合垂直领域定制, 但若任务与预训练分布差异大, 全参数微调可能更优。

应用·对比

方法 可训练参数量 显存占用 推理开销 效果 适用场景
LoRA 0.1%-1% 中 (基座 fp16) 零 (可合并) 接近全参 通用微调
QLoRA 0.1%-1% 极低 (基座 4bit) 零 (可合并) 略低于 LoRA 消费级 GPU
Adapter 1%-5% 有 (额外层) 良好 多任务切换
Prefix Tuning 0.1%-1% 有 (注意力) 略低于 LoRA 生成任务

4.6 Agentic-RL

定义

Agentic-RL 是 Agent 场景下的强化学习, 让模型在与环境交互中优化 Agent 能力 (工具调用、任务规划、长程执行)。区别于传统 RLHF 关注"对话偏好", Agentic-RL 关注"任务完成", 是 Agent 专用模型的关键训练范式。

原理

区别于传统 RLHF (人类偏好驱动, 奖励来自 RM), Agentic-RL 用环境奖励训练模型, 奖励来源更客观可验证。奖励来源分三类: 环境奖励 (代码执行通过/测试通过/任务成功信号, 最可信但需可验证任务)、模型反馈 (LLM-as-Judge 评判 Agent 轨迹质量, 易规模化但有偏见)、人类反馈 (稀疏标注, 质量高但成本高)。代表工作包括 DeepSeek-R1 的 RL 训练 (用可验证数学/代码奖励 + GRPO)、SWE-agent 的环境驱动训练 (用 GitHub PR 是否合并作为奖励)。

关键点

环境奖励最可信但需任务可验证 (代码/数学适合, 开放对话难); 模型反馈易规模化但 LLM-as-Judge 有偏见与自我偏好; Agentic-RL 是 Agent 专用模型的关键训练范式, 推动了 o1/R1 等推理模型与 SWE-agent 等 Coding Agent 的突破; 该方向仍在快速演进, 奖励设计与训练稳定性是核心挑战。

应用·对比

维度 传统 RLHF Agentic-RL
奖励来源 人类偏好 (RM) 环境/模型/人类反馈
任务类型 开放对话/通用偏好 可验证任务 (代码/数学/工具调用)
奖励客观性 主观 (偏好) 客观 (可验证)
训练成本 高 (RM + PPO) 中到高 (环境模拟)
代表模型 ChatGPT/Claude DeepSeek-R1/SWE-agent

4.7 推理加速

定义

推理加速 (Inference Acceleration) 降低 LLM 推理的时延 (latency) 与成本, 是模型服务化的关键。随着模型规模扩大与上下文增长, 推理算力与显存压力急剧上升, 推理加速直接决定 LLM 服务的经济可行性与用户体验。

原理

四类核心技术各有侧重。KV Cache 缓存历史 token 的 Key/Value 避免重复计算, 是注意力推理加速的基石, 后续技术多依赖它。量化 (Quantization) 用 INT8/INT4 等低比特表示降低显存与带宽, 主流算法包括 GPTQ (训练后二阶量化)、AWQ (激活感知量化)、SmoothQuant (平滑激活异常值)。投机解码 (Speculative Decoding) 用小模型生成草稿、大模型并行验证, 可加速 2-3 倍。Continuous Batching 动态拼 batch 提升吞吐, 是 vLLM 的核心技术; 蒸馏 (Distillation) 用大模型教小模型, 从源头降低推理成本。

关键点

KV Cache 是其他加速技术的基础, 没有它注意力推理开销会爆炸; 量化是性价比最高的手段, INT4 可让 70B 模型塞进单卡; Continuous Batching 决定服务吞吐, 是高并发场景必备; 投机解码对长生成任务加速显著, 但对短输出收益有限; 蒸馏从源头降低成本, 但需训练资源。

应用·对比

量化方案 精度损失 显存节省 加速比 实现复杂度
INT8 (朴素) 2x 1.5-2x
INT4 (朴素) 4x 2-3x
GPTQ 小到中 4x (INT4) 2-3x
AWQ 4x (INT4) 2-3x
SmoothQuant 2x (INT8) 1.5-2x

4.8 模型服务化

定义

模型服务化 (Model Serving) 框架封装推理引擎, 对外提供 HTTP/gRPC API, 是 LLM 部署的最后一公里。服务化框架屏蔽底层推理优化细节 (KV Cache/量化/批处理), 让开发者聚焦业务逻辑, 是 LLM 从"研究模型"到"生产服务"的关键桥梁。

原理

主流方案各有定位。vLLM 以 PagedAttention 与 Continuous Batching 为核心, 吞吐量是业界标杆, 适合生产高并发场景。TGI (Text Generation Inference, HuggingFace 出品) 易用性好, 与 HF 生态深度集成, 适合快速部署。TensorRT-LLM (NVIDIA) 追求极致性能, 充分利用 GPU 张量核心, 但工程复杂度高、调试困难。Ollama 主打本地一键部署, 模型库丰富, 适合个人与开发调试。llama.cpp 用 C++ 实现, 跨平台且对 CPU/边缘端友好, 是端侧与资源受限场景的首选。

关键点

生产环境选 vLLM 或 TensorRT-LLM, 吞吐与延迟最优; 个人与开发场景选 Ollama, 易用性最好; 边缘端与 CPU 场景选 llama.cpp, 跨平台支持最广; 选型需综合考量吞吐、延迟、易用性、硬件支持与社区生态; 部分场景可组合使用 (如生产 vLLM + 本地 Ollama 调试)。

应用·对比

方案 吞吐 延迟 易用性 硬件支持 适用场景
vLLM 极高 GPU (CUDA) 生产高并发
TGI GPU (CUDA) 快速部署
TensorRT-LLM 极高 极低 NVIDIA only 极致性能
Ollama 极高 CPU/GPU 个人/开发
llama.cpp CPU/GPU/多平台 端侧/边缘

延伸阅读