0Pricing
Learn AI with Python · レッスン

モデルレジストリとバージョニング

モデルの登録、ステージング(Staging/Production)、モデルエイリアス、バージョンを指定した読み込みについて学習します。

「モデルレジストリとバージョニング」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

モデルレジストリとは

MLflow Model Registryは、モデルを一元管理するストアです。名前付きモデル、そのバージョン、ライフサイクルのステージを追跡するため、チーム全体で本番環境のモデルと、そこに至った経緯を常に把握できます。

バージョン管理が重要な理由

モデルは常に再学習されます。バージョン管理を行うと、再学習のたびに番号を付けられ、新しいモデルに問題があった場合もすぐにロールバックできます。また、各バージョンを生成した実行と関連付けられるため、完全な系譜を追跡できます。

モデルの登録

mlflow.register_modelは、記録済みモデルのURIと名前を受け取り、レジストリにバージョン1(または次のバージョン)を作成します。

import mlflow

result = mlflow.register_model(
    model_uri="runs:/<run_id>/model",
    name="churn_classifier"
)
print("Version:", result.version)

記録時の登録

registered_model_nameを渡すと、モデルの記録時に直接登録することもできます。これにより、実行のたびに新しいバージョンが自動作成されます。

mlflow.sklearn.log_model(
    model,
    artifact_path="model",
    registered_model_name="churn_classifier"
)

ライフサイクルのステージ

各バージョンは、None -> Staging(テスト) -> Production(稼働中) -> Archivedというステージを移動します。ステージによって「どのバージョンか」と「どのバージョンが提供中か」を分離できるため、昇格は再デプロイではなくメタデータの変更になります。

MlflowClient

プログラムからレジストリを操作する場合は、MlflowClientを使用します。

from mlflow.tracking import MlflowClient

client = MlflowClient()

ステージの移行

transition_model_version_stageは、バージョンを昇格させます。QAではStagingに移行し、検証が完了したらProductionに移行します。

client.transition_model_version_stage(
    name="churn_classifier",
    version=3,
    stage="Production"
)

ステージによる読み込み

提供用のコードでは、バージョン番号をハードコードせずに「Productionにあるバージョン」を読み込めます。そのため、新しいバージョンを昇格させるだけで、提供されるモデルがすぐに更新されます。

import mlflow.pyfunc

model = mlflow.pyfunc.load_model(
    "models:/churn_classifier/Production"
)

モデルエイリアス(MLflow 2.x)

MLflow 2.xではエイリアスが導入されました。エイリアスは、@championや@challengerのように、バージョンに付ける変更可能な名前付きポインターです。固定されたステージ名より柔軟で、現在推奨されている方法です。

client.set_registered_model_alias(
    name="churn_classifier",
    alias="champion",
    version=3
)

エイリアスによる読み込み

@構文を使ってエイリアスでモデルを参照できます。エイリアスを新しいバージョンに割り当て直すと、すべての利用側がすぐにそのバージョンへ切り替わります。

model = mlflow.pyfunc.load_model(
    "models:/churn_classifier@champion"
)

ステージとエイリアス

  • Stages: 固定された集合(Staging/Production/Archived)で、単純なライフサイクルを表します。
  • Aliases: 任意のカスタム名を付けられ、モデルごとに複数設定できます。MLflow 2.xで推奨されています。

新しいプロジェクトでは、柔軟性の高いエイリアスを優先するとよいでしょう。

クイックチェック

モデルレジストリに関する知識をテストしましょう。

まとめ

MLflow Model Registryを使用しました。register_modelでバージョンを作成し、MlflowClient.transition_model_version_stageでStaging/Production間を移行します。また、ステージまたはalias(MLflow 2.x)でモデルを読み込むことで、コードを変更せずに提供モデルを更新できます。次は、再現可能なパイプラインの構築です。

よくある質問

「モデルレジストリとバージョニング」レッスンは無料ですか?

はい。「モデルレジストリとバージョニング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「モデルレジストリとバージョニング」で何を学びますか?

モデルの登録、ステージング(Staging/Production)、モデルエイリアス、バージョンを指定した読み込みについて学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「モデルレジストリとバージョニング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. MLflowによる実験管理
  2. モデルレジストリとバージョニング
  3. 再現可能なMLパイプラインの構築
  4. 本番環境でのモデル性能監視
← Learn AI with Pythonに戻る