其他
机器学习平台带给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其他任务执行的问题。
- 相关阅读 -