操作文件夹、模型和数据集

本教程演示如何通过多种方式操作文件夹、模型和数据集,包括创建、查看和删除。

准备工作

通过命令行工具

切换到你的工作路径下:

$ cd /your/workpath

假设当前用户(这里假设用户名为 demo)没有可以访问的文件夹,使用 ah create 命令创建一个模型文件夹和一个数据集文件夹:

$ ah create model/llm
AH INFO: Folder /demo/t9k-assethub/model/llm created

$ ah create dataset/text
AH INFO: Folder /demo/t9k-assethub/dataset/text created

然后使用 ah create 命令在模型文件夹中创建一个模型,以及在数据集文件夹中创建一个数据集:

$ ah create model/llm/gpt2
AH INFO: Model gpt2 created for Folder /demo/t9k-assethub/model/llm

$ ah create dataset/text/openwebtext
AH INFO: Dataset openwebtext created for Folder /demo/t9k-assethub/dataset/text

创建完成之后,使用 ah ls 命令查看当前用户的模型文件夹和数据集文件夹:

$ ah ls model
NAME    PATH                          LABELS    PERMISSION
llm     /demo/t9k-assethub/model/llm             own

$ ah ls dataset
NAME    PATH                              LABELS    PERMISSION
text    /demo/t9k-assethub/dataset/text              own

使用 ah ls 命令查看模型文件夹下的所有模型以及数据集文件夹下的所有数据集:

$ ah ls model/llm
NAME    PATH                              LABELS    PERMISSION
gpt2    /demo/t9k-assethub/model/llm/gpt2            own

$ ah ls dataset/text
NAME         PATH                                        LABELS    PERMISSION
openwebtext  /demo/t9k-assethub/dataset/text/openwebtext            own

最后使用 ah delete 命令删除所有创建的模型、数据集和文件夹:

$ ah delete model/llm/gpt2
AH INFO: Model /demo/t9k-assethub/model/llm/gpt2 deleted

$ ah delete dataset/text/openwebtext
AH INFO: Dataset /demo/t9k-assethub/dataset/text/openwebtext deleted

# 可以直接删除文件夹, 其中的模型或数据集都会被一并删除
$ ah delete model/llm
AH INFO: Folder /demo/t9k-assethub/model/llm deleted

$ ah delete dataset/text
AH INFO: Folder /demo/t9k-assethub/dataset/text deleted

通过 Python SDK

切换到你的工作路径下,然后以任意方式执行下面的 Python 代码。

导入 t9k.ah 模块,使用 ah.login() 函数登录到 Asset Hub 服务器(如果配置文件中的凭据仍有效,则无需提供参数):

from t9k import ah

ah.login(host='<asset-hub-server-url>',
         api_key='<your-api-key>')
AH INFO: Logged in to Asset Hub server and AIStore server as user <your-user-name>

假设当前用户(这里假设用户名为 demo)没有可以访问的文件夹,使用 ah.create() 函数创建一个模型文件夹和一个数据集文件夹,各返回一个 Folder 实例:

model_folder = ah.create('model/llm')
dataset_folder = ah.create('dataset/text')
AH INFO: Folder /demo/t9k-assethub/model/llm created
AH INFO: Folder /demo/t9k-assethub/dataset/text created

继续使用 ah.create() 函数在模型文件夹中创建一个模型,以及在数据集文件夹中创建一个数据集:

model = ah.create('model/llm/gpt2')
dataset = ah.create('dataset/text/openwebtext')
AH INFO: Model gpt2 created for Folder /demo/t9k-assethub/model/llm
AH INFO: Dataset openwebtext created for Folder /demo/t9k-assethub/dataset/text

创建完成之后,使用 ah.list() 函数返回当前用户的文件夹:

from pprint import pprint

