数据科学或机器学习团队如何处理DevOps? | 黑客新闻


机器学习团队经常面临许多其他领域所没有的运营需求。
一些例子:
仪器的可观察性,不仅可以监视数据质量和上游ETL作业状态,还可以监视训练ML模型的特定领域注意事项,例如过度拟合,混淆矩阵,业务用例准确性或验证检查,ROC曲线等等(所有这些都需要自定义和每个模型训练任务集中报告)。
 
标准化特殊资源的端到端工具,例如排队和批处理以保持生产GPU系统的高利用率,高RAM用例(例如近似的最近邻居索引),例如如何采用经过训练的模型并进行部署在微服务的背后进行烘焙,记录,跟踪,警报等操作。
 
机器学习工程师和数据科学家在专注于理解数据,运行实验以确定哪种模型,与产品经理或工程师配对
以了解围绕用户体验的约束以及设计软件工具和抽象时,往往会具有比较优势。围绕独特的培训或服务架构(例如GPU队列示例)。  
越来越多的数据科学家团队需要进行开发工作,以配置和维护例如kubernetes和CI / CD工作负载,警报和监视,日志记录,仪器安全性或数据访问控制合规性解决方案。
这些devops工作抢夺了这些数据工程师花费在他们的强项的时间或精力,让他们从事未经培训且不感兴趣的devop工作,这导致数据科学家经常精疲力尽,其他许多非专业人士也可以做devops。
如何组织团队,构建工具并建立合规性或运营期望,以使数据科学家和相关统计科学家以及ML后端工程师蓬勃发展?
 
经验一:将整个堆栈从python重新编写为C ++线程池异步grpc(是否是唯一可用的优秀线程池服务器实现?),部署在openshift上,使用vector + influx + grafana用于仪表板/内部模型监视器,用于日志记录的弹性搜索,以及其他用于验证的工具,用于筛选潜在的培训候选者的工具等。现在,如果模型基于不同的验证集找到更好的模型,一键式部署准备就绪等,则在训练期间正在运行ml的CI / CD
 
经验二:我的团队管理着一个类似于FloydHub构建的平台/框架(我们编写了一个与AWS集成的django应用程序,但是任何云提供商都可以做到)和另一个类似于SigOpts(我们构建了一个使用第一个系统API的服务器-客户端系统)的平台/框架。部署节点),这使我们可以有效地开发模型,然后进行超参数调整。最后,我们将它们部署在库和flask应用程序中。这使得它们在整个企业中都易于消化。
我们是一个由三人组成的团队,可以利用其他团队进行改进(也称为“内部溯源”开发)。这是一项繁重的工作,但是管理整个堆栈使我们能够更快,更有效地开发模型。在有多个团队利用我们的框架的情况下,我们具有至关重要的力量,可以使一切正常运行。
 
经验三:在我的团队中,我负责解决此问题。我们的组织方式是特定的团队完全按照您的描述进行工作。我从事数据提取工作,并尽快将其送到安全的地方(由于这很重要,因此拥有比其他团队更高的高级成员)。另一个团队对其进行ETL,另一个团队进行数据存储和访问,另一个团队进行ML治理,另一个团队用于创建模型,依此类推。我们专注于我们的领域并进行交流。似乎运作良好。
  
经验四:60个小组中的两类雇用人员:
1)研究人员/数学家
2)精通ML / AI流程和方法的DevOps /软件工程师,他们可以听取第1组的要求,并实施可以有效解决问题的系统
 
经验五:在我的团队中,我负责解决此问题。我们的组织方式是特定的团队完全按照您的描述进行工作。
我从事数据提取工作,并尽快将其送到安全的地方(由于这很重要,因此拥有比其他团队更高的高级成员)。另一个团队对其进行ETL,另一个团队进行数据存储和访问,另一个团队进行ML治理,另一个团队用于创建模型,依此类推。
我们专注于我们的领域并进行交流。似乎运作良好。

经验六:斯坦福大学研究人员发起的一些项目似乎解决了这些问题。我遇到的一些关键字是MLflow,sisu和Databricks。最后一个就是Spark。

经验七:我工作过的所有公司都拥有专门的平台团队,可以完成您提到的所有事情。