如何使用模型版本别名

模型别名是对模型资源内某个唯一模型版本的可变命名引用。别名是“可变的”,它们可以从一个模型版本移动到另一个模型版本;同时别名也是“命名的”,它们是用户定义的任意字符串。模型别名让您可以通过引用来获取或部署特定的模型版本,而无需知道该特定版本的 ID。这种方法类似于 Docker 标记引用或 Git 中的分支引用。

当您在 Model Registry 中创建新模型时,第一个版本会自动获得 default 别名。如果用户在模型上运行命令时未指定特定版本,则默认别名会引用使用的模型版本。模型必须有一个版本始终包含默认别名。否则,默认别名就会与任何其他用户定义的别名没有区别。

在 Google Cloud 控制台中,相关人员可以借助别名标记来快速了解哪个模型是可部署的稳定版本。除了默认别名之外,您还可以在 Model Registry 中创建自己的自定义别名并将其分配给模型。

在 Model Registry 中,您可以通过查看别名列来快速了解哪个模型版本包含默认别名。

别名列和默认别名标记。

如果您决定将别名重新分配给其他模型版本,则可以轻松将别名移动到其他版本。

使用别名的一些注意事项:

  • 版本别名应该是唯一的;一个别名一次只能分配给模型的一个版本。
  • 版本别名必须是非数值。
  • 如果您没有为生产用例指定模型版本,则系统会使用默认模型。
  • 别名与标签不同。点击此处详细了解模型标签
  • 如果您应用在其他模型版本中使用的现有别名,则系统会从该版本中移除该别名。

将模型版本设置为默认版本

  1. 在 Google Cloud 控制台中,进入 Vertex AI Model Registry 页面。

    进入 Model Registry 页面

  2. 在 Model Registry 中,选择要修改的模型的名称。模型详情窗口随即打开。其中会列出所有模型版本。其中一个模型版本具有默认别名。

  3. 在要将其分配为默认版本的模型版本上,选择操作按钮。

  4. 点击设为默认

向模型版本添加别名

  1. 在 Google Cloud 控制台中,进入 Vertex AI Model Registry 页面。

    进入 Model Registry 页面

  2. 在 Model Registry 中,选择要修改的模型的名称。模型详情窗口随即打开。

  3. 从详情页面中,选择所需的模型版本,然后点击更多

  4. 点击修改别名。选择添加新别名

  5. 修改别名:点击添加别名,然后输入要添加到模型版本的别名的名称。

  6. 点击保存

上传新的别名模型版本

API

Python


from typing import List

from google.cloud import aiplatform


def upload_new_aliased_model_version_sample(
    parent_name: str,
    artifact_uri: str,
    serving_container_image: str,
    is_default_version: bool,
    version_aliases: List[str],
    version_description: str,
    project: str,
    location: str,
):
    """
    Uploads a new aliased version of a model with ID 'model_id'.
    Args:
        parent_name: The parent resource name of an existing model.
        artifact_uri: The URI of the model artifact to upload.
        serving_container_image: The name of the serving container image to use.
        is_default_version: Whether this version is the default version of the model.
        version_aliases: The aliases of the model version.
        version_description: The description of the model version.
        project: The project ID.
        location: The region name.
    Returns:
        The new version of the model.
    """
    # Initialize the client.
    aiplatform.init(project=project, location=location)

    # Upload a new aliased version of the Model resource with the ID 'model_id'. The parent_name of Model resource can be also
    # 'projects/<your-project-id>/locations/<your-region>/models/<your-model-id>'
    model = aiplatform.Model.upload(
        artifact_uri=artifact_uri,
        serving_container_image=serving_container_image,
        parent_name=parent_name,
        is_default_version=is_default_version,
        version_aliases=version_aliases,
        version_description=version_description,
    )

    return model

删除模型别名

删除分配了默认别名的模型版本时,别名会自动分配给下一个最新版本。

控制台

  1. 在 Google Cloud 控制台中,进入 Vertex AI Model Registry 页面。

    进入 Model Registry 页面

  2. 在 Model Registry 中,选择要修改的模型的名称。模型详情窗口随即打开。

  3. 在详情页面中,点击模型版本的操作按钮。

  4. 点击修改别名

  5. 系统会显示附加到模型版本的别名列表。将光标悬停在标签对应的“别名”文本框的右侧,以显示删除图标。

  6. 点击要删除的别名对应的删除图标。

  7. 点击保存

API

Python


from typing import List

from google.cloud import aiplatform


def delete_aliases_model_version_sample(
    model_id: str,
    version_aliases: List[str],
    version_id: str,
    project: str,
    location: str,
):
    """
    Delete aliases to a model version.
    Args:
        model_id: The ID of the model.
        version_aliases: The version aliases to assign.
        version_id: The version ID of the model to assign the aliases to.
        project: The project ID.
        location: The region name.
    Returns
        None.
    """
    # Initialize the client.
    aiplatform.init(project=project, location=location)

    # Initialize the Model Registry resource with the ID 'model_id'.The parent_name of Model resource can be also
    # 'projects/<your-project-id>/locations/<your-region>/models/<your-model-id>'
    model_registry = aiplatform.models.ModelRegistry(model=model_id)

    # Remove the version aliases to the model version with the version 'version'.
    model_registry.remove_version_aliases(
        target_aliases=version_aliases, version=version_id
    )