기존 엔드포인트에 대한 추론 권장 사항 가져오기 - 아마존 SageMaker

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

기존 엔드포인트에 대한 추론 권장 사항 가져오기

추론 권장 작업은 권장 인스턴스 유형과 기존 엔드포인트에 대해 일련의 부하 테스트를 실행합니다. 추론 권장 작업은 모델 버전 등록 시 입력한 샘플 데이터를 사용한 부하 테스트를 기반으로 하는 성능 지표를 사용합니다.

기존 SageMaker 추론 엔드포인트를 벤치마킹하고 추론 권장 사항을 얻어 엔드포인트의 성능을 개선할 수 있습니다. 기존 추론 엔드포인트에 대한 권장 사항을 얻는 절차는 엔드포인트가 SageMaker 없는 추론 권장 사항을 얻는 절차와 비슷합니다. 기존 엔드포인트를 벤치마킹할 때는 주의해야 할 몇 가지 기능 제외 사항이 있습니다.

  • Inference Recommender 작업당 하나의 기존 엔드포인트만 사용할 수 있습니다.

  • 엔드포인트에는 하나의 변형만 있을 수 있습니다.

  • 오토 스케일링을 지원하는 엔드포인트는 사용할 수 없습니다.

  • 이 기능은 실시간 추론 시에만 지원됩니다.

  • 이 기능은 실시간 다중 모델 엔드포인트를 지원하지 않습니다.

주의

실시간 트래픽을 처리하는 프로덕션 엔드포인트에서는 Inference Recommender 작업을 실행하지 말 것을 강력히 권고합니다. 벤치마킹 중에 발생하는 합성 부하는 프로덕션 엔드포인트에 악영향을 주어 제한 현상을 일으키거나 부정확한 벤치마크 결과를 초래할 수 있습니다. 비교 목적으로 비프로덕션 또는 개발자 엔드포인트를 사용할 것을 권장합니다.

다음 섹션에서는 Amazon SageMaker Inference Recommender를 사용하여 AWS SDK Python (Boto3) 및 를 사용하여 모델 유형을 기반으로 기존 엔드포인트에 대한 추론 권장 사항을 생성하는 방법을 보여줍니다. AWS CLI

참고

Inference Recommender 권장 작업을 생성하기 전에 사전 조건 충족 여부를 확인합니다.

사전 조건

아직 SageMaker 추론 엔드포인트가 없는 경우 엔드포인트 없이 추론 권장 사항을 받거나 엔드포인트 생성 및 모델 배포의 지침에 따라 실시간 추론 엔드포인트를 생성할 수 있습니다.

기존 엔드포인트에 대한 추론 권장 사항 생성하기

또는 를 사용하여 프로그래밍 방식으로 추론 권장 사항을 생성하십시오. AWS SDK for Python (Boto3) AWS CLI추론 권장 사항의 작업 이름, 기존 SageMaker 추론 엔드포인트의 이름, AWS IAM 역할, 입력 구성ARN, 모델 레지스트리에 모델을 등록한 ARN 시점의 모델 패키지를 지정하십시오.

AWS SDK for Python (Boto3)

를 사용하여 추론 CreateInferenceRecommendationsJobAPI권장 사항을 얻을 수 있습니다. 추론 권장 작업 시 JobType 필드를 'Default'(으)로 설정합니다. 또한 다음을 입력합니다.

  • JobName 필드에 대한 Inference Recommender 권장 작업 이름을 입력합니다. 추론 추천자 작업 이름은 AWS 지역 및 계정 내에서 고유해야 합니다. AWS

  • 추론 추천자가 사용자를 대신하여 작업을 수행할 수 있게 해주는 IAM 역할의 Amazon 리소스 이름 (ARN). RoleArn 필드에 정의합니다.

  • 모델 ARN 레지스트리에 모델을 등록할 때 생성한 버전이 지정된 모델 패키지의. ModelPackageVersionArnInputConfig 필드에 정의합니다.

  • 추론 추천기에서 벤치마크하려는 기존 SageMaker 추론 엔드포인트의 이름을 필드에 입력하십시오. Endpoints InputConfig

AWS SDK for Python (Boto3) 패키지를 가져오고 클라이언트 클래스를 사용하여 SageMaker 클라이언트 객체를 생성합니다. 전제조건 섹션의 단계를 따랐다면 모델 패키지 그룹이 ARN 라는 변수에 저장되었습니다. model_package_arn

# Create a low-level SageMaker service client. import boto3 aws_region = '<region>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<model-package-arn>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<job-name>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = '<arn:aws:iam::<account>:role/*>' # Provide endpoint name for your endpoint that want to benchmark in Inference Recommender endpoint_name = '<existing-endpoint-name>' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, InputConfig = { 'ModelPackageVersionArn': model_package_arn, 'Endpoints': [{'EndpointName': endpoint_name}] } )

