

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Model Registry를 사용한 모델 등록 배포
<a name="model-registry"></a>

Amazon SageMaker Model Registry를 사용하여 다음 작업을 할 수 있습니다.
+ 프로덕션용 모델을 카탈로그화합니다.
+ 모델 버전을 관리합니다.
+ 훈련 지표와 같은 메타데이터를 모델과 연결합니다.
+ 등록된 모델의 Amazon SageMaker Model Cards에서 정보를 봅니다.
+ 모델 계보에서 추적성 및 재현성을 확인합니다.
+ 모델 수명 주기 동안 모델이 진행할 수 있는 스테이징 구조를 정의합니다.
+ 모델의 승인 상태를 관리합니다.
+ 모델을 프로덕션에 배포합니다.
+ CI/CD를 사용하여 모델 배포를 자동화합니다.
+ 다른 사용자와 모델을 공유합니다.

다양한 버전의 모델을 포함하는 SageMaker 모델 레지스트리 모델(패키지) 그룹을 생성하여 모델을 카탈로그화합니다. 특정 문제를 해결하기 위해 훈련시킨 모든 모델을 추적하는 모델 그룹을 생성할 수 있습니다. 그런 다음 훈련시킨 각 모델을 등록하면 모델 레지스트리가 해당 모델을 모델 그룹에 새 모델 버전으로 추가할 수 있습니다. 마지막으로, 모델 그룹을 SageMaker 모델 레지스트리 컬렉션으로 추가로 구성하여 모델 그룹 카테고리를 생성할 수 있습니다. 일반적인 워크플로는 다음과 같을 수 있습니다.
+ 모델 그룹을 생성합니다.
+ 모델을 학습시키는 ML 파이프라인을 만듭니다. SageMaker Pipelines에 대한 자세한 내용은 [Pipelines 작업](pipelines-build.md)섹션을 참조하세요.
+ ML 파이프라인을 실행할 때마다 모델 버전을 생성하여 첫 단계에서 만든 모델 그룹에 등록합니다.
+ 모델 그룹을 하나 이상의 모델 레지스트리 컬렉션에 추가합니다.

모델, 모델 버전 및 모델 그룹을 생성하고 사용하는 방법에 대한 자세한 내용은 [모델 레지스트리 모델, 모델 버전, 모델 그룹](model-registry-models.md)섹션을 참조하세요. 선택적으로 모델 그룹을 컬렉션으로 추가로 그룹화하려면 [모델 레지스트리 컬렉션](modelcollections.md)섹션을 참조하세요.

# 모델 레지스트리 모델, 모델 버전, 모델 그룹
<a name="model-registry-models"></a>

SageMaker 모델 레지스트리는 각 그룹에 모델 패키지가 있는 여러 모델(패키지) 그룹으로 구성되어 있습니다. 이러한 모델 그룹은 하나 이상의 컬렉션에 선택적으로 추가할 수 있습니다. 모델 그룹의 각 모델 패키지는 훈련된 모델에 해당합니다. 각 모델 패키지의 버전은 1부터 시작하는 숫자 값이며, 새 모델 패키지가 모델 그룹에 추가될 때마다 증가합니다. 예를 들어, 모델 그룹에 5개의 모델 패키지를 추가한 경우 모델 패키지 버전은 1, 2, 3, 4, 5가 됩니다.

 모델 패키지는 모델 레지스트리에 버전이 지정된 엔터티로 등록된 실제 모델입니다. SageMaker AI에는 두 가지 유형의 모델 패키지가 있습니다. 하나는 AWS 마켓플레이스에서 사용되고 다른 유형은 모델 레지스트리에서 사용됩니다. AWS 마켓플레이스에서 사용되는 모델 패키지는 버전 관리가 가능한 엔터티가 아니며 모델 레지스트리의 모델 그룹과 연결되지 않습니다. 모델 레지스트리는 재훈련한 모든 새 모델을 받아 버전을 제공하고 모델 레지스트리 내의 모델 그룹에 할당합니다. 다음 이미지는 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>

