机器学习和数据分析项目_工程化流程

对比

机器学习系统
传统的软件工程项目有着非常大的差异

传统的软件工程项目

产品经理-开发(前端和后端)-测试-运维
包含通用软件工程里那些单元测试,发布流程等内容

数据项目

数据管理的难度-数据变更,数据是描述事物的,事物发生变化
 数据需求方--数据开发方-数据运维方-数据使用方
 数值稳定性
 依赖变更推送--

AI项目

 ML和数据系统具有强耦合
 多了数据依赖问题
 天然的交互式、实验性开发方式
 机器学习pipeline一般会包括
    训练数据的收集,特征生成,模型训练,模型验证,部署和服务发布等环节

数据和算法工程项目

良好的工程实践
   进行系统抽象
   从总体上把控代码模块结构,才能更好的平衡实验的灵活性与系统开发效率,保证整体的高效运作
   精心设计配置项
   

把数据清洗、特征工程、模型训练等模块
   特征工程
     特征工程代码写相应的测试 
   模型:
     模型说明记录 
	 模型超参数
	 模型优化指标
	 模型时效性
	 模型测试流程: 基准测试比较, 多版本模型效果推演,不同数据上的表现,模型的包容性测试
	 模型的快速复现:
    机器学习pipeline的集成测试
   模型发布和部署:
      灰度发布的方式
	  模型能够快速回滚-回滚演练
	  模型性能相关监控
	  
	 短时间内明显的指标急剧下降外,同时也要关注长期的缓慢的下降

参考

 The ML Test Score
 Hidden Technical Debt in Machine Learning Systems
posted @ 2022-02-11 13:48  辰令  阅读(71)  评论(0编辑  收藏  举报