MLflow 入門
Weston Bassler
Senior MLOps Engineer
モデルパッケージングの標準化
モデルのロギング
モデル評価

/ping - ヘルスチェック用
/health - ヘルスチェック用
/version - MLflow のバージョン取得
/invocations - モデル推論
ポート 5000
/invocations
No,Name,Subject
1,Bill Johnson,English
2,Gary Valentine,Mathematics
Content-Type:application/json または application/csv
{
"1": {
"No": "1",
"Name": "Bill Johnson",
"Subject": "English"
},
"2": {
"No": "2",
"Name": "Gary Valentine",
"Subject": "Mathematics"
}
}
Pandas DataFrame
pandas_df.to_csv()
dataframe_split - split 方式の pandas DataFrame
dataframe_records - records 方式の pandas DataFrame
# DataFrame の split 方式
{
"dataframe_split": {
"columns": ["sex", "age", "weight"],
"data": [["male", 23, 160], ["female", 33, 120]]
}
}
# MLflow の serve コマンド
mlflow models serve --help
Usage: mlflow models serve [OPTIONS]
# ローカルファイルシステム
mlflow models serve -m relative/path/to/local/model
# Run ID
mlflow models serve -m runs:/<mlflow_run_id>/artifacts/model
# AWS S3
mlflow models serve -m s3://my_bucket/path/to/model
# 実行からモデルを提供
mlflow models serve -m runs:/e84a122920de4bdeaedb54146deeb429/artifacts/model
2023/03/12 16:28:28 INFO mlflow.models.flavor_backend_registry:
Selected backend for flavor 'python_function'
2023/03/12 16:28:28 INFO mlflow.pyfunc.backend: === Running command
'exec gunicorn --timeout=60 -b 127.0.0.1:5000 -w 1 ${GUNICORN_CMD_ARGS} --
mlflow.pyfunc.scoring_server.wsgi:app'
[2023-03-12 16:28:29 -0400] [48431] [INFO] Starting gunicorn 20.1.0
[2023-03-12 16:28:29 -0400] [48431] [INFO] Listening at: http://127.0.0.1:5000
(48431)
[2023-03-12 16:28:29 -0400] [48431] [INFO] Using worker: sync
[2023-03-12 16:28:29 -0400] [48432] [INFO] Booting worker with pid: 48432
# dataframe_split 方式のペイロードを MLflow に送信
curl http://127.0.0.1:5000/invocations -H 'Content-Type: application/json' -d '{
"dataframe_split": {
"columns": ["sex", "age", "weight"],
"data": [["male", 23, 160], ["female", 33, 120]]
}
}'
{"predictions": [1, 0]}
MLflow 入門