기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SageMaker SDK를 사용하여 컴파일된 모델 배포
모델이 AWS SDK for Python (Boto3) AWS CLI또는 Amazon SageMaker AI 콘솔을 사용하여 컴파일된 경우 사전 조건 섹션을 충족해야 합니다. 다음 사용 사례 중 하나를 따라 모델을 컴파일한 방식에 따라 SageMaker Neo로 컴파일된 모델을 배포하세요.
주제
SageMaker SDK를 사용하여 모델을 컴파일한 경우
컴파일된 모델에 대한 sagemaker.Modelml_c5입니다.
from sagemaker.serve import ModelBuilder model_builder = ModelBuilder( model=compiled_model, role_arn=role, instance_type='ml.c5.4xlarge', ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.c5.4xlarge' ) # Print the name of newly created endpoint print(endpoint.endpoint_name)
MXNet 또는 PyTorch를 사용하여 모델을 컴파일한 경우
를 사용하여 SageMaker AI 모델을 생성하고 배포합니다ModelBuilder. s3_model_data_url 파라미터를 컴파일된 모델 아카이브의 S3 경로로 지정하고, role_arn 파라미터를 실행 역할로 지정하고, 대상 인스턴스의 instance_type 파라미터를 지정합니다. 또한 MMS_DEFAULT_RESPONSE_TIMEOUT 환경 변수를 로 설정해야 합니다500.
다음 예제에서는 이러한 함수를 사용하여 SageMaker Python SDK를 사용하여 컴파일된 모델을 배포하는 방법을 보여줍니다.
from sagemaker.serve import ModelBuilder # V3 uses a unified ModelBuilder approach for all frameworks model_builder = ModelBuilder( s3_model_data_url='insert S3 path of compiled model archive', role_arn='AmazonSageMaker-ExecutionRole', instance_type='ml.p3.2xlarge', env={'MMS_DEFAULT_RESPONSE_TIMEOUT': '500'}, ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.p3.2xlarge' ) # Print the name of newly created endpoint print(endpoint.endpoint_name)
참고
AmazonSageMakerFullAccess 및 AmazonS3ReadOnlyAccess 정책은 AmazonSageMaker-ExecutionRole IAM 역할에 연결되어야 합니다.
Boto3, SageMaker 콘솔 또는 TensorFlow용 CLI를 사용하여 모델을 컴파일한 경우
모델 객체를 구성한 다음 배포를 호출합니다.
from sagemaker.serve import ModelBuilder model_builder = ModelBuilder( s3_model_data_url='S3 path for model file', role_arn=role, instance_type='ml.c5.xlarge', ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.c5.xlarge' )
자세한 내용은 모델 아티팩트에서 직접 배포
이 목록에서 요구 사항에 맞는 도커 이미지 Amazon ECR URI를 선택할 수 있습니다.
TensorFlowModel 객체를 구성하는 방법에 대한 자세한 내용은 SageMaker SDK
참고
모델을 GPU에 배포하는 경우 첫 번째 추론 요청의 지연 시간이 길어질 수 있습니다. 첫 번째 추론 요청에서 최적화된 컴퓨팅 커널이 만들어지기 때문입니다. TFX로 보내기 전에 추론 요청의 워밍업 파일을 만들어 모델 파일과 함께 저장하는 것이 좋습니다. 이를 모델을 “워밍업”하는 것이라고 합니다.
다음 코드 스니펫은 사전 조건 섹션의 이미지 분류 예제를 위한 워밍업 파일을 생성하는 방법을 보여줍니다.
import tensorflow as tf from tensorflow_serving.apis import classification_pb2 from tensorflow_serving.apis import inference_pb2 from tensorflow_serving.apis import model_pb2 from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_log_pb2 from tensorflow_serving.apis import regression_pb2 import numpy as np with tf.python_io.TFRecordWriter("tf_serving_warmup_requests") as writer: img = np.random.uniform(0, 1, size=[224, 224, 3]).astype(np.float32) img = np.expand_dims(img, axis=0) test_data = np.repeat(img, 1, axis=0) request = predict_pb2.PredictRequest() request.model_spec.name = 'compiled_models' request.model_spec.signature_name = 'serving_default' request.inputs['Placeholder:0'].CopyFrom(tf.compat.v1.make_tensor_proto(test_data, shape=test_data.shape, dtype=tf.float32)) log = prediction_log_pb2.PredictionLog( predict_log=prediction_log_pb2.PredictLog(request=request)) writer.write(log.SerializeToString())
모델을 “워밍업”하는 방법에 대한 자세한 내용은 TensorFlow TFX 페이지