加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

还在用Github管理机器学习项目?你早该了解这些更专业的新工具!

发布时间:2019-07-01 19:07:27 所属栏目:建站 来源:大数据文摘
导读:大数据文摘出品 编译:钱天培、胡笳 太复杂了!机器学习(ML)项目实在太复杂了! 听到这种抱怨,熟悉软件开发的小伙伴们往往是嗤之以鼻的。 机器学习,不过是和数据和软件打交道。那就应该是是运行代码、迭代算法的简单问题呀?一段时间后,我们就能拥有一个完

_get_or_run函数是mlflow.run的一个wrapper。每个调用函数中的第一个参数为在MLproject文件中定义的entrypoint。每个entrypoint包含环境变量,要运行的命令,以及传递给该命令的参数。例如:

  1. etl_data:    parameters:      ratings_csv: path      max_row_limit: {type: int, default: 100000}    command: "python etl_data.py --ratings-csv {ratings_csv} --max-row-limit {max_row_limit}" 

乍一看感觉非常不错。但是这里有几个问题值得思考:

  • 如果你的工作流是比直线流程更复杂的情况怎么办?你可以将传给mlflow.run的同步参数设为false,然后等待SubmittedRun对象标记任务已完成。也就是说,可以在MLFlow API上构建流程管道系统。
  • 为什么需要服务器?为什么不直接通过命令行执行命令?增加服务器及其配置使得MLFlow项目的设置更加复杂。
  • 如何避免执行那些不需要的任务?在许多ML项目中,训练模型通常需要数天时间。资源应该只有在需要时才应该被使用,例如更换数据,修改参数或算法。

DVC可以使用常规命令行工具,并且既不需要设置服务器也不需要编写驱动程序。DVC支持使用前面提到的,通过一组DVC文件将工作流定义为有向无环图(DAG)。

我们之前提到了,DVC文件会与添加到workspace中的文件相关联。DVC文件同时还描述了要执行的命令:

  1. $ dvc run -d matrix-train.p -d train_model.py           -o model.p           python train_model.py matrix-train.p 20180226 model.p$ dvc run -d parsingxml.R -d Posts.xml           -o Posts.csv           Rscript parsingxml.R Posts.xml Posts.csv 

dvc run命令定义了一个DVC文件,其中包含了需要执行的命令。-d参数记录了对文件的依赖性,DVC将根据校验总和码来检测文件的更改。-o参数表示命令输出设置。一个命令的输出同样可以用于另一个命令的输入。通过查看依赖关系和输出,DVC可以计算出执行命令的顺序。

AI输出(包含训练模型)将被自动的记录在DVC的缓存中,workspace中的其他数据文件也如此。

因为它计算校验和,DVC可以检测到更改的文件。当用户请求DVC重新执行管道时,它只执行有变化的那部分。输入文件没有变化的情况,DVC可以节省大量模型训练任务所需要的时间。

所有的执行都使用常规命令行,不需要设置服务器。如果你希望在云计算环境,或在附加GPU的服务器上执行,只需要将代码和数据部署到该服务器上,并通过命令行执行DVC命令即可。

总结

我们在提高机器学习实践原则的探索上已经走了很长一段路。如我们所知,机器学习领域需要更好的管理工具,以便机器学习团队能够更有效、更可靠地工作。

结果可复现意味着他人可以评估你已完成的工作,或者协作进行更深层的开发。可重复性具有很多先决条件,包括能够检查系统的每个部分,以及能够精确地重新运行软件及输入数据。

机器学习项目中,一些GUI工具有非常漂亮的用户界面,例如Jupyter Notebook。这些工具在机器学习的工作中占有一席之地。但是,GUI工具不太适合本文讨论的原则。命令行工具非常适合处理在后台运行的任务,并且可以轻松地满足我们上述的所有原则。而一般的GUI则会妨碍这些原则。

正如本文中描述的一样,我们可以从常规软件工程中借用很多工具和实践方式。但是,机器学习项目的特殊性决定了我们需要用到更适合其目标的工具。这些有价值的工具包括:MLFlow,DVC,ModelDb,Git-LFS等等。

相关报道:https://dev.to/robogeek/principled-machine-learning-4eho

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读