pprint(ah.list('model'))
pprint(ah.list('dataset'))
[{'description': '',
  'editor': 'demo',
  'extra': '{"createdTimestamp": "2023-08-17T08:05:24.044319Z"}',
  'id': '967a5135-8b13-4283-9fad-ba53503612b3',
  'labels': [],
  'modifiedTimestamp': '2023-08-17T08:05:24.390002Z',
  'name': 'llm',
  'path': '/demo/t9k-assethub/model/llm',
  'permission': 'own',
  'storageType': 0,
  'type': 'Folder'}]
[{'description': '',
  'editor': 'demo',
  'extra': '{"createdTimestamp": "2023-08-17T08:05:24.196610Z"}',
  'id': 'd0d9f4b2-6c15-4dbb-b2d1-0619b6774c4a',
  'labels': [],
  'modifiedTimestamp': '2023-08-17T08:05:24.519213Z',
  'name': 'text',
  'path': '/demo/t9k-assethub/dataset/text',
  'permission': 'own',
  'storageType': 0,
  'type': 'Folder'}]

继续使用 ah.list() 函数返回模型文件夹下的所有模型和数据集文件夹下的所有数据集:

pprint(ah.list('model/llm'))
pprint(ah.list('dataset/text'))
[{'description': '',
  'editor': 'demo',
  'extra': '{"createdTimestamp": "2023-08-17T08:11:09.948554Z"}',
  'id': '2157a139-e20b-4736-9e25-d4495e287af8',
  'labels': [],
  'modifiedTimestamp': '2023-08-17T08:11:10.327166Z',
  'name': 'gpt2',
  'path': '/demo/t9k-assethub/model/llm/gpt2',
  'permission': 'own',
  'storageType': 3,
  'type': 'Model'}]
[{'description': '',
  'editor': 'demo',
  'extra': '{"createdTimestamp": "2023-08-17T08:11:10.508407Z"}',
  'id': '6826131c-2c88-483e-8a48-0f6d8fa59cfa',
  'labels': [],
  'modifiedTimestamp': '2023-08-17T08:11:10.830665Z',
  'name': 'openwebtext',
  'path': '/demo/t9k-assethub/dataset/text/openwebtext',
  'permission': 'own',
  'storageType': 3,
  'type': 'Dataset'}]

最后使用 ah.delete() 函数删除所有创建的模型、数据集和文件夹:

ah.delete('model/llm/gpt2')
ah.delete('dataset/text/openwebtext')
ah.delete('model/llm')    # 可以直接删除文件夹, 其中的模型或数据集都会被一并删除
ah.delete('dataset/text')
AH INFO: Model /demo/t9k-assethub/model/llm/gpt2 deleted
AH INFO: Dataset /demo/t9k-assethub/dataset/text/openwebtext deleted
AH INFO: Folder /demo/t9k-assethub/model/llm deleted
AH INFO: Folder /demo/t9k-assethub/dataset/text deleted

通过控制台

数据集文件夹、数据集的控制台操作分别和模型文件夹、模型完全一致。本教程后续仅展示模型文件夹和模型的创建、查看、删除、分享功能,你可以用同样的方式操作数据集文件夹和数据集。

在左侧的导航菜单中点击模型,选择查看范围为 My Own,查看当前用户的所有模型文件夹。然后点击右上角的 + 创建新的模型文件夹:

model-all

填写名称 image-classification,点击创建

folder-create

接下来分享这个文件夹。点击文件夹右侧的 更多 > 分享

folder-share

点击添加分享目标,选择分享的对象为 Public(所有用户可见),分享的权限是 Edit,最后点击分享

folder-share-setting

回到 Asset Hub 控制台,点击模型文件夹 image-classification 查看其中的模型:

folder-list

新创建的模型文件夹中没有模型,点击右上角的 + 创建一个模型:

model-list

填写名称 mnist,然后点击创建

model-create

创建成功后,在模型文件夹中可以看到模型信息:

model-created

点击更多 > 删除,删除创建的模型,然后点击左上角的返回,返回模型文件夹的页面:

model-delete

最后,返回 Asset Hub 控制台,点击更多 > 删除,删除模型文件夹:

folder-delete