

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 模型注册表模型、模型版本和模型组
<a name="model-registry-models"></a>

 SageMaker 模型注册表由几个模型（Package）组构成，每个组中都有模型包。可以选择将这些模型组添加到一个或多个集合中。模型组中的每个模型包都对应一个经过训练的模型。每个模型包的版本都是一个从 1 开始的数值，会随着模型组中每添加一个新模型包而递增。例如，如果向模型组中添加 5 个模型包，则模型包版本将为 1、2、3、4 和 5。

 模型包是作为受版本控制的实体注册到模型注册表的实际模型。 SageMaker AI 中有两种类型的模型包。一种类型用于 AWS Marketplace，另一种类型用于模型注册表。 AWS Marketplace 中使用的模型包不是受版本控制的实体，也不与模型注册表中的模型组关联。模型注册表接收您重新训练的每个新模型，为其提供版本，然后将其分配给模型注册表内的模型组。下图显示了一个具有 25 个连续受版本控制的模型组的示例。有关 M AWS arketplace 中使用的模型包的更多信息，请参阅[中的算法和软件包 AWS Marketplace](sagemaker-marketplace.md)。

模型注册表中使用的模型包受版本控制，并且**必须**与模型组关联。此模型包类型的 ARN 结构为：`'arn:aws:sagemaker:region:account:model-package-group/version'`

以下主题介绍如何在模型注册表中创建和使用模型、模型版本和模型组。

**Topics**
+ [创建模型组](model-registry-model-group.md)
+ [删除模型组](model-registry-delete-model-group.md)
+ [注册模型版本](model-registry-version.md)
+ [查看模型组和版本](model-registry-view.md)
+ [更新模型版本的详细信息](model-registry-details.md)
+ [比较模型版本](model-registry-version-compare.md)
+ [查看和管理模型组和模型版本标签](model-registry-tags.md)
+ [删除模型版本](model-registry-delete-model-version.md)
+ [模型生命周期的阶段构造](model-registry-staging-construct.md)
+ [更新模型的批准状态](model-registry-approve.md)
+ [用 Python 从注册表部署模型](model-registry-deploy.md)
+ [在 Studio 中部署模型](model-registry-deploy-studio.md)
+ [跨账户可发现性](model-registry-ram.md)
+ [查看模型的部署历史记录](model-registry-deploy-history.md)
+ [在 Studio 中查看模型任务流水线详情](model-registry-lineage-view-studio.md)

# 创建模型组
<a name="model-registry-model-group"></a>

模型组包含一个模型的不同版本。您可以创建一个模型组，用于跟踪您为解决特定问题而训练的所有模型。使用 适用于 Python (Boto3) 的 AWS SDK 或 Amazon SageMaker Studio 控制台创建模型组。

## 创建模型组 (Boto3)
<a name="model-registry-package-group-api"></a>

**重要**  
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。之所以需要为资源添加标签的权限，是因为 Studio 和 Studio Classic 会自动为创建的任何资源添加标签。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记，则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息，请参阅 [提供标记 A SageMaker I 资源的权限](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
[AWS 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。

要使用 Boto3 创建模型组，请调用 `create_model_package_group` API 操作，并指定名称和描述作为参数。以下示例说明了如何创建模型组。`create_model_package_group` 调用的响应是新模型组的 Amazon 资源名称 (ARN)。

首先，导入所需的软件包并设置 SageMaker AI Boto3 客户端。

```
import time
import os
from sagemaker import get_execution_role, session
import boto3

region = boto3.Session().region_name

role = get_execution_role()

sm_client = boto3.client('sagemaker', region_name=region)
```

现在创建模型组。

```
import time
model_package_group_name = "scikit-iris-detector-" + str(round(time.time()))
model_package_group_input_dict = {
 "ModelPackageGroupName" : model_package_group_name,
 "ModelPackageGroupDescription" : "Sample model package group"
}

create_model_package_group_response = sm_client.create_model_package_group(**model_package_group_input_dict)
print('ModelPackageGroup Arn : {}'.format(create_model_package_group_response['ModelPackageGroupArn']))
```

## 创建模型组（Studio 或 Studio Classic）
<a name="model-registry-package-group-studio"></a>

要在 Amazon SageMaker Studio 控制台中创建模型组，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。

------
#### [ Studio ]

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择 **模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 选择**注册**，然后选择**模型组**。

1. 在**注册模型组**对话框中输入以下信息：
   + **Model group name** 字段中的新模型组名称。
   + （可选）**Description** 字段中对模型组的描述。
   + （可选）要与 **Tags** 字段中的模型组关联的任何键值对。有关使用标签的信息，请参阅《AWS 一般参考》**中的[标记 AWS 资源](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)。

1. 选择**注册模型组**。

1. （可选）在**模型**页面中，选择**已注册模型**选项卡，然后选择**模型组**。确认新创建的模型组出现在模型组列表中。

------
#### [ Studio Classic ]

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 选择**操作**，然后选择**创建模型组**。

1. 在**创建模型组**对话框中，输入以下信息：
   + 在**模型组的名称**字段中输入新模型组的名称。
   + （可选）在**描述**字段中输入模型组的描述。
   + （可选）在**标签**字段中输入要与该模型组关联的任何键值对。有关使用标签的信息，请参阅《AWS 一般参考》**中的[标记 AWS 资源](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)。
   + （可选）在**项目**字段中选择要与该模型组关联的项目。有关项目的信息，请参阅[MLOps SageMaker 项目自动化](sagemaker-projects.md)。

1. 选择**创建模型组**。

------

# 删除模型组
<a name="model-registry-delete-model-group"></a>

此过程演示如何在 Amazon SageMaker Studio 控制台中删除模型组。删除模型组后，将无法访问模型组中的模型版本。

## 删除模型组（Studio 或 Studio Classic）
<a name="model-registry-delete-model-group-studio"></a>

**重要**  
只能删除空模型组。删除模型组之前，请先删除其模型版本（如有）。

要在 Amazon SageMaker Studio 控制台中删除模型组，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。

------
#### [ Studio ]

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择 **模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要删除的模型组名称旁边的复选框。

1. 选择模型组列表右上角的垂直省略号，然后选择**删除**。

1. 在**删除模型组**对话框中，选择**是，删除模型组**。

1. 选择**删除**。

1. 确认已删除的模型组不再出现在模型组列表中。

------
#### [ Studio Classic ]

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。此时显示您的模型组列表。

1. 从模型组列表中，选择要删除的模型组的名称。

1. 在右上角，选择**删除**。

1. 在确认对话框中，输入 `REMOVE`。

1. 选择**删除**。

------

# 注册模型版本
<a name="model-registry-version"></a>

您可以通过创建指定模型组的模型版本来注册 SageMaker Amazon AI 模型。模型版本必须包含模型构件（模型的训练权重），且可以选择包含模型的推理代码。

*推理管道*是一种由两到十五个容器组成的线性序列组成的 SageMaker AI 模型，用于处理推理请求。您可以通过指定容器和关联的环境变量来注册推理管道。有关推理管道的更多信息，请参阅[亚马逊 A SageMaker I 中的推理管道](inference-pipelines.md)。

您可以通过指定容器和关联的环境变量来注册带有推理管道的模型。要使用 Amazon SageMaker Studio 控制台或在 A SageMaker I 模型构建管道中创建步骤来创建带有推理管道的模型版本，请使用以下步骤。 适用于 Python (Boto3) 的 AWS SDK

**Topics**
+ [注册模型版本（SageMaker AI 管道）](#model-registry-pipeline)
+ [注册模型版本 (Boto3)](#model-registry-version-api)
+ [注册模型版本（Studio 或 Studio Classic）](#model-registry-studio)
+ [从其他账户注册模型版本](#model-registry-version-xaccount)

## 注册模型版本（SageMaker AI 管道）
<a name="model-registry-pipeline"></a>

要使用 SageMaker AI 模型构建管道注册模型版本，请在管道中创建一个`RegisterModel`步骤。有关作为管道的一部分创建 `RegisterModel` 步骤的信息，请参阅[步骤 8：定义创建模型包的 RegisterModel 步骤](define-pipeline.md#define-pipeline-register)。

## 注册模型版本 (Boto3)
<a name="model-registry-version-api"></a>

要使用 Boto3 注册模型版本，请调用 `create_model_package` API 操作。

首先，设置要传递给 `create_model_package` API 操作的参数字典。

```
# Specify the model source
model_url = "s3://your-bucket-name/model.tar.gz"

modelpackage_inference_specification =  {
    "InferenceSpecification": {
      "Containers": [
         {
            "Image": image_uri,
	    "ModelDataUrl": model_url
         }
      ],
      "SupportedContentTypes": [ "text/csv" ],
      "SupportedResponseMIMETypes": [ "text/csv" ],
   }
 }

# Alternatively, you can specify the model source like this:
# modelpackage_inference_specification["InferenceSpecification"]["Containers"][0]["ModelDataUrl"]=model_url

create_model_package_input_dict = {
    "ModelPackageGroupName" : model_package_group_name,
    "ModelPackageDescription" : "Model to detect 3 different types of irises (Setosa, Versicolour, and Virginica)",
    "ModelApprovalStatus" : "PendingManualApproval"
}
create_model_package_input_dict.update(modelpackage_inference_specification)
```

然后调用 `create_model_package` API 操作，传入刚刚设置的参数字典。

```
create_model_package_response = sm_client.create_model_package(**create_model_package_input_dict)
model_package_arn = create_model_package_response["ModelPackageArn"]
print('ModelPackage Version ARN : {}'.format(model_package_arn))
```

## 注册模型版本（Studio 或 Studio Classic）
<a name="model-registry-studio"></a>

要在 Amazon SageMaker Studio 控制台中注册模型版本，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。

------
#### [ Studio ]

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，从菜单中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**和**我的模型**（如果尚未选择）。

1. 选择**注册**。这将打开**注册模型**页面。

1. 按照**注册模型**页面中提供的说明进行操作。

1. 审查选定内容后，选择**注册**。完成后，您将转至模型版本**概览**页面。

------
#### [ Studio Classic ]

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 打开**注册版本**表单。您可以通过两种方式之一来执行此操作：
   + 选择**操作**，然后选择**创建模型版本**。
   + 选择要为其创建模型版本的模型组的名称，然后选择**创建模型版本**。

1. 在**注册模型版本**表单中，输入以下信息：
   + 在**模型包组名称**下拉列表中，选择模型组名称。
   + （可选）为模型版本输入描述。
   + 在**模型批准状态**下拉列表中，选择版本批准状态。
   + （可选）在 **Custom metadata** 字段中，添加自定义标签作为键值对。

1. 选择**下一步**。

1. 在**推理规范**表单中，输入以下信息：
   + 输入您的推理映像位置。
   + 输入您的模型数据构件位置。
   + （可选）输入要用于转换和实时推理任务的映像信息，以及支持的输入和输出 MIME 类型。

1. 选择**下一步**。

1. （可选）提供详细信息以帮助推荐端点。

1. 选择**下一步**。

1. （可选）选择要包含的模型指标。

1. 选择**下一步**。

1. 确保显示的设置正确无误，然后选择**注册模型版本**。如果您随后看到带有错误消息的模型窗口，请选择**查看**（消息旁边）以查看错误的来源。

1. 确认您的新模型版本出现在父模型组页面中。

------

## 从其他账户注册模型版本
<a name="model-registry-version-xaccount"></a>

要向由其他 AWS 账户创建的模型组注册模型版本，必须添加跨账户 AWS Identity and Access Management 资源策略才能启用该账户。例如，组织中的一个 AWS 账户负责训练模型，另一个账户负责管理、部署和更新模型。您可以创建 IAM 资源策略，并将这些策略应用于您要针对此使用案例授予访问权限的特定账户资源。有关跨账户资源策略的更多信息 AWS，请参阅*AWS Identity and Access Management 用户*指南中的[跨账户策略评估逻辑](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html)。

要启用跨账户可发现性（这可让其他账户查看资源拥有者账户中的模型包组），请参阅[跨账户可发现性](model-registry-ram.md)。

**注意**  
在跨账户模型部署训练期间，您还必须使用 KMS 密钥对[输出数据配置](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html)操作进行加密。

要在 SageMaker AI 中启用跨账户模型注册表，您必须为包含模型版本的模型组提供跨账户资源策略。以下是为模型组创建跨账户策略并将这些策略应用于该特定资源的示例。

必须在源账户中设置以下配置，该账户在模型组中跨账户注册模型。在此示例中，源账户是模型训练账户，它将训练模型跨账户，然后跨账户将模型注册到模型注册表账户的模型注册表中。

该示例假设您之前定义了以下变量：
+ `sm_client`— SageMaker 人工智能 Boto3 客户端。
+ `model_package_group_name`：要授予访问权限的模型组。
+ `model_package_group_arn`：要授予跨账户访问权限的模型组 ARN。
+ `bucket`：存储模型训练构件的 Amazon S3 存储桶。

为了能够部署在其他账户中创建的模型，用户必须拥有有权访问 SageMaker AI 操作的角色，例如具有`AmazonSageMakerFullAccess`托管策略的角色。有关 SageMaker AI 托管策略的信息，请参阅[AWS 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)。

### 必需的 IAM 资源策略
<a name="model-registry-version-xaccount-policies"></a>

下图显示了允许跨账户模型注册所需的策略。如图所示，这些策略需要在模型训练期间处于活动状态，才能将模型正确注册到模型注册表账户中。

![\[\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/model_registry_cross_account.png)


以下代码示例演示了 Amazon ECR、Amazon S3 和 AWS KMS 政策。

**Amazon ECR 策略示例**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:Describe*"
            ]
        }
    ]
}
```

------

**Amazon S3 策略示例**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

** AWS KMS 政策示例**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 将资源策略应用于账户
<a name="model-registry-version-xaccount-policy-usage"></a>

以下策略配置应用了上一节中讨论的策略，必须放入模型训练账户。

```
import json

# The Model Registry account id of the Model Group 
model_registry_account = "111111111111"

# The model training account id where training happens
model_training_account = "222222222222"

# 1. Create a policy for access to the ECR repository 
# in the model training account for the Model Registry account Model Group
ecr_repository_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [{"Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": {
          "AWS": f"arn:aws:iam::{model_registry_account}:root"
        },
        "Action": [
          "ecr:BatchGetImage",
          "ecr:Describe*"
        ]
    }]
}

# Convert the ECR policy from JSON dict to string
ecr_repository_policy = json.dumps(ecr_repository_policy)

# Set the new ECR policy
ecr = boto3.client('ecr')
response = ecr.set_repository_policy(
    registryId = model_training_account,
    repositoryName = "decision-trees-sample",
    policyText = ecr_repository_policy
)

# 2. Create a policy in the model training account for access to the S3 bucket 
# where the model is present in the Model Registry account Model Group
bucket_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [{"Sid": "AddPerm",
        "Effect": "Allow",
        "Principal": {"AWS": f"arn:aws:iam::{model_registry_account}:root"
        },
        "Action": [
          "s3:GetObject",
          "s3:GetBucketAcl",
          "s3:GetObjectAcl"
        ],
        "Resource": [
          "arn:aws:s3:::{bucket}/*",
	  "Resource: arn:aws:s3:::{bucket}"
        ]
    }]
}

# Convert the S3 policy from JSON dict to string
bucket_policy = json.dumps(bucket_policy)

# Set the new bucket policy
s3 = boto3.client("s3")
response = s3.put_bucket_policy(
    Bucket = bucket,
    Policy = bucket_policy)

# 3. Create the KMS grant for the key used during training for encryption
# in the model training account to the Model Registry account Model Group
client = boto3.client("kms")

response = client.create_grant(
    GranteePrincipal=model_registry_account,
    KeyId=kms_key_id
    Operations=[
        "Decrypt",
        "GenerateDataKey",
    ],
)
```

需要将以下配置放入模型组所在的模型注册表账户。

```
# The Model Registry account id of the Model Group 
model_registry_account = "111111111111"

# 1. Create policy to allow the model training account to access the ModelPackageGroup
model_package_group_policy = {"Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AddPermModelPackageVersion",
            "Effect": "Allow",
            "Principal": {"AWS": f"arn:aws:iam::{model_training_account}:root"},
            "Action": ["sagemaker:CreateModelPackage"],
            "Resource": f"arn:aws:sagemaker:{region}:{model_registry_account}:model-package/{model_package_group_name}/*"
        }
    ]
}

