在谈测试机器学习平台带给QA的挑战之前,先了解一下机器学习平台是什么?
机器学习平台是一款集数据集、特征工程、模型训练、评估、预测、发布于一体的全流程开发和部署的工作平台,为数据科学家提供端到端的一站式的服务,帮助他们脱离繁琐的工程化开发,从而帮助他们提高工作效率。
在介绍机器学习平台之前,首先看一下数据科学家日常工作是怎样的?
数据科学家的工作
数据科学家日常工作就是把一个模糊的问题转化成一个具体的数据问题,运用数据科学的方法解决掉这个问题。
举例说明:
广告供应商老大,要求数据科学家小博用模型去估计广告点击率,以便给什么用户推荐什么广告,增加用户的点击率。小博思考,广告被点击是1,没有被点击是0,这是个二分类问题,可以用简易的逻辑回归模型来预测用户点击的概率。小博开始行动如图1:
图1. CTR问题解决步骤
即数据科学家们的日常工作流程有:
- 问题定义
- 数据收集
- 预处理
- 构造数据集
- 特征工程
- 建模、调参
- 部署、在线验证
- 循环优化
机器学习平台的主要业务
简单理解,机器学习平台就是帮助数据科学家工作变得更简单、高效。所以,机器学习平台不仅集成了各种机器学习组件(算子)和算法,提供了友好的可视化界面,可以通过简单的拖拉拽来构建复杂的Pipeline,使得数据科学家日常工作更简便、高效。即机器学习平台主要业务包括(如图2):
图2. 机器学习平台的主要业务模块
机器学习平台提供的业务功能模块:
- 此模块主要是数据集的管理,包括数据集构建、查询、删除等,
- Pipeline数据通道处理后生成的数据集也在此模块管理,
- 创建数据集支持各种形式的数据源构建数据集(如:hive表或Textfile、Avro文件等)。
- 此模块主要是构建与运行数据处理通道、模型预测通道,
- 支持常用的特征处理、提取、降维等几十种特征工程算子,
- 支持拖拉拽可视化的方式轻松构建Pipeline,
- 支持Pipeline一键发布。
- 支持市面上常用的几十种机器学习以及深度学习算法,如:LR、RF、FM、DFM、DNN、PNN等等;
- 支持模型参数调优、超参;
- 支持多模型同时训练自动评选最优;
- 支持各种模型常见的评估指标,如:准确率、召回率、F1-score等;
- 支持最优模型一键发布。
- 集成Jupyter Notebook
- 调度等等
QA面临的挑战
了解了机器学习平台的主要业务功能后,谈谈机器学习平台测试过程中,QA所面临的挑战,以及在实践的所使用的应对方案。
在Jupyter Notebook自己写代码直接调用Spark或Angel算子,传入同样数据集,通过对比结果验证。
“ 请用二八原则做选择,挑那些收益更高的组合来覆盖。”
- 每个组件(算子)单独测试,然后,再全部算子组合一起验证。
- 与数据科学家、PO沟通,常用组合验证。
- 不同类组件(算子)组合验证。
- 逻辑复杂容易出错的组合。
以上这些Case构建自动化,或直接在Local或QA环境上备份pipeline,每当增加一个新组件(算子),除了单测新组件各种逻辑之外,再把它集成到原有的pipeline上验证。
在大数据项目上,数据即Case。准备好一套脚本,在集群上一键创建包含了所有数据类型与不同数据值的数据集。比如,每次SignOff或QA环境上测试时,这一个完整的数据集搞定全部场景验证。
通过模型性能指标来检验模型结果的好坏。比如:准确率、精确率、召回率、AOC曲线、F1-Score。
- 寻找业务方真实业务数据(脱敏)。
- 上下载数据集,比如:比较流行的数据集Iris、Adult、Wine、Car Evaluation,各大官 的数据集(如:Spark data、Angel data)。
- 官 上下载相应数据集,依照官 给定样例调参。
- 实在不行,找数据科学家寻求帮助。
- 白天用小数据量测试验证逻辑正确性,下班后运行大数据集测试。
- 限制提交job占用资源,这种方式运行时间会更长,但可以解决由于资源被占满block其他任务执行的问题。
以上是在机器学习平台项目中QA遇到的挑战与应对方案,希望有相关经验的朋友一起交流。
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!