通过Arena对MLflow仓库模型管理

重要

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

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

背景信息

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

前提条件

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

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

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

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

使用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