机器学习平台带给QA的挑战

2024-04-14 12:48

本文主要是介绍机器学习平台带给QA的挑战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

机器学习平台是一款集数据集、特征工程、模型训练、评估、预测、发布于一体的全流程开发和部署的工作平台。其数据量大、数据多样性、支持算法种类多,加上算法模型结果不确定、集成复杂等等特点;这会给QA的工作带来怎样挑战、以及如何克服,本文一一揭晓。

在谈测试机器学习平台带给QA的挑战之前,先了解一下机器学习平台是什么?

机器学习平台是一款集数据集、特征工程、模型训练、评估、预测、发布于一体的全流程开发和部署的工作平台,为数据科学家提供端到端的一站式的服务,帮助他们脱离繁琐的工程化开发,从而帮助他们提高工作效率。

在介绍机器学习平台之前,首先看一下数据科学家日常工作是怎样的?

数据科学家的工作

数据科学家日常工作就是把一个模糊的问题转化成一个具体的数据问题,运用数据科学的方法解决掉这个问题。

举例说明:

广告供应商老大,要求数据科学家小博用模型去估计广告点击率,以便给什么用户推荐什么广告,增加用户的点击率。小博思考,广告被点击是1,没有被点击是0,这是个二分类问题,可以用简易的逻辑回归模型来预测用户点击的概率。小博开始行动如图1:

图1. CTR问题解决步骤

  • 数据收集:小博开始收集业务相关的数据,比如:广告供应商的信息,广告本身的信息和用户信息等;

  • 预处理:对收集到的上述原数据进行清洗,比如去除脏去重等等;

  • 构造数据集:把经过预处理的业务数据,构造数据集;

  • 特征工程:对数据集进行特征分析(如:卡方检验、统计等)、特征处理(如:归一化、Onehot编码等)、提取特征(如:相关性系数等),然后供LR模型训练使用;

  • 选择模型:选用Logistic Regression算法来构建预测广告点击率的模型;

  • 参数调优&评估:训练调参并观察评估结果,选择在离线数据集中性能评估值最优的参数组合;

  • 在线A/B测试:把上一步调出的最优模型上线,和原有模型进行A/B测试,如果新的模型性能表现更好,则替换掉旧模型,小博大功告成。

即数据科学家们的日常工作流程有:

  1. 问题定义
  2. 数据收集
  3. 预处理
  4. 构造数据集
  5. 特征工程
  6. 建模、调参
  7. 部署、在线验证
  8. 循环优化

###机器学习平台的主要业务

简单理解,机器学习平台就是帮助数据科学家工作变得更简单、高效。所以,机器学习平台不仅集成了各种机器学习组件(算子)和算法,提供了友好的可视化界面,可以通过简单的拖拉拽来构建复杂的Pipeline,使得数据科学家日常工作更简便、高效。即机器学习平台主要业务包括(如图2):

图2. 机器学习平台的主要业务模块

机器学习平台提供的业务功能模块:

  • 数据集
  1. 此模块主要是数据集的管理,包括数据集构建、查询、删除等,
  2. Pipeline数据通道处理后生成的数据集也在此模块管理,
  3. 创建数据集支持各种形式的数据源构建数据集(如:hive表或Textfile、Avro文件等)。
  • Pipeline
  1. 此模块主要是构建与运行数据处理通道、模型预测通道,
  2. 支持常用的特征处理、提取、降维等几十种特征工程算子,
  3. 支持拖拉拽可视化的方式轻松构建Pipeline,
  4. 支持Pipeline一键发布。
  • 实验室
  1. 支持市面上常用的几十种机器学习以及深度学习算法,如:LR、RF、FM、DFM、DNN、PNN等等;
  2. 支持模型参数调优、超参;
  3. 支持多模型同时训练自动评选最优;
  4. 支持各种模型常见的评估指标,如:准确率、召回率、F1-score等;
  5. 支持最优模型一键发布。
  • 其它
  1. 集成Jupyter Notebook
  2. 调度等等

QA面临的挑战

了解了机器学习平台的主要业务功能后,谈谈机器学习平台测试过程中,QA所面临的挑战,以及在实践的所使用的应对方案。

  • 机器学习领域太多的算法,QA难以短期内熟悉所有算子与算法;有些组件(算子)计算原理复杂,超出QA的计算能力,比如:PCA。这种情况,怎么测正确性?

在Jupyter Notebook自己写代码直接调用Spark或Angel算子,传入同样数据集,通过对比结果验证。

  • Pipeline模块,支持30多个算子,组合场景太多,难以覆盖全面。怎么办?

“ 请用二八原则做选择,挑那些收益更高的组合来覆盖。”

  1. 每个组件(算子)单独测试,然后,再全部算子组合一起验证。
  2. 与数据科学家、PO沟通,常用组合验证。
  3. 不同类组件(算子)组合验证。
  4. 逻辑复杂容易出错的组合。

以上这些Case构建自动化,或直接在Local或QA环境上备份pipeline,每当增加一个新组件(算子),除了单测新组件各种逻辑之外,再把它集成到原有的pipeline上验证。

  • 数据类型太多、数据值各样。场景太多怎么测?

在大数据项目上,数据即Case。准备好一套脚本,在集群上一键创建包含了所有数据类型与不同数据值的数据集。比如,每次SignOff或QA环境上测试时,这一个完整的数据集搞定全部场景验证。

  • 模型训练结果没有确定的答案,怎么测。
    通过模型性能指标来检验模型结果的好坏。比如:准确率、精确率、召回率、AOC曲线、F1-Score。

  • 每个不同模型算法的训练数据集与测试数据集怎么准备。当数据集准备的不好时,直接影响模型训练结果。

  1. 寻找业务方真实业务数据(脱敏)。
  2. 网上下载数据集,比如:比较流行的数据集Iris、Adult、Wine、Car Evaluation,各大官网的数据集(如:Spark data、Angel data)。
  • QA不是数据科学家,调参不专业,评估指标结果一直很差,无法判断是调参问题还是代码有问题?怎么办?
  1. 官网上下载相应数据集,依照官网给定样例调参。
  2. 实在不行,找数据科学家寻求帮助。
  • QA环境资源有限,大数据集提交到集群上训练,资源占满block其它任务执行,而且每次耗时在几十分钟或几个小时,怎么办?
  1. 白天用小数据量测试验证逻辑正确性,下班后运行大数据集测试。
  2. 限制提交job占用资源,这种方式运行时间会更长,但可以解决由于资源被占满block其他任务执行的问题。

以上是在机器学习平台项目中QA遇到的挑战与应对方案,希望有相关经验的朋友一起交流。

文/ThoughtWorks李春辉

这篇关于机器学习平台带给QA的挑战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903027

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]