还在用Github管理机器学习项目?你早该了解这些更专业的新工具!(3)
_get_or_run函数是mlflow.run的一个wrapper。每个调用函数中的第一个参数为在MLproject文件中定义的entrypoint。每个entrypoint包含环境变量,要运行的命令,以及传递给该命令的参数。例如:
乍一看感觉非常不错。但是这里有几个问题值得思考:
DVC可以使用常规命令行工具,并且既不需要设置服务器也不需要编写驱动程序。DVC支持使用前面提到的,通过一组DVC文件将工作流定义为有向无环图(DAG)。 我们之前提到了,DVC文件会与添加到workspace中的文件相关联。DVC文件同时还描述了要执行的命令:
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 【本文是51CTO专栏机构大数据文摘的原创文章,微信公众号“大数据文摘( id: BigDataDigest)”】
戳这里,看该作者更多好文
(编辑:ASP站长网) |