모델 생성 - Amazon SageMaker

모델 생성

모델을 생성하려면 모델 아티팩트와 컨테이너 이미지의 위치를 제공해야 합니다. SageMaker 모델 레지스트리에서 모델 버전을 사용할 수도 있습니다. 다음 섹션의 예제는 CreateModel API, 모델 레지스트리 및 Amazon SageMaker 콘솔을 사용하여 모델을 생성하는 방법을 보여줍니다.

모델 생성하기 (모델 레지스트리 사용)

모델 레지스트리는 ML 파이프라인에서 사용할 모델 버전을 카탈로그화하고 관리하는 데 도움이 되는 SageMaker의 기능입니다. 모델 레지스트리를 서버리스 추론과 함께 사용하려면 먼저 모델 레지스트리 모델 그룹에 모델 버전을 등록해야 합니다. 모델 레지스트리에 모델을 등록하는 방법을 알아보려면 모델 그룹 생성모델 버전 등록의 절차를 따르세요.

다음 예제에서는 등록된 모델 버전의 ARN이 있어야 하며, Python용 AWS SDK (Boto3)를 사용하여 CreateModel API를 호출해야 합니다. 서버리스 추론의 경우 모델 레지스트리는 현재 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)를 사용하여 CreateModel API를 호출합니다. 다음 값을 지정하세요.

  • 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, }] )

모델 생성 (콘솔 사용)

  1. Amazon SageMaker 콘솔에 로그인하세요.

  2. 탐색 패널에서 Inference(추론)을 선택합니다.

  3. 다음에 Models(모델)을 선택합니다.

  4. Create model(모델 생성)을 선택합니다.

  5. Model name(모델 이름)에 계정 및 AWS 리전에 고유한 모델 이름을 입력합니다.

  6. IAM 역할의 경우 이미 생성한 IAM 역할을 선택하거나 (참조사전 조건 완료) SageMaker가 대신 생성하도록 허용하세요.

  7. 컨테이너 정의 1에서 Container input options(컨테이너 입력 옵션)에 Provide model artifacts and input location(모델 아티팩트 및 입력 위치 제공)을 선택합니다.

  8. Provide model artifacts and inference image options(모델 아티팩트 및 추론 이미지 제공 옵션)에서 Use a single model(단일 모델 사용)을 선택합니다.

  9. Location of inference code image(추론 코드 이미지 위치)에는 컨테이너에 대한 Amazon ECR 경로를 입력합니다. 이미지는 SageMaker에서 제공한 자사 이미지(예: TensorFlow, XGBoost)이거나 엔드포인트를 생성하는 동일한 계정 내의 Amazon ECR 리포지토리에 있는 이미지여야 합니다. 컨테이너가 없는 경우 사전 조건 완료 섹션의 6단계로 돌아가서 자세한 내용을 확인하세요.

  10. Location of model artifacts(모델 아티팩트의 위치)는 ML 모델의 Amazon S3 URI를 입력합니다. 예: s3://amzn-s3-demo-bucket/models/model.tar.gz.

  11. (선택 사항) Tags(태그)에 키-값 페어를 추가하여 모델의 메타데이터를 생성합니다.

  12. Create model(모델 생성)을 선택합니다.