전달할 수 있는 선택적 및 필수 인수의 전체 목록은 Amazon SageMaker API 참조 안내서를 참조하십시오 CreateInferenceRecommendationsJob.

AWS CLI

create-inference-recommendations-job API 사용하여 인스턴스 엔드포인트 추천을 받으십시오. 추론 엔드포인트 권장 작업 시 job-type 필드를 'Default'(으)로 설정합니다. 또한 다음을 입력합니다.

  • job-name 필드에 대한 Inference Recommender 권장 작업 이름을 입력합니다. 추론 추천자 작업 이름은 AWS 지역 및 계정 내에서 고유해야 합니다. AWS

  • Amazon SageMaker 추론 추천자가 사용자를 대신하여 작업을 수행할 수 있게 해주는 IAM 역할의 Amazon 리소스 이름 (ARN). role-arn 필드에 정의합니다.

  • 모델 ARN 레지스트리에 모델을 등록할 때 생성한 버전이 지정된 모델 패키지의. ModelPackageVersionArninput-config 필드에 정의합니다.

  • 추론 추천기에서 벤치마킹하려는 기존 SageMaker 추론 엔드포인트의 이름을 필드에 입력하십시오. Endpoints input-config

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", \"Endpoints\": [{\"EndpointName\": <endpoint_name>}] }"

추론 권장 작업 결과 확인하기

표준 추론 권장 작업과 동일한 절차로 프로그래밍 방식으로 추론 권장 작업 결과를 수집할 수 있습니다. 자세한 내용은 추론 권장 작업 결과 확인하기 단원을 참조하십시오.

기존 엔드포인트에 대한 추론 권장 작업 결과를 받으면 다음과 비슷한 JSON 응답을 받게 됩니다.

{ "JobName": "job-name", "JobType": "Default", "JobArn": "arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id", "RoleArn": "iam-role-arn", "Status": "COMPLETED", "CreationTime": 1664922919.2, "LastModifiedTime": 1664924208.291, "InputConfig": { "ModelPackageVersionArn": "arn:aws:sagemaker:region:account-id:model-package/resource-id", "Endpoints": [ { "EndpointName": "endpoint-name" } ] }, "InferenceRecommendations": [ { "Metrics": { "CostPerHour": 0.7360000014305115, "CostPerInference": 7.456940238625975e-06, "MaxInvocations": 1645, "ModelLatency": 171 }, "EndpointConfiguration": { "EndpointName": "sm-endpoint-name", "VariantName": "variant-name", "InstanceType": "ml.g4dn.xlarge", "InitialInstanceCount": 1 }, "ModelConfiguration": { "EnvironmentParameters": [ { "Key": "TS_DEFAULT_WORKERS_PER_MODEL", "ValueType": "string", "Value": "4" } ] } } ], "EndpointPerformances": [ { "Metrics": { "MaxInvocations": 184, "ModelLatency": 1312 }, "EndpointConfiguration": { "EndpointName": "endpoint-name" } } ] }

처음 몇 줄에는 추론 권장 작업 자체에 대한 정보가 있습니다. 여기에는 작업 이름, 역할ARN, 생성 및 최근 수정 시간이 포함됩니다.

InferenceRecommendations 사전에는 Inference Recommender 추론 권장 사항 목록이 포함됩니다.

EndpointConfiguration중첩 사전에는 추천 작업 중에 사용된 엔드포인트 및 변형 이름 (배포된 AWS 기계 학습 모델) 과 함께 인스턴스 유형 () 권장 사항이 포함되어 있습니다. InstanceType

Metrics중첩 사전에는 실시간 엔드포인트의 시간당 예상 비용 (CostPerHour) (미국 달러), 실시간 엔드포인트의 추론당 예상 비용 (CostPerInference) (미국 달러), 엔드포인트로 전송되는 분당 예상 최대 InvokeEndpoint 요청 수 (MaxInvocations), 모델이 응답하는 데 걸린 시간 간격 (밀리초) 인 모델 지연 시간 () 에 대한 정보가 포함됩니다 SageMaker. ModelLatency 모델 지연 시간에는 요청을 전송하고 모델의 컨테이너에서 응답을 가져오는 데 걸리는 로컬 통신 시간과 컨테이너에서 추론을 완료하는 데 걸리는 시간도 포함됩니다.

EndpointPerformances 중첩 사전에는 권장 작업이 실행된 기존 엔드포인트의 이름(EndpointName)과 엔드포인트 성능 지표(MaxInvocationsModelLatency)가 포함됩니다.

인스턴스 엔드포인트 권장 사항 중단하기

실수로 작업을 시작했거나 더 이상 작업을 실행할 필요가 없는 경우 현재 실행 중인 작업을 중지해야 할 수 있습니다. 표준 추론 권장 작업과 동일한 절차를 사용하여 프로그래밍 방식으로 추론 추천자 권장 작업을 중지할 수 있습니다. 자세한 내용은 추론 권장 사항 중단하기 단원을 참조하십시오.