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/Lables: モデルに設定した 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 Keyが必要です。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 --help, mlx 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

# クライアントリセット(前述のいずれかの方法を使用)
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_request.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,
)