Model Registry

Prev Next

VPC環境で利用できます。

Model Registryの画面構成について説明します。Model Registryでは、ユーザーが学習プロセスで作成した中間結果物としてのモデルと最終モデルに関するメタ情報を照会できます。

参考

Model Registryで提供する機能は、ML expert Platformが提供する CLIや SDKを通じて同様に利用できます。

Model Registry

Model Registry画面の基本的な説明は、次の通りです。

mlxp_console_modelregistry01_ko

領域 説明
① メニュー名 現在確認中のメニューの名前
② 基本機能 モデルメタ情報の作成、モデルメタ情報の削除
③ モデルリスト 保存されたモデルリストと情報の確認

Model Registryリストの照会

ユーザーが保存したモデルリストの情報は、次の通りです。

  • Name: 初回作成時に設定した Volumeの名前
  • Tags: バージョンを管理できるタグ情報
  • Created At: 初期作成日時

モデル作成

モデルの新規メタ情報を作成する方法は、次の通りです。

  1. [Create] をクリックします。
  2. モデルの新規メタ情報作成画面が表示されたら、モデル名を入力します。
    • 英字の小文字(a-z)、数字(0-9)、ハイフン(-)を使用して3~64文字で入力
    • 先頭は英字、末尾は英字または数字
    • 重複使用不可
  3. Summaryを入力します。
    • 英字(a-z, A-z)、数字(0-9)、ハイフン(-)を使用して100文字まで入力可能
  4. Descriptionを入力します。
  5. Tag情報を入力します。
    • 最大10個まで入力可能
  6. Label情報を入力します。
    • 最大100個まで入力可能
  7. [Create] をクリックします。

モデル削除

モデルのメタ情報を削除できます。

  1. 削除するモデルを選択し、 [Delete] ボタンをクリックします。
  2. モデル削除のポップアップが表示されたら、削除するモデルの名前を入力して [削除] ボタンをクリックします。
  3. モデルリストで選択したモデルが削除されたことを確認します。

モデル詳細情報の照会

選択したモデルの詳細情報を照会できます。各情報はタブで分けられています。

Description

選択したモデルの詳細情報は、次の通りです。

  • Tags: モデルのバージョンを管理できる Tag情報
  • Labels: Key:Value構造でできたモデル Label情報
  • Description: モデルメタ情報の作成時に作成した説明

Versions and Files

選択したモデルのメタ情報を照会できます。

  • Version: モデルバージョン情報
  • Size: モデルサイズ
  • Download: モデルダウンロード回数
  • Tags/Labels: モデルに設定した Tagと Labelの情報
  • Updated at: 最終変更日

Settings

選択したモデルの Description情報を変更できます。

  • Tags: モデルのバージョンを管理できる Tag情報
  • Labels: Key:Value構造でできたモデル Label情報
  • Description: モデルメタ情報の作成時に作成した説明

Model Registry CLIを使用する

Model Registry CLIはコマンドラインでモデル管理のためのツールを提供します。

CLIインストール

CLIのインストールは、次のようなコマンドを通じてインストールできます。

pip install "ncloud-mlx[model-registry]" # double quotes are required

CLI設定

CLIを使用するには、APIキーが必要です。API Keyを作成する方法は Dashboardをご参照ください。

方法 1: 環境変数を設定

次のように環境変数を設定できます:

export MLX_ENDPOINT_URL="https://your-mlx-endpoint"
export MLX_APIKEY="your-api-key" 
export MLX_PROJECT="your-project-name"

方法 2: mlx configureを使用(推奨)

次のコマンドを実行して設定を入力します:

$ mlx configure
Endpoint: https://...# 使用する mlx endpoint.例) https://clustername.mlxp.ncloud.com
Workspace name: xxxx # 使用する Workspace
Project name: xxxx # 使用する Project
API Key: xxxx # 発行された API key

CLIの基本的な使用法

モデル作成

mlx model-registry create model {model_name}

バージョン作成

mlx model-registry create version {model_name} {version}

モデルアップロード

mlx model-registry upload {model_name} {version} ./local_path

モデルダウンロード

mlx model-registry download {model_name} {version} ./output_path

その他のコマンド

# モデル情報照会
mlx model-registry get {model_name}

# バージョン情報照会
mlx model-registry get {model_name} {version}

# モデルアップデート
mlx model-registry update model {model_name}

# バージョンアップデート
mlx model-registry update version {model_name} {version}

# モデル削除
mlx model-registry delete {model_name}

# ファイル削除
mlx model-registry delete {model_name} {version} {file_path}

# ヘルプ
mlx model-registry --help
参考

各コマンドの詳細なオプションと使用方法は、 --help オプションを使用して確認できます。
例: mlx model-registry upload --helpmlx model-registry download --help

Model Registry SDK使用

Model Registry SDKは Python基盤の SDKを提供します。
SDKを通じてモデルパラメータをアップロード/ダウンロードする方法は、次の通りです。

SDKインストール

