今天要介紹的工具是 MLflow,該工具可分為 4 個模塊,第一個是 MLflow Tracking,用于記錄和查詢實驗結果,包含代碼、資料、配置等,第二個是 MLflow Projects,用于打包代碼以實作在任意平臺上的重復運行,第三個是 MLflow Models,用于在各種各樣的環境下部署機器學習模型,第四個是 Model Registry,用于存盤、標記、探索、管理模型,
本篇文章不可能介紹完所有模塊,所以大家就稍微簡單看看吧,我寫了什么就看什么吧,
首先我們來運行下面代碼,簡單體驗下 Tracking API 的一些用法:
import os
from random import random, randint
from mlflow import log_metric, log_param, log_artifacts
if __name__ == "__main__":
# Log a parameter (key-value pair)
log_param("param1", randint(0, 100))
# Log a metric; metrics can be updated throughout the run
log_metric("foo", random())
log_metric("foo", random() + 1)
log_metric("foo", random() + 2)
# Log an artifact (output file)
if not os.path.exists("outputs"):
os.makedirs("outputs")
with open("outputs/test.txt", "w") as f:
f.write("hello world!")
log_artifacts("outputs")
下面的界面是運行 mlflow ui 之后,在瀏覽器輸入: http://127.0.0.1:5000 之后展示的結果:

我們可以點擊框出來的實驗,進一步探查詳細資訊:

點擊 foo 這個變數,我們可以看到如下所示的 3 個點,其實就是該變數的 3 次記錄結果圖:

接下來我們可以運行如下指令,體驗一下 MLflow Projects:
mlflow run https://github.com/mlflow/mlflow-example.git -P alpha=5.0
從下面的結果圖可以發現,在運行的當前路勁下,保存了 mlruns,以及從終端可以發現,新創建了一個 conda env,

可以通過運行 mlflow ui 來查看上述的模型執行結果,下面的展示結果蠻有意思的,我就放上來了:

到這里為止,還差一個 Saving and Serving Models 沒寫,
首先我們需要克隆 mlflow 倉庫:
git clone https://github.com/mlflow/mlflow
接下來進入 examples 目錄里,執行如下指令:
python sklearn_logistic_regression/train.py
訓練完之后,會保存模型,接下來可以執行如下指令,把模型進行 serving:
mlflow models serve -m runs:/1f211bb7aa67454882e017391126e6de/model
其中的 1f211bb7aa67454882e017391126e6de 是 RUN_ID,也就是下圖框出來的地方,

最后一步就是預測了,執行如下指令:
curl -d '{"columns":["x"], "data":[[1], [-1]]}' -H 'Content-Type: application/json; format=pandas-split' -X POST localhost:5000/invocations
輸出結果圖,如下所示:

這里有個坑,我在 Windows 上執行 curl 進行預測會報錯,但是 Linux 上就沒問題,可能是我哪里設定不對了?先放著吧,反正平時搞代碼都是 Linux,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/301566.html
標籤:其他
上一篇:通訊錄2.0版本(檔案保存版)
