过去的半年来,有幸加入了深圳机器学习平台项目(简称One_ML),真实体验到了测试机器学习平台带给QA的挑战。
在谈QA面临的挑战之前,先讲一下机器学习平台是什么。
她是一款为数据科学家们高效、可视化地进行人工智能的工作平台。
在认识One_ML机器学习平台之前,先了解一下数据科学家是怎么工作的?
数据科学家的工作
数据科学家日常工作就是把一个模糊的问题转化成一个具体的数据问题,运用数据科学的方法解决掉这个问题。
举例说明:
广告供应商老大,要求数据科学家小博用模型去估计广告点击率,以便给什么用户推荐什么广告,增加用户的点击率。小博思考,广告被点击是1,没有被点击是0,这是个二分类问题,可以用简易的逻辑回归模型来预测用户点击的概率。小博开始行动如下图:
(1)数据收集:小博开始收集业务相关的数据,如广告供应商的信息,广告本身的信息和用户信息等;
(2)预处理:对收集到的的上述原数据进行清洗,比如去除脏去重等;
(3)构造数据集:把经过预处理的业务数据,构造数据集;
(4)特征工程:对原数据进行特征处理(如Onehot编码),提取特征(如信息增益),供LR模型使用;
(5)选择模型:选用Logistic Regression算法来预测广告点率;
(6)参数调优&评估:选择在离线数据集中性能评估值最好的参数组合;
(7)在线A/B测试:把上一步调出的最优模型上线,和原有模型进行A/B测试,如果新的模型性能表现更好,则替换掉旧模型,小博大功告成。
即数据科学家们的日常工作流程:
(0)问题定义
(1)数据收集
(2)预处理
(3)构造数据集
(4)特征工程
(4)建模、调参
(5)部署、在线验证
(6)循环优化
机器学习平台One_ML的业务
One_ML平台的业务线围绕上述数据科学家的主要工作环节所设计,如图:
One_ML主要业务线One_ML平台提供的业务功能模块:
-
数据集
- 可以导入数据进入当前项目,方便后面特征工程或建模实验。
- 支持创建HIVE数据集、LibSVM数据集。
-
Pipeline
- 对数据集进行特征处理、提取、降维等多个步骤的流水线式工作;
- 可以组合多个算子与模型进行离线预测。
- 用户可以通过可视化的拖拉拽方式,在画布上方便地构建出期望的Pipeline。
- 目前已支持30多个算子(如OneHot/PCA等等)。
-
建模实验,
- 集成了20多种常见模型(如LR/SVM/FM/DFM/DAW/DNN/PNN等等)
- 模型参数调优
- 支持各模型常见的评估指标,
- 最优模型一键发布,发布到已有的推理平台上去。
-
Notebook
- 提供了不同的资源规格(如:CPU/GPU,16C/32C/64C,64G/128G)。
- 内置PySpark或 TensorFlow 等。
One_ML还提供了Job管理、调度等功能。
QA面临的挑战
了解了机器学习平台的主要业务功能后,谈谈机器学习平台测试过程中,QA所面临的挑战。
(1)机器学习领域太多的算法,QA难以短期内熟悉所有算子与算法(One_ML平台集成了50多个算子与模型)。
(2)有的特征处理方法计算原理复杂,超出QA的计算能力,比如PCA或卡方。
(3)PipeLine模块集成了30多个算子,组合场景复杂,难以覆盖全。
(4)大数据集提交到集群上训练,一次就得几十分钟或几个小时,测试效率低下。
(5)模型训练结果没有确定的答案,如何来验证是否存在问题。
(6)每个不同模型算法的训练数据集与测试数据集怎么准备。当数据集准备的不好时,直接影响模型训练结果。
(7)QA不是数据科学家,每个模型参数调优不善长,经常半天训练不出正常的性能指标结果。
......
以上这些挑战在实际项目中具体是如何克服解决的,敬请期待下一篇《机器学习平台测试篇》。
彩蛋
深圳机器学习平台项目组,一期短短的三个月,开发完成了一个完整的机器学习平台(包含了21个Pipeline算子、8个模型算法),回想这一切,吃惊。在此,为所有在深圳机器学习平台项目奋战过的伙伴们鼓掌。
附录:
整理了一些机器学习的知识点,分享给感兴趣的同学,仅供参考。
网友评论