Skip to content
Latchkey

model registryとは? トレーニング済みモデルのカタログ化を解説

model registryとは、トレーニング済みモデルをバージョン、メタデータ、ライフサイクルステージとともに保存する中央カタログであり、どのモデルが本番環境にあるのかをチームが正確に把握できるようにします。

パイプラインがモデルをトレーニングした後、それはどこへ行くのでしょうか? model registryがその答えです。これはトレーニング済みモデルのための記録システムであり、container registryがイメージに対して果たす役割とよく似ています。バージョン、誰がトレーニングしたか、どのようなスコアだったか、そして各モデルがどのステージ - staging または本番 - にあるかを追跡します。

model registryとは何か

model registryは、トレーニング済みモデルバージョンのカタログです。各エントリには、モデルのartifact(またはそのポインタ)、そのメトリクス、それを生み出したデータとコード、そしてライフサイクルステージが保存されます。MLflow、SageMaker、Vertex AIはいずれもregistryを備えています。

ライフサイクルステージ

registryは通常、None、Staging、Production、Archivedといったステージをサポートします。モデルをStagingからProductionへ昇格させることは、意図的で監査可能なアクションであり - buildをdeploy環境を通じて昇格させることのML版に相当します。

CIとdeployの間の受け渡し

registryは、トレーニングパイプラインがdeployパイプラインへ受け渡しを行う場所です。トレーニングjobが新しいバージョンを登録し、別のdeploy jobがProductionステージのモデルをpullして提供します。この分離により、再トレーニングなしに以前のモデルバージョンへrollbackできます。

CIからモデルを登録する

評価が合格した後、CIのjobがモデルとそのメトリクスをregistryに記録し、最良のバージョンが常に見つけられる状態にします。

Registering a model after training
import mlflow
with mlflow.start_run():
    mlflow.log_metric("accuracy", 0.94)
    mlflow.sklearn.log_model(model, "model",
        registered_model_name="churn-classifier")

Latchkeyに関する注記

モデルのartifactをpushしたりpullしたりすると、大きなファイルが移動します。Latchkeyでは、deploy実行間でpullした本番モデルをキャッシュし、registryやオブジェクトストアの一時的なタイムアウトにauto-retryをかけることで、CIからdeployへの受け渡しを高速かつ信頼性の高いものに保ちます。

重要なポイント

  • model registryは、メトリクス、来歴、ライフサイクルステージを備えた、トレーニング済みモデルバージョンの中央カタログです。
  • モデルをStagingからProductionへ昇格させることは、buildを環境間で昇格させるのと同じく、監査可能なアクションです。
  • registryはトレーニングとdeployを分離し、再トレーニングなしに以前のモデルへのrollbackを可能にします。

関連ガイド