모델 생성
모델을 생성하려면 모델 아티팩트와 컨테이너 이미지의 위치를 제공해야 합니다. SageMaker 모델 레지스트리에서 모델 버전을 사용할 수도 있습니다. 다음 섹션의 예제는 CreateModel API, 모델 레지스트리 및 Amazon SageMaker 콘솔
모델 생성하기 (모델 레지스트리 사용)
모델 레지스트리는 ML 파이프라인에서 사용할 모델 버전을 카탈로그화하고 관리하는 데 도움이 되는 SageMaker의 기능입니다. 모델 레지스트리를 서버리스 추론과 함께 사용하려면 먼저 모델 레지스트리 모델 그룹에 모델 버전을 등록해야 합니다. 모델 레지스트리에 모델을 등록하는 방법을 알아보려면 모델 그룹 생성 및 모델 버전 등록의 절차를 따르세요.
다음 예제에서는 등록된 모델 버전의 ARN이 있어야 하며, Python용 AWS SDK (Boto3)
model_name
에 모델 이름을 입력합니다.sagemaker_role
에 SageMaker에서 생성한 기본 역할 또는 사전 조건 완료 섹션의 4단계에서 사용자 지정된 SageMaker IAM 역할을 사용할 수 있습니다.ModelPackageName
에 모델 버전의 ARN을 지정하세요. 이 ARN은 모델 레지스트리의 모델 그룹에 등록되어야 합니다.
#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Specify a name for the model model_name = "
<name-for-model>
" #Specify a Model Registry model version container_list = [ { "ModelPackageName":<model-version-arn>
} ] #Create the model response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, container_list )
모델을 생성하는 방법 (API 사용)
다음 예제에서는 Python용 AWS SDK (Boto3)
sagemaker_role,
에 SageMaker에서 생성한 기본 역할 또는 사전 조건 완료 섹션의 4단계에서 사용자 지정된 SageMaker IAM 역할을 사용할 수 있습니다.model_url
에 Amazon S3 URI를 모델에 지정합니다.-
container
의 경우 Amazon ECR 경로를 기준으로 사용하려는 컨테이너를 검색하세요. 이 예제에서는 SageMaker가 제공한 XGBoost 컨테이너를 사용합니다. SageMaker 컨테이너를 선택하지 않았거나 직접 가져온 경우 자세한 내용은 사전 조건 완료 섹션의 6단계를 참조하세요. model_name
에 모델 이름을 입력합니다.
#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Get model from S3 model_url = "
s3://amzn-s3-demo-bucket/models/model.tar.gz
" #Get container image (prebuilt example) from sagemaker import image_uris container = image_uris.retrieve("xgboost", region, "0.90-1") #Create model model_name = "<name-for-model>
" response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, Containers = [{ "Image": container, "Mode": "SingleModel", "ModelDataUrl": model_url, }] )
모델 생성 (콘솔 사용)
Amazon SageMaker 콘솔
에 로그인하세요. -
탐색 패널에서 Inference(추론)을 선택합니다.
-
다음에 Models(모델)을 선택합니다.
-
Create model(모델 생성)을 선택합니다.
-
Model name(모델 이름)에 계정 및 AWS 리전에 고유한 모델 이름을 입력합니다.
-
IAM 역할의 경우 이미 생성한 IAM 역할을 선택하거나 (참조사전 조건 완료) SageMaker가 대신 생성하도록 허용하세요.
-
컨테이너 정의 1에서 Container input options(컨테이너 입력 옵션)에 Provide model artifacts and input location(모델 아티팩트 및 입력 위치 제공)을 선택합니다.
-
Provide model artifacts and inference image options(모델 아티팩트 및 추론 이미지 제공 옵션)에서 Use a single model(단일 모델 사용)을 선택합니다.
-
Location of inference code image(추론 코드 이미지 위치)에는 컨테이너에 대한 Amazon ECR 경로를 입력합니다. 이미지는 SageMaker에서 제공한 자사 이미지(예: TensorFlow, XGBoost)이거나 엔드포인트를 생성하는 동일한 계정 내의 Amazon ECR 리포지토리에 있는 이미지여야 합니다. 컨테이너가 없는 경우 사전 조건 완료 섹션의 6단계로 돌아가서 자세한 내용을 확인하세요.
-
Location of model artifacts(모델 아티팩트의 위치)는 ML 모델의 Amazon S3 URI를 입력합니다. 예:
.s3://amzn-s3-demo-bucket/models/model.tar.gz
-
(선택 사항) Tags(태그)에 키-값 페어를 추가하여 모델의 메타데이터를 생성합니다.
-
Create model(모델 생성)을 선택합니다.