モデルレジストリ
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
機械学習モデルのモデルレジストリは、機械学習モデルのライフサイクル全体を管理するための集中型リポジトリとして機能します。これは、モデルバージョンと、パフォーマンスメトリクス、検証結果、データリネージ情報を含む必須メタデータを保存する特殊なデータベースのように機能します。
GitLabモデルレジストリを次の目的で使用します:
- 機械学習モデルを体系的に登録し、バージョン管理します。
- パフォーマンスメトリクス、パラメータ、データリネージを含む包括的なメタデータを追跡します。
- モデルバージョンを比較し、時間の経過とともにその進化を監視します。
- モデルの動作と要件を明確にドキュメント化し、維持します。
モデルレジストリの機能と性能に関する詳細は、エピック9423を参照してください。
モデルレジストリにアクセス
モデルレジストリは、パッケージレジストリの設定によって制御されます。モデルレジストリを使用する前に、パッケージレジストリが有効になっていることを確認してください。
モデルレジストリにアクセスするには、左サイドバーでデプロイ > モデルレジストリを選択します。
モデルレジストリが利用できない場合は、有効になっていることを確認してください。
モデルレジストリを有効にするか、表示レベルを公開またはプライベートに設定するには:
- 上部のバーで、検索または移動先を選択して、グループを見つけます。
- 設定 > 一般を選択します。
- 可視性、プロジェクトの機能、権限を展開します。
- モデルレジストリの下で、切替がオンになっていることを確認し、アクセスを許可するユーザーを選択します。モデルとモデルバージョンを変更または削除するには、ユーザーは少なくともレポーターロールを持っている必要があります。
UIを使用して機械学習モデルを作成する
GitLab UIを使用して新しい機械学習モデルを作成するには:
- 左サイドバーでデプロイ > モデルレジストリを選択します。
- モデルレジストリページで、Create/Importを選択します。
- ドロップダウンで、新しいモデルを作成を選択します。
- フィールドに入力します:
- モデル名に一意の名前を入力します。
- オプション。モデルの説明を入力します。
- 作成を選択します。
新しく作成されたモデルをモデルレジストリで表示できるようになりました。
UIを使用してモデルバージョンを作成する
新しいモデルバージョンを作成するには:
- モデル詳細ページで、新しいバージョンの作成を選択します。
- フィールドに入力します:
- セマンティックバージョニングに従って、一意のバージョン番号を入力します。
- オプション。モデルバージョンの説明を入力します。
- モデルバージョンに関連付けられたファイル、ログ、メトリクス、またはパラメータをアップロードします。
- 作成とインポートを選択します。
新しいモデルバージョンがモデルレジストリで利用可能になりました。
モデルを削除する
モデルとそのすべての関連バージョンを削除するには:
- 左サイドバーでデプロイ > モデルレジストリを選択します。
- 削除するモデルを見つけます。
- 右端の列で、縦方向の省略記号 ( ) と モデルを削除する を選択します。
または、モデル詳細ページからモデルを削除することもできます:
- 左サイドバーでデプロイ > モデルレジストリを選択します。
- 削除するモデルを見つけます。
- モデル名を選択して詳細を表示します。
- 縦方向の省略記号 ( ) と モデルを削除する を選択します。
- 削除を確認します。
モデルバージョンを削除する
モデルバージョンを削除するには:
- 左サイドバーでデプロイ > モデルレジストリを選択します。
- 削除するバージョンを持つモデルを見つけます。
- モデル名を選択して詳細を表示します。
- バージョンタブを選択します。
- 削除するモデルバージョンを見つけます。
- 右端の列で、縦方向の省略記号 ( ) と Delete model version を選択します。
または、モデルバージョン詳細ページからモデルを削除することもできます:
- 左サイドバーでデプロイ > モデルレジストリを選択します。
- 削除するバージョンを持つモデルを見つけます。
- モデル名を選択して詳細を表示します。
- バージョンタブを選択します。
- バージョン名を選択して詳細を表示します。
- 縦方向の省略記号 ( ) と Delete model version を選択します。
- 削除を確認します。
モデルバージョンにアーティファクトを追加する
モデルバージョンにアーティファクトを追加するには:
- 左サイドバーでデプロイ > モデルレジストリを選択します。
- モデルを見つけます。
- モデル名を選択して詳細を表示します。
- バージョンタブを選択します。
- バージョン名を選択して詳細を表示します。
- アーティファクトタブを選択します。
- オプション。ファイルをアップロードするサブフォルダーパスを指定します。例:
config。 - selectを使用して、アップロードするファイルを選択します。
- アップロードを選択します。
または、ドロップエリアにファイルをドラッグアンドドロップすることもできます。アーティファクトは自動的にアップロードされます。
各ファイルには5 GBのサイズ制限があるため、大きなモデルはパーティション分割する必要があります。
モデルバージョンからアーティファクトを削除する
バージョンのアーティファクトを削除するには:
- 左サイドバーでデプロイ > モデルレジストリを選択します。
- モデルを見つけます。
- モデル名を選択して詳細を表示します。
- バージョンタブを選択します。
- バージョン名を選択して詳細を表示します。
- アーティファクトタブを選択します。
- 削除する各アーティファクトの横にあるチェックボックスを選択します。
- 削除を選択します。
- 削除を確認します。
MLflowを使用して機械学習モデルとモデルバージョンを作成する
モデルとモデルバージョンは、MLflowクライアント互換性を使用して作成できます。モデルとモデルバージョンの作成および管理方法の詳細については、MLflowクライアント互換性を参照してください。GitLab上で、モデルレジストリページでCreate Modelを選択してモデルを直接作成することもできます。
MLflowを使用して、モデルバージョンにアーティファクト、メトリクス、パラメータを追加する
ファイルは、次の方法でモデルバージョンにアップロードできます:
- パッケージレジストリ。ここでは、モデルバージョンが
<model_name>/<model_version>という名前のパッケージに関連付けられています。 - MLflowクライアント互換性。詳細を参照してください。
ユーザーは、MLflowクライアント互換性を通じて、モデルバージョンのメトリクスとパラメータをログに記録できます。詳細を参照してください。
モデルバージョンをCI/CDジョブにリンクする
GitLab CI/CDジョブを通じてモデルバージョンを作成する際、モデルバージョンをジョブにリンクすることで、ジョブのログ、マージリクエスト、パイプラインに簡単にアクセスできるようになります。これはMLflowクライアント互換性を通じて実行できます。詳細を参照してください。
モデルバージョンとセマンティックバージョニング
GitLabのモデルバージョンは、セマンティックバージョン仕様に従う必要があります。セマンティックバージョニングを使用すると、新しいバージョンをアプリケーションの変更なしにデプロイできるかどうかを伝えることで、モデルのデプロイを容易にします:
Major (integer): メジャーコンポーネントの変更は、モデルにおける破壊的な変更を意味し、モデルを使用するアプリケーションがこの新しいバージョンを適切に使用するために更新される必要があることを示します。新しいアルゴリズムや必須機能カラムの追加は、メジャーコンポーネントでの更新を必要とする破壊的な変更の例です。
Minor (integer): マイナーコンポーネントの変更は、非破壊的な変更を意味し、コンシューマーが新しいバージョンを使用するために更新する必要がある場合でも、コンシューマーは新しいバージョンを安全に破壊せずに使用できることを示します。たとえば、デフォルト値を持つ非必須機能カラムをモデルに追加することはマイナーなバンプです。なぜなら、追加されたカラムの値が渡されない場合でも、推論が機能し続けるからです。
Patch (integer): パッチコンポーネントの変更は、アプリケーションによるアクションを必要としない新しいバージョンがリリースされたことを意味します。たとえば、モデルの毎日の再トレーニングは、機能セットやアプリケーションがモデルバージョンを消費する方法を変更しません。新しいパッチへの自動更新は安全な更新です。
Prerelease (text): 本番環境での使用にはまだ準備ができていないバージョンを表します。モデルのアルファ、ベータ、またはリリース候補バージョンを識別するために使用されます。
モデルバージョンの例
- 初期リリース: 1.0.0 - モデルの最初のリリースで、変更やパッチはありません。
- 新機能: 1.1.0 - 新しい非破壊的な機能がモデルに追加され、マイナーバージョンがインクリメントされました。
- バグ修正: 1.1.1 - モデルでバグが修正され、パッチバージョンがインクリメントされました。
- 破壊的な変更: 2.0.0 - モデルに破壊的な変更が加えられ、メジャーバージョンがインクリメントされました。
- パッチリリース: 2.0.1 - モデルでバグが修正され、パッチバージョンがインクリメントされました。
- プレリリース: 2.0.1-alpha1 - アルファリリースを含む、モデルのプレリリースバージョン。
- プレリリース: 2.0.1-rc2 - モデルのリリース候補バージョン。
- 新機能: 2.1.0 - 新しい機能がモデルに追加され、マイナーバージョンがインクリメントされました。