기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다중 모델 엔드포인트 호출
다중 모델 엔드포인트를 호출하려면 단일 모델 엔드포인트를 호출할 때와 마찬가지로 SageMaker 런타임invoke_endpoint
TargetModel
파라미터를 전달합니다. SageMaker 런타임 InvokeEndpoint
요청은 호출에 지정된 모델의 상대 경로를 취하는 새 헤더X-Amzn-SageMaker-Target-Model
로 를 지원합니다. SageMaker 시스템은 CreateModel
API 호출의 일부로 제공되는 접두사를 모델의 상대 경로와 결합하여 모델의 절대 경로를 구성합니다.
다음 절차는 CPU 및 GPU지원 다중 모델 엔드포인트 모두에 대해 동일합니다.
다중 모델 엔드포인트는 필요에 따라 대상 모델을 동적으로 로드합니다. MME 샘플 노트북
참고
GPU 지원되는 인스턴스의 경우 GPU 컨테이너에서 507이 포함된 HTTP 응답 코드는 메모리 또는 기타 리소스가 부족함을 나타냅니다. 이로 인해 더 자주 사용되는 모델을 로드하기 위해 사용되지 않는 모델이 컨테이너에서 언로드됩니다.
오류에 대한 ModelNotReadyException 요청 재시도
모델에 대해 invoke_endpoint
를 처음 호출하면 모델이 Amazon Simple Storage Service에서 다운로드되어 추론 컨테이너로 로드됩니다. 따라서 첫 번째 호출이 반환하는 데 시간이 더 오래 걸립니다. 모델이 이미 로드되었으므로 동일한 모델에 대한 후속 호출은 더 빨리 완료됩니다.
SageMaker 는 60초 invoke_endpoint
이내에 호출에 대한 응답을 에 반환합니다. 일부 모델은 너무 커서 60초 이내에 다운로드할 수 없습니다. 제한 시간 60초 이전에 모델 로드가 완료되지 않으면 오류 코드 ModelNotReadyException
과 함께 invoke_endpoint
에 대한 요청이 반환되고 모델은 최대 360초 동안 계속 다운로드되어 추론 컨테이너에 로드됩니다. invoke_endpoint
요청에 대한 ModelNotReadyException
오류 코드가 표시되면 요청을 다시 시도하세요. 기본적으로 AWS SDKs for Python(Boto 3)(레거시 재시도 모드invoke_endpoint
요청으로 인해 ModelNotReadyException
오류가 발생합니다. 요청을 최대 360초 동안 계속 재시도하도록 재시도 전략을 구성할 수 있습니다. 모델을 다운로드하여 컨테이너에 로드하는 데 60초 이상 걸릴 것으로 예상되는 경우 SDK 소켓 제한 시간을 70초로 설정합니다. AWS SDK for Python (Boto3)의 재시도 전략을 구성하는 방법에 대한 자세한 내용은 재시도 모드 구성invoke_endpoint
로 구성하는 예를 보여줍니다.
import boto3 from botocore.config import Config # This example retry strategy sets the retry attempts to 2. # With this setting, the request can attempt to download and/or load the model # for upto 180 seconds: 1 orginal request (60 seconds) + 2 retries (120 seconds) config = Config( read_timeout=70, retries={ 'max_attempts': 2 # This value can be adjusted to 5 to go up to the 360s max timeout } ) runtime_sagemaker_client = boto3.client('sagemaker-runtime', config=config)