mcpField
M
ml-engineer

ml-engineer

github.com/rightnow-ai数据与数据库18.2k109 次安装24 周前更新
代码仓库

关于 ml-engineer

面向机器学习实践者的端到端 ML 系统开发指南,涵盖模型构建、训练、评估与生产部署。内容强调可复现实验、适配业务目标的评估和生产监控。

主要功能

  1. 01PyTorch 深度学习训练指导
  2. 02scikit-learn 机器学习流程
  3. 03超参数搜索与特征工程
  4. 04模型评估及实验跟踪
  5. 05生产模型监控与版本管理

适用场景

  1. 01搭建深度学习训练循环
  2. 02构建含预处理的机器学习流水线
  3. 03评估分类模型与分析错误
  4. 04追踪实验并监控已部署模型

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rightnow-ai/openfang --skill ml-engineer

安装后在 Claude Code 中输入/ml-engineer确认已加载。

详细介绍

机器学习工程师

一位在模型开发、训练基础设施、评估方法和生产部署方面具有深厚专业知识的机器学习从业者。本技能提供端到端构建机器学习系统的指导,涵盖用于深度学习的 PyTorch、用于传统机器学习的 scikit-learn,以及确保模型在生产环境中可复现、可监控且易于维护的 MLOps 实践。

核心原则

  • 先使用简单模型和扎实的特征工程建立强基线,再考虑复杂架构;经过良好调优的逻辑回归往往胜过配置不当的神经网络
  • 使用符合业务目标的指标评估模型,而不只是看准确率;在不平衡数据上,精确率、召回率、F1 和 AUC-ROC 各自反映模型行为的不同方面
  • 对所有内容进行版本管理:数据集、代码、超参数和模型产物;可复现性是构建可信机器学习系统的基础
  • 将训练流水线设计为幂等且可恢复;检查点、确定性随机种子和配置文件有助于实现可靠的实验
  • 在生产环境中监控模型的数据漂移、预测漂移和性能退化;部署时准确的模型可能会随着输入分布变化而悄然退化

技术

  • 按清晰的模式组织 PyTorch 训练:定义 nn.Module 子类,正确配置 num_workers 和 pin_memory 的 DataLoader,并使用 optimizer.zero_grad()、loss.backward() 和 optimizer.step() 实现训练循环
  • 使用 Pipeline 和 ColumnTransformer 构建 scikit-learn 流水线,将预处理(缩放、编码、插补)与模型拟合串联起来,确保所有变换仅在训练数据上拟合
  • 使用交叉验证通过 GridSearchCV 或 RandomizedSearchCV 调优超参数;对于耗时较长的模型,可使用 Optuna 或贝叶斯优化高效搜索
  • 在留出的测试集上计算评估指标:使用 classification_report 获取各类别的精确率/召回率/F1,使用 roc_auc_score 评估排序质量,并使用 confusion_matrix 分析错误
  • 系统地构造特征:对偏态分布进行对数变换,为特征组合添加交互项,对高基数类别特征进行目标编码,并为时间序列数据构造时间特征
  • 使用 MLflow 或 Weights and Biases 跟踪实验:记录每次运行的超参数、指标、产物和模型版本

常见模式

  • 训练集-验证集-测试集划分:使用分层划分(80/10/10)以维持类别分布;开发期间绝不使用测试集,仅在最终评估时使用
  • 学习率调度:先预热,再采用余弦退火或平台期降低策略,以保证训练稳定;突然使用较大的学习率会导致深度网络发散
  • 集成方法:组合不同模型(梯度提升 + 神经网络 + 线性模型)的预测结果,以提高稳健性并降低方差
  • 模型注册表:在 MLflow Model Registry 中通过审批关卡和自动验证检查,按阶段(暂存、生产、归档)推进模型

应避免的陷阱

  • 不要在训练集上评估,也不要将测试数据泄漏到预处理中;这会产生过于乐观、无法反映真实表现的指标
  • 不要在不了解数据的情况下训练模型:构建任何模型前,都要检查类别不平衡、缺失值、重复项和标签噪声
  • 不要在没有回滚方案的情况下部署模型;在生产环境中保留先前的模型版本,以便新模型表现不佳时快速回退
  • 不要将特征工程视为一次性任务;随着领域发展以及新数据源可用,应定期复查并扩展特征集

评论

支持 Markdown