📋 一、训练方案设计
训练范式选择
- 预训练(Pre-training):从头训练基础模型,需要海量数据+算力
- 微调(Fine-tuning):在预训练模型上适配下游任务,数据量小
- 迁移学习:跨领域/跨任务迁移已有知识
- 持续学习:模型在线更新,不遗忘旧知识
- 提示学习(Prompt Tuning):冻结模型参数,只训练提示词
- RLHF / DPO:基于人类反馈的强化学习/直接偏好优化
训练策略决策
- 全量微调 vs 参数高效微调(LoRA、Adapter、Prefix Tuning)
- 单任务 vs 多任务联合训练
- 增量训练 vs 从头训练
- 冷启动策略与Warmup设计
数据配比设计
- 训练/验证/测试集划分比例(常见8:1:1或按场景调整)
- 多源数据混合比例(通用数据 vs 领域数据 vs 指令数据)
- 数据采样策略:均匀采样、加权采样、课程学习(由易到难)
⚙️ 二、训练环境与基础设施
硬件资源配置
- GPU选型:A100/H100(大模型)vs V100/4090(中小模型)
- 显存估算:模型参数量 × 精度字节数 × 冗余系数
- 多卡互联:NVLink、InfiniBand带宽与拓扑
- 存储IO:数据加载瓶颈与SSD/内存缓存策略
软件框架栈
- 深度学习框架:PyTorch、TensorFlow、JAX、PaddlePaddle
- 训练加速库:DeepSpeed、Megatron-LM、FSDP、Colossal-AI
- 分布式通信:NCCL、Gloo、MPI
- 容器化部署:Docker、Kubernetes、Slurm集群调度
环境一致性
- 依赖版本锁定(CUDA、cuDNN、Python库)
- 随机种子固定(保证实验可复现)
- 配置管理:YAML/JSON配置文件化,避免硬编码
🚀 三、核心训练机制
前向传播与反向传播
- 前向:输入 → 网络层计算 → 输出预测 → 计算Loss
- 反向:Loss梯度 → 链式法则逐层回传 → 更新参数
- 自动微分(Autograd):PyTorch的动态计算图机制
损失函数(Loss Function)
- 分类:CrossEntropy、Focal Loss(处理类别不平衡)
- 回归:MSE、MAE、Huber Loss
- 生成:NLL(负对数似然)、Perceptual Loss
- 对比学习:InfoNCE、Triplet Loss
- 大语言模型:Next Token Prediction、DPO Loss
优化器(Optimizer)
- SGD + Momentum:经典但需调参
- Adam / AdamW:自适应学习率,最常用(AdamW带权重衰减)
- Lion、Adafactor:大模型训练的新选择
- 学习率调度:Warmup + Cosine Decay、Step Decay、Plateau
正则化与防过拟合
- Dropout:训练时随机失活神经元
- Weight Decay(L2正则):惩罚大权重
- Early Stopping:验证集不提升则提前停止
- 数据增强:从数据侧增加多样性
- Label Smoothing:软化硬标签,提升泛化
🌐 四、分布式训练策略
数据并行(Data Parallelism, DP)
- 每张GPU放完整模型副本,各自处理不同数据批次
- 梯度All-Reduce同步,参数保持一致
- 适用:模型能放进单卡显存,数据量大
模型并行(Model Parallelism, MP)
- 模型层拆分到不同GPU,每张卡只存部分层
- 流水线并行(Pipeline Parallelism):层间流水线
- 张量并行(Tensor Parallelism):层内矩阵拆分
- 适用:超大模型单卡放不下
混合并行与3D并行
- 数据并行 + 模型并行 + 流水线并行组合
- ZeRO(DeepSpeed):优化器状态/梯度/参数分片
- ZeRO-1/2/3/Offload:逐层 offload 到CPU/磁盘
训练效率优化
- 梯度累积:小batch模拟大batch
- 混合精度训练(FP16/BF16 + FP32):省显存+加速
- 梯度检查点(Gradient Checkpointing):时间换空间
- FlashAttention:显存高效的注意力计算
📊 五、训练监控与调试
关键监控指标
- Loss曲线:训练Loss应持续下降,验证Loss不上升
- 学习率变化:是否符合调度策略
- 梯度范数:检测梯度爆炸/消失(正常范围1e-3~1e1)
- GPU利用率:应保持在90%+,低说明IO瓶颈
- 显存占用:监控OOM风险
- 吞吐量(samples/sec):评估训练效率
常见问题诊断
- Loss不下降:学习率太小、数据问题、标签错误
- Loss震荡剧烈:学习率太大、batch太小
- 验证Loss上升 → 过拟合:加正则化、增数据、早停
- Loss为NaN/Inf:梯度爆炸、学习率过大、数据异常
- 训练Loss低但验证差:分布偏移、数据泄露
调试工具
- TensorBoard / WandB / MLflow:可视化训练过程
- PyTorch Profiler:定位性能瓶颈
- Overfit小数据集:验证模型/代码正确性
✅ 六、评估验证与迭代优化
评估方法论
- Hold-out验证:固定划分训练/验证/测试集
- K折交叉验证:数据少时更可靠
- 留一验证(Leave-One-Out):极端小样本
- 时序验证:时间序列必须按时间切分
评估指标体系
- 分类:Accuracy、Precision、Recall、F1、AUC-ROC、混淆矩阵
- 回归:MSE、RMSE、MAE、R²
- NLP:BLEU、ROUGE、Perplexity、BERTScore
- 大模型:MMLU、GSM8K、HumanEval等Benchmark
- 业务指标:转化率、点击率、用户满意度(最终目标)
迭代优化策略
- 超参搜索:网格搜索、随机搜索、贝叶斯优化
- 错误分析:看Bad Case,定位模型弱点
- 数据迭代:针对错误样本补充标注数据
- 模型迭代:换架构、加层、改注意力机制
- A/B测试:线上真实效果对比
🎯 七、主流训练范式详解
| 范式 | 说明 | 适用场景 | 训练师关键工作 |
|---|---|---|---|
| 监督学习 | 有标签数据训练 | 分类、回归、检测、NER | 准备高质量标注数据、设计数据配比、监控训练-验证Gap |
| 无监督/自监督 | 无需人工标签,从数据本身构造监督信号(如BERT的MLM) | 预训练、表征学习、聚类 | 数据质量和多样性比标注更重要 |
| 强化学习(RL) | 通过奖励信号训练策略 | 游戏AI、机器人控制、LLM对齐 | 奖励函数设计、探索-利用平衡、训练稳定性 |
| 指令微调(SFT) | 将预训练模型转化为能遵循指令的助手 | ChatGPT类对话模型 | 构造(Instruction, Input, Output)三元组,保证指令多样性 |
| RLHF / DPO | 基于人类偏好对齐模型价值观 | 大模型安全对齐、风格调优 | 准备偏好对数据(chosen vs rejected),控制KL散度 |
| 对比学习 | 学习"相似靠近、不相似远离"的表征 | 表征学习、跨模态对齐、检索 | 正负样本构造、温度系数调参、Batch Size要大 |
👤 八、AI训练师在算法训练中的核心职责
| 职责侧 | 具体内容 |
|---|---|
| 数据侧 | 训练数据准备、数据配比设计、Bad Case分析反哺 |
| 配置侧 | 超参配置管理、训练方案制定、实验记录追踪 |
| 监控侧 | 训练过程监控、指标异常诊断、Loss曲线分析 |
| 评估侧 | 测试集评估、Benchmark跑分、业务效果验证 |
核心定位:AI训练师是算法工程师的「搭档」——训练师负责数据质量、训练配置、效果评估;算法工程师负责模型架构、算法创新、工程优化。两者协同完成模型从0到1的训练。
📐 训练师必备公式速查
| 公式 | 说明 |
|---|---|
| 显存估算 | ≈ 模型参数 × 精度字节 × (1~4);FP16=2字节, FP32=4字节, INT8=1字节 |
| 训练时间估算 | ≈ (数据量 × 轮数) / (Batch × GPU数 × 吞吐) |
| 学习率经验 | 大模型微调:1e-5 ~ 5e-5;预训练:1e-4 ~ 1e-3 |
| Batch Size选择 | 小模型:32~256;大模型:受显存限制,配合梯度累积 |
| 过拟合判断 | Train Loss ↓ 但 Val Loss ↑,Gap > 10% 即需干预 |
| LoRA配置 | Rank: 8~64, Alpha=2×Rank;目标模块: q_proj, v_proj |