SDKのインストールは、次のようなコマンドを通じてインストールできます。

# cliと同じパッケージであるため、cliのインストール後に使用できます。
pip install "ncloud-mlx[model-registry]" # double quotes are required

仕様

SDKを使用するには API Key作成が必要です。

方法 1: 直接入力

作成された API Keyを直接入力して使用できます:

import os
from mlx.sdk.model_registry import ModelRegistryAPI

mlxp_endpoint = "{ Model Registry URL }"
mlxp_apikey = "{ API Key }"
mlxp_project = "{ Project名 }"

client = ModelRegistryAPI(mlxp_endpoint, mlxp_apikey)

方法 2: 環境変数の設定

次のように環境変数を設定できます:

export MLX_ENDPOINT_URL="https://your-mlx-endpoint"
export MLX_APIKEY="your-api-key" 
export MLX_PROJECT="your-project-name"

環境変数の設定後、SDKで次のように使用できます:

from mlx.sdk.model_registry import ModelRegistryAPI
import os

mlxp_endpoint = os.getenv("MLX_ENDPOINT_URL")
mlxp_apikey = os.getenv("MLX_APIKEY")
mlxp_project = os.getenv("MLX_PROJECT")

client = ModelRegistryAPI(mlxp_endpoint, mlxp_apikey)

方法 3: mlx configure使用(推奨)

次のコマンドを実行して設定を入力します:

$ mlx configure
Endpoint: https://...# 使用する mlx endpoint.例) https://clustername.mlxp.ncloud.com
Workspace name: xxxx # 使用する Workspace
Project name: xxxx # 使用する Project
API Key: xxxx # 発行された API key

設定完了後、SDKで次のように使用できます:

from mlx.sdk.core import config
from mlx.sdk.model_registry import ModelRegistryAPI

# configファイルから自動的に設定をインポート
# (環境変数が設定されている場合、自動的に環境変数に設定された値で overrideされます)。
mlxp_endpoint = config.ConfigFile().endpoint_url
mlxp_apikey = config.ConfigFile().apikey
mlxp_project = config.ConfigFile().project

client = ModelRegistryAPI(mlxp_endpoint, mlxp_apikey)

モデルレジストリ作成

SDKでモデルパラメータをアップロード/ダウンロードするには、モデルレジストリが作成されている必要があります。

モデル作成

SDKを使用してモデルを作成する方法は、次の通りです:

from mlx.sdk.model_registry import ModelRegistryAPI
from mlx.api.model_registry import ModelRequest

# クライアント初期化(先に設定した方法のうち1つを使用)
client = ModelRegistryAPI(mlxp_endpoint, mlxp_apikey)

# モデル作成リクエスト
model_request = ModelRequest(name="my_model")
model = client.model_api.create(mlxp_project, model_request)
print(f"モデル作成完了: {model.name}")

モデルバージョン作成

作成されたモデルにバージョンを追加する方法は、次の通りです:

from mlx.api.model_registry import VersionRequest

# バージョン作成リクエスト
version_request = VersionRequest(version="v1.0")
version = client.model_version_api.create(mlxp_project, "my_model", version_request)
print(f"モデルバージョン作成の完了: {version.version}")

モデルパラメータのアップロード

モデルパラメータのアップロード方法は、次の通りです。

# モデルパラメータのアップロード進捗状況と完了 Callbackの作成
def progress_callback(progress_size: int, total_size: int):
    print(f"アップロード進捗率: {progress_size}/{total_size} bytes")

def completion_callback(file_path: str, size: int):
    print(f"アップロード完了: {file_path} ({size} bytes)")

# ファイルアップロードの実行
client.file_api.upload_sync(
    project_name=mlxp_project,
    model_name="my_model",
    version_name="v1.0", 
    local_path="/path/to/local/files",
    remote_path="/",
    # Optional parameters:
    excludes=[], # 除外するファイルリスト
    overwrite=True, # ファイルが存在する場合、上書きの有無
    parallel=1, # 並列処理ワーカー数
    progress_callback_func=progress_callback,
    file_complete_callback_func=completion_callback,
)

モデルパラメータのダウンロード

モデルパラメータのダウンロード方法は、次の通りです。

# モデルパラメータのダウンロード進捗状況と完了 Callbackの作成
def progress_callback(progress_size: int, total_size: int):
    print(f"ダウンロード進捗率: {progress_size}/{total_size} bytes")

def completion_callback(file_path: str, size: int):
    print(f"ダウンロード完了: {file_path} ({size} bytes)")
    
# ファイルダウンロードの実行
client.file_api.download_sync(
    project_name=mlxp_project,
    model_name="my_model",
    version_name="v1.0", 
    remote_path="/",
    local_path="/path/to/download",
    # Optional parameters:
    overwrite=True, # ファイルが存在する場合、上書きの有無
    parallel=1, # 並列処理ワーカー数
    progress_callback_func=progress_callback,
    file_complete_callback_func=completion_callback,
)