神经网络训练基础
神经网络训练的核心目标是最小化定义良好的损失函数,并在未知分布或轻度分布漂移的场景中实现稳定、可复现、可解释的泛化表现。一个严谨的训练系统不仅包括算法本身,还包括数据治理、资源编排、可观测性与灰度发布策略,从而形成闭环的工程体系。
1. 训练闭环与系统组件
- 闭环要素:数据采样/标注 → 特征/表征 → 模型结构 → 优化器/调度 → 评估指标 → 上线发布 → 数据回流与再训练。
- 关键职责:数据与知识(质量、覆盖、时效)、模型与算法(选择、规模、风险)、计算与存储(GPU/CPU/网络/IO)、监控与告警(训练/验证/线上 KPI)。
- 配置与复现:随机种子、确定性算子、版本化数据与代码,保障结果可追溯。
2. 数据准备与分割
- 划分:训练/验证/测试,时间序列与在线业务优先采用时间切分;避免泄漏。
- 采样与重加权:分布不平衡时使用分层采样、Focal Loss、重采样或代价敏感学习。
- 数据增广:图像(翻转、裁剪、颜色抖动)、文本(回译、同义替换)、时序(时间扭曲、噪声注入)。
- 质量控制:脏数据检测、异常值处理、标注一致性审计、漂移监测。
3. 前向/反向传播与自动微分
- 前向:层间线性变换 + 非线性激活(参见 激活函数、Sigmoid激活函数),批量化张量运算提升吞吐。
- 反向:链式法则计算 (\partial L/\partial w, \partial L/\partial b) 并回传误差信号;自动微分系统(PyTorch/JAX)以计算图管理中间量与梯度。
- 损失与度量:训练损失用于优化,度量(Acc、F1、均方误差等)用于选择;关注指标-业务目标的一致性(参见 误差)。
4. 优化器与学习率策略
- 优化器:SGD+Momentum 稳健、Adam/AdamW 收敛快;二阶近似在大模型中受限于内存。
- 学习率:warmup 减少初期不稳定;余弦退火、OneCycle、分段衰减等调度影响收敛轨迹与泛化。
- 正则化:权重衰减、dropout、label smoothing、早停;数据/结构/损失多层面协同抑制过拟合。
5. 并行训练与资源编排
- 数据并行:复制模型、切分 batch;带宽瓶颈取决于 Nvlink参数/PCIE参数 与拓扑结构。
- 张量并行:切分权重/激活维度,适配超大模型矩阵乘;与通信重叠优化配合。
- 传递并行:流水线切层,平衡吞吐与 bubble;与梯度累积结合使用。
- 零冗余优化:ZeRO 将优化器状态/梯度/参数分片,显著降低显存峰值(参见 ZeRO微调神经网络训练)。
6. 数值稳定与效率工程
- 混合精度:FP16/BF16 + 动态损失缩放,提升吞吐并降低显存;关注 underflow/overflow。
- 归一化/残差:BN/LN 与残差通道改善梯度传递与收敛。
- 激活检查点:以计算换显存;张量融合、算子调优、图编译(TorchScript/ONNX/TensorRT)提升效率。
7. 评估、监控与上线
- 评估:离线指标 + 人评 + 线上 A/B;对生成模型加入事实性与毒性评估。
- 监控:数据分布漂移、概念漂移、模型性能回退;触发自动回滚与再训练。
- 上线策略:灰度/金丝雀、配额与熔断、回放评估确保稳定过渡。
8. 设备选择与成本
- GPU 画像:A100显卡、RTX3090显卡、RTX4090显卡 的 TFLOPs/显存/带宽差异;
- 拓扑:Nvlink参数 与 PCIE参数 影响多卡通信;
- 部署:云计算 与 端计算 的成本/延迟/隐私权衡。
9. 参考链接与资料
- Deep Learning (Goodfellow et al.);Full Stack Deep Learning;
- PyTorch Distributed
- Efficient Training of Language Models
- 名词卡:训练、神经网络训练、误差、变量