Data Manager

Prev Next

VPC環境で利用できます。

Data Managerの画面構成について説明します。Data Managerでは、Workspace内のデータセットリストと詳細情報を照会できます。

参考
  • Data Managerにアップロードしたデータセットは、Workspace内の異なるプロジェクト間で参照できます。
  • Data Managerの画面では、データセットリストと詳細情報の照会のみ行えます。
  • Data Managerでデータセットアップロード、削除、Tagと Branchの作成などのタスクを行うには、ML expert Platformの SDKをご利用ください。

Data Managerリストの照会

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

mlxp_console_datamanager01_ko

  • 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公式ドキュメントをご参照ください。

参考

create_repoは Workspace Admin権限で実行できます。

代表的なアップロード方法は、次の通りです。

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"
)