概述
作者 | Caleb Kaiser
译者 | 弯月,责编 | 夕颜
头图 | CSDN下载自视觉中国
出品 | CSDN(ID:CSDNnews)
以下为译文:
如果你需要创建一个生产环境下的机器学习流水线,那么开始的部分工作(设计和训练模型等)显然属于数据科学的范畴。
某种意义上,当你需要将模型投入生产环境时,需要将常规的流水线从数据科学领域转移到基础设施领域。直观地讲,这时数据科学团队需要将工作移交给其他人,即开发运维。
然而,现实并非总是如此。越来越多的公司开始要求数据科学家负责将模型部署到生产的工作。
据统计,大多数数据科学家都需要花费25%以上的工作时间来部署模型。有趣的是,在数据科学家职位的招聘广告中也经常看见Kubernetes、Docker和EC2之类的技术要求。
为什么数据科学家不应该处理模型服务?
简单来说,模型服务是基础架构的问题,不属于数据科学范畴。我们可以比较一下这两个领域使用的技术栈:
当然,有些数据科学家喜欢开发运维,他们也可以承担跨部门的工作,但是这种情况比较罕见。事实上,我认为大家都高估了数据科学与开发运维之间的重叠度。
我们反过来看,你是否认为开发运维工程师能够设计新的模型体系结构,或者拥有大量调整超参数的经验?可能那些具备了数据科学知识,而且愿意学习一切的开发运维工程师确实能够胜任这些工作,但是将这些工作视为开发运维团队的职责就很奇怪了。
将心比心,数据科学家也不应该操心自动伸缩或编写Kubernetes清单文件的工作。那么为什么各个公司会这样要求他们呢?
各个公司忽视了基础设施的工作
许多组织对于模型服务的复杂程度存在根本的误解。通常他们的态度是“利用Flask打包一下模型就足够了。”
然而现实情况是,无论规模如何,任何模型服务都涉及一系列基础设施的难题。例如:
如何在保证不停机的情况下,自动更新生产中的模型?
如何有效地自动伸缩一个在GPU上运行的5GB模型?
如何监视和调试生产部署?
如何在控制云消费的情况下,完成所有的工作?
平心而论,现如今的机器学习基础设施是一个非常新的概念。两年前,Uber才透露了他们最先进的内部机器学习基础设施:Michelangelo。机器学习基础设施的编写方式多种多样。
但是,很多组织也很好地示范了如何在没有Uber工程资源的情况下,将数据科学与开发运维的工作重心分开来。
如何分离数据科学与开发运维的工作?
在这个话题上,我的很多看法主要来自我从事的开源模型服务平台Cortex上的工作。
我们通过模型-API-客户端的抽象架构,概念化了数据科学、开发运维与产品工程之间的交接工作:
模型:经过训练的模型,即便是没有数据科学专业知识的工程师也可以使用predict()函数。
API:基础设施层接受训练好的模型,然后部署为Web服务。我们构建了Cortex来自动化这一层的工作。
客户端:实际与部署在API层中的Web服务交互的应用程序。
在模型阶段,数据科学家会训练并导出模型。他们还将负责编写predict()函数,用于根据模型生成和过滤预测。
接下来,他们会将该模型移交给API,这个阶段的工作完全由开发运维部门负责。对于开发运维部门来说,该模型只是一个Python函数,只需将其转换为微服务,然后进行容器化和部署。
在模型-微服务启动后,产品工程师就可以把它们当作API进行查询。对他们来说,该模型只是一个Web服务。
模型-API-客户端体系结构不是分割数据科学与工程问题的唯一方法,但这个例子说明了你完全可以在数据科学和开发运维之间划清界线,同时无需引入过多的开销或构建昂贵的端到端平台。
只需在机器学习的工作流程中建立明确的交接点,就可以将数据科学家解放出来,让他们去做擅长的工作:数据科学。
作者简介
Caleb Kaiser,机器学习基础设施工程师。
原文链接:
https://towardsdatascience.com/why-are-data-scientists-doing-devops-bc36d00584c3
本文为CSDN翻译文章,转载请注明出处。
【END】
6月2日20:00,CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛携手全球顶级开源基金会主席、董事,聚焦中国开源现状,直面开发者在开源技术、商业上的难题,你绝不可错过的开源巅峰对谈!立即免费围观:
更多精彩推荐
☞大佬 Zed 玩转跨界:不会绘画的音乐家不是好程序员
☞航拍高手、吉他十级,6500+Star 开源项目作者,后浪程序员给力!
☞面试官:你的 SQL 一般有几个 join?| 原力计划
☞基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了
☞面试中遇到这 3 个SQL问题,最容易掉坑里!
☞好扑科技结合区块链行业发展趋势,重磅推出“好扑区块链合伙人”计划
点击阅读原文,精彩继续。
你点的每个“在看”,我都认真当成了喜欢
最后
以上就是和谐乌冬面为你收集整理的为什么数据科学家需要承担开发运维的工作?的全部内容,希望文章能够帮你解决为什么数据科学家需要承担开发运维的工作?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复