# Convert the policy from JSON dict to string
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the new policy
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = model_package_group_name,
    ResourcePolicy = model_package_group_policy)
```

最后，使用模型训练账户中的 `create_model_package` 操作跨账户注册模型包。

```
# Specify the model source
model_url = "s3://{bucket}/model.tar.gz"

#Set up the parameter dictionary to pass to the create_model_package API operation
modelpackage_inference_specification =  {
    "InferenceSpecification": {
        "Containers": [
            {
                "Image": f"{model_training_account}.dkr.ecr.us-east-2.amazonaws.com/decision-trees-sample:latest",
                "ModelDataUrl": model_url
            }
        ],
        "SupportedContentTypes": [ "text/csv" ],
        "SupportedResponseMIMETypes": [ "text/csv" ],
    }
}

# Alternatively, you can specify the model source like this:
# modelpackage_inference_specification["InferenceSpecification"]["Containers"][0]["ModelDataUrl"]=model_url

create_model_package_input_dict = {
    "ModelPackageGroupName" : model_package_group_arn,
    "ModelPackageDescription" : "Model to detect 3 different types of irises (Setosa, Versicolour, and Virginica)",
    "ModelApprovalStatus" : "PendingManualApproval"
}
create_model_package_input_dict.update(modelpackage_inference_specification)

# Create the model package in the Model Registry account
create_model_package_response = sm_client.create_model_package(**create_model_package_input_dict)
model_package_arn = create_model_package_response["ModelPackageArn"]
print('ModelPackage Version ARN : {}'.format(model_package_arn))
```

# 查看模型组和版本
<a name="model-registry-view"></a>

模型组和版本可帮助您整理模型。您可以使用 适用于 Python (Boto3) 的 AWS SDK (Boto3) 或 Amazon SageMaker Studio 控制台查看模型组中的模型版本列表。

## 查看组中的模型版本列表
<a name="model-registry-view-list"></a>

您可以查看与模型组关联的所有模型版本。如果模型组表示您为解决特定机器学习问题而训练的所有模型，则可以查看所有这些相关模型。

### 查看组中的模型版本列表 (Boto3)
<a name="model-registry-view-list-api"></a>

要使用 Boto3 查看与模型组关联的模型版本，请调用 `list_model_packages` API 操作，并将模型组名称作为 `ModelPackageGroupName` 参数值传入。以下代码列出了与您在[创建模型组 (Boto3)](model-registry-model-group.md#model-registry-package-group-api) 中创建的模型组关联的模型版本。

```
sm_client.list_model_packages(ModelPackageGroupName=model_package_group_name)
```

### 查看组（Studio 或 Studio Classic）中的模型版本列表
<a name="model-registry-view-list-studio"></a>

要在 Amazon SageMaker Studio 控制台中查看模型组中的模型版本列表，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。

------
#### [ Studio ]

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，从菜单中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要查看的模型组左侧的角括号。

1. 显示模型组中的模型版本列表。

1. （可选）选择**查看全部**（如果显示）以查看其他模型版本。

------
#### [ Studio Classic ]

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要查看的模型组的名称。

1. 此时将出现一个新选项卡，其中列出了模型组中的模型版本。

------

# 更新模型版本的详细信息
<a name="model-registry-details"></a>

您可以使用 适用于 Python (Boto3) 的 AWS SDK 或 Amazon SageMaker Studio 控制台查看和更新特定型号版本的详细信息。

**重要**  
Amazon SageMaker AI 将模型卡集成到模型注册表中。在模型注册表中注册的模型软件包包括作为模型软件包组成部分的简化模型卡。有关更多信息，请参阅 [模型软件包模型卡模式 (Studio)](#model-card-schema)。

## 查看和更新模型版本的详细信息 (Boto3)
<a name="model-registry-details-api"></a>

要使用 Boto3 查看模型版本的详细信息，请完成以下步骤。

1. 调用 `list_model_packages` API 操作来查看模型组中的模型版本。

   ```
   sm_client.list_model_packages(ModelPackageGroupName="ModelGroup1")
   ```

   响应是模型包摘要列表。您可以从此列表中获取模型版本的 Amazon 资源名称 (ARN)。

   ```
   {'ModelPackageSummaryList': [{'ModelPackageGroupName': 'AbaloneMPG-16039329888329896',
      'ModelPackageVersion': 1,
      'ModelPackageArn': 'arn:aws:sagemaker:us-east-2:123456789012:model-package/ModelGroup1/1',
      'ModelPackageDescription': 'TestMe',
      'CreationTime': datetime.datetime(2020, 10, 29, 1, 27, 46, 46000, tzinfo=tzlocal()),
      'ModelPackageStatus': 'Completed',
      'ModelApprovalStatus': 'Approved'}],
    'ResponseMetadata': {'RequestId': '12345678-abcd-1234-abcd-aabbccddeeff',
     'HTTPStatusCode': 200,
     'HTTPHeaders': {'x-amzn-requestid': '12345678-abcd-1234-abcd-aabbccddeeff',
      'content-type': 'application/x-amz-json-1.1',
      'content-length': '349',
      'date': 'Mon, 23 Nov 2020 04:56:50 GMT'},
     'RetryAttempts': 0}}
   ```

1. 调用 `describe_model_package` 以查看模型版本的详细信息。您传入在 `list_model_packages` 调用输出中获得的模型版本的 ARN。

   ```
   sm_client.describe_model_package(ModelPackageName="arn:aws:sagemaker:us-east-2:123456789012:model-package/ModelGroup1/1")
   ```

   此调用的输出是一个包含模型版本详细信息的 JSON 对象。

   ```
   {'ModelPackageGroupName': 'ModelGroup1',
    'ModelPackageVersion': 1,
    'ModelPackageArn': 'arn:aws:sagemaker:us-east-2:123456789012:model-package/ModelGroup/1',
    'ModelPackageDescription': 'Test Model',
    'CreationTime': datetime.datetime(2020, 10, 29, 1, 27, 46, 46000, tzinfo=tzlocal()),
    'InferenceSpecification': {'Containers': [{'Image': '257758044811.dkr.ecr.us-east-2.amazonaws.com/sagemaker-xgboost:1.0-1-cpu-py3',
       'ImageDigest': 'sha256:99fa602cff19aee33297a5926f8497ca7bcd2a391b7d600300204eef803bca66',
       'ModelDataUrl': 's3://sagemaker-us-east-2-123456789012/ModelGroup1/pipelines-0gdonccek7o9-AbaloneTrain-stmiylhtIR/output/model.tar.gz'}],
     'SupportedTransformInstanceTypes': ['ml.m5.xlarge'],
     'SupportedRealtimeInferenceInstanceTypes': ['ml.t2.medium', 'ml.m5.xlarge'],
     'SupportedContentTypes': ['text/csv'],
     'SupportedResponseMIMETypes': ['text/csv']},
    'ModelPackageStatus': 'Completed',
    'ModelPackageStatusDetails': {'ValidationStatuses': [],
     'ImageScanStatuses': []},
    'CertifyForMarketplace': False,
    'ModelApprovalStatus': 'PendingManualApproval',
    'LastModifiedTime': datetime.datetime(2020, 10, 29, 1, 28, 0, 438000, tzinfo=tzlocal()),
    'ResponseMetadata': {'RequestId': '12345678-abcd-1234-abcd-aabbccddeeff',
     'HTTPStatusCode': 200,
     'HTTPHeaders': {'x-amzn-requestid': '212345678-abcd-1234-abcd-aabbccddeeff',
      'content-type': 'application/x-amz-json-1.1',
      'content-length': '1038',
      'date': 'Mon, 23 Nov 2020 04:59:38 GMT'},
     'RetryAttempts': 0}}
   ```

### 模型软件包模型卡模式 (Studio)
<a name="model-card-schema"></a>

与模型版本相关的所有详细信息都封装在模型软件包的模型卡中。模型包的模型卡是 Amazon SageMaker 模型卡的特殊用法，其架构得到了简化。模型软件包模型卡模式显示在以下可扩展下拉菜单中。

#### 模型软件包模型卡模式
<a name="collapsible-section-model-package-model-card-schema"></a>

```
{
  "title": "SageMakerModelCardSchema",
  "description": "Schema of a model package’s model card.",
  "version": "0.1.0",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "model_overview": {
      "description": "Overview about the model.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "model_creator": {
          "description": "Creator of model.",
          "type": "string",
          "maxLength": 1024
        },
        "model_artifact": {
          "description": "Location of the model artifact.",
          "type": "array",
          "maxContains": 15,
          "items": {
            "type": "string",
            "maxLength": 1024
          }
        }
      }
    },
    "intended_uses": {
      "description": "Intended usage of model.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "purpose_of_model": {
          "description": "Reason the model was developed.",
          "type": "string",
          "maxLength": 2048
        },
        "intended_uses": {
          "description": "Intended use cases.",
          "type": "string",
          "maxLength": 2048
        },
        "factors_affecting_model_efficiency": {
          "type": "string",
          "maxLength": 2048
        },
        "risk_rating": {
          "description": "Risk rating for model card.",
          "$ref": "#/definitions/risk_rating"
        },
        "explanations_for_risk_rating": {
          "type": "string",
          "maxLength": 2048
        }
      }
    },
    "business_details": {
      "description": "Business details of model.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "business_problem": {
          "description": "Business problem solved by the model.",
          "type": "string",
          "maxLength": 2048
        },
        "business_stakeholders": {
          "description": "Business stakeholders.",
          "type": "string",
          "maxLength": 2048
        },
        "line_of_business": {
          "type": "string",
          "maxLength": 2048
        }
      }
    },
    "training_details": {
      "description": "Overview about the training.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "objective_function": {
          "description": "The objective function for which the model is optimized.",
          "function": {
            "$ref": "#/definitions/objective_function"
          },
          "notes": {
            "type": "string",
            "maxLength": 1024
          }
        },
        "training_observations": {
          "type": "string",
          "maxLength": 1024
        },
        "training_job_details": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "training_arn": {
              "description": "SageMaker Training job ARN.",
              "type": "string",
              "maxLength": 1024
            },
            "training_datasets": {
              "description": "Location of the model datasets.",
              "type": "array",
              "maxContains": 15,
              "items": {
                "type": "string",
                "maxLength": 1024
              }
            },
            "training_environment": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "container_image": {
                  "description": "SageMaker training image URI.",
                  "type": "array",
                  "maxContains": 15,
                  "items": {
                    "type": "string",
                    "maxLength": 1024
                  }
                }
              }
            },
            "training_metrics": {
              "type": "array",
              "items": {
                "maxItems": 50,
                "$ref": "#/definitions/training_metric"
              }
            },
            "user_provided_training_metrics": {
              "type": "array",
              "items": {
                "maxItems": 50,
                "$ref": "#/definitions/training_metric"
              }
            },
            "hyper_parameters": {
              "type": "array",
              "items": {
                "maxItems": 100,
                "$ref": "#/definitions/training_hyper_parameter"
              }
            },
            "user_provided_hyper_parameters": {
              "type": "array",
              "items": {
                "maxItems": 100,
                "$ref": "#/definitions/training_hyper_parameter"
              }
            }
          }
        }
      }
    },
    "evaluation_details": {
      "type": "array",
      "default": [],
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "pattern": ".{1,63}"
          },
          "evaluation_observation": {
            "type": "string",
            "maxLength": 2096
          },
          "evaluation_job_arn": {
            "type": "string",
            "maxLength": 256
          },
          "datasets": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 1024
            },
            "maxItems": 10
          },
          "metadata": {
            "description": "Additional attributes associated with the evaluation results.",
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "maxLength": 1024
            }
          },
          "metric_groups": {
            "type": "array",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "name",
                "metric_data"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "pattern": ".{1,63}"
                },
                "metric_data": {
                  "type": "array",
                  "items": {
                    "anyOf": [
                      {
                        "$ref": "#/definitions/simple_metric"
                      },
                      {
                        "$ref": "#/definitions/linear_graph_metric"
                      },
                      {
                        "$ref": "#/definitions/bar_chart_metric"
                      },
                      {
                        "$ref": "#/definitions/matrix_metric"
                      }
                    ]

                  }
                }
              }
            }
          }
        }
      }
    },
    "additional_information": {
      "additionalProperties": false,
      "type": "object",
      "properties": {
        "ethical_considerations": {
          "description": "Ethical considerations for model users.",
          "type": "string",
          "maxLength": 2048
        },
        "caveats_and_recommendations": {
          "description": "Caveats and recommendations for model users.",
          "type": "string",
          "maxLength": 2048
        },
        "custom_details": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/custom_property"
          }
        }
      }
    }
  },
  "definitions": {
    "source_algorithms": {
      "type": "array",
      "minContains": 1,
      "maxContains": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "algorithm_name"
        ],
        "properties": {
          "algorithm_name": {
            "description": "The name of the algorithm used to create the model package. The algorithm must be either an algorithm resource in your SageMaker AI account or an algorithm in AWS Marketplace that you are subscribed to.",
            "type": "string",
            "maxLength": 170
          },
          "model_data_url": {
            "description": "Amazon S3 path where the model artifacts, which result from model training, are stored.",
            "type": "string",
            "maxLength": 1024
          }
        }
      }
    },
    "inference_specification": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "containers"
      ],
      "properties": {
        "containers": {
          "description": "Contains inference related information used to create model package.",
          "type": "array",
          "minContains": 1,
          "maxContains": 15,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "image"
            ],
            "properties": {
              "model_data_url": {
                "description": "Amazon S3 path where the model artifacts, which result from model training, are stored.",
                "type": "string",
                "maxLength": 1024
              },
              "image": {
                "description": "Inference environment path. The Amazon Elastic Container Registry (Amazon ECR) path where inference code is stored.",
                "type": "string",
                "maxLength": 255
              },
              "nearest_model_name": {
                "description": "The name of a pre-trained machine learning benchmarked by an Amazon SageMaker Inference Recommender model that matches your model.",
                "type": "string"
              }
            }
          }
        }
      }
    },
    "risk_rating": {
      "description": "Risk rating of model.",
      "type": "string",
      "enum": [
        "High",
        "Medium",
        "Low",
        "Unknown"
      ]
    },
    "custom_property": {
      "description": "Additional property.",
      "type": "string",
      "maxLength": 1024
    },
    "objective_function": {
      "description": "Objective function for which the training job is optimized.",
      "additionalProperties": false,
      "properties": {
        "function": {
          "type": "string",
          "enum": [
            "Maximize",
            "Minimize"
          ]
        },
        "facet": {
          "type": "string",
          "maxLength": 63
        },
        "condition": {
          "type": "string",
          "maxLength": 63
        }
      }
    },
    "training_metric": {
      "description": "Training metric data.",
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "value": {
          "type": "number"
        }
      }
    },
    "training_hyper_parameter": {
      "description": "Training hyperparameter.",
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "value": {
          "type": "string",
          "pattern": ".{1,255}"
        }
      }
    },
    "linear_graph_metric": {
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "linear_graph"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 2,
                "maxItems": 2
              },
              "minItems": 1
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        }
      }
    },
    "bar_chart_metric": {
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "bar_chart"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "number"
              },
              "minItems": 1
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_array"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        }
      }
    },
    "matrix_metric": {
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "matrix"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 1,
                "maxItems": 20
              },
              "minItems": 1,
              "maxItems": 20
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_array"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_array"
        }
      }
    },
    "simple_metric": {
      "description": "Metric data.",
      "type": "object",
      "required": [
        "name",
        "type",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "pattern": ".{1,255}"
        },
        "notes": {
          "type": "string",
          "maxLength": 1024
        },
        "type": {
          "type": "string",
          "enum": [
            "number",
            "string",
            "boolean"
          ]
        },
        "value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "maxLength": 63
            },
            {
              "type": "boolean"
            }
          ]
        },
        "x_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        },
        "y_axis_name": {
          "$ref": "#/definitions/axis_name_string"
        }
      }
    },
    "axis_name_array": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 63
      }
    },
    "axis_name_string": {
      "type": "string",
      "maxLength": 63
    }
  }
}
```

## 查看和更新模型版本（Studio 或 Studio Classic）的详细信息
<a name="model-registry-details-studio"></a>

要查看和更新模型版本的详细信息，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。在 Studio Classic 中，您可以更新模型版本的批准状态。有关更多信息，请参阅 [更新模型的批准状态](model-registry-approve.md)。另一方面，在 Studio 中， SageMaker AI 为模型包创建模型卡，模型版本用户界面提供更新模型卡片中详细信息的选项。

------
#### [ Studio ]

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，从菜单中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 选择包含要查看的模型版本的模型组名称。

1. 在模型版本列表中，选择要查看的模型版本。

1. 选择以下选项卡之一。
   + **训练**：查看或编辑与训练作业相关的详细信息，包括性能指标、构件、IAM 角色和加密以及容器。有关更多信息，请参阅 [添加训练作业 (Studio)](model-registry-details-studio-training.md)。
   + **评估**：查看或编辑与训练作业相关的详细信息，如性能指标、评估数据集和安全性。有关更多信息，请参阅 [添加评估作业 (Studio)](model-registry-details-studio-evaluate.md)。
   + **审核**：查看或编辑与模型的商业目的、用途、风险以及算法和性能限制等技术细节相关的高级详细信息。有关更多信息，请参阅 [更新审计（治理）信息 (Studio)](model-registry-details-studio-audit.md)。
   + **部署**：查看或编辑构成端点的推理映像容器和实例的位置。有关更多信息，请参阅 [更新部署信息 (Studio)](model-registry-details-studio-deploy.md)。

------
#### [ Studio Classic ]

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要查看的模型组的名称。

1. 此时将出现一个新选项卡，其中列出了模型组中的模型版本。

1. 在模型版本列表中，选择您要查看其详细信息的模型版本的名称。

1. 在打开的模型版本选项卡上，选择以下选项之一，以查看有关模型版本的详细信息：
   + **活动**：显示模型版本的事件，例如批准状态更新。
   + **模型质量**：报告与 Model Monitor 模型质量检查相关的指标，这些指标将模型预测与 Ground Truth 进行比较。有关 Model Monitor 模型质量检查的更多信息，请参阅[模型质量](model-monitor-model-quality.md)。
   + **可解释性**：报告与 Model Monitor 特征归因检查相关的指标，这些指标比较训练数据与实时数据中特征的相对排名。有关 Model Monitor 可解释性检查的更多信息，请参阅[生产中模型的功能归属漂移](clarify-model-monitor-feature-attribution-drift.md)。
   + **偏差**：报告与 Model Monitor 偏差偏移检查相关的指标，这些指标将比较实时数据与训练数据的分布情况。有关 Model Monitor 偏差偏移检查的更多信息，请参阅[生产中模型的偏压飘移](clarify-model-monitor-bias-drift.md)。
   + **Inference Recommender**：根据您的模型和示例负载提供初始实例建议，以实现出色性能。
   + **负载测试**：当您提供特定的生产要求（如延迟和吞吐量约束）时，针对您选择的实例类型运行负载测试。
   + **推理规范**：显示实时推理和转换作业的实例类型，以及有关 Amazon ECR 容器的信息。
   + **信息**：显示模型版本关联的项目、生成模型的管道、模型组以及模型在 Amazon S3 中的位置等信息。

------

# 添加训练作业 (Studio)
<a name="model-registry-details-studio-training"></a>

**重要**  
截至 2023 年 11 月 30 日，之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用更新后的 Studio 体验。有关使用 Studio Classic 应用程序的信息，请参阅 [亚马逊 SageMaker Studio 经典版](studio.md)。

您可以向模型添加一个训练作业，该任务是在外部创建或使用 SageMaker AI 创建的。**如果您添加 SageMaker 训练作业， SageMaker AI 会在 “训练” 选项卡中预填充所有子页面的字段。**如果添加的是外部创建的训练作业，则需要手动添加与训练作业相关的详细信息。

**要在模型软件包中添加训练作业，请完成以下步骤。**

1. 选择**训练**选项卡。

1. 选择**添加**。如果您没有看到此选项，则可能已经附加了训练作业。如果您要删除该训练作业，请完成以下说明以删除训练作业。

1. 您可以添加在 SageMaker AI 中创建的训练作业或在外部创建的训练作业。

   1. 要添加您在 SageMaker AI 中创建的训练作业，请完成以下步骤。

      1. 选择**SageMaker 人工智能**。

      1. 选择要添加的训练作业旁边的单选框。

      1. 选择**添加**。

   1. 要添加外部创建的训练作业，请完成以下步骤。

      1. 选择 **Custom (自定义)**。

      1. 在 **Name** 字段中，插入自定义训练作业的名称。

      1. 选择**添加**。

# 删除训练作业 (Studio)
<a name="model-registry-details-studio-training-remove"></a>

通过完成以下步骤，您可以从模型中移除在外部创建或使用 SageMaker AI 创建的训练作业。

**要从模型软件包中删除训练作业，请完成以下步骤。**

1. 选择**训练**。

1. 选择**训练**标签下的**齿轮** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/icons/Settings_squid.png)) 图标。

1. 选择训练作业旁边的**删除**。

1. 选择**是，我想删除<name of your training job>**。

1. 选择**完成**。

# 更新训练作业详情 (Studio)
<a name="model-registry-details-studio-training-update"></a>

完成以下步骤以更新与您的模型关联的训练作业的详细信息，该任务是在外部创建或使用 SageMaker AI 创建的。

**更新（和查看）与训练作业相关的详细信息：**

1. 在**训练**选项卡上，查看训练作业的状态。如果在模型软件包中添加了训练作业，则状态为 `Complete`；如果没有添加，则状态为 `Undefined`。

1. 要查看与训练作业相关的详细信息，如性能、超参数和识别细节，请选择**训练**选项卡。

1. 要更新和查看与模型性能有关的详细信息，请完成以下步骤。

   1. 在**训练**选项卡的左侧边栏中选择**性能**。

   1. 查看与训练作业相关的**指标**。**性能**页面会按名称、值和您添加的相关注释列出指标。

   1. （可选）要为现有指标添加备注，请完成以下步骤。

      1. 选择模型版本页面右上角的垂直省略号，然后选择**编辑**。

      1. 为列出的任何指标添加注释。

      1. 在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

   1. 查看与训练作业相关的**自定义指标**。自定义指标的格式与指标类似。

   1. （可选）要添加自定义指标，请完成以下步骤。

      1. 选择**添加**。

      1. 为新指标插入名称、值和任何可选注释。

   1. （可选）要删除自定义指标，请选择要删除的指标旁边的**垃圾桶**图标。

   1. 在**观察**文本框中，查看您添加的与训练作业相关的备注。

   1. （可选）要添加或更新观察结果，请完成以下步骤。

      1. 选择模型版本页面右上角的垂直省略号，然后选择**编辑**。

      1. 在**观察结果**文本框中添加或更新备注。

      1. 在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

1. 要更新和查看与模型构件相关的详细信息，请完成以下步骤。

   1. 在**训练**选项卡的左侧边栏中选择**构件**。

   1. 在**位置 (S3 URI)**字段中，查看训练数据集的 Amazon S3 位置。

   1. 在**模型**字段中，查看训练作业中包含的其他模型的模型构件的名称和 Amazon S3 位置。

   1. 要更新**构件**页面中的任何字段，请完成以下步骤。

      1. 选择模型版本页面右上方的垂直省略号，然后选择**编辑**。

      1. 在任意字段中输入新值。

      1. 在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

1. 要更新和查看与超参数相关的详细信息，请完成以下步骤。

   1. 在**训练**选项卡的左侧边栏中选择**超参数**。

   1. 查看提供的 SageMaker AI 和定义的自定义超参数。每个超参数都列出了名称和数值。

   1. 查看您添加的自定义超参数。

   1. （可选）要添加额外的自定义超参数，请完成以下步骤。

      1. 在**自定义超参数**表的右上角，选择**添加**。出现一对新的空白字段。

      1. 输入新自定义超参数的名称和值。这些值将自动保存。

   1. （可选）要删除自定义超参数，请选择超参数右侧的**垃圾桶**图标。

1. 要更新和查看与训练作业环境有关的详细信息，请完成以下步骤。

   1. 在**训练**选项卡的左侧边栏中选择**环境**。

   1. 查看 AI（针对训练作业）或您（对于自定义训练作业）添加的任何 SageMaker 训练作业容器的 SageMaker Amazon ECR URI 位置。

   1. （可选）要添加其他训练作业容器，请选择**添加**，然后输入新训练容器的 URI。

1. 要更新和查看训练作业的训练作业名称和 Amazon Resource Names (ARN)，请完成以下步骤。

   1. 在**训练**选项卡的左侧边栏中选择**详情**。

   1. 查看训练作业名称和训练作业的 ARN。

# 添加评估作业 (Studio)
<a name="model-registry-details-studio-evaluate"></a>

**重要**  
截至 2023 年 11 月 30 日，之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用更新后的 Studio 体验。有关使用 Studio Classic 应用程序的信息，请参阅 [亚马逊 SageMaker Studio 经典版](studio.md)。

注册模型后，您可以使用一个或多个数据集测试模型，以评测其性能。您可以从 Amazon S3 添加一个或多个评估作业，也可以通过手动输入所有详细信息来定义自己的评估作业。**如果您从 Amazon S3 添加任务， SageMaker AI 会在 “评估” 选项卡中预填充所有子页面的字段。**如果您定义了自己的评估作业，则需要手动添加与评估作业相关的详细信息。

**要在模型软件包中添加第一个评估作业，请完成以下步骤。**

1. 选择**评估**选项卡。

1. 选择**添加**。

1. 您可以从 Amazon S3 添加评估作业或自定义评估作业。

   1. 要从 Amazon S3 添加带附件的评估作业，请完成以下步骤。

      1. 选择 **S3**。

      1. 输入评估作业的名称。

      1. 输入 Amazon S3 位置，以保存评估作业的输出资料。

      1. 选择**添加**。

   1. 要添加自定义评估作业，请完成以下步骤：

      1. 选择 **Custom (自定义)**。

      1. 输入评估作业的名称。

      1. 选择**添加**。

**要在模型软件包中添加额外的评估作业，请完成以下步骤。**

1. 选择**评估**选项卡。

1. 选择**训练**标签下的**齿轮** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/icons/Settings_squid.png)) 图标。

1. 在对话框中，选择**添加**。

1. 您可以从 Amazon S3 添加评估作业或自定义评估作业。

   1. 要从 Amazon S3 添加带附件的评估作业，请完成以下步骤。

      1. 选择 **S3**。

      1. 输入评估作业的名称。

      1. 输入 Amazon S3 位置，以保存评估作业的输出资料。

      1. 选择**添加**。

   1. 要添加自定义评估作业，请完成以下步骤：

      1. 选择 **Custom (自定义)**。

      1. 输入评估作业的名称。

      1. 选择**添加**。

# 删除评估作业 (Studio)
<a name="model-registry-details-studio-evaluate-remove"></a>

通过完成以下步骤，您可以从模型中移除外部创建或使用 SageMaker AI 创建的评估任务。

**要从模型软件包中删除评估作业，请完成以下步骤。**

1. 选择**评估**选项卡。

1. 选择**训练**标签下的**齿轮** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/icons/Settings_squid.png)) 图标。

1. （可选）要从列表中找到您的评估作业，请在搜索框中输入搜索词，以缩小选择列表的范围。

1. 选择评估作业旁边的单选按钮。

1. 选择**移除 **。

1. 选择**是，我想删除<name of your evaluation job>**。

1. 选择**完成**。

# 更新评估作业 (Studio)
<a name="model-registry-details-studio-evaluate-update"></a>

完成以下步骤以更新与您的模型关联的外部或使用 SageMaker AI 创建的评估任务的详细信息。

**更新（和查看）与评估作业相关的详细信息：**

1. 在**评估**选项卡上，查看评估作业的状态。如果在模型软件包中添加了评估作业，则状态为 `Complete`；如果没有添加，则状态为 `Undefined`。

1. 要查看与评估作业相关的详细信息，如性能和构件位置，请选择**评估**选项卡。

1. 要在评估过程中更新和查看与模型性能相关的详细信息，请完成以下步骤。

   1. 在**评估**选项卡侧边栏中选择**性能**。

   1. 在**指标**列表中查看与评估作业相关的指标。在**指标**列表中，按名称、值和您添加的相关注释显示各个指标。

   1. 在**观察**文本框中，查看您添加的与评估作业相关的任何备注。

   1. 要更新任何指标的**注释**字段或**观察**字段，请完成以下步骤。

      1. 选择模型版本页面右上方的垂直省略号，然后选择**编辑**。

      1. 为任何指标或在**观察**文本框中输入注释。

      1. 在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

1. 要更新和查看与评估作业数据集相关的详细信息，请完成以下步骤。

   1. 在**评估**页面的左侧边栏选择**构件**。

   1. 查看评估作业中使用的数据集。

   1. （可选）要添加数据集，请选择**添加**，然后输入数据集的 Amazon S3 URI。

   1. （可选）要删除数据集，请选择要删除的数据集旁边的**垃圾桶**图标。

1. 要查看任务名称和评估作业 ARN，请选择**详情**。

# 更新审计（治理）信息 (Studio)
<a name="model-registry-details-studio-audit"></a>

**重要**  
截至 2023 年 11 月 30 日，之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用更新后的 Studio 体验。有关使用 Studio Classic 应用程序的信息，请参阅 [亚马逊 SageMaker Studio 经典版](studio.md)。

记录重要的模型细节，帮助企业建立健全的模型管理框架。您和您的团队成员可以参考这些详细信息，以便将模型用于适当的使用场景，了解模型的业务领域和所有者，并了解模型风险。您还可以保存有关模型预期性能和性能限制原因的详细信息。

**要查看或更新与模型管理相关的详细信息，请完成以下步骤。**

1. 在**审查**选项卡上，查看模型卡的审批状态。状态可以是以下之一：
   + **草稿**：模型卡仍然是草稿。
   + **等待批准**：模型卡正在等待审批。
   + **已批准**：模型卡已获批准。

1. 要更新模型卡的审批状态，请选择审批状态旁边的下拉菜单，并选择更新后的审批状态。

1. 要更新和查看与模型软件包风险有关的详细信息，请完成以下步骤。

   1. 在**审核**选项卡的左侧边栏选择**风险**。

   1. 查看当前的风险评级和对风险评级的解释。

   1. 要更新评级或解释，请完成以下步骤。

      1. 选择**审核**页面右上角的垂直省略号，然后选择**编辑**。

      1. （可选）选择更新的风险评级。

      1. （可选）更新风险评级解释。

      1.  在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

1. 要更新和查看与模型软件包使用情况有关的详细信息，请完成以下步骤。

   1. 在**审核**选项卡的左侧边栏选择**使用**。

   1. 查看您在以下字段中添加的文本：
      + **问题类型**：用于构建模型的机器学习算法类别。
      + **算法类型**：用于创建模型的特定算法。
      + **预期用途**：模型在您的业务问题中的当前应用。
      + **影响模型功效的因素**：关于模型性能限制的说明。
      + **推荐使用**：您可以使用模型创建的应用程序类型、您可以期望获得合理性能的场景或使用模型的数据类型。
      + **伦理考虑**：描述您的模型可能如何基于年龄或性别等因素进行歧视。

   1. 要更新前面列出的任何字段，请完成以下步骤。

      1. 选择模型版本页面右上角的垂直省略号，然后选择**编辑**。

      1. （可选）如果需要，使用**问题类型**和**算法类型**的下拉菜单选择新值。

      1. （可选）更新其余字段的文本描述。

      1.  在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

1. 要更新和查看与模型软件包利益相关者有关的详细信息，请完成以下步骤。

   1. 在**审核**选项卡的左侧边栏中选择**利益相关者**。

   1. 查看当前模型的所有者和创建者（如果有）。

   1. 要更新模型所有者或创建者，请完成以下步骤：

      1. 选择模型版本页面右上角的垂直省略号，然后选择**编辑**。

      1. 更新模型所有者或模型创建者字段。

      1.  在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

1. 要更新和查看与模型软件包解决的业务问题相关的详细信息，请完成以下步骤。

   1. 在**审计**选项卡的左侧边栏选择**业务**。

   1. 查看模型所针对的业务问题、业务问题利益相关者和业务范围的当前描述（如有）。

   1. 要更新**业务**标签中的任何字段，请完成以下步骤。

      1. 选择模型版本页面右上角的垂直省略号，然后选择**编辑**。

      1. 更新任何字段中的描述。

      1.  在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

1. 要更新和查看模型的现有文档（表示为键值对），请完成以下步骤。

   1. 在**审核**页面的左侧边栏选择**文件**。

   1. 查看现有键值对。

   1. 要添加任何键值对，请完成以下步骤。

      1. 选择模型版本页面右上角的垂直省略号，然后选择**编辑**。

      1. 选择**添加**。

      1. 输入新键和相关值。

      1.  在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

   1. 要删除任何键值对，请完成以下步骤。

      1. 选择模型版本页面右上角的垂直省略号，然后选择**编辑**。

      1. 选择要删除的键值对旁边的**垃圾桶**图标。

      1.  在模型版本页面顶部，选择**正在编辑模型版本...**横幅中的**保存**。

# 更新部署信息 (Studio)
<a name="model-registry-details-studio-deploy"></a>

**重要**  
截至 2023 年 11 月 30 日，之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用更新后的 Studio 体验。有关使用 Studio Classic 应用程序的信息，请参阅 [亚马逊 SageMaker Studio 经典版](studio.md)。

在评估模型性能并确定它已准备好用于生产工作负载之后，您可以更改模型的批准状态以启动 CI/CD 部署。有关批准状态定义的更多信息，请参阅 [更新模型的批准状态](model-registry-approve.md)。

**要查看或更新与模型软件包部署相关的详细信息，请完成以下步骤。**

1. 在**部署**选项卡上，查看模型软件包批准状态。可能的值如下：
   + **待批准**：模型已注册，但尚未批准或拒绝部署。
   + **已批准**：已批准该模型用于 CI/CD 部署。如果存在在模型批准事件时启动模型部署的 EventBridge 规则（例如基于 SageMaker AI 项目模板构建的模型），A SageMaker I 也会部署该模型。
   + **拒绝**：拒绝部署该模型。

   如果您需要更改审批状态，请选择状态旁边的下拉菜单，然后选择更新的状态。

1. 要更新模型软件包的审批状态，请选择审批状态旁边的下拉菜单，然后选择更新后的审批状态。

1. 在**容器**列表中，查看推理映像容器。

1. 在**实例**列表中，查看组成部署端点的实例。

# 比较模型版本
<a name="model-registry-version-compare"></a>

生成模型版本时，您可能需要通过查看相关的模型质量指标来比较模型版本 side-by-side。例如，您可能希望通过比较均方误差 (MSE) 值来跟踪精度，或者您可能决定删除在选定度量上表现不佳的模型。以下过程向您展示如何使用 Amazon SageMaker Studio Classic 控制台在 “模型注册表” 中设置模型版本比较。

## 比较模型版本（亚马逊 SageMaker Studio Classic）
<a name="model-registry-version-compare-studio"></a>

**注意**  
您只能比较 Amazon SageMaker Studio Classic 主机的模型版本。

要比较模型组中的模型版本，请完成以下步骤：

1. 登录 Studio Classic。有关更多信息，请参阅 [亚马逊 SageMaker AI 域名概述](gs-studio-onboard.md)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要查看的模型组的名称。此时将打开一个新选项卡，其中列出了模型组中的模型版本。

1. 在模型版本列表中，选中要比较的模型版本旁边的复选框。

1. 选择**操作**下拉菜单，然后选择**比较**。此时将显示所选模型的模型质量指标列表。

# 查看和管理模型组和模型版本标签
<a name="model-registry-tags"></a>

模型注册表可帮助您查看和管理与模型组相关的标签。您可以使用标签，按用途、所有者、环境或其他标准对模型组进行分类。以下说明向您展示了如何在 Amazon SageMaker Studio 控制台中查看、添加、删除和编辑您的标签。

**注意**  
模型注册表中的 SageMaker 模型包不支持标签，这些是版本化的模型包。您可以使用 `CustomerMetadataProperties` 添加键值对。模型注册表中的模型包组支持标记。

## 查看和管理模型组标签
<a name="model-registry-tags-model-group"></a>

------
#### [ Studio ]

**要查看模型组标签，请完成以下步骤：**

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择**模型**，显示模型组列表。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要查看的模型组名称。

1. 在模型组页面上，选择**标签**选项卡。查看与您的模型组相关的标记。

**要添加模型组标签，请完成以下步骤：**

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择**模型**，显示模型组列表。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要编辑的模型组的名称。

1. 在模型组页面上，选择**标签**选项卡。

1. 选择**添加/编辑标签**。

1. 在上方 **\$1 添加新标签**，在空白的 **Key** 字段中输入新键。

1. （可选）在空白的**值**字段中输入新值。

1. 选择**确认更改**。

1. 确认新标签显示在**信息**页面的**标签**部分。

**要删除模型组标签，请完成以下步骤：**

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择**模型**，显示模型组列表。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要编辑的模型组的名称。

1. 在模型组页面上，选择**标签**选项卡。

1. 选择**添加/编辑标签**。

1. 选择您要删除的键值对旁边的**垃圾桶**图标。

1. 选择**确认更改**。

**要编辑模型组标签，请完成以下步骤：**

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择**模型**，显示模型组列表。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要编辑的模型组的名称。

1. 在模型组页面上，选择**标签**选项卡。

1. 选择**添加/编辑标签**。

1. 在要编辑的键对的**值**字段中输入新值。

1. 选择**确认更改**。

------
#### [ Studio Classic ]

**要查看模型组标签，请完成以下步骤：**

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要编辑的模型组的名称。

1. 选择**信息**。

1. 在**信息**页面的**标签**部分查看您的标签。

**要添加模型组标签，请完成以下步骤：**

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅 [亚马逊 SageMaker AI 域名概述](gs-studio-onboard.md)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要编辑的模型组的名称。

1. 选择**信息**。

1. 如果没有任何标签，请选择**添加标签**。

1. 如果已有标签，请在**标签**部分中选择**管理标签**。模型组的标签列表以键值对形式显示。

1. 在**添加新标签**上方空白的**密钥**字段中输入新密钥。

1. （可选）在空白的**值**字段中输入新值。

1. 选择**确认更改**。

1. 确认新标签显示在**信息**页面的**标签**部分。

**要删除模型组标签，请完成以下步骤：**

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅 [亚马逊 SageMaker AI 域名概述](gs-studio-onboard.md)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要编辑的模型组的名称。

1. 选择**信息**。

1. 在**标签**部分中，选择**管理标签**。模型组的标签列表以键值对形式显示。

1. 选择要删除的标签右侧的**垃圾桶**图标。

1. 选择**确认更改**。

1. 确认您删除的标签未显示在**信息**页面的**标签**部分。

**要编辑模型组标签，请完成以下步骤：**

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅 [亚马逊 SageMaker AI 域名概述](gs-studio-onboard.md)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要编辑的模型组的名称。

1. 选择**信息**。

1. 在**标签**部分中，选择**管理标签**。模型组的标签列表以键值对形式显示。

1. 编辑任何键或值。

1. 选择**确认更改**。

1. 在**信息**页面的**标签**部分，确认您的标签包含所做的编辑。

**要为项目分配或标记模型组，请完成以下步骤：**

1. 使用 API 获取带密钥`sagemaker:project-name`和 `sagemaker:project-id` SageMaker A [ListTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTags.html)I 项目的标签。

1. 要将标记应用到模型软件包组，请选择以下方法之一：
   + 如果您创建了新的模型包组并想要添加标签，请将步骤 1 中的标签传递给 [CreateModelPackageGroup](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackageGroup.html)API。
   + 如果要向现有模型包组添加标签，请使用[AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html) APIs。
   + 如果您通过 Pipelines 创建模型包组，请使用`pipeline.create()`或`pipeline.upsert()`方法，或者将标签传递给该[RegisterModel](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-register-model)步骤。

------

# 删除模型版本
<a name="model-registry-delete-model-version"></a>

此过程演示如何在 Amazon SageMaker Studio 控制台中删除模型版本。

## 删除模型版本（Studio 或 Studio Classic）
<a name="model-registry-delete-model-version-studio"></a>

要在 Amazon SageMaker Studio 控制台中删除模型版本，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。

------
#### [ Studio ]

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择**模型**，显示模型组列表。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要查看的模型组左侧的角括号。

1. 显示模型组中的模型版本列表。如果没有看到要删除的模型版本，请选择**查看全部**。

1. 选择要删除的模型版本旁边的复选框。

1. 选择表格右上角的垂直省略号，然后选择**删除**（如果在模型组详细信息页面，则选择**删除模型版本**）。

1. 在**删除模型版本**对话框中，选择**是，删除模型版本**。

1. 选择**删除**。

1. 确认已删除的模型组不再出现在模型组列表中。

------
#### [ Studio Classic ]

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。此时显示您的模型组列表。

1. 从模型组列表中，选择要删除的模型版本的模型组名称。

1. 从模型版本列表中，选择要删除的模型版本名称。

1. 选择**操作**下拉菜单，然后选择**删除**。

1. 在确认对话框中，输入 `REMOVE`。

1. 选择**删除**。

1. 确认您删除的模型版本未出现在模型组的模型版本列表中。

------

# 模型生命周期的阶段构造
<a name="model-registry-staging-construct"></a>

借助模型注册表阶段构造，您可以为模型工作流和生命周期定义一系列阶段以供模型逐步推进。这样一来，当模型在开发、测试和生产阶段之间过渡时，便能更轻松地跟踪和管理模型。下文介绍了阶段构造及其在模型治理中的使用方式。

阶段构造可让您定义一系列供模型逐步推进的阶段和状态。在每个阶段，具有相关权限的特定角色可以更新阶段状态。当模型在各个阶段推进时，其元数据会持续传递，从而提供模型生命周期的全面视图。授权角色可在每个阶段访问和查看这些元数据，从而做出明智的决策。这包括以下优势。
+ 模型生命周期权限 – 为指定角色设置权限，使其能够更新模型阶段状态，并在关键过渡点强制执行审批门。管理员可以通过将 IAM 策略和条件键与 API 配合使用来分配权限。例如，您可以限制数据科学家将模型生命周期阶段从“开发”过渡到“生产”。有关示例，请参阅 [设置阶段构造示例](model-registry-staging-construct-set-up.md)。
+ 通过 Amazon 对生命周期事件进行建模 EventBridge -您可以使用使用生命周期阶段事件 EventBridge。这样一来，当模型的审批状态或阶段状态发生变化时，系统将向您发送事件通知，以便实现与第三方治理工具的集成。有关示例，请参阅 [获取以下内容的事件通知 ModelLifeCycle](model-registry-staging-construct-event-bridge.md)。
+ 基于模型生命周期字段的搜索 – 您可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html) API 搜索和筛选阶段及阶段状态。
+ 模型生命周期事件的审计跟踪记录 – 您可以查看模型生命周期过渡的模型审批和阶段事件的历史记录。

以下主题将引导您了解如何在管理员端设置阶段构造以及如何从用户端更新阶段状态。

**Topics**
+ [设置阶段构造示例](model-registry-staging-construct-set-up.md)
+ [在 Studio 中更新模型包阶段和状态](model-registry-staging-construct-update-studio.md)
+ [更新模型包阶段和状态示例（boto3）](model-registry-staging-construct-update-boto3.md)
+ [ModelLifeCycle 使用 AWS CLI 示例调用](model-registry-staging-construct-cli.md)
+ [获取以下内容的事件通知 ModelLifeCycle](model-registry-staging-construct-event-bridge.md)

# 设置阶段构造示例
<a name="model-registry-staging-construct-set-up"></a>

要为您的 Amazon SageMaker 模型注册表设置阶段结构，管理员需要向目标角色授予相关权限。下文举例说明了如何为各种角色设置阶段构造。

**注意**  
Amazon SageMaker AI 域中的用户将能够查看该域中定义的所有阶段，但只能使用他们有权访问的阶段。

阶段由 `ModelLifeCycle` 参数定义并具有以下结构。管理员可设置权限，指定哪些角色可以访问哪些 `stage` 和 `stageStatus`。代入角色的用户可以使用相关的 `stage` 和 `stageStatus`，并包含他们自己的 `stageDescription`。

```
ModelLifeCycle {
    stage: String # Required (e.g., Development/QA/Production)
    stageStatus: String # Required (e.g., PendingApproval/Approved/Rejected)  
    stageDescription: String # Optional
}
```

下表包含模型注册表预定义的阶段构造模板。可根据您的使用案例来定义自己的阶段构造。需要先设置相关权限，之后用户才能使用它们。


| 暂存区 | 阶段状态 | 
| --- | --- | 
|  提案  |  PendingApproval  | 
|  开发  |  InProgress  | 
|  QA  |  OnHold  | 
|  PreProduction  |  已批准  | 
|  生产  |  已拒绝  | 
|  已存档  |  已停用  | 

可以通过以下方式调用该`ModelLifeCycle`参数 APIs：
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeModelPackage.html)

------
#### [ Policy for a data scientist role ]

以下是使用模型生命周期条件键的 IAM 策略示例。您可以根据自己的要求对其进行修改。在此示例中，角色的权限仅限于将模型生命周期阶段设置或定义为：
+ 使用阶段 `"Development"` 和状态 `"Approved"` 创建或更新模型。
+ 使用阶段质量保证、`"QA"` 和状态 `"PendingApproval"` 更新模型包。

```
{
    "Action" : [
        "sagemaker:UpdateModelPackage",
        "sagemaker:CreateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage" : "Development"
            "sagemaker:ModelLifeCycle:stageStatus" : "Approved"       
        }
    }
},
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage" : "Staging"
            "sagemaker:ModelLifeCycle:stageStatus" : "PendingApproval"       
        }
    }
}
```

------
#### [ Policy for a quality assurance specialist ]

以下是使用模型生命周期条件键的 IAM 策略示例。您可以根据自己的要求对其进行修改。在此示例中，角色的权限仅限于将模型生命周期阶段设置或定义为：
+ 使用以下项更新模型包：
  + 阶段 `"QA"` 和状态 `"Approved"` 或 `"Rejected"`。
  + 阶段 `"Production"` 和状态 `"PendingApproval"`。

```
{
    "Action": [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage": "Staging",
            "sagemaker:ModelLifeCycle:stageStatus": "Approved"
        }
    }
}, {
    "Action": [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage": "Staging",
            "sagemaker:ModelLifeCycle:stageStatus": "Rejected"
        }
    }
}, {
    "Action": [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage": "Production",
            "sagemaker:ModelLifeCycle:stageStatus": "PendingApproval"
        }
    }
}
```

------
#### [ Policy for lead engineer role ]

以下是使用模型生命周期条件键的 IAM 策略示例。您可以根据自己的要求对其进行修改。在此示例中，角色的权限仅限于将模型生命周期阶段设置或定义为：
+ 使用以下项更新模型包：
  + 阶段 `"Production"` 和状态 `"Approved"` 或 `"Rejected"`。
  + 阶段 `"Development"` 和状态 `"PendingApproval"`。

```
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "ForAnyvalue:StringEquals" : {
            "sagemaker:ModelLifeCycle:stage" : "Production",
            "sagemaker:ModelLifeCycle:stageStatus" : "Approved"
        }
    }
},
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals:" {
            "sagemaker:ModelLifeCycle:stage" : "Production"
            "sagemaker:ModelLifeCycle:stageStatus" : "Rejected"
        }
    }
},
{
    "Action" : [
        "sagemaker:UpdateModelPackage"
    ],
    "Resource": [
        "*"
    ],
    "Condition": {
        "StringEquals": {
            "sagemaker:ModelLifeCycle:stage" : "Development"
            "sagemaker:ModelLifeCycle:stageStatus" : "PendingApproval"
        }
    }
}
```

------

要在任何型号状态更新时获得 Amazon EventBridge 通知，请参阅中的示例[获取以下内容的事件通知 ModelLifeCycle](model-registry-staging-construct-event-bridge.md)。有关您可能收到的 EventBridge 有效载荷示例，请参阅[SageMaker 模型包状态更改](automating-sagemaker-with-eventbridge.md#eventbridge-model-package)。

# 在 Studio 中更新模型包阶段和状态
<a name="model-registry-staging-construct-update-studio"></a>

要使用模型包阶段构造，您需要代入具有相关权限的执行角色。以下页面提供了有关如何使用 Amazon SageMaker Studio 更新舞台状态的信息。

域中定义的所有阶段构造可供所有用户查看。要更新阶段，您需要让管理员设置相关权限，之后才能访问该阶段。有关操作方式的信息，请参阅[设置阶段构造示例](model-registry-staging-construct-set-up.md)。

以下过程会将您转至 Studio 用户界面，可在其中更新模型包阶段。

1. 登录 Amazon SageMaker Studio。有关更多信息，请参阅 [启动亚马逊 SageMaker Studio](studio-updated-launch.md)。

1. 在左侧导航窗格中，选择**模型**。

1. 查找您的模型。
   + 您可以使用选项卡查找您的模型。例如，选择**已注册模型**或**可部署模型**选项卡。
   + 您可以使用**我的模型**和**与我共享**选项来查找您创建的模型或由您共享的模型。

1. 选中要更新的模型旁边的复选框。

1. 选择**更多选项**图标。

1. 选择**更新模型生命周期**。这会将您转至**更新模型生命周期**部分。

1. 完成任务以更新阶段。

   如果您无法更新阶段，则会收到错误。您的管理员需要为您设置相关权限，之后您才能执行此操作。有关如何设置权限的信息，请参阅[设置阶段构造示例](model-registry-staging-construct-set-up.md)。

# 更新模型包阶段和状态示例（boto3）
<a name="model-registry-staging-construct-update-boto3"></a>

要更新模型包阶段和状态，您需要代入具有相关权限的执行角色。下文中的示例说明如何使用 适用于 Python (Boto3) 的 AWS SDK通过 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html) API 更新阶段状态。

在此示例中，已将 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html) API 操作的 `ModelLifeCycle` 阶段 `"Development"` 和阶段状态 `"Approved"` 条件键授予执行角色。您可以在 `stage-description` 中添加描述。请参阅[设置阶段构造示例](model-registry-staging-construct-set-up.md)了解更多信息。

```
from sagemaker import get_execution_role, session 
import boto3 

region = boto3.Session().region_name role = get_execution_role() 
sm_client = boto3.client('sagemaker', region_name=region)

model_package_update_input_dict = {
    "ModelLifeCycle" : { 
        "stage" : "Development",
        "stageStatus" : "Approved",
        "stageDescription" : "stage-description"
    }
} 
model_package_update_response = sm_client.update_model_package(**model_package_update_input_dict)
```

# ModelLifeCycle 使用 AWS CLI 示例调用
<a name="model-registry-staging-construct-cli"></a>

您可以使用该 AWS CLI 工具来管理您的 AWS 资源。提供了几条 AWS CLI 命令，包括 [search](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudsearchdomain/search.html) 和 [list-actions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/fis/list-actions.html)。以下页面中的示例演示了在使用这些命令时，如何使用 `ModelPackage`。有关设置阶段构造的信息和示例，请参阅[设置阶段构造示例](model-registry-staging-construct-set-up.md)。

此页面上的示例使用以下变量。
+ `region` 是您的模型包所在的区域。
+ `stage-name` 是您定义的阶段的名称。
+ `stage-status` 是您定义的阶段状态的名称。

以下是使用的 AWS CLI 命令示例 ModelLifeCycle。

使用您已经定义的*stage-name*搜索您的模型包。

```
aws sagemaker search --region 'region' --resource ModelPackage --search-expression '{"Filters": [{"Name": "ModelLifeCycle.Stage","Value": "stage-name"}]}'
```

列出与 `ModelLifeCycle` 关联的操作。

```
aws sagemaker list-actions --region 'region' --action-type ModelLifeCycle
```

使用创建模型包 ModelLifeCycle。

```
aws sagemaker create-model-package --model-package-group-name 'model-package-group-name' --source-uri 'source-uri' --region 'region' --model-life-cycle '{"Stage":"stage-name", "StageStatus":"stage-status", "StageDescription":"Your Staging Comment"}' 
```

使用更新模型包 ModelLifeCycle。

```
aws sagemaker update-model-package --model-package 'model-package-arn' --region 'region' --model-life-cycle '{"Stage":"stage-name", "StageStatus":"stage-status"}' 
```

通过该 ModelLifeCycle 字段进行搜索。

```
aws sagemaker search --region 'region' --resource ModelPackage --search-expression '{"Filters": [{"Name": "ModelLifeCycle.Stage","Value": "stage-name"}]}'
```

通过获取审核记录以获取 ModelLifeField 更新[亚马逊 SageMaker ML Lineage 追踪](lineage-tracking.md) APIs。

```
aws sagemaker list-actions --region 'region' --action-type ModelLifeCycle
```

```
aws sagemaker describe-action --region 'region' --action-name 'action-arn or action-name'
```

# 获取以下内容的事件通知 ModelLifeCycle
<a name="model-registry-staging-construct-event-bridge"></a>

您可以在自己的账户 EventBridge 中获取 ModelLifeCycle 更新通知和事件。以下是要在您的账户中配置的用于获取 ModelLifeCycle 事件通知的 EventBridge 规则示例。

```
{
  "source": ["aws.sagemaker"],
  "detail-type": ["SageMaker Model Package State Change"]
}
```

有关您可能收到的 EventBridge 有效载荷示例，请参阅[SageMaker 模型包状态更改](automating-sagemaker-with-eventbridge.md#eventbridge-model-package)。

# 更新模型的批准状态
<a name="model-registry-approve"></a>

创建模型版本后，通常需要先评估其性能，然后再将其部署到生产端点。如果它符合您的要求，则可以将模型版本的批准状态更新为 `Approved`。将状态设置为`Approved`可以启动模型的 CI/CD 部署。如果模型版本的性能不符合您的要求，则可以将批准状态更新为 `Rejected`。

您可以在注册模型版本后手动更新其批准状态，也可以在创建 A SageMaker I 管道时创建条件步骤来评估模型。有关在 SageMaker AI 管道中创建条件步骤的信息，请参阅[Pipelines 步骤](build-and-manage-steps.md)。

当您使用 SageMaker AI 提供的项目模板之一并且模型版本的批准状态发生变化时，会发生以下操作。仅显示有效的转换。
+ `PendingManualApproval`t `Approved` o — 启动已批准模型版本的 CI/CD 部署
+ `PendingManualApproval` 更改为 `Rejected` - 不执行任何操作
+ `Rejected` 更改为 `Approved` - 为已批准的模型版本启动 CI/CD 部署
+ `Approved`t `Rejected` o — CI/CD 启动部署带有状态的最新模型版本 `Approved`

您可以使用 适用于 Python (Boto3) 的 AWS SDK 或使用 Amazon SageMaker Studio 控制台更新模型版本的批准状态。作为 SageMaker AI 管道中条件步骤的一部分，您还可以更新模型版本的批准状态。有关在 SageMaker AI 管道中使用模型批准步骤的信息，请参阅[管道概述](pipelines-overview.md)。

## 更新模型的批准状态 (Boto3)
<a name="model-registry-approve-api"></a>

在[注册模型版本](model-registry-version.md)中创建模型版本时，将 `ModelApprovalStatus` 设置为 `PendingManualApproval`。您可以通过调用 `update_model_package` 来更新模型的批准状态。请注意，您可以通过编写代码来自动执行此过程，例如，根据对模型性能的某些度量的评估结果来设置模型的批准状态。您还可以在管道中创建一个步骤，以在新模型版本获得批准后自动部署该版本。以下代码片段显示了如何手动将批准状态更改为 `Approved`。

```
model_package_update_input_dict = {
    "ModelPackageArn" : model_package_arn,
    "ModelApprovalStatus" : "Approved"
}
model_package_update_response = sm_client.update_model_package(**model_package_update_input_dict)
```

## 更新模型的审批状态（Studio 或 Studio Classic）
<a name="model-registry-approve-studio"></a>

要在亚马逊 SageMaker Studio 控制台中手动更改批准状态，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。

------
#### [ Studio ]

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择**模型**，显示模型组列表。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要查看的模型组左侧的角括号。

1. 显示模型组中的模型版本列表。如果没有看到要删除的模型版本，请选择**查看全部**以显示模型组详细信息页面中的完整模型版本列表。

1. 选择要更新的模型版本名称。

1. **部署**选项卡显示当前审批状态。选择当前审批状态旁边的下拉菜单，然后选择更新的审批状态。

------
#### [ Studio Classic ]

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要查看的模型组名称。此时将打开一个新选项卡，其中列出了模型组中的模型版本。

1. 在模型版本列表中，选择要更新的模型版本名称。

1. 在**操作**下拉菜单下，您可以从两个可能的菜单选项中选择一个来更新模型版本状态。
   + 使用**更新状态**选项

     1. 在**操作**下拉菜单下，选择**更新状态**下拉菜单，然后选择新的模型版本状态。

     1. （可选）在**注释**字段中，添加其他详细信息。

     1. 选择**保存并更新**。
   + 使用**编辑**选项

     1. 在**操作**下拉菜单下，选择**编辑**。

     1. （可选）在**注释**字段中，添加其他详细信息。

     1. 选择**保存更改**。

1. 在模型版本页面中确认模型版本状态已更新为正确的值。

------

对于`us-east-1``us-west-2`、`ap-northeast-1`、和`eu-west-1`区域，您可以使用以下说明访问已记录和注册模型版本的血统详细信息：

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 从左侧导航窗格中选择**模型**。

1. 选择已记录的**模型**选项卡（如果尚未选择），然后选择**注册的模型**。

1. 选择一个型号并选择 “**查看最新版本**”。

1. 选择 “**治理**” 选项卡。

1. “**治理概述**” 下的 “**部署**” 部分显示当前的批准状态。从下拉菜单中选择更新的批准状态。

# 用 Python 从注册表部署模型
<a name="model-registry-deploy"></a>

注册模型版本并批准其部署后，将其部署到 A SageMaker I 终端节点以进行实时推理。您可以使用 SageMaker AI SDK 或. 来部署模型 适用于 Python (Boto3) 的 AWS SDK。

当您创建机器学习操作 (MLOps) 项目并选择包含模型部署的 MLOps项目模板时，模型注册表中已批准的模型版本将自动部署到生产中。有关使用 SageMaker AI MLOps 项目的信息，请参阅[MLOps SageMaker 项目自动化](sagemaker-projects.md)。

您还可以通过添加跨 AWS 账户资源策略，使账户能够部署在其他账户中创建的模型版本。例如，您组织中的一个团队可能负责训练模型，而另一个团队则负责部署和更新模型。

**Topics**
+ [从注册表 (SageMaker SDK) 部署模型](#model-registry-deploy-smsdk)
+ [从注册表部署模型 (Boto3)](#model-registry-deploy-api)
+ [从其他账户部署模型版本](#model-registry-deploy-xaccount)

## 从注册表 (SageMaker SDK) 部署模型
<a name="model-registry-deploy-smsdk"></a>

要使用 [Amaz SageMaker on Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable)部署模型版本，请使用以下代码片段：

```
from sagemaker import ModelPackage
from time import gmtime, strftime

model_package_arn = 'arn:aws:sagemaker:us-east-2:12345678901:model-package/modeltest/1'
model = ModelPackage(role=role, 
                     model_package_arn=model_package_arn, 
                     sagemaker_session=sagemaker_session)
model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge')
```

## 从注册表部署模型 (Boto3)
<a name="model-registry-deploy-api"></a>

要使用部署模型版本 适用于 Python (Boto3) 的 AWS SDK，请完成以下步骤：

1. 以下代码片段假设您已经创建了 SageMaker AI Boto3 客户端`sm_client`和一个 ARN 存储在变量中的模型版本。`model_version_arn`

   通过调用 [create\$1model](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_model) API 操作，从模型版本创建模型对象。传递模型版本的 Amazon 资源名称（ARN），作为模型对象 `Containers` 的一部分：

   ```
   model_name = 'DEMO-modelregistry-model-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
   print("Model name : {}".format(model_name))
   container_list = [{'ModelPackageName': model_version_arn}]
   
   create_model_response = sm_client.create_model(
       ModelName = model_name,
       ExecutionRoleArn = role,
       Containers = container_list
   )
   print("Model arn : {}".format(create_model_response["ModelArn"]))
   ```

1. 通过调用 `create_endpoint_config` 创建端点配置。端点配置指定要用于该端点的 Amazon EC2 实例的数量和类型。

   ```
   endpoint_config_name = 'DEMO-modelregistry-EndpointConfig-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
   print(endpoint_config_name)
   create_endpoint_config_response = sm_client.create_endpoint_config(
       EndpointConfigName = endpoint_config_name,
       ProductionVariants=[{
           'InstanceType':'ml.m4.xlarge',
           'InitialVariantWeight':1,
           'InitialInstanceCount':1,
           'ModelName':model_name,
           'VariantName':'AllTraffic'}])
   ```

1. 通过调用 `create_endpoint` 创建端点。

   ```
   endpoint_name = 'DEMO-modelregistry-endpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
   print("EndpointName={}".format(endpoint_name))
   
   create_endpoint_response = sm_client.create_endpoint(
       EndpointName=endpoint_name,
       EndpointConfigName=endpoint_config_name)
   print(create_endpoint_response['EndpointArn'])
   ```

## 从其他账户部署模型版本
<a name="model-registry-deploy-xaccount"></a>

通过添加跨 AWS 账户资源策略，您可以允许账户部署在其他账户中创建的模型版本。例如，您组织中的一个团队可能负责训练模型，而另一个团队则负责部署和更新模型。创建这些资源策略时，可以将策略应用于要授予访问权限的特定资源。有关跨账户资源策略的更多信息 AWS，请参阅*AWS Identity and Access Management 用户*指南中的[跨账户策略评估逻辑](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html)。

**注意**  
在跨账户模型部署训练期间，您必须使用 KMS 密钥对[输出数据配置](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputDataConfig.html)操作进行加密。

要在 SageMaker AI 中启用跨账户模型部署，您必须为包含要部署的模型版本的模型组、模型组推断图像所在的 Amazon ECR 存储库以及存储模型版本的 Amazon S3 存储桶提供跨账户资源策略。

为了能够部署在其他账户中创建的模型，您必须拥有有权访问 SageMaker AI 操作的角色，例如具有`AmazonSageMakerFullAccess`托管策略的角色。有关 SageMaker AI 托管策略的信息，请参阅[AWS 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)。

以下示例为所有这三种资源创建了跨账户策略，并将这些策略应用到资源。该示例还假设您先前定义了以下变量：
+ `bucket`：存储模型版本的 Amazon S3 存储桶。
+ `kms_key_id`：用于加密训练输出的 KMS 键。
+ `sm_client`— SageMaker 人工智能 Boto3 客户端。
+ `model_package_group_name`：要授予跨账户访问权限的模型组。
+ `model_package_group_arn`：要授予跨账户访问权限的模型组 ARN。

```
import json

# The cross-account id to grant access to
cross_account_id = "123456789012"

# Create the policy for access to the ECR repository
ecr_repository_policy = {
    'Version': '2012-10-17		 	 	 ',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': ['ecr:*']
    }]
}

# Convert the ECR policy from JSON dict to string
ecr_repository_policy = json.dumps(ecr_repository_policy)

# Set the new ECR policy
ecr = boto3.client('ecr')
response = ecr.set_repository_policy(
    registryId = account,
    repositoryName = 'decision-trees-sample',
    policyText = ecr_repository_policy
)

# Create a policy for accessing the S3 bucket
bucket_policy = {
    'Version': '2012-10-17		 	 	 ',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': 's3:*',
        'Resource': f'arn:aws:s3:::{bucket}/*'
    }]
}

# Convert the policy from JSON dict to string
bucket_policy = json.dumps(bucket_policy)

# Set the new policy
s3 = boto3.client('s3')
response = s3.put_bucket_policy(
    Bucket = bucket,
    Policy = bucket_policy)

# Create the KMS grant for encryption in the source account to the
# Model Registry account Model Group
client = boto3.client('kms')

response = client.create_grant(
    GranteePrincipal=cross_account_id,
    KeyId=kms_key_id
    Operations=[
        'Decrypt',
        'GenerateDataKey',
    ],
)

# 3. Create a policy for access to the Model Group.
model_package_group_policy = {
    'Version': '2012-10-17		 	 	 ',
    'Statement': [{
        'Sid': 'AddPermModelPackageGroup',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': ['sagemaker:DescribeModelPackageGroup'],
        'Resource': f'arn:aws:sagemaker:{region}:{account}:model-package-group/{model_package_group_name}'
    },{
        'Sid': 'AddPermModelPackageVersion',
        'Effect': 'Allow',
        'Principal': {
            'AWS': f'arn:aws:iam::{cross_account_id}:root'
        },
        'Action': ["sagemaker:DescribeModelPackage",
                   "sagemaker:ListModelPackages",
                   "sagemaker:UpdateModelPackage",
                   "sagemaker:CreateModel"],
        'Resource': f'arn:aws:sagemaker:{region}:{account}:model-package/{model_package_group_name}/*'
    }]
}

# Convert the policy from JSON dict to string
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the policy to the Model Group
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = model_package_group_name,
    ResourcePolicy = model_package_group_policy)

print('ModelPackageGroupArn : {}'.format(create_model_package_group_response['ModelPackageGroupArn']))
print("First Versioned ModelPackageArn: " + model_package_arn)
print("Second Versioned ModelPackageArn: " + model_package_arn2)

print("Success! You are all set to proceed for cross-account deployment.")
```

# 在 Studio 中部署模型
<a name="model-registry-deploy-studio"></a>

在您注册模型版本并批准其部署后，将其部署到 Amazon A SageMaker I 终端节点以进行实时推理。您可以[用 Python 从注册表部署模型](model-registry-deploy.md)或在 Amazon SageMaker Studio 中部署您的模型。下面将说明如何在 Studio 中部署模型。

此功能在 Amazon SageMaker Studio 经典版中不可用。
+ 如果 Studio 是您的默认体验，则用户界面与 [亚马逊 SageMaker 工作室用户界面概述](studio-updated-ui.md) 中的映像类似。
+ 如果 Studio Classic 是您的默认体验，则用户界面与 [亚马逊 SageMaker Studio 经典用户界面概述](studio-ui.md) 中的映像类似。

在部署模型软件包之前，模型软件包必须满足以下要求：
+ 可用的有效推理规范。请参阅[InferenceSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-InferenceSpecification)了解更多信息。
+ 已获批准的模型。请参阅[更新模型的批准状态](model-registry-approve.md)了解更多信息。

下面将说明如何在 Studio 中部署模型。

**要在 Studio 中部署模型**

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. （可选）如果有与您共享的模型，您可以选择**我的模型**或**与我共享的模型**。

1. 选择已注册模型的复选框。如果满足上述要求，就可以选择**部署**按钮。

1. 选择**部署**打开**部署模型到端点**页面。

1. 在**端点设置**中配置部署资源。

1. 验证设置后，选择**部署**。然后，模型将以**服务中**状态部署到端点。

对于`us-east-1``us-west-2``ap-northeast-1`、、和`eu-west-1`区域，您可以使用以下说明部署模型：

**要在 Studio 中部署模型**

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 选择 “**我的模型**” 选项卡。

1. 如果尚未选择，请选择已记录的**模型**选项卡。

1. 选择一个型号并选择 “**查看最新版本**”。

1. 选择 “**部署**”，然后在 SageMaker AI 或 Amazon Bedrock 之间进行选择。

1. 验证设置后，选择**部署**。然后，模型将以**服务中**状态部署到端点。

# 跨账户可发现性
<a name="model-registry-ram"></a>

通过探索和访问在其他账户中注册的模型软件包组，数据科学家和数据工程师可以促进数据一致性、简化协作并减少重复作业。借助 Amazon SageMaker 模型注册表，您可以跨账户共享模型包组。与资源共享相关的权限分为两类：
+ **可发现性**：*可发现性*是指资源用户账户查看一个或多个资源所有者账户共享的模型软件包组的能力。只有当资源所有者将必要的资源策略附加到共享模型软件包组时，才能实现可发现性。资源使用者可以在 AWS RAM 用户界面中查看所有共享的模型包组，以及 AWS CLI。
+ **可访问性**：*可访问性*是指资源用户账户使用共享模型软件包组的能力。例如，如果资源用户拥有必要的权限，他们可以从不同的账户注册或部署模型软件包。

**Topics**
+ [在 Studio 中共享模型组](model-registry-ram-studio-share.md)
+ [在 Studio 中查看共享模型组](model-registry-ram-studio-view.md)
+ [可访问性](model-registry-ram-accessibility.md)
+ [设置可发现性](model-registry-ram-discover.md)
+ [查看共享模型软件包组](model-registry-ram-view-shared.md)
+ [从资源共享中分离主体并删除资源共享](model-registry-ram-dissociate.md)
+ [促进权限和资源共享](model-registry-ram-promote.md)

# 在 Studio 中共享模型组
<a name="model-registry-ram-studio-share"></a>

您可以使用 Studio 用户界面与其他 AWS 委托人（AWS 账户 或 AWS Organizations）共享您的模型组。这种简化的共享流程可实现跨团队协作，推广最佳实践，并促进各团队之间的模型重用。下面将说明如何在 Studio 中共享模型组。

此功能在 Amazon SageMaker Studio 经典版中不可用。
+ 如果 Studio 是您的默认体验，则用户界面与 [亚马逊 SageMaker 工作室用户界面概述](studio-updated-ui.md) 中的映像类似。
+ 如果 Studio Classic 是您的默认体验，则用户界面与 [亚马逊 SageMaker Studio 经典用户界面概述](studio-ui.md) 中的映像类似。

要共享模型组，首先需要确保在共享资源的执行角色中添加了以下权限。

1. [获取执行角色](sagemaker-roles.md#sagemaker-roles-get-execution-role)。

1. [更新角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)，内容如下：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ram:ListPermissions",
                   "ram:GetPermission",
                   "ram:GetResourceShareAssociations",
                   "ram:ListResourceSharePermissions",
                   "ram:DeleteResourceShare",
                   "ram:GetResourceShareInvitations",
                   "ram:AcceptResourceShareInvitation"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

下面将说明如何与其他 AWS 主体共享模型组。

**与其他 AWS 负责人共享模型组**

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 选择注册模型。

1. 在右上角选择**共享**。这将打开**共享模型组**部分。

   如果在屏幕底部看到错误信息，则需要为执行角色添加适当的权限。更多信息，请参阅上述权限。

1. 在**资源共享**下，选择要更新的资源共享或创建新的资源共享。

1. 在**管理权限**下，选择一个管理权限来控制模型的访问级别。

   可查看的选项包括已为您创建的权限或您在 AWS RAM中自定义的权限。请参阅 *AWS Resource Access Manager* 用户指南中的[创建和使用客户管理的权限](https://docs.aws.amazon.com/ram/latest/userguide/create-customer-managed-permissions.html)。

1. **在 “**AWS 委托人**” 下，输入您想要共享 AWS 账户 IDs 的 AR AWS Organizations N，然后选择 “添加”。**您可以通过这种方式添加多个 AWS 委托人。

1. 满足最低要求后，即可使用**共享**按钮。验证设置后，选择**共享**。

   共享成功后，屏幕底部会出现绿色横幅信息。

# 在 Studio 中查看共享模型组
<a name="model-registry-ram-studio-view"></a>

您可以查看与您或属于同一 AWS Organizations的帐户共享的模型组。如果与属于该模型组的帐户共享该模型组 AWS Organizations，则该共享模型组将自动获得批准并可供您在 Studio 中查看。否则，您需要先批准待发邀请，然后才能在 Studio 中查看共享模型组。下面将说明如何在 Studio 中查看共享模型组和接受模型组共享邀请。

此功能在 Amazon SageMaker Studio 经典版中不可用。
+ 如果 Studio 是您的默认体验，则用户界面与 [亚马逊 SageMaker 工作室用户界面概述](studio-updated-ui.md) 中的映像类似。
+ 如果 Studio Classic 是您的默认体验，则用户界面与 [亚马逊 SageMaker Studio 经典用户界面概述](studio-ui.md) 中的映像类似。

下面将说明如何查看和接受与您共享的模型组。

**查看并接受与您共享的模型组**

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 选择**与我共享**查看与您共享的模型组。

1. 接受待处理的模型组邀请：

   1. 选择**查看待批**，打开**待批邀请**列表。

   1. 如果您想接受邀请，请选择**接受**。

# 可访问性
<a name="model-registry-ram-accessibility"></a>

如果资源用户拥有使用共享模型软件包组的访问权限，他们就可以注册或部署模型软件包组的一个版本。有关资源用户如何注册共享模型软件包组的详情，请参阅 [从其他账户注册模型版本](model-registry-version.md#model-registry-version-xaccount)。有关资源用户如何部署共享模型软件包组的详细信息，请参阅 [从其他账户部署模型版本](model-registry-deploy.md#model-registry-deploy-xaccount)。

# 设置可发现性
<a name="model-registry-ram-discover"></a>

资源所有者可通过创建资源共享和为实体附加资源策略来设置模型软件包组的可发现性。有关如何在中创建常规资源共享的详细步骤 AWS RAM，请参阅[AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)文档中的[创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create)。

按照以下说明使用 AWS RAM 控制台或模型注册表资源策略 APIs设置模型包组的可发现性。

------
#### [ AWS CLI ]

1. 在模型所有者账户中创建资源共享。

   1. 模型所有者使用 SageMaker AI 资源策略 API [put-model-package-group-](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/put-model-package-group-policy.html) policy 将资源策略附加到模型包组，如以下命令所示。

      ```
      aws sagemaker put-model-package-group-policy
      --model-package-group-name <model-package-group-name>
      --resource-policy "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Sid\":
      \"ExampleResourcePolicy\",\"Effect\":\"Allow\",\"Principal\":<principal>,
      \"Action\":[\"sagemaker:DescribeModelPackage\",
      \"sagemaker:ListModelPackages\",\"sagemaker:DescribeModelPackageGroup\"],
      \"Resource\":[\"<model-package-group-arn>,\"
      \"arn:aws:sagemaker:<region>:<owner-account-id>:model-package/
      <model-package-group-name>/*\"]}]}"
      ```
**注意**  
资源策略可以附加不同的行动组合。对于自定义策略，创建的权限应由模型软件包组所有者推广，只有附加了推广权限的实体才能被发现。无法通过 AWS RAM发现或管理不可推广的资源共享。

   1. 要检查是否 AWS RAM 创建了资源共享 ARN，请使用以下命令：

      ```
      aws ram get-resource-share-associations --association-type resource --resource-arn <model-package-group-arn>
      ```

      响应中包含实体*resource-share-arn*的。

   1. 要检查所附策略权限是托管式策略还是自定义策略，请使用以下命令：

      ```
      aws ram list-resource-share-permissions --resource-share-arn <resource-share-arn>
      ```

      `featureSet` 字段的值可以是 `CREATED_FROM_POLICY` 或 `STANDARD`，其定义如下：
      + `STANDARD`：权限已存在。
      + `CREATED_FROM_POLICY`：需要提升权限才能发现实体。有关更多信息，请参阅 [促进权限和资源共享](model-registry-ram-promote.md)。

1. 接受模型用户账户中的资源共享邀请。

   1. 模型软件包组用户接受资源共享邀请。要查看所有资源邀请，请运行以下命令：

      ```
      aws ram get-resource-share-invitations
      ```

      识别状态为 `PENDING` 的申请，并包含所有者账户的 ID。

   1. 使用以下命令接受模型所有者发出的资源共享邀请：

      ```
      aws ram accept-resource-share-invitation --resource-share-invitation-arn <resource-share-invitation-arn>
      ```

------
#### [ AWS RAM console ]

1. 登录 [AWS RAM 控制台](https://console.aws.amazon.com/ram/home)。

1. 完成以下步骤，从模型软件包组所有者账户创建资源共享。

   1. 完成以下步骤指定资源共享详细信息。

      1. 在 **Name** 字段中，为资源添加一个唯一名称。

      1. 在**资源**卡中，选择下拉菜单并选择 **SageMaker AI Model Package Groups**。

      1. 选择模型软件包组资源共享 ARN 的复选框。

      1. 在**选择资源**卡中，选择模型软件包组资源共享的复选框。

      1. 在**标签**卡中，为要添加到资源共享中的标签添加键值对。

      1. 选择**下一步**。

   1. 完成以下步骤，将管理权限与资源共享关联。

      1. 如果使用管理权限，请在**管理权限**下拉菜单中选择管理权限。

      1. 如果使用自定义权限，请选择**客户管理权限**。在这种情况下，无法立即发现模型软件包组。创建资源共享后，必须推广权限和资源策略。有关如何提升权限和资源共享的信息，请参阅 [促进权限和资源共享](model-registry-ram-promote.md)。有关如何附加自定义权限的更多信息，请参阅[在 AWS RAM中创建和使用客户管理的权限](https://docs.aws.amazon.com/ram/latest/userguide/create-customer-managed-permissions.html)。

      1. 选择**下一步**。

   1. 完成以下步骤，授予主体访问权限。

      1. 选择**允许与任何人共享**以允许与组织外的账户共享，或选择**仅允许在组织内共享**。

      1. 在**选择主体类型**下拉菜单中，添加要添加的主体类型和 ID。

      1. 为共享添加并选择所选主体。

      1. 选择**下一步**。

   1. 查看显示的共享配置，然后选择**创建资源共享**。

1. 接受用户账户发出的资源共享邀请。一旦模型所有者创建了资源共享和主体关联，指定的资源用户账户就会收到加入资源共享的邀请。资源用户账户可在 AWS RAM 管理控制台中的[与我共享：资源共享](https://console.aws.amazon.com/ram/home#SharedResourceShares:)页面查看并接受邀请。有关接受和查看中资源的更多信息 AWS RAM，请参阅[访问与您共享的 AWS 资源](https://docs.aws.amazon.com//ram/latest/userguide/working-with-shared.html)。

------

# 查看共享模型软件包组
<a name="model-registry-ram-view-shared"></a>

在资源所有者完成之前创建资源共享的步骤并且使用者接受共享邀请后，使用者可以在 AWS RAM 控制台中使用 AWS CLI 或查看共享模型包组。

## AWS CLI
<a name="model-registry-ram-view-shared-cli"></a>

要查看共享的模型软件包组，请在模型用户账户中使用以下命令：

```
aws sagemaker list-model-package-groups --cross-account-filter-option CrossAccount
```

## AWS RAM 控制台
<a name="model-registry-ram-view-shared-ram"></a>

在 AWS RAM 控制台中，资源所有者和使用者可以查看共享模型包组。资源所有者可以通过以下步骤查看与用户共享的模型软件包组：[查看您在 AWS RAM中创建的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-view-rs.html)。资源用户可以按照[查看与您共享的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-view-rs.html)中的步骤，查看所有者共享的模型软件包组。

# 从资源共享中分离主体并删除资源共享
<a name="model-registry-ram-dissociate"></a>

资源所有者可以使用或控制台取消委托人与资源共享的关联以获得一组权限，或者删除整个资源共享。 AWS CLI AWS RAM 有关如何从资源共享中分离主体的详细信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。有关如何删除资源共享的详细信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的[删除资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html)。

## AWS CLI
<a name="model-registry-ram-dissociate-cli"></a>

要解除委托人与资源共享的关联，请按如下方式使用命令 [dissociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html)：

```
aws ram disassociate-resource-share --resource-share-arn <resource-share-arn> --principals <principal>
```

要删除资源共享，请[delete-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/delete-resource-share.html)按以下方式使用命令：

```
aws ram delete-resource-share --resource-share-arn <resource-share-arn>
```

## AWS RAM 控制台
<a name="model-registry-ram-dissociate-ram"></a>

有关如何从资源共享中分离主体的更多详情，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。有关如何删除资源共享的详细信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的删除资源共享。

# 促进权限和资源共享
<a name="model-registry-ram-promote"></a>

如果使用自定义（客户管理）权限，则需要推广权限和相关资源共享，以便模型软件包组可被发现。完成以下步骤，促进权限和资源共享。

1. 要将您的自定义权限提升为可供访问 AWS RAM，请使用以下命令：

   ```
   aws ram promote-permission-created-from-policy —permission-arn <permission-arn>
   ```

1. 使用以下命令推广资源共享：

   ```
   aws ram promote-resource-share-created-from-policy --resource-share-arn <resource-share-arn>
   ```

如果在执行前面的步骤时出现 `OperationNotPermittedException` 错误，说明实体不可被发现，但可以被访问。例如，如果资源所有者在资源策略中附加了 `“Principal”: {“AWS”: “arn:aws:iam::3333333333:role/Role-1”}` 等假定角色本金，或者如果资源策略允许 `“Action”: “*”`，则相关的模型软件包组既不可推广，也不可被发现。

# 查看模型的部署历史记录
<a name="model-registry-deploy-history"></a>

要在 Amazon SageMaker Studio 控制台中查看模型版本的部署，请根据您使用的是 Studio 还是 Studio Classic 完成以下步骤。

------
#### [ Studio ]

**查看模型版本的部署历史记录**

1. 按照[启动 Amazon SageMaker Studio 中的说明打开 SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 控制台。

1. 在左侧导航窗格中，选择**模型**，显示模型组列表。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 从模型组列表中，选择要查看的模型组左侧的角括号。

1. 显示模型组中的模型版本列表。如果没有看到要删除的模型版本，请选择**查看全部**。

1. 选择要查看的模型版本名称。

1. 选择**活动**选项卡。模型版本的部署在活动列表中显示为事件，**事件类型**为**ModelDeployment**。

------
#### [ Studio Classic ]

**查看模型版本的部署历史记录**

1. 登录亚马逊 SageMaker Studio 经典版。有关更多信息，请参阅[启动 Amazon SageMaker Studio 经典版](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html)。

1. 在左侧导航窗格中，选择**主页**图标 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 选择**模型**，然后选择**模型注册表**。

1. 从模型组列表中，选择要查看的模型组名称。

1. 此时将出现一个新选项卡，其中列出了模型组中的模型版本。

1. 在模型版本列表中，选择您要查看其详细信息的模型版本的名称。

1. 在打开的模型版本选项卡上，选择**活动**。模型版本的部署在活动列表中显示为事件，**事件类型**为**ModelDeployment**。

------

# 在 Studio 中查看模型任务流水线详情
<a name="model-registry-lineage-view-studio"></a>

您可以在 Amazon SageMaker Studio 中查看注册模特的血统详情。下面将说明如何在 Studio 中访问任务流水线视图。有关在 Amazon SageMaker Studio 中追踪血统的更多信息，请参阅[亚马逊 SageMaker ML Lineage 追踪](lineage-tracking.md)。

此功能在 Amazon SageMaker Studio 经典版中不可用。
+ 如果 Studio 是您的默认体验，则用户界面与 [亚马逊 SageMaker 工作室用户界面概述](studio-updated-ui.md) 中的映像类似。
+ 如果 Studio Classic 是您的默认体验，则用户界面与 [亚马逊 SageMaker Studio 经典用户界面概述](studio-ui.md) 中的映像类似。

脉络视图是与注册模型相关的资源的交互式可视化。这些资源包括数据集、训练作业、审批、模型和端点。您还可以在任务流水线中查看相关资源的详细信息，包括源 URI、创建时间戳和其他元数据。

`us-east-1`、`us-west-2``ap-northeast-1`、和`eu-west-1`地区提供以下功能：

您可以跟踪已登录和注册模型的血统。此外，模型资源的谱系包括数据集、赋值器、训练作业、批准、模型、推理组件和端点。您还可以在任务流水线中查看相关资源的详细信息，包括源 URI、创建时间戳和其他元数据。

下面提供了有关如何访问已注册模型版本的系列详细信息的说明。

**要访问已注册模型版本的系列详细信息**

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. （可选）如果有与您共享的模型，您可以选择**我的模型**或**与我共享的模型**。

1. 选择注册模型。

1. 如果尚未选择**版本**选项卡，请选择。

1. 从**版本**列表中选择特定模型版本。

1. 选择**世系**选项卡。

在**任务流水线**标签中，您可以浏览与模型版本相关的资源。您还可以选择资源，查看资源详情。

请注意，任务流水线视图仅用于可视化目的。重新排列或移动该视图中的组件不会影响实际注册的模型资源。

对于`us-east-1``us-west-2`、`ap-northeast-1`、和`eu-west-1`区域，您可以使用以下说明访问已记录和注册模型版本的血统详细信息：

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 选择 “**我的模型**” 选项卡。

1. （可选）如果您有与您共享的模型，则可以在 “**由我创建” 或 “与我****共享” 之间进行**选择。

1. 选择一个型号并选择 “**查看最新版本**”。

1. 选择**世系**选项卡。