如何使用 az ml cli 获取在 Azure 机器学习服务模型注册表中注册的最新版本的模型 ID?

How to get Model ID of the Latest Version registered in Azure Machine Learning Service Model Registry using az ml cli?

使用 Azure 机器学习 CLI 扩展,我们如何获取最新版本模型(具有已知模型名称)的模型 ID?

要获取具有给定名称的模型详细信息的完整列表,命令是

az ml model list --model-name [Model_Name] --resource-group [RGP_NAME] --subscription-id [SUB_ID] --workspace-name [WS_NAME]

运行 这将给出所有模型的列表:

[
  {
    "createdTime": "2021-03-19T07:02:03.814172+00:00",
    "framework": "Custom",
    "frameworkVersion": null,
    "id": "model:2"
    "name": "model",
    "version": 3
  },
  {
    "createdTime": "2021-03-19T06:46:34.301054+00:00",
    "framework": "Custom",
    "frameworkVersion": null,
    "id": "model:2",
    "name": "model",
    "version": 2
  },
  {
    "createdTime": "2021-03-19T06:38:56.558385+00:00",
    "framework": "Custom",
    "frameworkVersion": null,
    "id": "model:1",
    "name": "model",
    "version": 1
  }
]

Microsoft Documentation 提到,我们可以使用 -l 参数来获取最新版本的详细信息:

az ml model list --model-name [Model_Name] --resource-group [RGP_NAME] --subscription-id [SUB_ID] --workspace-name [WS_NAME] -l

但是,运行 这会产生以下错误:

ERROR: UnrecognizedArgumentError: unrecognized arguments: -l

使用此 -l 标志的语法是什么?

如果我们希望获得最新模型的模型 ID,而不是使用带有 -l 标志的 az ml model 列表,使用 az model show 将 return 详细信息对于最新型号。获取模型 ID 字符串的语法为:

az ml model show --model-id $(TRN_MODEL_ID) --resource-group $(AML_TRN_RG) --subscription-id $(AML_TRN_SUB_ID) --workspace-name $(AML_TRN_WS) --query name -o tsv

我刚刚花了几个小时来解决这个问题。 运行 类似

az ml model list -w your_workspace_name -g your_resource_group_name -l -n name_of_your_registered_model

会给你一些像这样的 JSON:

[
  {
    "createdTime": "2022-03-04T16:05:47.103407+00:00",
    "framework": "Custom",
    "frameworkVersion": null,
    "id": "name_of_your_registered_model:3",
    "name": "name_of_your_registered_model",
    "version": 3
  }
]

这对人类来说很好,但对机器没有多大用处。 azure cli 支持一种称为 JMESPath 的东西,它允许您针对 CLI 命令的结果编写查询。 运行

az ml model list -w your_workspace_name -g your_resource_group_name -l -n name_of_your_registered_model --query "[0].{id:id}" -o tsv

应该让你回来

"name_of_your_registered_model:3"

然后您可以在环境变量或您拥有的任何其他用例中使用它。