模型训练
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/model-training-skillhub。
技能介绍
解决什么问题
把模型跑通,和把一次训练训练得可信,中间隔着一堆琐碎但会直接决定结果的工程细节:切分没有分层,评估指标天然偏乐观;归一化、分词、增广写死在训练脚本里,上线推理时无法复现同样的变换;学习率调度和 early stopping 靠手工堆逻辑;最优权重常在崩溃时一起丢失;超参数散落在代码注释和终端历史中。这个技能把这些环节整理成一条 Agent 可按序执行的标准流水线,而不是再写一遍样板代码。
技能如何工作
核心是一条六步训练流程:
- 加载与剖分数据:从磁盘、数据库或远端存储读取数据,先做画像——特征分布、类别比例、缺失值、字段类型;类别不平衡时用分层抽样切分训练/验证/测试集。
- 预处理与变换:归一化、标准化、文本
tokenization、图像增广等特征工程,并要求流水线可序列化,保证推理阶段套用同一套变换。 - 定义模型结构:经典 ML 选梯度提升、SVM 等估计器;深度学习定义层、激活函数与
dropout、权重衰减等正则;可迁移学习时加载预训练骨干并接任务头。 - 配置训练:选择
Adam/SGD/AdamW,交叉熵 / MSE / focal loss,余弦退火或阶梯衰减等学习率调度,设定 batch size,GPU 上开启torch.amp或tf.keras.mixed_precision混合精度。 - 执行训练并验证:按 batch 或 epoch 记录 loss 与指标,周期性在验证集上评估,实现基于 patience 的 early stopping。
- 存档与导出:保存最佳验证分数与定期 checkpoint,导出
ONNX、TorchScript或SavedModel,并把超参数与指标写入MLflow或Weights & Biases。
框架覆盖 PyTorch、TensorFlow/Keras、scikit-learn、XGBoost、LightGBM;分布式支持 PyTorch DDP、Horovod、MirroredStrategy;数据加载支持 DataLoader、tf.data、pandas、Hugging Face Datasets。
适用边界与注意点
它不替代模型选型判断,也不负责算力规划,更不解决标注缺失。实际使用中:不平衡数据集务必分层切分;微调预训练模型时加学习率 warmup;类别不平衡超过 100:1 时,评估改用 F1、PR-AUC 或 Matthews 相关系数,而非 accuracy;出现 NaN loss 先降学习率、加梯度裁剪、排查无穷值,必要时关闭混合精度;OOM 则减小 batch size、开梯度累积或梯度检查点;存在概念漂移时改用时间切分并周期性重训。最终的泛化估计,必须来自从未参与训练与调参的留出集。
使用场景
- 需要在多张 GPU 上用 PyTorch DDP 训练图像分类模型,Agent 负责配置优化器、学习率调度和早停。
- 数据集类别比例失衡,需要用分层抽样切分训练集,并按最佳验证分数保存检查点。
- 在 GPU 上用 PyTorch 或 TensorFlow 训练时频繁出现显存溢出,需要减小批量大小并开启混合精度训练。
- 需要处理样本极度不均衡的文本数据集,使用 SMOTE、焦点损失函数或 F1 作为主要评估指标。
适合人员
- 需要在团队中统一训练流程、保证每次实验都能复现的机器学习工程师。
- 希望把 PyTorch 训练出的模型导出为 ONNX 并用于线上推理的后端开发者。
- 需要在有限 GPU 显存下完成大批量图像或文本模型微调的算法研究员。
- 负责监控训练指标、排查模型收敛异常或梯度爆炸问题的数据科学团队成员。