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 구조로 된 모델 Labe 정보
  • Description: 모델 메타 정보 생성시 작성한 설명

Versions and Files

선택한 모델의 메타 정보를 조회할 수 있습니다.

  • Version: 모델 버전정보
  • Size: 모델 사이즈
  • Download: 모델 다운로드 횟수
  • Tags/Lables: 모델에 설정한 Tag 및 Lablel 정보
  • 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.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,
)