关于DevOps,数据科学家需要清楚这些
发布时间:2021-06-09 21:03:59 所属栏目:大数据 来源:互联网
导读:为什么数据科学家需要了解DevOps 那么,在众多的工程和软件技能中,数据科学家应该学习哪一种呢?我的钱花在DevOps上了。 DevOps是development和operations的合成词,于2009年在比利时的一次会议上正式诞生。这次会议的召开是为了应对科技公司在历史上经历过
|
为什么数据科学家需要了解DevOps
那么,在众多的工程和软件技能中,数据科学家应该学习哪一种呢?我的钱花在DevOps上了。
DevOps是development和operations的合成词,于2009年在比利时的一次会议上正式诞生。这次会议的召开是为了应对科技公司在历史上经历过深刻分歧的两个方面之间的紧张关系。软件开发人员需要快速行动并经常进行试验,而运维团队则优先考虑服务的稳定性和可用性(这些人让服务器每天都在运行)。他们的目标不仅是对立,而且是竞争。
这听起来很像今天的数据科学。数据科学家通过实验创造价值:数据建模、组合和转换的新方法。与此同时,雇佣数据科学家的组织受到稳定的激励。
这种划分的后果是深远的:在最新的Anaconda数据科学状态”报告中,“不到一半(48%)的受访者认为他们可以证明数据科学对他们的组织的影响”。据估计,绝大多数由数据科学家创建的模型最终都被束之高阁。我们还没有强大的实践来在创建模型的团队和部署模型的团队之间传递模型。数据科学家和实现他们工作的开发人员和工程师拥有完全不同的工具、约束条件和技能集。
DevOps的出现就是为了解决软件中的这种僵局,就像开发人员vs运维一样。它取得了巨大的成功:许多团队已经从每几个月部署一次新代码发展到一天部署几次。既然我们已经有了机器学习和操作,那么现在就该考虑MLOps了——来自DevOps的用于数据科学的原则。
引入持续集成
DevOps既是一种哲学,也是一套实践,包括:
自动化你所能做到的一切
快速获得对新想法的反馈
减少工作流程中的手工交接
在一个典型的数据科学项目中,我们可以看到一些应用:
自动化你所能做到的一切。自动化部分重复和可预测的数据处理、模型训练和模型测试。
快速获得对新想法的反馈。当你的数据、代码或软件环境发生变化时,立即在类似生产的环境(即具有预期在生产中具有的依赖关系和约束的机器)中进行测试。
减少工作流程中的手工交接。为数据科学家寻找机会,尽可能多地测试他们自己的模型。不要等到有开发人员时才查看模型在类似生产环境中的行为。
实现这些目标的标准DevOps方法是一种称为持续集成(CI)的方法。
要点是,当你更改项目的源代码时(通常通过Git提交注册更改),你的软件将被自动构建和测试。每个动作都会引发反馈。CI通常与Git-flow一起使用,Git-flow是一种开发架构,其中的新特性构建在Git分支上。当一个特性分支通过自动化测试时,它就成为了一个候选分支,可以合并到主分支中。
软件开发中的持续集成
通过这种设置,我们有了自动化——代码更改触发一个自动构建,然后进行测试。我们有快速的反馈,因为我们可以快速得到测试结果,所以开发人员可以不断迭代他们的代码。而且因为所有这些都是自动发生的,你不需要等待其他人得到反馈——少了一个切换!
那么我们为什么不在ML中使用持续集成呢?一些原因是文化上的,比如数据科学和软件工程社区之间的低交叉。其他的则是技术性的——例如,为了理解模型的性能,你需要查看诸如准确性、特异性和敏感性等指标。数据可视化可能会帮助你,比如混淆矩阵或损失图。所以通过/失败的测试不会减少反馈。理解一个模型是否得到了改进需要一些关于手头问题的领域知识,因此测试结果需要以一种有效的和可理解的方式进行报告。
机器学习项目中持续集成的样子
CI系统是如何工作的?
现在我们要更实际一些,让我们看看典型的CI系统是如何工作的。对于学习者来说,幸运的是,由于GitHub Actions和GitLab CI等工具的出现,障碍从来没有降低过——它们有清晰的图形界面和为首次用户准备的优秀文档。由于GitHub操作对于公共项目是完全免费的,所以我们将在本例中使用它。
它是这样工作的:
1、你创建了一个GitHub存储库。你创建了一个名为.github/workflows的目录,并在其中放置了一个特殊的.yaml文件,其中包含你想要运行的脚本。
$ python train.py
2、你可以以某种方式更改项目存储库中的文件,然后Git提交更改。然后,推到GitHub存储库。
# Create a new git branch for experimenting
$ git checkout -b "experiment"
$ edit train.py
# git add, commit, and push your changes
$ git add . && commit -m "Normalized features"
$ git push origin experiment
3、一旦GitHub检测到push,GitHub就会部署他们的一台计算机来运行.yaml中的函数。
4、如果函数运行成功或失败,GitHub会返回一个通知。
在GitHub存储库的Actions选项卡中找到它
就是这样!真正奇妙的是,你正在使用GitHub的计算机来运行你的代码。你所要做的就是更新代码并将更改推送到存储库中,工作流就会自动发生。
回到我在第1步中提到的特殊的.yaml文件——让我们快速查看一个。它可以有任何你喜欢的名称,只要文件扩展名是.yaml,并且它存储在.github/workflows目录中。
![]() (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


