如何让你的数据科学家与数据工程师合作共赢

大数据文摘

共 2500字,需浏览 5分钟

 ·

2020-08-17 20:53

大数据文摘出品

来源:VB

编译:张秋玥


开发机器学习模型过程漫长,数据科学家与数据工程师们需要通力合作——但实际上往往他们并不太能做得到这一点。


本文作者就表示,自己见过无数次模型花了几个月时间才被投入生产,因为数据科学家在等数据工程师建造适合该模型的生产系统,而数据工程师在等数据科学家建造适合生产系统的模型。


VentureBeat之前有篇文章报道说,87%的ML项目最终无法落地,其主要原因在于数据问题以及团队缺乏合作。从合作这个方面来说,数据科学家与工程师之间的紧张关系常常会导致毫无必要的延误与失败。尽管经常开会确保大家互相理解共情可以缓解一下这一局面,要从根本上解决问题还是要使用MLOps技术。


在亲身经历这种“折磨过后,来听听作者是如何向我们传授数据科学家与数据工程师的信任度提升大法的~


问题的范围


在讨论解决方案之前,我们需要对问题进行更深入的分析。科学家与工程师(无论是否是数据方面)常常是水火不容一般的存在。你随便去网上搜一搜“科学家vs工程师”都能看到一大堆关于谁更厉害更高大上的争论。工程师一般会接到一些搭建、运营与维护的任务,因此他们会关注于如何建造最简洁高效可靠的系统。而科学家们一般会接到建造最最精确的模型的任务,因此他们会希望能够有权限接入所有的数据,并且能够利用其建造复杂精密又独树一帜的模型。


与其着重强调区别,我认为承认双方都会带来巨大的价值并思考如何才能最大化双方的技能更加高效。倘若我们关注于双方的共同点——建立一个能够提供及时并高质量数据的稳定系统——我们就能够培养一个更加有协作性的环境了。通过了解双方的痛点,两个团队可以建立基本的共情与理解,以帮助他们合作愉快。此外,现在还有许多新兴技术来帮助弥补两个团队之间的差距。


MLOps


MLOps是一项将DevOps思想应用到数据科学与机器学习生态圈的新兴技术。它减轻了数据科学家建立并维护的重负,同时为数据科学家提供了灵活性与自由度。这是一个双赢的解决方案。我们接下来可以看一些常见的问题,以及这些新技术是如何解决他们的。

  

模型编制:将模型放到生产环境的第一个坎就是部署问题——部署到哪里,在哪里托管,怎么进行管理。这主要是个工程问题。所以当你的团队里既有数据科学家又有数据工程师的时候,它一般会由工程师们负责。


建立系统需要花费数周甚至数月,而工程师们原本可以将其用于改善数据流或者模型来着。模型编制平台可以帮助标准化模型部署框架,将这一步变得更加简单。Facebook这种大公司有能力投资FBLearner这样的平台来处理模型编制问题,但对于小微企业来说这个方法不太具有可行性。幸好现在已经出现了不少相关的开源平台了——比如MLFlow和KubeFlow,他们都是使用容器化来解决模型部署基础设施方面问题的产品。


特征库:将模型投入生产的路上第二个坎儿是数据问题。经常模型使用数据库内的历史数据来进行训练,但却使用生产环境的数据来进行预测。这两个系统之间存在的差异经常会导致模型表现极差。数据工程师会需要花费大量精力来改动模型或环境来保证正常运营。


我自己曾经就花费数周来搭建一些非常有用的特征,结果最后因为数据工程师没有精力将其生产化从而导致这些特征被丢弃。特征库——也就是专门为ML模型训练与生产化而建立的数据库——能够通过保证开发环境中的数据和特征能够立刻被生产环境所用而帮助改善这一问题。数据科学家们可以放心去建造模型,而数据工程师们可以不用花费大量精力去保证两个系统完全一致了。优步和Airbnb这些大公司也有自己搭建自己的特征库(分别是Michelangelo和ZipLine),不过第三方平台在市面也可以见到了。比如所Logical Clocks就有为其Hopsworks平台提供特征库服务;我在Kaskada的团队也在建立一个基于事件的数据特征库。


DataOps:因为模型表现不对劲所以深更半夜被同事打电话叫回公司已经很恼火了,但更恼火的是,你经常在检查半天模型之后得出结论:是数据出现变化带来的问题。


以下这种对话多得我都要听吐了:


  • 数据工程师:你的模型在报错,哪里坏了?

  • 数据科学家:我的模型没坏,是你的数据流坏了

  • 数据工程师:OK那你跟我说哪个数据流坏了我改还不行吗

  • 数据科学家:我也不知道哪坏了但我知道就是坏了


发现这种问题的原因就跟大海捞针一样困难。幸运的是,我们现在有了新框架和新工具来对数据和数据源进行监管与测试,能帮我们节约大量的时间。Great Expectations就是一个例子——他们帮助改善数据库建立、录入以及监控这些方面。还有一个数据流监控的例子是Databand.ai——他们最近刚在Medium上发了篇文章,关于为什么传统数据流监控解决方案并不适用于数据工程与数据科学领域。


结论


通过使用这些工具,团队可以降低需求复杂度提升数据科学家与数据工程师之间的共情力与信任度。数据科学家可以放心去进行开发,不用担心会给工程师们带来过大任务量。两个团队都可以专注于进行他们最擅长的各自领域的工作,而非如何和对方撕逼。这些工具能够帮助我们将好斗的团队风气转变成一个大家都开开心心和睦相处的环境。


相关报道:

https://venturebeat.com/2020/08/09/how-to-get-your-data-scientists-and-data-engineers-rowing-in-the-same-direction/




实习/全职编辑记者招聘ing

加入我们,亲身体验一家专业科技媒体采写的每个细节,在最有前景的行业,和一群遍布全球最优秀的人一起成长。坐标北京·清华东门,在大数据文摘主页对话页回复“招聘”了解详情。简历请直接发送至zz@bigdatadigest.cn



志愿者介绍
后台回复志愿者”加入我们


点「在看」的人都变好看了哦!
浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报