사용자 지정 모델 배포 - Amazon SageMaker AI

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

사용자 지정 모델 배포

훈련이 완료되면 추론을 위해 모델을 배포합니다. CLI 또는 SDK를 사용하여 사용자 지정 모델을 배포할 수 있습니다.

모델 아티팩트 찾기

  • S3 버킷 확인: 모델 아티팩트가에 저장되었는지 확인 s3://my-bucket/model-artifacts/

  • 정확한 경로 참고: 전체 경로가 필요합니다(예: s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz).

CLI를 사용하여 배포

다음 명령을 실행하여 사용자 지정 모델을 배포합니다.

hyp create hyp-custom-endpoint \ --version 1.0 \ --env '{"HF_MODEL_ID":"/opt/ml/model", "SAGEMAKER_PROGRAM":"inference.py", }' \ --model-source-type s3 \ --model-location test-pytorch-job/model.tar.gz \ --s3-bucket-name my-bucket \ --s3-region us-east-2 \ --prefetch-enabled true \ --image-uri 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:latest \ --model-volume-mount-name model-weights \ --container-port 8080 \ --resources-requests '{"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"}' \ --resources-limits '{"nvidia.com/gpu": 1}' \ --tls-output-s3-uri s3://tls-bucket-inf1-beta2 \ --instance-type ml.g5.8xlarge \ --endpoint-name endpoint-custom-pytorch \ --model-name pytorch-custom-model \

이 명령은 훈련된 모델을 라는 엔드포인트로 배포합니다endpoint-custom-pytorch. 는 훈련 작업의 아티팩트 경로를 --model-location 참조합니다.

Python SDK를 사용하여 배포

다음 콘텐츠로 Python 스크립트를 생성합니다.

from sagemaker.hyperpod.inference.config.hp_custom_endpoint_config import Model, Server, SageMakerEndpoint, TlsConfig, EnvironmentVariables from sagemaker.hyperpod.inference.hp_custom_endpoint import HPCustomEndpoint model = Model( model_source_type="s3", model_location="test-pytorch-job/model.tar.gz", s3_bucket_name="my-bucket", s3_region="us-east-2", prefetch_enabled=True ) server = Server( instance_type="ml.g5.8xlarge", image_uri="763104351884.dkr.ecr.us-east-2.amazonaws.com/huggingface-pytorch-tgi-inference:2.4.0-tgi2.3.1-gpu-py311-cu124-ubuntu22.04-v2.0", container_port=8080, model_volume_mount_name="model-weights" ) resources = { "requests": {"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"}, "limits": {"nvidia.com/gpu": 1} } env = EnvironmentVariables( HF_MODEL_ID="/opt/ml/model", SAGEMAKER_PROGRAM="inference.py", SAGEMAKER_SUBMIT_DIRECTORY="/opt/ml/model/code", MODEL_CACHE_ROOT="/opt/ml/model", SAGEMAKER_ENV="1" ) endpoint_name = SageMakerEndpoint(name="endpoint-custom-pytorch") tls_config = TlsConfig(tls_certificate_output_s3_uri="s3://tls-bucket-inf1-beta2") custom_endpoint = HPCustomEndpoint( model=model, server=server, resources=resources, environment=env, sage_maker_endpoint=endpoint_name, tls_config=tls_config, ) custom_endpoint.create()

API 엔드포인트 호출

CLI 사용

샘플 입력을 사용하여 엔드포인트를 테스트합니다.

hyp invoke hyp-custom-endpoint \ --endpoint-name endpoint-custom-pytorch \ --body '{"inputs":"What is the capital of USA?"}'

이렇게 하면 “미국의 수도는 워싱턴 D.C”와 같은 모델의 응답이 반환됩니다.

SDK 사용

Python 스크립트에 다음 코드를 추가합니다.

data = '{"inputs":"What is the capital of USA?"}' response = custom_endpoint.invoke(body=data).body.read() print(response)

엔드포인트 관리

CLI 사용

엔드포인트를 나열하고 검사합니다.

hyp list hyp-custom-endpoint hyp get hyp-custom-endpoint --name endpoint-custom-pytorch

SDK 사용

Python 스크립트에 다음 코드를 추가합니다.

logs = custom_endpoint.get_logs() print(logs)

리소스 정리

완료되면 엔드포인트를 삭제하여 불필요한 비용을 방지합니다.

CLI 사용

hyp delete hyp-custom-endpoint --name endpoint-custom-pytorch

SDK 사용

custom_endpoint.delete()

다음 단계

SageMaker HyperPod를 사용하여 사용자 지정 모델을 성공적으로 배포하고 테스트했습니다. 이제이 엔드포인트를 애플리케이션에서 추론에 사용할 수 있습니다.