marp | paginate |
---|---|
true |
true |
MLflow で実験のパラメータ、メトリックや学習済みモデルの記録については、情報が豊富に見つかりますが、しかし前処理と学習・予測を一連の処理としてパイプライン化する、分かりやすい簡単なサンプルが見つからなかったので、作ってみました。
よって、このサンプルでは、前処理と学習・予測のパイプライン化に重点を置きます。 また、予測サービス(REST)を簡単に立ち上げられることについても少し触れます。
- データ: タイタニック号乗客の生存
- Pandasで前処理
- H2O AutoMLやAutoGluonで機械学習
- MLflow custom modelで前処理と学習・予測をつなげる 🎶
- MLflow models serveで予測RESTサービス
なお、 Python や各種ライブラリのバージョンによっては mlflow serving
で予測するときと、
mlflowの保存済みモデルで予測するときとで、予測結果(確率)に差異が見られるので注意が必要です。
cp -i .env_sample .env
.devcontainer/Dockerfile
で
Mamba/Conda環境作成
試しに Age, Fareの Min-Maxスケーリング 序に、列名を日本語化して日本語の列名への対応をみる。
make preproc
make train_h2o
make train_autogluon
デフォルトで5000番ポートが使われます。
make serve_model
または、 予測API用コンテナを作れます。
make serve
make test_h2o
または
make test_autogluon
同じテストデータに対して、APIを使って予測させる場合と、 モデルを直接ロードして予測させる場合とを比較して、 同じ予測結果になることを確認します
Request
{ "columns": [ "x1", "x2", "x3" ],
"data": [
[ 3, 2, 5 ],
[ 1, 4, 8 ] ] }
Response(分類問題)
分類の確率
[ 0.7, 0.6 ]