기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다중 모델 엔드포인트를 위한 사용자 지정 컨테이너 계약
여러 모델을 처리하려면 컨테이너가 Amazon SageMaker AI가 필요에 따라 모델을 로드, 나열, 가져오기 및 언로드하기 위해 컨테이너와 통신할 수 있는 APIs 세트를 지원해야 합니다. model_name
는 새 API 세트에서 키 입력 파라미터로 사용됩니다. 고객 컨테이너는 매핑 키로 model_name
을 사용하여 로드된 모델을 추적해야 합니다. 또한 model_name
는 불투명 식별자로, InvokeEndpoint
API에 전달된 TargetModel
파라미터의 값이 아닐 수도 있습니다. InvokeEndpoint
요청의 원래 TargetModel
값은 X-Amzn-SageMaker-Target-Model
헤더로서 API의 컨테이너에 전달되어 로깅 목적으로 사용할 수 있습니다.
참고
GPU 지원 인스턴스에 대한 다중 모델 엔드포인트는 현재 SageMaker AI의 NVIDIA Triton 추론 서버 컨테이너에서만 지원됩니다. 이 컨테이너는 아래에 정의된 계약을 이미 구현하고 있습니다. 고객은 추가 작업 없이 다중 모델 GPU 엔드포인트와 함께 이 컨테이너를 직접 사용할 수 있습니다.
CPU 지원 다중 모델 엔드포인트를 위해 컨테이너에서 다음 API를 구성할 수 있습니다.
모델 API 로드
고객 컨테이너의 메모리에 본문의 url
필드에 존재하는 특정 모델을 로드하고 할당된 model_name
으로 이를 추적하도록 컨테이너에게 지시합니다. 모델이 로드된 후에는 컨테이너가 이 model_name
을 사용하여 추론 요청을 처리 할 준비가 되어 있어야 합니다.
POST /models HTTP/1.1 Content-Type: application/json Accept: application/json { "model_name" : "{model_name}", "url" : "/opt/ml/models/{model_name}/model", }
참고
model_name
이 이미 로드된 경우 이 API는 409를 반환해야 합니다. 메모리 부족 또는 다른 리소스로 인해 모델을 로드할 수 없는 경우이 API는 507 HTTP 상태 코드를 SageMaker AI에 반환해야 합니다. 그러면 미사용 모델 언로드가 시작되어 회수됩니다.
모델 API 나열
고객 컨테이너의 메모리에 로드된 모델의 목록을 반환합니다.
GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }
이 API는 페이지 매김도 지원합니다.
GET /models HTTP/1.1 Accept: application/json Response = { "models": [ { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }, .... ] }
SageMaker AI는 처음에에 대한 값을 제공하지 않고 List Models API를 호출할 수 있습니다next_page_token
. 응답의 일부로 반환된 nextPageToken
필드는 후속 모델 나열 호출에서 next_page_token
의 값으로 제공됩니다. nextPageToken
가 반환되지 않으면 반환할 모델이 더 이상 없다는 의미입니다.
모델 API 가져오기
이것은 model_name
엔터티에 대한 간단한 읽기 API입니다.
GET /models/{model_name} HTTP/1.1 Accept: application/json { "modelName" : "{model_name}", "modelUrl" : "/opt/ml/models/{model_name}/model", }
참고
model_name
이 로드되지 않은 경우 이 API는 404를 반환해야 합니다.
모델 API 언로드
SageMaker AI 플랫폼에 메모리에서 모델을 언로드하도록 고객 컨테이너에 지시하도록 지시합니다. 이렇게 하면 새 모델을 로드하는 프로세스를 시작할 때 플랫폼에 의해 결정된대로 후보 모델의 퇴거가 개시됩니다. model_name
에 프로비저닝된 리소스는 이 API가 응답을 반환할 때 컨테이너에서 회수되어야 합니다.
DELETE /models/{model_name}
참고
model_name
이 로드되지 않은 경우 이 API는 404를 반환해야 합니다.
모델 API 간접 호출
제공된 특정 model_name
에서 예측 요청을 만듭니다. SageMaker AI 런타임 InvokeEndpoint
요청은 호출에 지정된 모델의 상대 경로를 취하는 새 헤더X-Amzn-SageMaker-Target-Model
로를 지원합니다. SageMaker AI 시스템은 CreateModel
API 호출의 일부로 제공되는 접두사를 모델의 상대 경로와 결합하여 모델의 절대 경로를 구성합니다.
POST /models/{model_name}/invoke HTTP/1.1 Content-Type: ContentType Accept: Accept X-Amzn-SageMaker-Custom-Attributes: CustomAttributes X-Amzn-SageMaker-Target-Model: [relativePath]/{artifactName}.tar.gz
참고
model_name
이 로드되지 않은 경우 이 API는 404를 반환해야 합니다.
또한 GPU 인스턴스에서 메모리 또는 기타 리소스 부족으로 인해가 InvokeEndpoint
실패하는 경우이 API는 507 HTTP 상태 코드를 SageMaker AI에 반환해야 합니다. 그러면 미사용 모델 언로드가 시작되어 회수됩니다.