操作模型和数据集的分支、tag 和 commit

本教程演示如何通过多种方式操作模型的分支、tag 和 commit,包括创建、查看和删除分支,创建、查看和删除 tag,以及查看 commit。

数据集同理。

准备工作

通过命令行工具

切换到你的工作路径下:

$ cd /your/workpath

操作 tag 和 commit 的方式对于模型和数据集都是相同的,只有模型允许操作分支。下面将以模型为例进行演示(这里假设用户名为 demo)。

依次创建模型文件夹和模型:

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

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

继续使用 ah create 命令为模型创建一个分支:

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

使用 ah ls --branch 命令查看模型的所有分支:

$ ah ls model/llm/gpt2 --branch
NAME    COMMIT_ID
main    fe46da7e
v1      fe46da7e

继续使用 ah create 命令为模型创建一个 tag:

$ ah create model/llm/gpt2:20230101 --tag --source v1
AH INFO: Tag 20230101 created from branch v1 for Model /demo/t9k-assethub/model/llm/gpt2

使用 ah ls --tag 命令查看模型的所有 tag:

$ ah ls model/llm/gpt2 --tag
    NAME  COMMIT_ID
20230101  fe46da7e

使用 ah ls --commit 命令查看模型的一个分支下的所有 commit:

$ ah ls model/llm/gpt2:v1 --commit
COMMIT_ID    MESSAGE             CREATED
fe46da7e     Repository created  3m16s ago

最后使用 ah delete 命令删除所有创建的分支和 tag:

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

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

通过 Python SDK

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

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

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>

操作 tag 和 commit 的方式对于模型和数据集都是相同的,只有模型允许操作分支。下面将以模型为例进行演示(这里假设用户名为 demo)。

依次创建模型文件夹和模型:

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

继续使用 ah.create() 函数为模型创建一个分支:

branch = ah.create('model/llm/gpt2:v1')
AH INFO: Branch v1 created for Model /demo/t9k-assethub/model/llm/gpt2

使用 ah.list() 函数查看模型的所有分支:

from pprint import pprint

pprint(ah.list('model/llm/gpt2', resource='branch'))
[{'commit_id': 'a15799f8f601d514a1a385a57b3078f8e178614a66aa920217175f6dcac2b083',
  'id': 'main'},
 {'commit_id': 'a15799f8f601d514a1a385a57b3078f8e178614a66aa920217175f6dcac2b083',
  'id': 'v1'}]

继续使用 ah.create() 函数为模型创建一个 tag:

tag = ah.create('model/llm/gpt2:20230101', create_tag=True, source='v1')
AH INFO: Tag 20230101 created from branch v1 for Model /demo/t9k-assethub/model/llm/gpt2

使用 ah.list() 函数查看模型的所有 tag:

pprint(ah.list('model/llm/gpt2', resource='tag'))
[{'commit_id': 'a15799f8f601d514a1a385a57b3078f8e178614a66aa920217175f6dcac2b083',
  'id': '20230101'}]

最后使用 ah.delete() 函数删除所有创建的分支和 tag:

ah.delete('model/llm/gpt2:v1')
ah.delete('model/llm/gpt2:20230101')
AH INFO: Branch v1 deleted for Model /demo/t9k-assethub/model/llm/gpt2
AH INFO: Tag 20230101 deleted for Model /demo/t9k-assethub/model/llm/gpt2