| 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 preprocmake train_h2omake train_autogluonデフォルトで5000番ポートが使われます。
make serve_modelまたは、 予測API用コンテナを作れます。
make servemake test_h2oまたは
make test_autogluon同じテストデータに対して、APIを使って予測させる場合と、 モデルを直接ロードして予測させる場合とを比較して、 同じ予測結果になることを確認します
Request
{ "columns": [ "x1", "x2", "x3" ],
  "data": [
               [ 3,    2,    5 ],
               [ 1,    4,    8 ] ] }Response(分類問題)
分類の確率
[ 0.7, 0.6 ]