Amazon EC2에 모델 배포 - Amazon SageMaker AI

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

Amazon EC2에 모델 배포

예측을 가져오려면 Amazon SageMaker AI를 사용하여 모델을 Amazon EC2에 배포합니다. Amazon SageMaker

SageMaker AI 호스팅 서비스에 모델 배포

Amazon SageMaker AI를 사용하여 Amazon EC2를 통해 모델을 호스팅하려면 xgb_model 예측기의 deploy 메서드를 호출훈련 작업 생성 및 실행하여 훈련한 모델을 배포합니다. Amazon SageMaker deploy 메서드를 호출할 때 엔드포인트 호스트에 사용할 EC2 ML 인스턴스의 수와 유형을 지정해야 합니다.

import sagemaker from sagemaker.serializers import CSVSerializer xgb_predictor=xgb_model.deploy( initial_instance_count=1, instance_type='ml.t2.medium', serializer=CSVSerializer() )
  • initial_instance_count (int) – 모델을 배포할 인스턴스 수입니다.

  • instance_type (str) – 배포된 모델을 작동할 인스턴스 유형입니다.

  • serializer (int) – 다양한 형식(NumPy 배열, 목록, 파일 또는 버퍼)의 입력 데이터를 CSV 형식의 문자열로 직렬화합니다. XGBoost 알고리즘이 CSV 형식의 입력 파일을 허용하기 때문에 이를 사용합니다.

deploy 메서드는 배포 가능한 모델을 생성하고, SageMaker AI 호스팅 서비스 엔드포인트를 구성하고, 모델을 호스팅하기 위해 엔드포인트를 시작합니다. 자세한 내용은 Amazon SageMaker Python SDK의 SageMaker AI 일반 예측기의 배포 클래스 메서드를 참조하세요. Amazon SageMaker deploy 메서드에 의해 생성된 엔드포인트의 이름을 검색하려면 다음 코드를 실행하세요.

xgb_predictor.endpoint_name

그러면 xgb_predictor이라는 엔드포인트 이름이 반환되어야 합니다. 엔드포인트 이름의 형식은 "sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"입니다. 이 엔드포인트는 ML 인스턴스에서 활성 상태로 유지되며 나중에 종료하지 않는 한 언제든지 즉시 예측을 수행할 수 있습니다. 이 엔드포인트 이름을 복사하고 저장하여 재사용하고 SageMaker Studio 또는 SageMaker AI 노트북 인스턴스의 다른 곳에서 실시간 예측을 수행합니다.

작은 정보

Amazon EC2 인스턴스 또는 엣지 디바이스에 배포하기 위해 모델을 컴파일하고 최적화하는 방법에 대해 자세히 알아보려면 Neo로 모델 컴파일 및 배포를 참조하세요.

(선택 사항) SageMaker AI 예측기를 사용하여 호스팅 엔드포인트 재사용

모델을 엔드포인트에 배포한 후 엔드포인트를 페어링하여 새 SageMaker AI 예측기를 설정하고 다른 노트북에서 실시간 예측을 지속적으로 수행할 수 있습니다. 다음 예제 코드는 SageMaker AI 예측기 클래스를 사용하여 동일한 엔드포인트를 사용하여 새 예측기 객체를 설정하는 방법을 보여줍니다. xgb_predictor에 사용한 엔드포인트 이름을 다시 사용하세요.

import sagemaker xgb_predictor_reuse=sagemaker.predictor.Predictor( endpoint_name="sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS", sagemaker_session=sagemaker.Session(), serializer=sagemaker.serializers.CSVSerializer() )

xgb_predictor_reuse 예측자는 원본 xgb_predictor과 정확히 동일하게 동작합니다. 자세한 내용은 Amazon SageMaker Python SDK의 SageMaker AI 예측기 클래스를 참조하세요. Amazon SageMaker

(선택 사항) 배치 변환으로 예측하기

프로덕션 환경에서 엔드포인트를 호스팅하는 대신 일회용 배치 추론 작업을 실행하여 SageMaker AI 배치 변환을 사용하여 테스트 데이터 세트에 대한 예측을 수행할 수 있습니다. 모델 훈련이 완료되면 예측기를 SageMaker AI 변환기 클래스를 기반으로 하는 transformer 객체로 확장할 수 있습니다. 배치 변환기는 지정된 S3 버킷에서 입력 데이터를 읽고 예측을 수행합니다.

배치 변환 작업을 생성하려면
  1. 다음 코드를 실행하여 테스트 데이터세트의 특성 열을 CSV 파일로 변환하고 S3 버킷에 업로드합니다.

    X_test.to_csv('test.csv', index=False, header=False) boto3.Session().resource('s3').Bucket(bucket).Object( os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
  2. 배치 변환 작업에 대한 입력 및 출력의 S3 버킷 URI를 다음과 같이 지정합니다.

    # The location of the test dataset batch_input = 's3://{}/{}/test'.format(bucket, prefix) # The location to store the results of the batch transform job batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
  3. 배치 변환 작업을 실행할 instance_countinstance_type매개변수, 예측 데이터를 저장할 output_path등 최소 파라미터 수를 지정하는 변환기 객체를 다음과 같이 생성합니다.

    transformer = xgb_model.transformer( instance_count=1, instance_type='ml.m4.xlarge', output_path=batch_output )
  4. 다음과 같이 transformer객체의 transform()메서드를 실행하여 배치 변환 작업을 시작합니다.

    transformer.transform( data=batch_input, data_type='S3Prefix', content_type='text/csv', split_type='Line' ) transformer.wait()
  5. 배치 변환 작업이 완료되면 SageMaker AI는 batch_output 경로에 저장된 test.csv.out 예측 데이터를 생성하며,이 데이터는 형식이어야 합니다s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction. 다음을 실행 AWS CLI 하여 배치 변환 작업의 출력 데이터를 다운로드합니다.

    ! aws s3 cp {batch_output} ./ --recursive

    이렇게 하면 현재 작업 디렉터리 아래에 test.csv.out 파일이 생성됩니다. XGBoost 훈련 작업의 로지스틱 회귀 분석을 기반으로 예측된 부동 값을 확인할 수 있습니다.