训练总览¶
训练系统的目标是把数据、模型、算力和优化策略组织起来,让模型稳定收敛,并且在成本可接受的范围内产出可复用的 checkpoint。
基本流程¶
- 数据准备:清洗、去重、标注、切分。
- 样本构造:tokenize、packing、mask、负样本。
- 训练配置:模型结构、batch size、学习率、精度格式。
- 并行策略:数据并行、张量并行、流水线并行、ZeRO/FSDP。
- 监控与恢复:loss、梯度、吞吐、显存、checkpoint。
分布式训练索引¶
- 分布式训练:总入口,先按“模型是否放得下、单步是否算得动、通信是否拖慢”判断需要的数据并行、张量并行、流水线并行或 ZeRO/FSDP。
- 并行策略:DP 解决样本切分,TP 解决单层矩阵过大,PP 解决层数和显存压力,ZeRO/FSDP 解决参数、梯度和优化器状态分片。
- 通信与网络:关注 all-reduce、all-gather、reduce-scatter、send/recv 的时间占比,以及 NVLink、IB、以太网拓扑对训练吞吐的影响。
- Checkpoint:记录不同并行策略下的保存、恢复、reshard 和权重合并方式,避免训练恢复和推理部署被格式绑定。
- 排障:rank hang、NCCL timeout、吞吐抖动、显存碎片和 loss 行为变化都优先回到分布式训练页建立索引。
常见训练类型¶
- 预训练:从大规模通用语料中学习基础能力。
- 继续预训练:面向领域数据强化模型知识。
- SFT:用指令数据训练模型遵循任务。
- Preference Tuning:用偏好数据对齐输出风格和行为。
- LoRA / Adapter:低成本参数高效微调。
训练排查入口¶
- loss 不降:检查数据、学习率、标签、mask、梯度。
- loss 爆炸:检查初始化、混合精度、梯度裁剪。
- 吞吐低:检查 dataloader、通信、算子、batch 组织。
- 显存爆:检查 sequence length、activation checkpoint、并行策略。