磚上運行MLflow項目

一個MLflow項目是包裝數據科學的格式代碼可重用和可再生的方式。MLflow項目組件包括一個API和命令行工具運行的項目,這也與跟蹤集成組件自動記錄的參數和git提交源代碼再現性。

本文描述了一個MLflow項目的格式以及如何運行一個MLflow項目上遠程數據磚集群使用MLflow CLI,這使得它容易垂直擴展數據科學的代碼。

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.5.x-scala2.12”,“num_workers”:1,“node_type_id”:“memoptimized-cluster-1”}

如果你需要安裝庫的工人,用“集群”規範格式。注意,車輪必須上傳到DBFS和指定為pypi依賴關係。例如:

{“new_cluster”:{“spark_version”:“7.5.x-scala2.12”,“num_workers”:1,“node_type_id”:“memoptimized-cluster-1”},“庫”:({“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程序庫隨時可以運行的存儲庫,其中包含項目旨在使它容易包括毫升功能代碼。