VPC 환경에서 이용 가능합니다.
Model Registry 화면 구성에 대해 설명합니다. Model Registry에서는 사용자가 학습 과정에서 생성한 중간 결과물로서의 모델과 최종 모델에 대한 메타 정보를 조회할 수 있습니다.
Model Registry에서 제공하는 기능은 ML expert Platform에서 제공하는 CLI, SDK를 통해서도 동일하게 이용 가능합니다.
Model Registry
Model Registry 화면의 기본적인 설명은 다음과 같습니다.
| 영역 | 설명 |
|---|---|
| ① 메뉴 이름 | 현재 확인 중인 메뉴 이름 |
| ② 기본 기능 | 모델 메타 정보 생성, 모델 메타 정보 삭제 |
| ③ 모델 목록 | 저장된 모델 목록 및 정보 확인 |
Model Registry 목록 조회
사용자가 저장한 모델 목록의 정보는 다음과 같습니다.
- Name: 최초 생성시 설정한 Volume 이름
- Tags: 버전을 관리할 수 있는 태그 정보
- Created At: 최초 생성 일시
모델 생성
모델의 신규 메타 정보를 생성하는 방법은 다음과 같습니다.
- [Create] 를 클릭해 주십시오.
- 모델 신규 메타 정보 생성 화면이 나타나면 모델 이름을 입력해 주십시오.
- 영소문자(a-z), 숫자(0-9), 하이픈(-)을 사용하여 3~64자 사이로 입력
- 첫 글자는 영문, 마지막 글자는 영문이나 숫자
- 중복 사용 불가능
- Summary를 입력해 주십시오.
- 영문자(a-z, A-z), 숫자(0-9), 하이픈(-)을 사용하여 100자까지 입력 가능
- Description을 입력해 주십시오.
- Tag 정보를 입력해 주십시오.
- 최대 10개까지 입력 가능
- Label 정보를 입력해 주십시오.
- 최대 100개까지 입력 가능
- [Create] 를 클릭해 주십시오.
모델 삭제
모델의 메타 정보를 삭제할 수 있습니다.
- 삭제할 모델을 선택한 다음 [Delete] 버튼을 클릭해 주십시오.
- 모델 삭제 팝업 창이 나타나면 삭제할 모델의 이름을 입력한 다음 [삭제] 버튼을 클릭해 주십시오.
- 모델 목록에서 선택한 모델이 삭제된 것을 확인해 주십시오.
모델 상세정보 조회
선택한 모델의 상세정보를 조회할 수 있습니다. 각 정보는 탭으로 나눠져 있습니다.
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,
)