ML 工程及生产化模块

一、ML工程及生产化模块

回顾前面 ML 的定义,从广义上讲,ML 是一门通过算法和统计模型从数据中学习知识的学科,ML工程顾名思义就是构建基于 ML 的应用程序的计算实践。ML 工程是建立在 ML 的工作基础上并将研究环境中开发的 ML模型应用于生产环境的技术。ML 工程与 ML 的区别在于侧重点不同,ML 更关心算法的优化和模型的训练,ML 工程则更关心从不同业务系统采集数据,并训练一个兼顾模型性能和计算性能的模型,使其能在生产环境中稳定运行,保证模型的可监控、可维护、可更新、可被业务系统使用,为模型生产化提供工程保障

ML 工程包括从数据收集、特征工程、模型训练到模型投入应用、管理和运维的所有阶段。这个过程与高中时期考试的不同阶段类似,ML 开发过程相当于平时的模考,关心的是对知识点的消化和总结ML 工程相当于高考,在兼顾平时模考习得的知识点的同时,还需要综合考察实考环境下的心理压力、时间分配、考题内容等因素

事实上,数据科学团队通常专注于研究新额的算法或训练高精准的模型,但与实际 ML 项目中需要的全流程(如特征工程、部署、监控等)相比,ML 算法只是 ML 项目非常小的一部分,一个真正要投产的 ML 项目通常需要大量的工程工作和基础设施的配合,以实现 ML 模型在生产环境中顺利运行。

2015 年,谷歌发布的论文指出,为了避免无休止的“技术债” 缠身,应该强调将ML 生产化视为一门学科的重要性(在当前的 ML 技术主流中确实如此),通过加强工程技术的投入来顺利实现 ML 的生产化。如图 1-6 所示,ML模型的生产化是由多个模块组成的,在实际场景中需要在这些模块间建立沟通机制来配合完成ML 模型的生产化。

为者常成,行者常至