모델 그룹에는 모델의 각기 다른 버전이 포함되어 있습니다. 특정 문제를 해결하기 위해 훈련시킨 모든 모델을 추적하는 모델 그룹을 생성할 수 있습니다. AWS SDK for Python (Boto3) 또는 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 리소스 이름(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. [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)의 지침에 따라 SageMaker Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/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 Classic에서 모델 그룹을 삭제하는 방법을 보여줍니다. 모델 그룹을 삭제하면 모델 그룹에 있는 모델 버전에 대한 액세스 권한이 상실됩니다.

## 모델 그룹 삭제(Studio 또는 Studio Classic)
<a name="model-registry-delete-model-group-studio"></a>

**중요**  
빈 모델 그룹만 삭제할 수 있습니다. 모델 그룹을 삭제하기 전에 모델 버전이 있는 경우 제거하세요.

Amazon SageMaker Studio 콘솔에서 모델 그룹을 삭제하려면 Studio를 사용하는지 아니면 Studio Classic을 사용하는지에 따라 다음 단계를 완료하세요.

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

1. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다. 모델 그룹 목록이 나타납니다.

1. 모델 그룹 목록에서 삭제하려는 모델 그룹 이름을 선택합니다.

1. 오른쪽 상단에서 **제거**를 선택합니다.

1. 확인 대화 상자에서 `REMOVE`를 입력합니다.

1. **제거**를 선택합니다.

------

# 모델 버전 등록
<a name="model-registry-version"></a>

모델이 속한 모델 그룹을 지정하는 모델 버전을 생성하여 Amazon SageMaker AI 모델을 등록할 수 있습니다. 모델 버전에는 모델 아티팩트(모델의 훈련된 가중치)을 포함해야 하고 선택적으로 모델의 추론 코드를 포함할 수 있습니다.

*추론 파이프라인*은 추론 요청을 처리하는 2\$115개의 컨테이너로 이루어진 선형 시퀀스로 구성된 SageMaker AI 모델입니다. 컨테이너와 관련 환경 변수를 지정하여 추론 파이프라인을 등록합니다. 추론 형식에 대한 자세한 정보는 [Amazon SageMaker AI의 추론 파이프라인](inference-pipelines.md)섹션을 참조하세요.

컨테이너와 관련 환경 변수를 지정하여 추론 파이프라인이 있는 모델을 등록합니다. AWS SDK for Python (Boto3) Amazon SageMaker Studio 콘솔을 사용하거나 SageMaker AI 모델 구축 파이프라인에서 단계를 생성하여 추론 파이프라인으로 모델 버전을 생성하려면 다음 단계를 사용합니다.

**Topics**
+ [모델 버전 등록(SageMaker AI Pipelines)](#model-registry-pipeline)
+ [모델 버전 등록(Boto3)](#model-registry-version-api)
+ [모델 버전 등록(Studio 또는 Studio Classic)](#model-registry-studio)
+ [다른 계정에서 모델 버전 등록](#model-registry-version-xaccount)

## 모델 버전 등록(SageMaker AI Pipelines)
<a name="model-registry-pipeline"></a>

SageMaker AI 모델 구축 파이프라인을 사용하여 모델 버전을 등록하려면 파이프라인에서 `RegisterModel` 단계를 생성하세요. 파이프라인의 일부로 `RegisterModel`단계 생성에 대한 자세한 내용은 [8단계: 모델 패키지를 만들기 위한 모델 등록 단계 정의](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. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/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 Identity and Access Management 사용 설명서*의 [교차 계정 정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html)을 AWS참조하세요.

다른 계정이 리소스 소유자 계정의 모델 패키지 그룹을 볼 수 있도록 하는 교차 계정 검색 기능을 활성화하려면 [교차 계정 검색 가능성](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/ko_kr/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>

모델 그룹 및 버전은 모델을 구성하는 데 도움이 됩니다. AWS SDK for Python (Boto3) (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. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. 모델 그룹 목록에서 보려는 모델 그룹 이름을 선택합니다.

1. 모델 그룹의 모델 버전 목록이 있는 새 탭이 나타납니다.

------

# 모델 버전 세부 정보 업데이트
<a name="model-registry-details"></a>

 AWS SDK for Python (Boto3) 또는 Amazon SageMaker Studio 콘솔을 사용하여 특정 모델 버전의 세부 정보를 보고 업데이트할 수 있습니다.

**중요**  
Amazon SageMaker AI는 Model Cards를 Model Registry에 통합합니다. Model Registry에 등록된 모델 패키지에는 모델 패키지의 구성 요소로 간소화된 Model Card가 포함됩니다. 자세한 내용은 [모델 패키지 모델 카드 스키마(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 Model Card의 특수 용도이며 스키마가 간소화되어 있습니다. 모델 패키지 모델 카드 스키마는 다음 확장 가능한 드롭다운에 표시됩니다.

#### 모델 패키지 모델 카드 스키마
<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. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/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 AI 훈련 작업을 추가하면 SageMaker는 **훈련** 탭의 모든 하위 페이지에 대한 필드를 미리 채웁니다. 외부에서 만든 훈련 작업을 추가하는 경우 훈련 작업과 관련된 세부 정보를 수동으로 추가해야 합니다.

**모델 패키지에 훈련 작업을 추가하려면 다음 단계를 완료하세요.**

1. **훈련** 탭을 선택합니다.

1. **추가**를 선택합니다. 이 옵션이 표시되지 않으면 이미 훈련 작업이 연결되어 있을 수 있습니다. 이 훈련 작업을 제거하려면 다음 지침을 완료하여 훈련 작업을 제거합니다.

1. SageMaker AI에서 만든 훈련 작업 또는 외부에서 만든 훈련 작업을 추가할 수 있습니다.

   1. SageMaker AI에서 만든 훈련 작업을 추가하려면 다음 단계를 완료하세요.

      1. **SageMaker AI**를 선택합니다.

      1. 추가하려는 훈련 작업 옆의 라디오 상자를 선택합니다.

      1. **추가**를 선택합니다.

   1. 외부에서 만든 훈련 작업을 추가하려면 다음 단계를 완료하세요.

      1. **사용자 지정**을 선택합니다.

      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/ko_kr/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 리소스 이름(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. **사용자 지정**을 선택합니다.

      1. 평가 작업의 이름을 입력합니다.

      1. **추가**를 선택합니다.

**모델 패키지에 평가 작업을 더 추가하려면 다음 단계를 완료하세요.**

1. **평가** 탭을 선택합니다.

1. **훈련** 탭에서 **기어** 아이콘(![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/icons/Settings_squid.png))을 선택합니다.

1. 대화 상자에서 **추가**를 선택합니다.

1. Amazon S3 또는 사용자 지정 평가 작업에서 평가 작업을 추가할 수 있습니다.

   1. Amazon S3의 자료를 사용하여 평가 작업을 추가하려면 다음 단계를 완료하세요.

      1. **S3**를 선택합니다.

      1. 평가 작업의 이름을 입력합니다.

      1. 평가 작업의 출력 자료에 Amazon S3 위치를 입력합니다.

      1. **추가**를 선택합니다.

   1. 사용자 지정 평가 작업을 추가하려면 다음 단계를 완료하세요.

      1. **사용자 지정**을 선택합니다.

      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/ko_kr/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 콘솔을 사용하여 Model Registry에서 모델 버전 비교를 설정하는 방법을 보여줍니다.

## 모델 버전 비교(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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. 모델 그룹 목록에서 보려는 모델 그룹 이름을 선택합니다. 모델 그룹의 모델 버전 목록이 있는 새 탭이 열립니다.

1. 모델 버전 목록에서 비교하려는 모델 버전 옆의 확인란을 선택합니다.

1. **작업** 드롭다운을 선택한 다음, **비교**를 선택합니다. 선택한 모델에 대한 모델 품질 지표 목록이 나타납니다.

# 모델 그룹과 모델 버전 태그 확인 및 관리
<a name="model-registry-tags"></a>

Model Registry는 모델 그룹과 관련된 태그를 확인하고 관리하는 데 도움이 됩니다. 태그를 사용하여 용도, 소유자, 환경 또는 기타 기준으로 모델 그룹을 분류할 수 있습니다. 다음 지침은 Amazon SageMaker Studio 콘솔에서 태그를 확인, 추가, 삭제 및 편집하는 방법을 보여줍니다.

**참고**  
SageMaker 모델 레지스트리의 모델 패키지는 태그를 지원하지 않습니다.이는 버전이 지정된 모델 패키지입니다. 대신 `CustomerMetadataProperties`를 사용하여 키 값 쌍을 추가할 수 있습니다. 모델 레지스트리의 모델 패키지 그룹은 태그 지정을 지원합니다.

## 모델 그룹 태그 확인 및 관리
<a name="model-registry-tags-model-group"></a>

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

**모델 그룹 태그를 확인하려면 다음 단계를 완료하세요.**

1. [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)의 지침에 따라 SageMaker Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택하여 모델 그룹 목록을 표시합니다.

1. 아직 선택되어 있지 않은 경우 **등록된 모델** 탭을 선택합니다.

1. **등록된 모델** 탭 레이블 바로 아래에서 아직 선택되어 있지 않은 경우 **모델 그룹**을 선택합니다.

1. 모델 그룹 목록에서 보려는 모델 그룹 이름을 선택합니다.

1. 모델 그룹 페이지에서 **태그** 탭을 선택합니다. 모델 그룹과 연결된 태그를 확인합니다.

**모델 그룹 태그를 추가하려면 다음 단계를 완료합니다.**

1. [Launch 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. [Launch 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. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/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/ko_kr/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/ko_kr/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/ko_kr/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. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다. 모델 그룹 목록이 나타납니다.

1. 모델 그룹 목록에서 삭제하려는 모델 버전의 모델 그룹 이름을 선택합니다.

1. 모델 버전 목록에서 삭제하려는 모델 버전의 이름을 선택합니다.

1. **작업** 드롭다운 메뉴를 선택한 다음 **삭제**를 선택합니다.

1. 확인 대화 상자에서 `REMOVE`를 입력합니다.

1. **제거**를 선택합니다.

1. 제거한 모델 버전이 모델 그룹의 모델 버전 목록에 나타나지 않는지 확인합니다.

------

# 모델 수명 주기에 맞는 스테이징 구조
<a name="model-registry-staging-construct"></a>

Model Registry 스테이징 구조를 사용하여 모델 워크플로 및 수명 주기에 대해 모델이 진행할 수 있는 일련의 단계를 정의할 수 있습니다. 이렇게 하면 모델이 개발, 테스트 및 프로덕션 단계로 전환될 때 모델 추적 및 관리가 간소화됩니다. 다음은 스테이징 구조와 이를 모델 거버넌스에 사용하는 방법에 대한 정보를 제공합니다.

스테이징 구조를 사용하면 모델이 진행하는 일련의 단계와 상태를 정의할 수 있습니다. 각 단계에서 관련 권한이 있는 특정 페르소나는 단계 상태를 업데이트할 수 있습니다. 모델이 단계를 진행하면 메타데이터가 전달되어 모델의 수명 주기에 대한 포괄적인 뷰를 제공합니다. 이 메타데이터는 각 단계에서 승인된 페르소나가 액세스하고 검토할 수 있으므로 정보에 입각한 의사 결정을 내릴 수 있습니다. 여기에는 다음과 같은 이점이 있습니다.
+ 모델 수명 주기 권한 - 지정된 페르소나에 대한 권한을 설정하여 모델 단계 상태를 업데이트하고 중요한 전환 지점에 승인 게이트를 적용합니다. 관리자는 API와 함께 IAM 정책 및 조건 키를 사용하여 권한을 할당할 수 있습니다. 예를 들어 데이터 과학자가 모델 수명 주기 단계를 '개발'에서 '프로덕션'으로 업데이트하지 못하도록 제한할 수 있습니다. 예시는 [스테이징 구조 설정 예시](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 Model Registry에 대한 스테이징 구조를 설정하려면 의도한 역할에 관리자가 관련 권한을 부여해야 합니다. 다음은 다양한 역할별로 스테이징 구조를 설정하는 방법에 대한 예시입니다.

**참고**  
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
}
```

다음 표에는 Model Registry 사전 정의된 스테이징 구조 템플릿이 포함되어 있습니다. 사용 사례에 따라 자체 스테이징 구조를 정의할 수 있습니다. 사용자가 관련 권한을 사용하려면 먼저 관련 권한을 설정해야 합니다.


| 단계 | 스테이지 상태 | 
| --- | --- | 
|  제안  |  PendingApproval  | 
|  개발  |  InProgress  | 
|  QA  |  OnHold  | 
|  PreProduction  |  Approved  | 
|  프로덕션  |  거부됨  | 
|  보관됨  |  Retired  | 

`ModelLifeCycle` 파라미터는 다음 API로 간접적으로 호출될 수 있습니다.
+ [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>

모델 패키지 단계 및 상태를 업데이트하려면 관련 권한이 있는 실행 역할을 수임해야 합니다. 다음은 AWS SDK for Python (Boto3)을 사용하여 [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 작업에 대한 `"Development"`라는 `ModelLifeCycle` 단계 및 `"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 업데이트 알림 및 이벤트를 가져올 수 있습니다. 다음은 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`로 업데이트할 수 있습니다.

모델 버전을 등록한 후 수동으로 모델 버전의 승인 상태를 업데이트하거나 SageMaker AI 파이프라인을 생성할 때 모델을 평가하는 조건 단계를 생성할 수 있습니다. SageMaker AI 파이프라인에서 조건 단계를 생성하는 방법에 대한 자세한 내용은 [Pipelines 단계](build-and-manage-steps.md) 섹션을 참조하세요.

SageMaker AI에서 제공하는 프로젝트 템플릿 중 하나를 사용하고 모델 버전의 승인 상태가 변경되면 다음 동작이 발생합니다. 유효한 전환만 표시됩니다.
+ `PendingManualApproval` > `Approved`– 승인된 모델 버전의 CI/CD 배포 시작
+ `PendingManualApproval` > `Rejected`– 작업 없음
+ `Rejected` > `Approved`– 승인된 모델 버전의 CI/CD 배포 시작
+ `Rejected` > `Approved`– `Approved`상태의 최신 모델 버전 배포를 위해 CI/CD 시작

 AWS SDK for Python (Boto3) 을 사용하거나 Amazon SageMaker Studio 콘솔을 사용하여 모델 버전의 승인 상태를 업데이트할 수 있습니다. SageMaker AI 파이프라인의 조건 단계의 일부로 모델 버전의 승인 상태를 업데이트할 수도 있습니다. SageMaker AI 파이프라인의 모델 승인 단계 사용에 대한 자세한 내용은 [Pipelines 개요](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. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/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`및 `eu-west-1` 리전의 경우 다음 지침을 사용하여 로깅 및 등록된 모델 버전의 `us-west-2`계보 세부 정보에 액세스할 수 있습니다.

1. [Launch 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 또는 AWS SDK for Python (Boto3)을 사용하여 모델을 배포할 수 있습니다.

기계 학습 작업(MLOps) 프로젝트를 만들고 모델 배포가 포함된 MLOps 프로젝트 템플릿을 선택하면 모델 레지스트리의 승인된 모델 버전이 프로덕션에 자동으로 배포됩니다. SageMaker AI 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](https://sagemaker.readthedocs.io/en/stable) SDK를 사용하여 모델 버전을 배포하려면 다음 코드 스니펫을 사용하세요.

```
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>

를 사용하여 모델 버전을 배포하려면 다음 단계를 AWS SDK for Python (Boto3)완료합니다.

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 Identity and Access Management 사용 설명서*의 [교차 계정 정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html)을 AWS참조하세요.

**참고**  
계정 간 모델 배포를 위한 훈련 중에 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 엔드포인트에 배포합니다. [Python을 사용하여 레지스트리에서 모델 배포](model-registry-deploy.md) 또는 Amazon SageMaker 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)에 있는 이미지와 유사합니다.

모델 패키지를 배포하려면 먼저 모델 패키지에 대해 다음 요구 사항을 충족해야 합니다.
+ 유효한 추론 사양을 사용할 수 있어야 합니다. 자세한 내용은 [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`, `us-west-2``ap-northeast-1`, 및 `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 Model Registry를 사용하면 계정 간에 모델 패키지 그룹을 공유할 수 있습니다. 리소스 공유와 관련된 권한에는 두 가지 범주가 있습니다.
+ **검색 가능성**: *검색 가능성*은 리소스 소비자 계정이 하나 이상의 리소스 소유자 계정에서 공유하는 모델 패키지 그룹을 볼 수 있는 기능입니다. 검색 가능성은 리소스 소유자가 필요한 리소스 정책을 공유된 모델 패키지 그룹에 연결하는 경우에만 가능합니다. 리소스 소비자는 AWS RAM UI 및에서 모든 공유 모델 패키지 그룹을 볼 수 있습니다 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 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* 사용 설명서의 [Creating and using customer managed permissions](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. 초대를 수락하려면 **수락**을 선택합니다.

# 접근성
<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](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참조하세요.

 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. 이 리소스 공유 ARN을 AWS RAM 생성했는지 확인하려면 다음 명령을 사용합니다.

      ```
      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) 섹션을 참조하세요. 사용자 지정 권한을 연결하는 방법에 대한 자세한 내용은 [Creating and using customer managed permissions in 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 콘솔에서 리소스 소유자와 소비자는 공유 모델 패키지 그룹을 볼 수 있습니다. 리소스 소유자는 [Viewing resource shares you created in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-view-rs.html)의 단계에 따라 소비자와 공유된 모델 패키지 그룹을 볼 수 있습니다. 리소스 소비자는 공유된 [Viewing resource shares shared with you](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) 설명서의 [Update a Resource Share](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) 설명서의 [Deleting a resource share](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) 설명서의 [Update a Resource Share](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) 설명서의 [Deleting a resource share](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. [Launch 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에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. 모델 그룹 목록에서 보려는 모델 그룹 이름을 선택합니다.

1. 모델 그룹의 모델 버전 목록이 있는 새 탭이 나타납니다.

1. 모델 버전 목록에서 세부 정보를 보려는 모델 버전의 이름을 선택합니다.

1. 열리는 모델 버전 탭에서 **활동**을 선택합니다. 모델 버전의 배포는 활동 목록에 **이벤트 유형**이 **모델 배포**인 이벤트로 표시됩니다.

------

# 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`, `us-west-2``ap-northeast-1`, 및 `eu-west-1` 리전에서 사용할 수 있는 기능은 다음과 같습니다.

로깅 및 등록된 모델의 계보를 추적할 수 있습니다. 또한 모델 리소스의 계보에는 데이터세트, 평가자, 훈련 작업, 승인, 모델, 추론 구성 요소 및 엔드포인트가 포함됩니다. 계보에서는 소스 URI, 만든 시점의 타임스탬프 및 기타 메타데이터를 비롯한 관련 리소스 세부 정보도 볼 수 있습니다.

다음은 등록된 모델 버전의 계보 세부 정보에 액세스하는 방법에 대한 지침을 제공합니다.

**등록된 모델 버전의 계보 세부 정보에 액세스하는 방법**

1. [Amazon SageMaker Studio 출시](studio-updated-launch.md)의 지침에 따라 Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

1. 아직 선택되어 있지 않은 경우 **등록된 모델** 탭을 선택합니다.

1. **등록된 모델** 탭 레이블 바로 아래에서 아직 선택되어 있지 않은 경우 **모델 그룹**을 선택합니다.

1. (선택 사항) 공유된 모델이 있는 경우 **내 모델** 또는 **나와 공유됨** 중에서 선택할 수 있습니다.

1. 등록된 모델을 선택합니다.

1. 아직 선택되지 않은 경우 **버전** 탭을 선택합니다.

1. **버전** 목록에서 특정 모델 버전을 선택합니다.

1. **Lineage(계보)** 탭을 선택합니다.

**계보** 탭에서 해당 모델 버전과 연결된 리소스를 탐색할 수 있습니다. 리소스를 선택하여 리소스 세부 정보를 볼 수도 있습니다.

계보 보기는 시각화 목적으로만 사용됩니다. 이 보기에서 구성 요소를 재배열하거나 이동해도 실제 등록된 모델 리소스에는 영향을 주지 않습니다.

`us-east-1`, , `ap-northeast-1`및 `eu-west-1` 리전의 경우 다음 지침을 사용하여 로깅 및 등록된 모델 버전의 `us-west-2`계보 세부 정보에 액세스할 수 있습니다.

1. [Amazon SageMaker Studio 출시](studio-updated-launch.md)의 지침에 따라 Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

1. **내 모델** 탭을 선택합니다.

1. (선택 사항) 사용자와 공유되는 모델이 있는 경우 나에 **의해 생성됨 또는 나와 공유됨** **중에서 선택할 수 있습니다**.

1. 모델을 선택하고 **최신 버전 보기를** 선택합니다.

1. **Lineage(계보)** 탭을 선택합니다.

# 모델 레지스트리 컬렉션
<a name="modelcollections"></a>

컬렉션을 사용하여 서로 관련된 등록된 모델을 그룹화하고 계층 구조로 구성하여 대규모 모델 검색 가능성을 개선할 수 있습니다. 컬렉션을 사용하면 서로 연관되어 있는 등록된 모델을 구성할 수 있습니다. 예를 들어, 모델이 해결하는 문제의 도메인을 기준으로 모델을 NLP 모델, CV 모델 또는 음성 인식 모델이라는 제목의 컬렉션으로 분류할 수 있습니다.****** 등록된 모델을 트리 구조로 구성하려면 컬렉션을 서로 중첩하면 됩니다. 컬렉션에 대해 수행하는 모든 작업(예: 생성, 읽기, 업데이트 또는 삭제)은 등록된 모델을 변경하지 않습니다. Amazon SageMaker Studio UI 또는 Python SDK를 사용하여 컬렉션을 관리할 수 있습니다.

모델 레지스트리의 **컬렉션** 탭에는 계정의 모든 컬렉션 목록이 표시됩니다. 다음 섹션에서는 **컬렉션** 탭의 옵션을 사용하여 다음 작업을 수행하는 방법을 설명합니다.
+ 컬렉션 생성
+ 컬렉션에 모델 그룹 추가
+ 컬렉션 간 모델 그룹 이동
+ 다른 컬렉션에서 모델 그룹 또는 컬렉션 제거

컬렉션에서 수행하는 작업은 컬렉션에 포함된 개별 모델 그룹의 무결성에 영향을 주지 않으므로, Amazon S3 및 Amazon ECR의 기본 모델 그룹 아티팩트는 수정되지 않습니다.

컬렉션을 사용하면 모델을 훨씬 더 유연하게 구성할 수 있지만 내부 표현은 계층 구조의 크기에 몇 가지 제약을 가합니다. 이러한 제약조건에 대한 요약은 [제약 조건](modelcollections-limitations.md)섹션을 참조하세요.

다음 항목에서는 모델 레지스트리에서 컬렉션을 생성하고 사용하는 방법을 보여줍니다.

**Topics**
+ [사전 조건 권한 설정](modelcollections-permissions.md)
+ [컬렉션 생성](modelcollections-create.md)
+ [컬렉션에 모델 그룹 추가](modelcollections-add-models.md)
+ [컬렉션에서 모델 그룹 또는 컬렉션 제거](modelcollections-remove-models.md)
+ [컬렉션 간 모델 그룹 이동](modelcollections-move-models.md)
+ [모델 그룹의 상위 컬렉션 보기](modelcollections-view-parent.md)
+ [제약 조건](modelcollections-limitations.md)

# 사전 조건 권한 설정
<a name="modelcollections-permissions"></a>

다음과 같은 필수 리소스 그룹 작업을 포함하는 사용자 지정 정책을 생성합니다.
+ `resource-groups:CreateGroup`
+ `resource-groups:DeleteGroup`
+ `resource-groups:GetGroupQuery`
+ `resource-groups:ListGroupResources`
+ `resource-groups:Tag`
+ `tag:GetResources`

인라인 정책을 추가하는 방법에 대한 지침은 [IAM 자격 증명 권한 추가(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)를 참조하세요. 정책 형식을 선택할 때 JSON 형식을 선택하고 다음 정책을 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "resource-groups:ListGroupResources"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "resource-groups:GetGroupQuery"
            ],
            "Resource": "arn:aws:resource-groups:*:*:group/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "resource-groups:CreateGroup",
                "resource-groups:Tag"
            ],
            "Resource": "arn:aws:resource-groups:*:*:group/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": "sagemaker:collection"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "resource-groups:DeleteGroup",
            "Resource": "arn:aws:resource-groups:*:*:group/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:collection": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        }
    ]
}
```

------

# 컬렉션 생성
<a name="modelcollections-create"></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)에는 해당 리소스를 만드는 동안 태그를 추가할 수 있는 권한이 이미 포함되어 있습니다.

Amazon SageMaker Studio 콘솔에서 컬렉션을 만들 수 있습니다. 컬렉션을 만들려면 Studio를 사용하는지 아니면 Studio Classic을 사용하는지에 따라 다음 단계를 완료하세요.

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

1. [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)의 지침에 따라 SageMaker Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

1. 아직 선택되어 있지 않은 경우 **등록된 모델** 탭을 선택합니다.

1. **등록된 모델** 탭 레이블 바로 아래에서 **컬렉션**을 선택합니다.

1. (선택 사항) 다른 컬렉션 내에 컬렉션을 만들려면 컬렉션을 추가할 계층 구조로 이동합니다. 그렇지 않으면 컬렉션이 루트 수준에서 생성됩니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **새 컬렉션 생성**을 선택합니다.

1. 대화 상자의 **이름** 필드에 컬렉션 이름을 입력합니다.
**참고**  
이 컬렉션에 여러 계층 구조를 만들 계획이라면 컬렉션 이름을 짧게 유지하세요. 루트 수준에서 컬렉션의 위치를 나타내는 문자열인 절대 경로는 256자 이하여야 합니다. 자세한 내용은 [컬렉션 및 모델 그룹 태그 지정](modelcollections-limitations.md#modelcollections-tagging)섹션을 참조하세요.

1. (선택 사항) 컬렉션에 모델 그룹을 추가하려면 다음 단계를 완료합니다.

   1. **모델 그룹 선택**을 선택합니다.

   1. 추가할 모델 그룹을 선택합니다. 최대 10개까지 선택할 수 있습니다.

1. **생성(Create)**을 선택합니다.

1. 컬렉션이 현재 계층 구조에서 생성되었는지 확인합니다. 새 컬렉션이 바로 보이지 않으면 **새로 고침**을 선택합니다.

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

1. Amazon SageMaker Studio Classic에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. **컬렉션** 탭을 선택합니다.

1. (선택 사항) 다른 컬렉션 내에 컬렉션을 만들려면 컬렉션을 추가할 계층 구조로 이동합니다. 그렇지 않으면 컬렉션이 루트 수준에서 생성됩니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **새 컬렉션 생성**을 선택합니다.

1. 대화 상자의 **이름** 필드에 컬렉션 이름을 입력합니다.
**참고**  
이 컬렉션에 여러 계층 구조를 만들 계획이라면 컬렉션 이름을 짧게 유지하세요. 루트 수준에서 컬렉션의 위치를 나타내는 문자열인 절대 경로는 256자 이하여야 합니다. 자세한 내용은 [컬렉션 및 모델 그룹 태그 지정](modelcollections-limitations.md#modelcollections-tagging)섹션을 참조하세요.

1. (선택 사항) 컬렉션에 모델 그룹을 추가하려면 다음 단계를 완료합니다.

   1. **모델 그룹 선택**을 선택합니다.

   1. 추가할 모델 그룹을 선택합니다. 최대 10개까지 선택할 수 있습니다.

1. **생성(Create)**을 선택합니다.

1. 컬렉션이 현재 계층 구조에서 생성되었는지 확인합니다. 새 컬렉션이 바로 보이지 않으면 **새로 고침**을 선택합니다.

------

# 컬렉션에 모델 그룹 추가
<a name="modelcollections-add-models"></a>

Amazon SageMaker Studio 콘솔에서 컬렉션에 모델 그룹을 추가할 수 있습니다. 컬렉션에 모델 그룹을 추가하려면 Studio를 사용하는지 아니면 Studio Classic을 사용하는지에 따라 다음 단계를 완료하세요.

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

1. [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)의 지침에 따라 SageMaker Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

1. 아직 선택되어 있지 않은 경우 **등록된 모델** 탭을 선택합니다.

1. **등록된 모델** 탭 레이블 바로 아래에서 아직 선택되어 있지 않은 경우 **모델**을 선택합니다.

1. 추가할 모델 그룹 옆의 확인란을 선택합니다. 최대 10개의 모델 그룹을 선택할 수 있습니다. 11개 이상을 선택하면 컬렉션에 모델 그룹을 추가하는 UI 옵션이 비활성화됩니다.

1. **만들기** 옆에 있는 세로 줄임표를 선택하고 **컬렉션에 추가**를 선택합니다.

1. 선택한 모델 그룹을 추가할 컬렉션의 라디오 버튼을 선택합니다.

1. **컬렉션에 추가**를 선택합니다.

1. 모델 그룹이 컬렉션에 추가되었는지 확인합니다. 선택한 모델 그룹의 **컬렉션** 열에 모델 그룹을 추가한 컬렉션 이름이 표시됩니다.

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

**모델 그룹** 또는 **컬렉션** 탭에서 컬렉션에 모델 그룹을 추가할 수 있습니다.

**컬렉션** 탭에서 컬렉션에 하나 이상의 모델 그룹을 추가하려면 다음 단계를 완료하세요.

1. Amazon SageMaker Studio Classic에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. **컬렉션** 탭을 선택합니다.

1. 모델 그룹을 추가할 컬렉션을 선택합니다. 원하는 컬렉션이 루트 수준에 있지 않은 경우 모델 그룹을 추가할 계층 구조로 이동합니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **모델 그룹 추가**를 선택합니다.

1. 추가할 모델 그룹을 선택합니다. 최대 10개의 모델 그룹을 선택할 수 있습니다. 11개 이상을 선택하면 컬렉션에 모델 그룹을 추가하는 UI 옵션이 비활성화됩니다.

1. **컬렉션에 추가**를 선택합니다.

1. 모델 그룹이 현재 계층 구조에 추가되었는지 확인합니다. 새 모델 그룹이 바로 보이지 않으면 **새로 고침**을 선택합니다.

**모델 그룹** 탭에서 컬렉션에 하나 이상의 모델 그룹을 추가하려면 다음 단계를 완료하세요.

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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. **모델 그룹** 탭을 선택합니다.

1. 추가할 모델 그룹을 선택합니다. 최대 10개까지 선택할 수 있습니다. 11개 이상을 선택하면 컬렉션에 모델 그룹을 추가하는 UI 옵션이 비활성화됩니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **컬렉션에 추가**를 선택합니다.

1. 팝업 대화 상자에서 루트 경로 위치 `Collections`을 선택합니다. 루트 위치에 대한 이 링크는 테이블 위에 표시됩니다.

1. 대상 컬렉션이 포함된 계층 구조 또는 모델을 추가할 새 컬렉션을 만들려는 계층 구조로 이동합니다.

1. (선택 사항) 기존 컬렉션에 모델 그룹을 추가하려면 다음 단계를 완료합니다.

   1. 대상 컬렉션을 선택합니다.

   1. **컬렉션에 추가**를 선택합니다.

1. (선택 사항) 새 컬렉션에 모델 그룹을 추가하려면 다음 단계를 완료합니다.

   1. **새 컬렉션**을 선택합니다.

   1. 새 컬렉션의 이름을 입력합니다.

   1. **생성(Create)**을 선택합니다.

------

# 컬렉션에서 모델 그룹 또는 컬렉션 제거
<a name="modelcollections-remove-models"></a>

컬렉션에서 모델 그룹이나 컬렉션을 제거하면 모델 레지스트리에서 제거되는 것이 아니라 특정 그룹에서만 제거됩니다. Amazon SageMaker Studio 콘솔에서 컬렉션에서 모델 그룹을 제거할 수 있습니다.

컬렉션에서 하나 이상의 모델 그룹 또는 컬렉션을 제거하려면 Studio를 사용하는지 아니면 Studio Classic을 사용하는지에 따라 다음 단계를 완료하세요.

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

1. [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)의 지침에 따라 SageMaker Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

1. 아직 선택되어 있지 않은 경우 **등록된 모델** 탭을 선택합니다.

1. **등록된 모델** 탭 레이블 바로 아래에서 **컬렉션**을 선택합니다.

1. 제거하려는 모델 그룹 또는 컬렉션이 포함된 컬렉션으로 이동합니다.

1. 제거할 모델 그룹 또는 컬렉션을 선택합니다. 최대 10개까지 선택할 수 있습니다. 11개 이상의 모델 그룹 또는 컬렉션을 선택하면 제거하는 UI 옵션이 비활성화됩니다.
**중요**  
제거할 모델 그룹과 컬렉션을 동시에 선택할 수는 없습니다. 모델 그룹과 컬렉션을 모두 제거하려면 먼저 모델 그룹을 제거한 다음 컬렉션을 제거합니다.
**중요**  
비어 있지 않은 컬렉션은 제거할 수 없습니다. 비어 있지 않은 컬렉션을 제거하려면 먼저 해당 콘텐츠를 제거해야 합니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **컬렉션에서 X개 항목 제거**를 선택합니다(여기서 X는 선택한 모델 그룹 수).

1. 선택한 모델 그룹 제거를 원한다는 것을 확인합니다.

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

1. Amazon SageMaker Studio Classic에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. **컬렉션** 탭을 선택합니다.

1. 제거하려는 모델 그룹 또는 컬렉션이 포함된 컬렉션으로 이동합니다.

1. 제거할 모델 그룹 또는 컬렉션을 선택합니다. 최대 10개까지 선택할 수 있습니다. 11개 이상의 모델 그룹 또는 컬렉션을 선택하면 제거하는 UI 옵션이 비활성화됩니다.
**중요**  
제거할 모델 그룹과 컬렉션을 동시에 선택할 수는 없습니다. 모델 그룹과 컬렉션을 모두 제거하려면 먼저 모델 그룹을 제거한 다음 컬렉션을 제거합니다.
**중요**  
비어 있지 않은 컬렉션은 제거할 수 없습니다. 비어 있지 않은 컬렉션을 제거하려면 먼저 해당 콘텐츠를 제거해야 합니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **컬렉션에서 X개 항목 제거를 선택합니다**(여기서 X는 선택한 모델 그룹 수).

1. 선택한 모델 그룹 제거를 원한다는 것을 확인합니다.

------

# 컬렉션 간 모델 그룹 이동
<a name="modelcollections-move-models"></a>

Amazon SageMaker Studio 콘솔에서 하나 이상의 모델 그룹을 한 컬렉션에서 다른 컬렉션으로 이동할 수 있습니다.

모델 그룹을 이동하려면 Studio를 사용하는지 아니면 Studio Classic을 사용하는지에 따라 다음 단계를 완료하세요.

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

1. [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)의 지침에 따라 SageMaker Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

1. 아직 선택되어 있지 않은 경우 **등록된 모델** 탭을 선택합니다.

1. **등록된 모델** 탭 레이블 바로 아래에서 **컬렉션**을 선택합니다.

1. 이동하려는 모델 그룹이 포함된 컬렉션으로 이동합니다.

1. 이동할 모델 그룹을 선택합니다. 최대 10개까지 선택할 수 있습니다. 11개 이상을 선택하면 모델 그룹을 이동하는 UI 옵션이 비활성화됩니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **다음 위치로 이동**을 선택합니다.

1. 대화 상자에서 루트 경로 위치 `Collections`을 선택합니다. 루트 위치에 대한 이 링크는 테이블 위에 표시됩니다.

1. 대상 컬렉션이 포함된 계층 구조로 이동합니다.

1. 테이블에서 대상 컬렉션을 선택합니다.

1. **여기로 이동**을 선택합니다.

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

1. Amazon SageMaker Studio Classic에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. **컬렉션** 탭을 선택합니다.

1. 이동하려는 모델 그룹이 포함된 컬렉션으로 이동합니다.

1. 이동할 모델 그룹을 선택합니다. 최대 10개까지 선택할 수 있습니다. 11개 이상을 선택하면 모델 그룹을 이동하는 UI 옵션이 비활성화됩니다.

1. 오른쪽 상단의 **작업** 드롭다운 메뉴에서 **다음 위치로 이동**을 선택합니다.

1. 대화 상자에서 루트 경로 위치 `Collections`을 선택합니다. 루트 위치에 대한 이 링크는 테이블 위에 표시됩니다.

1. 대상 컬렉션이 포함된 계층 구조로 이동합니다.

1. 테이블에서 대상 컬렉션을 선택합니다.

1. **여기로 이동**을 선택합니다.

------

# 모델 그룹의 상위 컬렉션 보기
<a name="modelcollections-view-parent"></a>

Amazon SageMaker Studio 콘솔에서 특정 모델 그룹이 포함된 컬렉션을 볼 수 있습니다.

특정 모델 그룹이 포함된 컬렉션을 보려면 Studio를 사용하는지 아니면 Studio Classic을 사용하는지에 따라 다음 단계를 완료하세요.

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

1. [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html)의 지침에 따라 SageMaker Studio 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **모델**을 선택합니다.

1. 아직 선택되어 있지 않은 경우 **등록된 모델** 탭을 선택합니다.

1. **등록된 모델** 탭 레이블 바로 아래에서 아직 선택되어 있지 않은 경우 **모델 그룹**을 선택합니다.

1. 모델 그룹의 **컬렉션** 열을 확인합니다.이 열에는 이 모델 그룹이 포함된 컬렉션의 이름이 표시됩니다. 여러 컬렉션에 이 모델 그룹이 포함된 경우 **컬렉션** 열 항목을 선택하면 이 모델 그룹이 포함된 컬렉션을 나열하는 팝업이 표시됩니다.

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

1. Amazon SageMaker Studio Classic에 로그인합니다. 자세한 내용은 [Launch 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/ko_kr/sagemaker/latest/dg/images/studio/icons/house.png))을 선택합니다.

1. **모델**을 선택한 다음 **모델 레지스트리**를 선택합니다.

1. **모델 그룹** 탭을 선택합니다.

1. 테이블에서 모델 그룹을 찾습니다.

1. 모델 그룹의 **컬렉션** 열을 확인합니다.이 열에는 이 모델 그룹이 포함된 컬렉션의 이름이 표시됩니다. 여러 컬렉션에 이 모델 그룹이 포함된 경우 **컬렉션** 열 항목을 선택하면 이 모델 그룹이 포함된 컬렉션을 나열하는 팝업이 표시됩니다.

------

# 제약 조건
<a name="modelcollections-limitations"></a>

컬렉션을 사용하는 동안 컬렉션 작업에 대한 태그 길이 제한 또는 속도 제한과 관련된 문제가 발생할 수 있습니다. 컬렉션을 사용할 때 이러한 제한과 관련된 문제를 피할 수 있도록 다음 주의 사항 목록을 검토하세요.

**VPC 제약 조건**
+ VPC 모드에서는 컬렉션이 지원되지 않습니다.

**컬렉션 작업 제약 조건**
+ 컬렉션에 한 번에 최대 10개의 모델 그룹을 추가할 수 있습니다.
+ 컬렉션에서 한 번에 최대 10개의 모델 그룹을 제거할 수 있습니다.
+ 다른 컬렉션으로 한 번에 최대 10개의 모델 그룹을 이동할 수 있습니다.
+ 컬렉션이 비어 있지 않으면 컬렉션을 삭제할 수 없습니다.
+ 모델 그룹은 여러 컬렉션에 속할 수 있지만 컬렉션은 하나의 컬렉션에만 속할 수 있습니다.

**태그 관련 제약 조건**
+ 모델 그룹은 최대 48개의 컬렉션에 속할 수 있습니다. 자세한 내용은 다음 섹션 [컬렉션 및 모델 그룹 태그 지정](#modelcollections-tagging)을 참조하세요.
+ 컬렉션의 절대 경로는 최대 256자일 수 있습니다. 컬렉션 이름은 사용자가 지정하므로 경로 길이를 제어할 수 있습니다. 자세한 내용은 다음 섹션 [컬렉션 및 모델 그룹 태그 지정](#modelcollections-tagging)을 참조하세요.

## 컬렉션 및 모델 그룹 태그 지정
<a name="modelcollections-tagging"></a>

SageMaker 모델 레지스트리는 태그 규칙 및 태그를 사용하여 컬렉션 그룹과 계층 구조를 내부적으로 나타냅니다. AWS Resource Access Manager, SageMaker SDK 및에서 이러한 태그 요소에 액세스할 수 AWS CLI있지만 변경하거나 삭제하지 않는 것이 중요합니다.

**중요**  
컬렉션 또는 모델 그룹에 속하는 태그 규칙 또는 태그를 삭제하거나 변경하지 마세요. 삭제하거나 변경하면 컬렉션 작업을 수행할 수 없습니다\$1

태그 규칙은 SageMaker AI가 계층 구조에서 컬렉션의 위치를 식별하는 데 사용하는 키-값 쌍입니다. 간단히 말해 키는 상위 컬렉션의 키이고 값은 계층 구조 내 컬렉션의 경로입니다. SageMaker AI에서는 태그 값을 256자 이하로 설정할 수 있으므로 여러 개의 중첩된 계층 구조가 있는 경우 컬렉션 이름을 짧게 유지하는 것이 좋습니다.

**중요**  
컬렉션 이름은 짧게 작성하세요. 컬렉션의 절대 경로는 256자 이하여야 합니다.

반면 모델 그룹에는 태그 규칙이 없지만 태그를 사용합니다. 모델 그룹의 태그에는 모델 그룹을 포함하는 모든 컬렉션의 태그 규칙이 포함됩니다. 예를 들어, 네 개의 컬렉션에 *model-group-1*이 포함된 경우 *model-group-1*에는 네 개의 태그가 있습니다. SageMaker AI를 사용하면 단일 AWS 리소스에 최대 50개의 태그를 지정할 수 있습니다. 범용으로 두 개가 사전 할당되므로 모델 그룹은 최대 48개의 태그를 가질 수 있습니다. 결과적으로 모델 그룹은 최대 48개의 컬렉션에 속할 수 있습니다.