对MLflow模型仓库中的模型进行管理

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

云原生AI套件支持对MLflow模型仓库中的模型进行管理,本文介绍如何使用云原生AI套件开发控制台和Arena命令行工具进行模型管理。

背景信息

MLflow是一个开源的机器学习生命周期管理平台,可以用来追踪模型训练信息、管理和部署机器学习模型。关于MLflow模型仓库功能的详细介绍,请参见MLflow Model Registry — MLflow documentation

前提条件

  • 已创建ACK Pro集群且Kubernetes版本不低于1.20。具体操作,请参见创建ACK Pro版集群

  • 已安装云原生AI套件的控制台调度组件。具体操作,请参见安装云原生AI套件

  • 集群管理员在RAM控制台已创建RAM用户(子账号),并为该RAM用户分配和关联配额组。关于如何创建RAM用户,请参见创建RAM用户。关于如何为RAM用户分配和关联配额组,请参见步骤一:为用户配置配额组

  • 已在ACK集群的kube-ai命名空间下部署Mlflow组件。具体操作,请参见配置MLflow模型仓库

  • (可选)如果需要通过Arena进行模型管理,需首先配置好Arena客户端,Arena版本需为0.9.14及以上版本。具体操作,请参见配置Arena客户端

使用开发控制台进行模型管理

新增注册模型

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > 云原生AI套件

  3. 云原生AI套件页面左上方,单击开发控制台,然后在云原生AI页面的左侧导航栏中,单击模型管理

  4. 模型管理页面,单击新增注册模型

  5. 新增注册模型对话框中,配置需要创建的模型名称标签描述信息

    示例如下,创建的模型名称为my-model,该模型包含两个标签key1key2=value2,模型描述信息为This is some description about my-model!

    image

  6. 完成配置后,单击确定,并单击模型列表的刷新按钮,在注册模型列表中即可看到刚才新增的注册模型。

查看注册模型

模型管理页面的注册模型列表中,单击目标模型名称,即可在注册模型详情页面中查看对应注册模型的详细信息。

修改注册模型

注册模型详情页面中,您可以进行如下操作:

  • 修改注册模型名称。

  • 修改模型描述信息。

  • 修改模型标签或新增模型标签。

  • 新增模型版本。

使用Arena进行模型管理

完整的模型管理使用文档请参见Model Manage Guide - Arena Documentation

新增模型版本

执行以下命令,即可新增模型版本。

arena model create \
    --name my-model \
    --tags key1,key2=value2 \
    --description "This is some description about my-model" \
    --version-tags key3,key4=value4 \
    --version-description "This is some description about my-model v1" \
    --source pvc://my-pvc/models/my-model/1

预期输出:

INFO[0000] registered model "my-model" created     
INFO[0000] model version 1 for "my-model" created  

查询注册模型/模型的版本

  • 查询注册模型

    执行以下命令,查询名为my-model的注册模型。

    arena model get \
        --name my-model

    预期输出:

    Name:                my-model
    LatestVersion        1
    CreationTime:        2024-04-29T16:15:26+08:00
    LastUpdatedTime:     2024-04-29T16:44:17+08:00
    Description:
      This is some description about my-model!
    Tags:
      key1: 
      key2: value2
    Versions:
      Version    Source
      ---        ---
      1          pvc://my-pvc/models/my-model/1
  • 查询模型版本

    执行以下命令,查询名为my-model,版本号为1的模型版本。

    arena model get \
        --name my-model \
        --version 1

    预期输出:

    Name:                my-model
    Version:             1
    CreationTime:        2024-04-29T16:42:18+08:00
    LastUpdatedTime:     2024-04-29T16:42:18+08:00
    Source:              pvc://my-pvc/models/my-model/1
    Description:
      This is some description about my-model v1
    Tags:
      createdBy: arena
      key3: 
      key4: value4

列出所有注册模型

执行以下命令,即可列出所有的注册模型。

arena model list 

更新注册模型/模型版本

执行以下命令,更新名为my-model的注册模型。

arena model update \
    --name my-model \
    --description "This is some updated description" \
    --tags key1=updatedValue1,key2=updatedValue2 

预期输出:

INFO[0000] model version "my-model/1" updated 

如果想要删除模型的标签,可以在标签后面加上-号,例如,下面的示例将会删除标签key1key2=value2key3key4=value4

arena model update \
    --name my-model \
    --tags key1-,key2=value2- \
    --version 1 \
    --version-tags key3-,key4=value4-

删除注册模型/模型版本

警告

删除一个注册模型将会级联删除其下面的所有模型版本,请谨慎操作。

  • 删除注册模型

    例如,执行以下命令,删除名为my-model的注册模型。

    arena model delete \
        --name my-model

    为了防止误操作,执行上述命令时,系统会提示您确认是否确实要删除注册模型,那您需要通过输入 yesno进行确认。

    如果在某些自动化脚本或确定无需交互式确认的场景下执行此操作,您可以添加 --force 参数来跳过确认步骤,直接执行删除。示例如下:

    arena model delete \
        --name my-model \
        --force
  • 删除模型版本

    例如,删除名为my-model,版本号为1的模型版本。

    arena model delete \
        --name my-model \
        --version 1

    为了防止误操作,执行上述命令时,系统会提示您确认是否确实要删除注册模型,那您需要通过输入 yesno进行确认。

    如果在某些自动化脚本或确定无需交互式确认的场景下执行此操作,您可以添加 --force 参数来跳过确认步骤,直接执行删除。示例如下:

    arena model delete \
        --name my-model \
        --version 1 \
        --force