VPC 환경에서 이용 가능합니다.
Data Manager 화면 구성에 대해 설명합니다. Data Manager에서는 Workspace 내 데이터셋 목록 및 상세 정보를 조회할 수 있습니다.
- Data Manager에 업로드한 데이터셋은 Workspace 내 서로 다른 프로젝트에서 참조 가능합니다.
- Data Manager 화면에서는 데이터셋 목록 및 상세 정보 조회만 가능합니다.
- Data Manager로 데이터셋 업로드, 삭제, Tag와 Branch 생성 등의 작업을 위해서는 ML expert Platform의 SDK를 이용해주시기 바랍니다.
Data Manager 목록 조회
사용자가 저장한 데이터셋 목록의 정보는 다음과 같습니다.
- Dataset Title: 데이터셋 업로드시 설정한 이름
- 생성 일시: 최초 생성 일시
- Operation: [dataset detail] 클릭하여 상세정보 조회 화면으로 이동
Data Manager 상세정보 조회
선택한 데이터셋의 상세정보를 조회할 수 있습니다. 각 정보는 탭으로 나눠져 있습니다.
Overview
선택한 데이터셋의 메타 데이터를 조회합니다.
Files and Versions
선택한 데이터셋의 디렉토리별 파일 목록을 조회할 수 있습니다.
Data Manager SDK 사용
Data Manager SDK는 Python 기반의 Huggingface Dataset Interface를 지원하고 있습니다.
SDK를 통해 데이터셋을 업로드/다운로드하는 방법은 다음과 같습니다.
SDK 설치
SDK 설치는 다음과 같은 명령어를 통해 설치가 가능합니다.
pip install "ncloud-mlx[data-manager]" # double quotes are required
사용 준비
SDK 사용을 위해서는 API Key 생성와 MLX endpoint가 필요합니다. 생성된 API Key 를 입력하여 사용 준비를 마칩니다. 환경변수 MLX_ENDPOINT_URL로 endpoint url을 부여할 수 있습니다.
from mlx.sdk.data import login
login("{ API Key }") # MLXP API Key
login("{ API Key }", "{MLX endpoint}") # 환경변수가 아니라 login할 때, endpoint url을 고정하는 방법
데이터셋 읽기
데이터셋을 학습 로직에서 사용하기 위해서는 데이터셋 클래스로 읽어와야 합니다. Huggingface Python SDK 공식문서를 참고 바랍니다.
로컬에 위치한 데이터셋을 읽어오는 방법은 다음과 같습니다.
from mlx.sdk.data import load_dataset
ds = load_dataset(
"{ 로컬에 위치한 데이터 경로 }" # 로컬 데이터 경로 e.g. "path/to/folder/*"
)
Data Manager에 관리되고 있는 데이터셋을 읽어오는 방법은 다음과 같습니다.
from mlx.sdk.data import load_dataset
ds = load_dataset(
"{ Workspace 명 }/{ 데이터셋 명 }" # 데이터셋 위치 e.g. "workspaceA/datasetA"
)
데이터셋 업로드
데이터셋을 업로드하는 방식은 Huggingface Dataset Interface와 동일하게 지원하며 자세한 내용은 Huggingface Python SDK 공식 문서를 참고 바랍니다.
대표적인 업로드 방식은 다음과 같습니다.
push_to_hub
...
ds.push_to_hub(
repo_id="{ Workspace 명 }/{ 데이터셋 명 }"
)
...
upload_file
from huggingface_hub import create_repo, upload_file
path = "{ Workspace 명 }/{ 데이터셋 명 }" # 업로드하고자할 데이터셋 위치
create_repo(repo_id=path, repo_type="dataset")
upload_file(
repo_id=path,
path_or_fileobj="{ 로컬의 파일 경로 }", # 업로드할 로컬 파일 경로
path_in_repo="path/to/folder/foo.csv", # 데이터셋 내 원격 파일 경로
repo_type="dataset",
)
upload_folder
from huggingface_hub import create_repo, upload_folder
path = "{ Workspace 명 }/{ 데이터셋 명 }" # 업로드하고자할 데이터셋 위치
create_repo(repo_id=path, repo_type="dataset")
upload_folder(
repo_id=path,
folder_path="{ 로컬의 디렉터리 경로 }", # 업로드할 로컬 디렉터리 경로
path_in_repo="path/to/folder", # 데이터셋 내 원격 디렉터리 경로
repo_type="dataset",
)
데이터셋 다운로드
데이터셋을 로컬디스크에 다운로드 받기 위한 방법은 다음과 같습니다.
from huggingface_hub import snapshot_download
path = "{ Workspace 명 }/{ 데이터셋 명 }" # 업로드하고자할 데이터셋 위치
snapshot_download(
repo_id=path,
repo_type="dataset",
local_dir="path/to/folder", # 다운로드할 디렉터리 경로
local_dir_use_symlinks="auto" # cache_dir 을 이용한 symlink 사용여부
)
Tag 및 Branch 생성
데이터셋을 생성하면 고유한 commit id가 할당됩니다. 이 commit id를 사용하여 특정 revision의 데이터셋을 읽을 수도 있으며, 추가적인 정보를 위한 tag를 기록할 수 있습니다.
Tag를 생성하는 방법은 다음과 같습니다.
from huggingface_hub import create_tag
path = "{ Workspace 명 }/{ 데이터셋 명 }"
create_tag(
repo_id=path,
repo_type="dataset",
tag="{ 생성할 tag 이름}",
revision="{ revision }", # 기준 버전. 기본값은 main
tag_message="{ tag message }"
)
tag message와 같은 메타데이터는 immutable하기 때문에 수정할 수 없지만, 삭제 후 재생성할 수는 있습니다. tag를 삭제하는 방법은 아래와 같습니다.
from huggingface_hub import delete_tag
path = "{ Workspace 명 }/{ 데이터셋 명 }"
delete_tag(
repo_id=path,
repo_type="dataset",
tag="{ 삭제할 tag 이름}"
)
Branch를 생성하는 방법은 다음과 같습니다.
from huggingface_hub import create_branch
path = "{ Workspace 명 }/{ 데이터셋 명 }"
create_branch(
repo_id=path,
repo_type="dataset",
branch="{ 생성할 branch 이름}",
revision="{ revision }"
)
데이터셋 삭제
데이터셋 삭제 후 복구가 불가능하니 주의가 필요합니다.
from huggingface_hub import delete_repo
path = "{ Workspace 명 }/{ 데이터셋 명 }" # 삭제할 데이터셋
delete_repo(
repo_id=path,
repo_type="dataset"
)