Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Model Registry

モデルレジストリは、学習済みモデルとそのメタデータをバージョン管理して記録するカタログで、承認済みのバージョンと本番環境で稼働中のバージョンを管理します。

モデルレジストリは、バージョン管理されたトレーニング済み機械学習モデルのカタログです。各エントリーには、モデルの重みファイルなどのモデルアーティファクトと、それを信頼するために必要なメタデータが保存されます。具体的には、生成元のトレーニング実行、データバージョン、平均適合率(mAP)などの評価指標、入出力スキーマ、所有者、承認状況です。デプロイパイプラインやアプリケーションは、重みファイルを受け渡す代わりに、指定されたバージョン、または現在本番ラベルが付いているバージョンをレジストリに要求します。そのため、すべてのリリースとロールバックが、正確に記録されたモデルを参照します。機械学習運用(MLOps)では、レジストリは実験トラッキングとモデルデプロイの間に位置します。広く使われているレジストリには、MLflow Model Registry、Amazon SageMaker Model Registry、Vertex AI Model Registry、Weights & Biases Registryがあります。

モデルレジストリの仕組み#

登録済みモデルとは、defect-detectorのような名前で、複数のバージョンを保持するものです。各バージョンは登録後に不変となるため、新しい重みは常に新しいバージョンになり、バージョン7は常に同じバイト列を表します。通常、各バージョンには次の情報が記録されます。

  • 系譜: 生成元の実行ID、コードのコミット、データセットのバージョン、親モデル。
  • 評価結果: 検証指標に加え、各対象デバイスで測定したレイテンシとメモリ使用量。
  • シグネチャ: 想定される入出力スキーマです。誤った形状を送信した呼び出し元は、すぐにエラーになります。
  • モデルカード: 想定用途、学習データ、既知の制限事項に関するドキュメント。
  • ステータス: バージョンの状態を示すタグとエイリアス。

Ultralytics Platformは、ホストするすべてのYOLO学習実行について、この種の記録を保持します。モデルページには、親モデル、固定されたデータセットのバージョン、Gitコミット、ultralyticsのバージョン、ハイパーパラメーター、最終指標、再現可能なyolo trainコマンドが表示されます。また、カスタムメタデータ欄には、リリース管理やガバナンス向けのJSONオブジェクトを入力できます。

以前のレジストリでは、各バージョンをStaging、Production、Archivedなどの固定ステージ間で移動させていました。MLflowはバージョン2.9.0でステージを廃止し、エイリアスを導入しました。エイリアスは@championのような変更可能な名前付きポインターで、チームがバージョン間で移動させます。Amazon SageMakerでは、各バージョンにPendingManualApproval、Approved、Rejectedのいずれかの承認ステータスを記録します。モデルの昇格はエイリアスを移動することであり、ロールバックはエイリアスを元に戻すことです。

レジストリは、誰が何を変更できるかも管理します。データサイエンティストはバージョンを登録し、指定されたレビュー担当者は本番エイリアスを移動させ、すべての変更が監査ログに記録されます。チームはこうしたイベントを自動化に連携させることがよくあります。バージョンの承認をデプロイパイプラインの開始につなげたり、データドリフトに関するモデル監視のアラートを、次の候補モデルを登録する再学習の開始につなげたりできます。

MLflowのレジストリでは、このパターンを数行のコードで確認できます。このスクリプトは小さなscikit-learn分類器を学習して登録し、新しいバージョンにchampionエイリアスを割り当て、そのエイリアス経由でモデルを読み込みます。これは、モデルサービングのコードが現在の本番モデルを取得する方法です。

import mlflow
from mlflow import MlflowClient
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

# Keep runs and registered model versions in a local SQLite file
mlflow.set_tracking_uri("sqlite:///mlflow.db")
X, y = load_iris(return_X_y=True)

# Log a trained model inside a run, then register it as a new version
with mlflow.start_run():
    model = LogisticRegression(max_iter=200).fit(X, y)
    info = mlflow.sklearn.log_model(model, name="model")
version = mlflow.register_model(info.model_uri, "iris-classifier")

# Point the "champion" alias at this version; applications load the alias
MlflowClient().set_registered_model_alias("iris-classifier", "champion", version.version)
champion = mlflow.pyfunc.load_model("models:/iris-classifier@champion")
print(f"version {version.version}:", champion.predict(X[:3]))

新しいデータベースでスクリプトを実行すると、登録済みバージョンと最初の3つの花の予測クラスを示すversion 1: [0 0 0]が出力されます。再度実行するとバージョン2が登録され、同じmodels:/iris-classifier@champion URIがエイリアスに従って新しいバージョンを参照するため、読み込みコードを変更する必要はありません。

  • 実験トラッキング: 使用されないものも含め、すべての学習実行を記録します。レジストリは、デプロイする価値のある候補を選別し、各バージョンを生成元の実行に関連付けます。
  • オブジェクトストレージ: Amazon S3などのバケットにファイルを保存します。レジストリはバージョン、メタデータ、アクセス制御を追加し、多くの場合、バケット内のファイルへのポインターだけを保存します。
  • 特徴量ストア: モデルが使用する入力特徴量をバージョン管理して配信します。モデル自体はレジストリに保管します。
  • コンテナレジストリ: モデルを実行するDockerイメージを保存します。通常、デプロイではイメージタグとモデルバージョンをそれぞれ1つ指定します。
  • Hugging Face Hub: Gitリポジトリで公開モデルと非公開モデルをホストします。コミット履歴と各リポジトリのトップページにあるモデルカードにより、オープンウェイトモデルのレジストリとして機能します。

Explore solutions

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう