

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 模型註冊表模型、模型版本和模型群組
<a name="model-registry-models"></a>

SageMaker 模型註冊表結構為數個模型 (套件) 群組，每個群組中都有模型套件。您可以選擇性地將這些模型群組新增至一個或多個集合。模型群組中的每個模型套件都對應於一個訓練過的模型。每個模型套件的版本都是一個數值，從 1 開始，並每向模型群組中新增一個新模型套件，版本就遞增一次。例如，如果模型群組中新增了 5 個模型套件，則模型套件版本將分別是 1、2、3、4 和 5。

 模型套件是作為已進行版本控制的實體在模型註冊表中註冊的實際模型。SageMaker AI 中有兩種類型的模型套件。 AWS Marketplace 中使用一種類型，另一種類型則用於模型註冊表中。 AWS Marketplace 中使用的模型套件是不可進行版本控制的實體，也不與模型註冊表中的模型群組相關聯。模型註冊表會接收您重新訓練的每個新模型，為其提供一個版本，並將其指派給模型註冊表內的模型群組。下列影像展示 25 個連續版本化模型的模型群組範例。如需 AWS Marketplace 中使用的模型套件詳細資訊，請參閱 [中的演算法和套件 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 建立 Amazon SageMaker 資源的自訂 IAM 政策也必須授與許可，才能將標籤新增至這些資源。需要將標籤新增至資源的許可，因為 Studio 和 Studio Classic 會自動標記它們建立的任何資源。如果 IAM 政策允許 Studio 和 Studio Classic 建立資源，但不允許標記，則在嘗試建立資源時可能會發生 "AccessDenied" 錯誤。如需詳細資訊，請參閱[提供標記 SageMaker AI 資源的許可](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
提供許可來建立 SageMaker 資源的 [AWS Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md) 已包含建立這些資源時新增標籤的許可。

若要使用 Boto3 建立模型群組，請呼叫 `create_model_package_group` API 操作並將名稱和描述指定為參數。下列範例展示如何建立模型群組。`create_model_package_group` 呼叫的回應是新模型群組的 Amazon Resource Name (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](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中選擇 **Models (模型)**。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 選擇**註冊**，然後選擇**模型群組**。

1. 在**註冊模型群組**對話方塊中，輸入下列資訊：
   + 在**模型群組名稱**欄位中輸入新模型群組的名稱。
   + (選用) 在**描述**欄位中輸入模型群組的描述。
   + (選用) 在**標籤**欄位中輸入您想要與模型群組建立關聯的任何鍵值對。如需與使用標記相關的資訊，請參閱 *AWS 一般參考*中的[標記 AWS 資源](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)。

1. 選擇**註冊模型群組**。

1. (選用) 在**模型**頁面中，選擇**已註冊模型**索引標籤，然後選擇**模型群組**。確認新建立的模型群組出現在模型群組清單中。

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

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 選擇**動作**，然後選擇 **建立模型群組**。

1. 在**建立模型群組**對話方塊中，輸入下列資訊：
   + 在**模型群組名稱**欄位中輸入新模型群組的名稱。
   + (可選) 在**描述**欄位中，輸入模型群組的描述。
   + (可選) 在**標籤**欄位中，輸入您希望與模型群組相關聯的任何鍵值對。如需與使用標記相關的資訊，請參閱 *AWS 一般參考*中的[標記 AWS 資源](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)。
   + (可選) 在**專案**欄位中選擇要與模型群組相關聯的專案。如需與專案相關的資訊，請參閱[使用 SageMaker 專案進行 MLOps 自動化](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](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中選擇 **Models (模型)**。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選取您要刪除的模型群組名稱旁邊的核取方塊。

1. 選擇模型群組清單右上角的垂直省略符號，然後選擇**刪除**。

1. 在**刪除模型群組**對話方塊中，選擇**是，刪除模型群組**。

1. 選擇 **刪除**。

1. 確認您刪除的模型群組不再出現在模型群組清單中。

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

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。系統隨即會顯示模型群組清單。

1. 從模型群組清單中，選取要刪除的模型群組的名稱。

1. 在右上角選擇**移除**。

1. 在確認對話方塊中，輸入 `REMOVE`。

1. 選擇**移除**。

------

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

您可以透過建立一個指定模型所屬模型群組的模型版本來註冊 Amazon SageMaker AI 模型。模型版本必須包含模型成品 (模型的訓練權重)，以及選擇性地包含模型的推論程式碼。

*推論管道*是一種 SageMaker AI 模型，由兩個到十五個處理推論請求的容器線性序列容器構成。您可以透過指定容器和相關聯的環境變數來註冊推論管道。如需與推論管道相關的詳細資訊，請參閱[Amazon SageMaker AI 中的推論管道](inference-pipelines.md)。

您可以透過指定容器和關聯的環境變數，在推論管道中註冊模型。若要使用 適用於 Python (Boto3) 的 AWS SDK、Amazon SageMaker Studio 主控台或在 SageMaker AI 模型建置管道中建立步驟，建立具有推論管道的模型版本，請使用下列步驟。

**Topics**
+ [註冊模型版本 (SageMaker AI Pipeline)](#model-registry-pipeline)
+ [註冊模型版本 (Boto3)](#model-registry-version-api)
+ [註冊模型版本 (Studio 或 Studio Classic)](#model-registry-studio)
+ [從其他帳戶註冊模型版本](#model-registry-version-xaccount)

## 註冊模型版本 (SageMaker AI Pipeline)
<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](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，從功能表中選擇**模型**。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤標籤的正下方選擇**模型群組**和**我的模型**。

1. 選擇**註冊**。這會開啟**註冊模型**頁面。

1. 請遵循**註冊模型**頁面提供的指示。

1. 一旦檢閱了您的選擇，請選擇**註冊**。一旦完成，就會帶您前往模型版本**概觀**頁面。

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

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 開啟**註冊版本**表單。您可以使用兩種方式的其中一種來執行此動作：
   + 選擇**動作**，然後選擇**建立模型版本**。
   + 選取您要為其建立模型版本的模型群組的名稱，然後選擇**建立模型版本**。

1. 在**註冊模型版本**表單中，輸入下列資訊：
   + 在**模型套件群組名稱**下拉式清單中，選取模型群組名稱。
   + (可選) 輸入模型版本的描述。
   + 在**模型核准狀態**下拉式清單中，選取版本核准狀態。
   + (選用) 在**自訂中繼資料**欄位中，以鍵值對形式新增自訂標籤。

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 AI Boto3 用戶端。
+ `model_package_group_name` - 您要授予存取權的模型群組。
+ `model_package_group_arn` - 您要授與跨帳戶存取權的模型群組 ARN。
+ `bucket` - 存放模型訓練成品的 Amazon S3 儲存貯體。

若要能夠部署在不同帳戶中建立的模型，使用者必須擁有可以存取 SageMaker AI 動作的角色 (例如具有 `AmazonSageMakerFullAccess` 受管政策的角色)。如需 SageMaker AI 受管政策的相關資訊，請參閱 [AWS Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md)。

### 必要的 IAM 資源政策
<a name="model-registry-version-xaccount-policies"></a>

下圖展示允許跨帳戶模型註冊時所必要的政策。如圖所示，這些政策必須在模型訓練期間處於作用中狀態，模型才能正確註冊至模型註冊表帳戶。

![\[\]](http://docs.aws.amazon.com/zh_tw/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>

您可以檢視與模型群組相關聯的所有模型版本。如果模型群組代表您為解決特定機器學習 (ML) 問題而訓練的所有模型，則您可以檢視所有這些相關模型。

### 在群組中檢視模型版本的清單 (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](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，從功能表中選擇**模型**。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選擇您要檢視之模型群組左側的角括號。

1. 模型群組中模型版本的清單即會出現。

1. (選用) 如果顯示，請選擇**檢視全部**以檢視其他模型版本。

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

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/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 Resource Name (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` 以查看模型版本的詳細資訊。您需要傳入之模型版本的 ARN 即您在呼叫 `list_model_packages` 時取得的輸出。

   ```
   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 會為模型套件建立模型卡，而模型版本 UI 則會提供更新模型卡中詳細資訊的選項。

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

1. 請遵循[啟動 Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

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. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 從模型群組清單中，選取要檢視的模型群組的名稱。

1. 系統會顯示一個新標籤，其中包含模型群組中模型版本的清單。

1. 在模型版本清單中，選取您要檢視其詳細資訊的模型版本名稱。

1. 在系統開啟的模型版本標籤上，選擇下列其中一項，以查看與模型版本相關的詳細資訊：
   + **活動**：展示模型版本的事件，例如核准狀態更新。
   + **模型品質**：報告與透過模型監控檢查模型品質相關的指標，這些檢查會將模型預測與 Ground Truth 進行比較。如需與透過模型監控檢查模型品質相關的詳細資訊，請參閱[模型品質](model-monitor-model-quality.md)。
   + **可解釋性**：報告與透過模型監控檢查功能屬性相關的指標，這些檢查會將訓練資料與即時資料中功能的相對排名進行比較。如需與透過模型監控檢查可解釋性相關的詳細資訊，請參閱[生產中模型的特徵屬性偏離](clarify-model-monitor-feature-attribution-drift.md)。
   + **偏差**：報告與透過監控偏差檢查偏差漂移相關的指標，這些檢查會將即時資料與訓練資料的分佈進行比較。如需與透過模型監控檢查偏差漂移相關的詳細資訊，請參閱[生產中模型的偏差偏離](clarify-model-monitor-bias-drift.md)。
   + **推論建議程式**：根據您的模型和範例承載，提供初始執行個體建議，以取得最佳效能。
   + **負載測試**：當您提供特定的生產需求 (例如延遲和輸送量限制) 時，針對您選擇的執行個體類型執行負載測試。
   + **推論規格**：顯示即時推論和轉換工作的執行個體類型，以及 Amazon ECR 容器的相關資訊。
   + **資訊**：展示與模型版本相關聯的專案、產生模型的管道、模型群組，以及 Amazon S3 中模型的位置等資訊。

------

# 新增訓練任務 (Studio)
<a name="model-registry-details-studio-training"></a>

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用更新的 Studio 體驗。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](studio.md)。

您可以將外部建立或使用 SageMaker AI 建立的訓練任務新增至您的模型。如果您新增 SageMaker 訓練任務，SageMaker AI 會預先填入**訓練**索引標籤中所有子頁面的欄位。如果您新增外部建立的訓練任務，則需要手動新增與訓練任務相關的詳細資訊。

**若要將訓練任務新增至您的模型套件，請完成下列步驟。**

1. 選擇**測試**索引標籤。

1. 選擇**新增**。如果沒有看到此選項，您可能已連接訓練任務。如果您想要移除此訓練任務，請完成下列指示來移除訓練任務。

1. 您可以新增在 SageMaker AI 中建立的訓練任務，或外部建立的訓練任務。

   1. 若要新增您在 SageMaker AI 中建立的訓練任務，請完成下列步驟。

      1. 選擇 **SageMaker AI**。

      1. 選取您要新增之訓練任務旁邊的選項方塊。

      1. 選擇**新增**。

   1. 若要新增您在外部建立的訓練任務，請完成下列步驟。

      1. 選擇 **Custom (自訂)**。

      1. 在**名稱**欄位中，插入自訂訓練任務的名稱。

      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_tw/sagemaker/latest/dg/images/icons/Settings_squid.png)) 圖示。

1. 選擇訓練任務旁邊的**移除**。

1. 選擇**是，我想要移除 <訓練任務的名稱>**。

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. 檢視 SageMaker AI (適用於 SageMaker 訓練任務) 或您 (適用於自訂訓練任務) 新增的任何訓練任務容器的 Amazon ECR URI 位置。

   1. (選用) 若要新增其他訓練任務容器，請選擇**新增**，然後輸入新訓練容器的 URI。

1. 若要更新和檢視訓練任務名稱和訓練任務的 Amazon Resource Name (ARN)，請完成下列步驟。

   1. 在**訓練**索引標籤的左側邊欄中選擇**詳細資訊**。

   1. 檢視訓練任務名稱和訓練任務的 ARN。

# 新增評估任務 (Studio)
<a name="model-registry-details-studio-evaluate"></a>

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用更新的 Studio 體驗。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](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_tw/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_tw/sagemaker/latest/dg/images/icons/Settings_squid.png)) 圖示。

1. (選用) 若要從清單中尋找您的評估任務，請在搜尋方塊中輸入搜尋詞彙，以縮小選擇清單範圍。

1. 選擇評估任務旁邊的選項按鈕。

1. 選擇**移除**。

1. 選擇**是，我想要移除 <評估任務的名稱>**。

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 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用更新的 Studio 體驗。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](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 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用更新的 Studio 體驗。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](studio.md)。

在評估您的模型效能並確定模型已準備好用於生產工作負載之後，您可以變更模型的核准狀態，以啟動 CI/CD 部署。如需核准狀態定義的詳細資訊，請參閱[更新模型的核准狀態](model-registry-approve.md)。

**若要檢視或更新與模型套件部署相關的詳細資訊，請完成下列步驟。**

1. 在**部署**索引標籤上，檢視模型套件核准狀態。可能值如下：
   + **待核准**：模型已註冊，但尚未核准或拒絕部署。
   + **已核准**：模型已核准用於 CI/CD 部署。如果有適當的 EventBridge 規則，可對模型核准事件啟動模型部署，就像從 SageMaker AI 專案範本建置的模型一樣，SageMaker AI 也會部署該模型。
   + **已拒絕**：模型已被拒絕進行部署。

   如果您需要變更核准狀態，請選擇狀態旁邊的下拉式功能表，然後選擇更新的狀態。

1. 若要更新模型套件核准狀態，請選擇核准狀態旁邊的下拉式清單，然後選擇更新的核准狀態。

1. 在**容器**清單中，檢視推論映像容器。

1. 在**執行個體**清單中，檢視構成部署端點的執行個體。

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

產生模型版本時，您可能想要並排檢視相關模型品質指標來比較模型版本。例如，您可能想要透過比較均方誤差 (MSE) 值來追蹤精確度，或者您可能決定移除在所選指標方面效能不佳的模型。下列程序展示如何使用 Amazon SageMaker Studio Classic，在模型註冊庫中設定模型版本比較。

## 比較模型版本 (Amazon SageMaker Studio Classic)
<a name="model-registry-version-compare-studio"></a>

**注意**  
您只能使用 Amazon SageMaker Studio Classic 主控台比較模型版本。

若要比較模型群組中的模型版本，請完成下列步驟：

1. 登入 Studio Classic。如需詳細資訊，請參閱[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。

1. 在左側的導覽窗格中，選擇**首頁**圖示 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/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](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，選擇**模型**以顯示模型群組的清單。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選取要檢視的模型群組名稱。

1. 在模型群組頁面中，選擇**標籤**索引標籤。檢視與您模型群組相關聯的標籤。

**若要新增模型群組標籤，請完成下列步驟：**

1. 請遵循[啟動 Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，選擇**模型**以顯示模型群組的清單。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選取要編輯的模型群組的名稱。

1. 在模型群組頁面中，選擇**標籤**索引標籤。

1. 選擇**新增/編輯標籤**。

1. 在 **\$1 新增標籤**上方，於空白的**索引鍵**欄位中輸入新的索引鍵。

1. (可選) 在空白的**值**欄位中輸入新值。

1. 選擇**確認變更**。

1. 確認您的新標籤在**資訊**頁面的**標籤**區段中顯示。

**若要刪除模型群組標籤，請完成下列步驟：**

1. 請遵循[啟動 Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，選擇**模型**以顯示模型群組的清單。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選取要編輯的模型群組的名稱。

1. 在模型群組頁面中，選擇**標籤**索引標籤。

1. 選擇**新增/編輯標籤**。

1. 選擇您要移除的鍵值對旁邊的**垃圾桶**圖示。

1. 選擇**確認變更**。

**若要編輯模型群組標籤，請完成下列步驟：**

1. 請遵循[啟動 Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，選擇**模型**以顯示模型群組的清單。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選取要編輯的模型群組的名稱。

1. 在模型群組頁面中，選擇**標籤**索引標籤。

1. 選擇**新增/編輯標籤**。

1. 在您要編輯之鍵對的**值**欄位中輸入新值。

1. 選擇**確認變更**。

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

**若要檢視模型群組標籤，請完成下列步驟：**

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 從模型群組清單中，選取要編輯的模型群組的名稱。

1. 選擇**資訊**。

1. 在**資訊**頁面的**標籤**區段中檢視您的標籤。

**若要新增模型群組標籤，請完成下列步驟：**

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。

1. 在左側的導覽窗格中，選擇**首頁**圖示 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 從模型群組清單中，選取要編輯的模型群組的名稱。

1. 選擇**資訊**。

1. 如果您沒有任何標籤，請選擇**新增標籤**。

1. 如果有預先存在的標籤，請在**標籤**區段中選擇**管理標籤**。模型群組的標籤清單會顯示為鍵值對。

1. 在**新增標籤**上方，在空白的**金鑰**欄位中輸入新金鑰。

1. (可選) 在空白的**值**欄位中輸入新值。

1. 選擇**確認變更**。

1. 確認您的新標籤在**資訊**頁面的**標籤**區段中顯示。

**若要刪除模型群組標籤，請完成下列步驟：**

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。

1. 在左側的導覽窗格中，選擇**首頁**圖示 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 從模型群組清單中，選取要編輯的模型群組的名稱。

1. 選擇**資訊**。

1. 在**標籤**區段中，選擇**管理標籤**。模型群組的標籤清單會顯示為鍵值對。

1. 選擇您要移除的標籤右側的**垃圾桶**圖示。

1. 選擇**確認變更**。

1. 確認您移除的標籤不會在**資訊**頁面的**標籤**區段中顯示。

**若要編輯模型群組標籤，請完成下列步驟：**

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。

1. 在左側的導覽窗格中，選擇**首頁**圖示 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 從模型群組清單中，選取要編輯的模型群組的名稱。

1. 選擇**資訊**。

1. 在**標籤**區段中，選擇**管理標籤**。模型群組的標籤清單會顯示為鍵值對。

1. 編輯任何鍵或值。

1. 選擇**確認變更**。

1. 確認標籤包含您在**資訊**頁面的**標籤**區段中所做的編輯。

**若要將模型群組指派給專案或將其標記到群組，請完成下列步驟：**

1. 使用 [ListTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTags.html) API 為 SageMaker AI 專案取得索引鍵為 `sagemaker:project-name` 和 `sagemaker:project-id` 的標籤。

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) API。
   + 如果您透過 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](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，選擇**模型**以顯示模型群組的清單。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選擇您要檢視之模型群組左側的角度括號。

1. 模型群組中模型版本的清單即會出現。如果您沒有看到要刪除的模型版本，請選擇**檢視全部**。

1. 選取您要刪除的模型版本旁邊的核取方塊。

1. 選擇資料表右上角的垂直省略符號，然後選擇**刪除** (或者，如果您位於模型群組詳細資訊頁面，則選擇**刪除模型版本**)。

1. 在**刪除模型版本**對話方塊中，選擇**是，刪除模型版本**。

1. 選擇 **刪除**。

1. 確認您已刪除的模型版本不再出現在模型群組中。

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

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/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)
+ [使用 AWS CLI 範例叫用 ModelLifeCycle](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  |  Approved  | 
|  生產  |  已拒絕  | 
|  已封存  |  已淘汰  | 

下列 API 可以調用 `ModelLifeCycle` 參數：
+ [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 UI，您可以在其中更新模型套件階段。

1. 登入 Amazon SageMaker Studio。如需詳細資訊，請參閱[啟動 Amazon 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>

若要更新模型套件階段和狀態，您需要擔任具有相關許可的執行角色。以下提供如何使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateModelPackage.html) API 或使用 適用於 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 動作的 `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)
```

# 使用 AWS CLI 範例叫用 ModelLifeCycle
<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` 是所定義階段狀態的名稱。

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

使用您已定義的 *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"}]}'
```

透過 [Amazon SageMaker 機器學習 (ML) 歷程追蹤](lineage-tracking.md) API 擷取 ModelLifeField 更新的稽核記錄。

```
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 更新通知和事件。以下是要在您帳戶中設定的 EventBridge 規則範例，以取得 ModelLifeCycle 事件通知。

```
{
  "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`。

您可以在註冊模型版本後手動更新模型版本的核准狀態，也可以在建立 SageMaker AI 管道時建立條件步驟來對模型進行評估。如需在 SageMaker AI 管道中建立條件步驟的相關資訊，請參閱[Pipelines 步驟](build-and-manage-steps.md)。

當您使用 SageMaker AI 提供的其中一個專案範本，且模型版本的核准狀況變更時，會發生下列動作。只顯示有效的轉變。
+ `PendingManualApproval` 至 `Approved` - 針對已核准的模型版本啟動 CI/CD 部署
+ `PendingManualApproval` 至 `Rejected` - 不採取任何動作
+ `Rejected` 至 `Approved` - 針對已核准的模型版本啟動 CI/CD 部署
+ `Approved` 至 `Rejected` - 啟動 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>

若要在 Amazon SageMaker Studio 主控台中手動變更核准狀態，請根據您是使用 Studio 還是 Studio Classic 完成以下步驟。

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

1. 請遵循[啟動 Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，選擇**模型**以顯示模型群組的清單。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選擇您要檢視之模型群組左側的角度括號。

1. 模型群組中模型版本的清單即會出現。如果您沒有看到要刪除的模型版本，請選擇**檢視全部**，以在模型群組詳細資訊頁面中顯示模型版本的完整清單。

1. 選取要更新的模型版本名稱。

1. **部署**索引標籤會顯示目前的核准狀態。選擇目前核准狀態旁邊的下拉式選單，然後選取更新的核准狀態。

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

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 選擇**模型**，然後選擇**模型註冊表**。

1. 從模型群組清單中，選取要檢視的模型群組名稱。系統會開啟一個新標籤，其中包含模型群組中模型版本的清單。

1. 在模型版本清單中，選取您要更新的模型版本名稱。

1. 在**動作**下拉式功能表下，您可以選擇兩個可能的功能表選項之一來更新模型版本狀態。
   + 使用**更新狀態** 選項

     1. 在**動作**下拉式功能表下，選擇**更新狀態**下拉式功能表，然後選擇新的模型版本狀態。

     1. (可選) 在**評論**欄位中，新增其他詳細資訊。

     1. 選擇**儲存並更新**。
   + 使用**編輯**選項

     1. 在**動作**下拉式功能表下，選擇**編輯**。

     1. (可選) 在**評論**欄位中，新增其他詳細資訊。

     1. 選擇**儲存變更**。

1. 確認模型版本狀態已在模型版本頁面中更新為正確的值。

------

對於 `us-east-1`、`ap-northeast-1`、 `us-west-2`和 `eu-west-1`區域，您可以使用下列指示來存取已記錄和已註冊模型版本的歷程詳細資訊：

1. 請遵循[啟動 Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 從主要導覽窗格中選擇**模型**。

1. 選擇已記錄**的模型**索引標籤，如果尚未選取，請選取**已註冊的模型**。

1. 選取模型，然後選擇**檢視最新版本**。

1. 選擇**控管**索引標籤。

1. **控管概觀**下的**部署**區段會顯示目前的核准狀態。從下拉式選單中選取更新的核准狀態。

# 使用 Python 從登錄中部署模型
<a name="model-registry-deploy"></a>

註冊模型版本並核准其進行部署後，請將其部署到 SageMaker AI 端點以進行即時推論。您可以使用 SageMaker AI SDK 或 適用於 Python (Boto3) 的 AWS SDK部署模型。

當您建立機器學習維運 (MLOps) 專案並選擇包含模型部署的 MLOps 專案範本後，模型註冊庫中已核准的模型版本會自動部署到生產環境。如需使用 SageMaker MLOps 專案的相關資訊，請參閱[使用 SageMaker 專案進行 MLOps 自動化](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>

若要使用 [Amazon SageMaker Python SDK](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 操作，從模型版本建立模型物件。作為 `Containers` 模型物件的一部分，傳遞模型版本的 Amazon Resource Name (ARN)：

   ```
   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 Amazon SageMaker AI 的 受管政策](security-iam-awsmanpol.md)。

下列範例會為所有這三種資源建立跨帳戶政策，並將政策套用至資源。此範例也假設您先前已定義下列變數：
+ `bucket` - 存放模型版本的 Amazon S3 儲存貯體。
+ `kms_key_id` - 用來加密訓練輸出的 KMS 金鑰。
+ `sm_client` - SageMaker AI 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 SageMaker AI 端點以進行即時推論。您可以在 Amazon SageMaker Studio 中 [使用 Python 從登錄中部署模型](model-registry-deploy.md) 或部署模型。以下提供如何在 Studio 中部署模型的指示。

此功能不適用於 Amazon SageMaker Studio Classic。
+ 如果 Studio 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio UI 概觀](studio-updated-ui.md) 中找到的映像類似。
+ 如果 Studio Classic 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio Classic UI 概觀](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. 遵循 [啟動 Amazon SageMaker Studio](studio-updated-launch.md) 中的指示開啟 Studio 主控台。

1. 從主要導覽窗格中選擇**模型**。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. (選用) 如果您具有與您共用的模型，您可以選擇**我的模型**或**與我共用**。

1. 選取已註冊模型的核取方塊。如果符合上述要求，**部署**按鈕變成可供選擇。

1. 選擇**部署**以開啟**將模型部署至端點**頁面。

1. 在**端點設定**中設定部署資源。

1. 一旦驗證了設定，請選擇**部署**。然後，模型將部署到狀態為**服務中**的端點。

對於 `us-east-1`、`ap-northeast-1`、 `us-west-2`和 `eu-west-1`區域，您可以使用下列指示來部署模型：

**使用 Studio 部署模型**

1. 遵循 [啟動 Amazon 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 模型註冊表，您可以跨帳戶共用模型套件群組。有兩種類別的許可與共用資源相關聯：
+ **探索能力**：*探索能力*是指資源消費者帳戶能夠查看一或多個資源擁有者帳戶共用的模型套件群組。只有在資源擁有者將必要的資源政策連接到共用的模型套件群組時，才能夠進行探索。資源取用者可以在 UI 和 AWS RAM 中檢視所有共用模型套件群組 AWS CLI。
+ **可存取性**：*可存取性*是指資源消費者帳戶能夠使用共用的模型套件群組。例如，如果資源消費者具有必要的許可，則可以從不同的帳戶註冊或部署模型套件。

**Topics**
+ [在 Studio 中共用模型群組](model-registry-ram-studio-share.md)
+ [在 Studio 中檢視共用模型群組](model-registry-ram-studio-view.md)
+ [Accessibility](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 UI 與其他 AWS 主體 (AWS 帳戶 或 AWS Organizations) 共用模型群組。這種簡化的共用程序可啟用跨團隊協作、提升最佳實務，以及促進跨團隊重複使用模型。以下將提供如何在 Studio 中共用模型群組的指示。

此功能不適用於 Amazon SageMaker Studio Classic。
+ 如果 Studio 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio UI 概觀](studio-updated-ui.md) 中找到的映像類似。
+ 如果 Studio Classic 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio Classic UI 概觀](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. 遵循 [啟動 Amazon 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 Organizations ARN 或 AWS 帳戶 IDs，然後選擇**新增**。您可以透過這種方式新增多個 AWS 主體。

1. 滿足最低要求時，即可存取**共用**按鈕。一旦驗證了您的設定，請選擇**共用**。

   成功共用會在畫面底部產生綠色橫幅訊息。

# 在 Studio 中檢視共用模型群組
<a name="model-registry-ram-studio-view"></a>

您可以檢視與您或屬於相同 AWS Organizations的帳戶共用的模型群組。如果模型群組與屬於相同的帳戶共用 AWS Organizations，則共用的模型群組會自動獲得核准，供您在 Studio 中檢視。否則，您將需要先核准待定邀請，然後才能在 Studio 中檢視共用模型群組。以下將提供如何在 Studio 中檢視共用模型群組並接受模型群組共用邀請的指示。

此功能不適用於 Amazon SageMaker Studio Classic。
+ 如果 Studio 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio UI 概觀](studio-updated-ui.md) 中找到的映像類似。
+ 如果 Studio Classic 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio Classic UI 概觀](studio-ui.md) 中找到的映像類似。

以下提供如何檢視和接受與您共用之模型群組的指示。

**檢視並接受與您共用的模型群組**

1. 遵循 [啟動 Amazon SageMaker Studio](studio-updated-launch.md) 中的指示開啟 Studio 主控台。

1. 從主要導覽窗格中選擇**模型**。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 選擇**與我共用**以檢視與您共用的模型群組。

1. 若要接受待定的模型群組邀請：

   1. 選擇**檢視待核准**以開啟**待定邀請**清單。

   1. 如果您想要接受邀請，請選擇**接受**。

# Accessibility
<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-policy](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/put-model-package-group-policy.html) 將資源政策連接至模型套件群組，如下列命令所示。

      ```
      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. 在**名稱**欄位中，為您的資源新增唯一名稱。

      1. 在**資源**卡片中，選擇下拉式功能表，然後選取 **SageMaker AI 模型套件群組**。

      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 CLI 或 AWS RAM 主控台檢視共用模型套件群組。

## 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) 文件中的[刪除資源共用](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.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](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) 中的指示來開啟 SageMaker Studio 主控台。

1. 在左側導覽窗格中，選擇**模型**以顯示模型群組的清單。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. 從模型群組清單中，選擇您要檢視之模型群組左側的角度括號。

1. 模型群組中模型版本的清單即會出現。如果您沒有看到要刪除的模型版本，請選擇**檢視全部**。

1. 選取要檢視的模型版本名稱。

1. 選擇**活動**索引標籤。模型版本的部署會以事件的形式顯示在活動清單中，並且其**事件類型**為 **ModelDeployment**。

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

**檢視模型版本的部署歷史記錄**

1. 登入 Amazon SageMaker Studio Classic。如需詳細資訊，請參閱[啟動 Amazon SageMaker Studio Classic](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_tw/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 中歷程追蹤的詳細資訊，請參閱 [Amazon SageMaker 機器學習 (ML) 歷程追蹤](lineage-tracking.md)。

此功能不適用於 Amazon SageMaker Studio Classic。
+ 如果 Studio 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio UI 概觀](studio-updated-ui.md) 中找到的映像類似。
+ 如果 Studio Classic 是您的預設體驗，則 UI 與 [Amazon SageMaker Studio Classic UI 概觀](studio-ui.md) 中找到的映像類似。

歷程檢視是與已註冊模型相關聯之資源的互動式視覺化。這些資源包括資料集、訓練任務、核准、模型和端點。在歷程中，您也可以檢視相關聯的資源詳細資訊，包括來源 URI、建立時間戳記和其他中繼資料。

下列功能可用於 `us-east-1`、`ap-northeast-1`、 `us-west-2`和 `eu-west-1`區域：

您可以追蹤已記錄和已註冊模型的歷程。此外，模型資源的譜系包括資料集、評估器、訓練任務、核准、模型、推論元件和端點。在歷程中，您也可以檢視相關聯的資源詳細資訊，包括來源 URI、建立時間戳記和其他中繼資料。

以下提供如何存取已註冊模型版本之歷程詳細資訊的指示。

**存取已註冊模型版本的歷程詳細資訊**

1. 遵循[啟動 Amazon SageMaker Studio](studio-updated-launch.md) 中的指示開啟 Studio 主控台。

1. 從主要導覽窗格中選擇**模型**。

1. 如果尚未選取，請選擇**已註冊模型**索引標籤。

1. 如果尚未選取，請在**已註冊模型**索引標籤的正下方選擇**模型群組**。

1. (選用) 如果您具有與您共用的模型，您可以選擇**我的模型**或**與我共用**。

1. 選取已註冊模型。

1. 如果尚未選取，請選擇**版本**索引標籤。

1. 從**版本**清單中選擇特定模型版本。

1. 選擇**歷程**頁標。

在**歷程**索引標籤中，您可以導覽與模型版本相關聯的資源。您也可以選擇資源來檢視資源詳細資訊。

請注意，歷程檢視僅用於視覺化目的。重新排列或移動此檢視中的元件不會影響實際註冊的模型資源。

對於 `us-east-1`、`ap-northeast-1`、 `us-west-2`和 `eu-west-1`區域，您可以使用下列指示來存取已記錄和已註冊模型版本的歷程詳細資訊：

1. 遵循 [啟動 Amazon SageMaker Studio](studio-updated-launch.md) 中的指示開啟 Studio 主控台。

1. 從主要導覽窗格中選擇**模型**。

1. 選擇**我的模型**索引標籤。

1. （選用） 如果您有與您共用的模型，您可以在**我建立**或**共用**之間進行選擇。

1. 選取模型，然後選擇**檢視最新版本**。

1. 選擇**歷程**頁標。