机器学习平台带给QA的挑战
Posted ThoughtWorks洞见
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习平台带给QA的挑战相关的知识,希望对你有一定的参考价值。
机器学习平台是一款集数据集、特征工程、模型训练、评估、预测、发布于一体的全流程开发和部署的工作平台。其数据量大、数据多样性、支持算法种类多,加上算法模型结果不确定、集成复杂等等特点;这会给QA的工作带来怎样挑战、以及如何克服,本文一一揭晓。
数据科学家的工作
-
数据收集:小博开始收集业务相关的数据,比如:广告供应商的信息,广告本身的信息和用户信息等; -
预处理:对收集到的上述原数据进行清洗,比如去除脏去重等等; -
构造数据集:把经过预处理的业务数据,构造数据集; -
特征工程:对数据集进行特征分析(如:卡方检验、统计等)、特征处理(如:归一化、Onehot编码等)、提取特征(如:相关性系数等),然后供LR模型训练使用; -
选择模型:选用Logistic Regression算法来构建预测广告点击率的模型; -
参数调优&评估:训练调参并观察评估结果,选择在离线数据集中性能评估值最优的参数组合; -
在线A/B测试:把上一步调出的最优模型上线,和原有模型进行A/B测试,如果新的模型性能表现更好,则替换掉旧模型,小博大功告成。
-
问题定义 -
数据收集 -
预处理 -
构造数据集 -
特征工程 -
建模、调参 -
部署、在线验证 -
循环优化
机器学习平台的主要业务
-
数据集
-
此模块主要是数据集的管理,包括数据集构建、查询、删除等, -
Pipeline数据通道处理后生成的数据集也在此模块管理, -
创建数据集支持各种形式的数据源构建数据集(如:hive表或Textfile、Avro文件等)。
-
Pipeline
-
此模块主要是构建与运行数据处理通道、模型预测通道, -
支持常用的特征处理、提取、降维等几十种特征工程算子, -
支持拖拉拽可视化的方式轻松构建Pipeline, -
支持Pipeline一键发布。
-
实验室
-
支持市面上常用的几十种机器学习以及深度学习算法,如:LR、RF、FM、DFM、DNN、PNN等等; -
支持模型参数调优、超参; -
支持多模型同时训练自动评选最优; -
支持各种模型常见的评估指标,如:准确率、召回率、F1-score等; -
支持最优模型一键发布。
其它
集成Jupyter Notebook
调度等等
QA面临的挑战
在Jupyter Notebook自己写代码直接调用Spark或Angel算子,传入同样数据集,通过对比结果验证。
2. Pipeline模块,支持30多个算子,组合场景太多,难以覆盖全面。怎么办?
“ 请用二八原则做选择,挑那些收益更高的组合来覆盖。”
每个组件(算子)单独测试,然后,再全部算子组合一起验证。
与数据科学家、PO沟通,常用组合验证。
不同类组件(算子)组合验证。
逻辑复杂容易出错的组合。
3. 数据类型太多、数据值各样。场景太多怎么测?
4. 模型训练结果没有确定的答案,怎么测。
通过模型性能指标来检验模型结果的好坏。比如:准确率、精确率、召回率、AOC曲线、F1-Score。
5. 每个不同模型算法的训练数据集与测试数据集怎么准备。当数据集准备的不好时,直接影响模型训练结果。
寻找业务方真实业务数据(脱敏)。
-
网上下载数据集,比如:比较流行的数据集Iris、Adult、Wine、Car Evaluation,各大官网的数据集(如:Spark data、Angel data)。
6. QA不是数据科学家,调参不专业,评估指标结果一直很差,无法判断是调参问题还是代码有问题?怎么办?
-
官网上下载相应数据集,依照官网给定样例调参。 实在不行,找数据科学家寻求帮助。
白天用小数据量测试验证逻辑正确性,下班后运行大数据集测试。
限制提交job占用资源,这种方式运行时间会更长,但可以解决由于资源被占满block其他任务执行的问题。
- 相关阅读 -
点击【阅读原文】可至洞见网站查看原文&绿色字体部分的相关链接。
以上是关于机器学习平台带给QA的挑战的主要内容,如果未能解决你的问题,请参考以下文章