ML工程的独特挑战
机器学习系统与普通软件系统最本质的区别在于:ML系统由代码和数据共同构成。实验中一个超参数的微小变化可能导致线上效果剧烈波动。这种不确定性基于数据的变化通过代码传播到模型的复杂因果关系,使得ML系统的工程化远比传统软件工程复杂。
特征工程的重要性
在成熟ML系统中,特征质量对最终效果的贡献占比超过60%——远大于模型架构和算法选择。特征覆盖穿越时间的有效性是核心挑战。时间穿越是指训练时使用了未来才能获取的信息,如使用未来一天的用户标签作为特征。避免时间穿越需要:特征存储严格记录可用时间,训练查询模拟历史时刻的特征状态。
特征平台(Feature Store)解决跨团队协作和训练/-serving一致性问题。Feast、Tecton等工具管理特征的注册、计算、存储和服务。关键设计:离线和在线两套特征存储保证一致性;特征监控发现数据分布漂移。
模型训练的规模化
单机模型训练受到GPU显存和时间的限制,分布式训练有三种范式:数据并行(每个GPU有完整模型,处理不同数据)、模型并行(模型不同部分分布在不同GPU)、以及流水线并行(将mini-batch进一步细分为micro-batch在不同GPU流水线处理)。
DeepSpeed的ZeRO优化器通过切分优化器状态、梯度和参数实现超大规模混合精度训练。PyTorch FSDP沿用了ZeZero理念,无需单独安装DeepSpeed即可实现类似加速。
模型生产部署
ML系统部署的常见陷阱包括:训练/serving skew(离线训练逻辑和在线serving逻辑不一致导致线上效果差于离线)、数据管道断裂导致特征获取失败、以及模型性能退化(数据漂移导致效果逐渐下降)。
模型监控与可观测性
生产ML系统需要四个维度的监控:数据分布监控(特征值的统计分布变化)、模型预测监控(输出分布异常、置信度下降)、业务效果监控(CTR/CVR/Auc变化)和系统健康监控(延迟、吞吐、资源占用)。Evidently AI、NannyML是开源的ML监控工具。
ML工程的发展趋势
LLM时代的冲击下,更多ML问题被转换为Prompt工程和问题框架设计。传统ML方法在业务规则明确、数据量有限的场景仍然不可替代。多模态学习、联邦学习和可信AI(可解释性、公平性、隐私保护)是ML领域新兴的增长方向。

发表评论 取消回复