砖上运行MLflow项目

一个MLflow项目是包装数据科学的格式代码可重用和可再生的方式。MLflow项目组件包括一个API和命令行工具运行的项目,这也与跟踪集成组件自动记录的参数和git提交源代码再现性。

本文描述了一个MLflow项目的格式以及如何运行一个MLflow项目上远程数据砖集群使用MLflow CLI,这使得它容易垂直扩展数据科学的代码。

MLflow砖Community Edition不支持项目执行。

MLflow项目格式

任何本地目录或Git存储库都可以视为一个MLflow项目。下列约定定义一个项目:

  • 项目的名字是目录的名称。

  • 在指定的软件环境python_env.yaml,如果存在。如果没有python_env.yaml文件存在,MLflow使用virtualenv环境只包含Python(具体来说,最新的Python使用virtualenv)在运行项目。

  • 任何. py. sh在项目文件可以一个入口点,不带参数显式声明。当你用一组参数来运行这个命令,MLflow通过每个参数在命令行上使用——关键<值>语法。

通过添加一个MLproject文件指定更多的选择,这是一个文本文件在YAML语法。一个例子MLproject文件看起来是这样的:

的名字:我的项目python_env:python_env.yamlentry_points:主要:参数:data_file:路径正则化:{类型:浮动,默认的:0.1}命令:“pythontrain.py- r{正规化}{data_file}”验证:参数:data_file:路径命令:“pythonvalidate.py{data_file}”

运行一个MLflow项目

砖集群上运行一个MLflow项目在默认的工作空间,使用命令:

mlflow运行< uri > - b砖——backend-config < json-new-cluster-spec >

在哪里< uri >URI是一个Git存储库或文件夹包含一个MLflow项目和< json-new-cluster-spec >是一个JSON文档,其中包含一个new_cluster结构。Git URI应该的形式:https://github.com/ <回购> # <项目文件夹>

一个示例集群规范:

{“spark_version”:“7.3.x-scala2.12”,“num_workers”:1,“node_type_id”:“i3.xlarge”}

如果你需要安装库的工人,用“集群”规范格式。注意,车轮必须上传到DBFS和指定为pypi依赖关系。例如:

{“new_cluster”:{“spark_version”:“7.3.x-scala2.12”,“num_workers”:1,“node_type_id”:“i3.xlarge”},“库”:({“pypi”:{“包”:“tensorflow”}},{“pypi”:{“包”:“/ dbfs / path_to_my_lib.whl”}}]}

重要的

  • .egg. jarMLflow项目依赖项不支持。

  • MLflow项目执行与码头工人环境不受支持。

  • 你必须使用一个新的集群规范运行时一个MLflow项目砖。不支持对现有集群运行的项目。

使用SparkR

为了使用SparkR MLflow项目运行,项目代码必须先安装和进口SparkR如下:

如果(file.exists(“/砖/火花/ R /包裹”)){install.packages(“/砖/火花/ R /包裹”,回购=)}其他的{install.packages(“SparkR”)}图书馆(SparkR)

你的项目可以初始化一个SparkR会话和使用SparkR正常:

sparkR.session()

例子

这个例子展示了如何创建一个实验,在砖集群上运行MLflow教程项目,查看工作运行的输出,以及查看运行的实验。

需求

  1. 安装MLflow使用皮普安装mlflow

  2. 安装和配置砖CLI。砖CLI需要身份验证机制砖集群上运行的工作。

步骤1:创建一个实验

  1. 在工作区,选择创建> MLflow实验

  2. 在Name字段中,输入教程

  3. 点击创建。注意实验ID。在这个例子中,它是14622565

    实验ID

步骤2:运行MLflow教程项目

以下步骤设置MLFLOW_TRACKING_URI环境变量和运行项目,记录训练参数,指标,和训练模型实验指出在前面的步骤:

  1. 设置MLFLOW_TRACKING_URI环境变量设置为砖工作区。

    出口MLFLOW_TRACKING_URI=
  2. 运行MLflow教程项目、培训葡萄酒模型。取代< experiment-id >与实验ID您在前面的步骤中指出。

    mlflow运行https://github.com/mlflow/mlflow的例子/ sklearn_elasticnet_wine - b砖——backend-config cluster-spec。json - experiment-id < experiment-id >
    = = =从https://github.com/mlflow/mlflow获取项目的例子/ sklearn_elasticnet_wine /var/folders/kc/l20y4txd5w3_xrdhw6cnz1080000gp / T / tmpbct_5g8u = = == = =上传项目DBFS路径/ DBFS / mlflow-experiments / < experiment-id > / projects-code / 16 e66ccbff0a4e22278e4d73ec733e2c9a33efbd1e6f70e3c7b47b8b5f1e4fa3.tar。广州= = == = =完成上传项目/ dbfs mlflow-experiments / < experiment-id > / projects-code / 16 e66ccbff0a4e22278e4d73ec733e2c9a33efbd1e6f70e3c7b47b8b5f1e4fa3.tar。广州= = == = =运行入口点主要项目https://github.com/mlflow/mlflow的例子/ sklearn_elasticnet_wine砖= = == = =推出MLflow砖工作跑ID为8651121。获取运行状态页面URL……= = == = =检查运行的状态在https:// < databricks-instance > #工作/ <作业id > /运行/ 1 = = =
  3. 复制网址https:// < databricks-instance > #工作/ <作业id > /运行/ 1在MLflow运行输出的最后一行。

步骤3:查看砖的工作运行

  1. 你打开URL复制在前面的步骤中在浏览器中查看数据砖工作运行输出:

    工作运行输出

第四步:查看实验和MLflow运行的细节

  1. 导航到实验数据砖工作区。

    去实验
  2. 单击实验。

    视图的实验
  3. 显示运行细节,日期列中单击一个链接。

    运行细节

您可以从您的运行通过单击查看日志日志链接的工作输出字段。

资源

对于一些例子MLflow项目,看到MLflow程序库随时可以运行的存储库,其中包含项目旨在使它容易包括毫升功能代码。