기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
JumpStart의 일부 모델은 SageMaker AI에 의해 사전 최적화되므로 먼저 추론 최적화 작업을 생성하지 않고도 이러한 모델의 최적화된 버전을 배포할 수 있습니다.
사전 최적화된 옵션이 있는 모델 목록은 사전 최적화된 JumpStart 모델 섹션을 참조하세요.
다음 절차에 따라 Amazon SageMaker Studio를 사용하여 사전 최적화된 JumpStart 모델을 배포합니다.
사전 최적화된 모델을 배포하려면
-
Studio의 왼쪽 탐색 메뉴에서 JumpStart 선택합니다.
-
모든 퍼블릭 모델 페이지에서 사전 최적화된 모델 중 하나를 선택합니다.
-
모델 세부 정보 페이지에서 배포를 선택합니다.
-
배포 페이지에서 일부 JumpStart 모델은 계속 진행하기 전에 최종 사용자 라이선스 계약(EULA)에 서명해야 합니다. 요청된 경우 라이선스 계약 섹션의 라이선스 조건을 검토합니다. 사용 사례에 적합한 용어인 경우 EULA 동의 확인란을 선택하고 사용 약관을 읽습니다.
자세한 내용은 최종 사용자 라이선스 계약 섹션을 참조하세요.
-
엔드포인트 이름 및 초기 인스턴스 수 의 경우 기본값을 수락하거나 사용자 지정 값을 설정합니다.
-
인스턴스 유형에서 기본값을 그대로 둡니다. 그렇지 않으면 미리 최적화된 구성을 배포할 수 없습니다.
-
모델에서 모델 구성을 확장합니다. Studio는 선택할 수 있는 사전 최적화된 구성을 제공하는 테이블을 보여줍니다. 각 옵션에는 지연 시간 및 처리량에 대한 지표가 있습니다. 애플리케이션 요구 사항에 가장 적합한 옵션을 선택합니다.
-
배포(Deploy)를 선택합니다.
프로젝트에서 SageMaker AI Python SDK를 사용하여 사전 최적화된 모델을 배포할 수 있습니다. 먼저 ModelBuilder
클래스를 사용하여 Model
인스턴스를 정의합니다. 그런 다음 set_deployment_config()
메서드를 사용하여 배포하려는 사전 최적화 구성을 설정합니다. 그런 다음 build()
메서드를 사용하여 모델을 빌드합니다. 마지막으로 deploy()
메서드를 사용하여 추론 엔드포인트에 배포합니다.
다음 예제에서 사용되는 클래스 및 메서드에 대한 자세한 내용은 SageMaker AI Python SDK 설명서의 APIs
프로젝트를 설정하려면
-
애플리케이션 코드에서 필요한 라이브러리를 가져옵니다. 다음 예제에서는 SDK for Python(Boto3)을 사용합니다. 또한 모델을 정의하고 작업하는 데 사용하는 SageMaker AI Python SDK에서 모듈을 가져옵니다.
import boto3 from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.session import Session
-
SageMaker AI 세션을 초기화합니다. 다음 예제에서는
Session()
클래스를 사용합니다.sagemaker_session = Session()
모델을 정의하려면
-
SchemaBuilder
인스턴스를 생성하고 입력 및 출력 샘플을 제공합니다. 모델을 정의할 때 이 인스턴스를ModelBuilder
클래스에 제공합니다. 이를 통해 SageMaker AI는 입력 및 출력을 직렬화 및 역직렬화하기 위한 마샬링 함수를 자동으로 생성합니다.SchemaBuilder
또는ModelBuilder
클래스 사용에 대한 자세한 내용은 ModelBuilder를 사용하여 Amazon SageMaker AI에서 모델 생성 섹션을 참조하세요.다음 예제에서는
SchemaBuilder
클래스에 샘플 입력 및 출력 문자열을 제공합니다.response = "Jupiter is the largest planet in the solar system. It is the fifth planet from the sun." sample_input = { "inputs": "What is the largest planet in the solar system?", "parameters": {"max_new_tokens": 128, "top_p": 0.9, "temperature": 0.6}, } sample_output = [{"generated_text": response}] schema_builder = SchemaBuilder(sample_input, sample_output)
-
모델을 SageMaker AI로 정의합니다. 다음 예제에서는
ModelBuilder
인스턴스를 초기화하기 위한 파라미터를 설정합니다.model_builder = ModelBuilder( model="
jumpstart-model-id
", schema_builder=schema_builder, sagemaker_session=sagemaker_session, role_arn=sagemaker_session.get_caller_identity_arn(), )이 예제에서는 JumpStart 모델을 사용합니다.
를jumpstart-model-id
meta-textgeneration-llama-3-70b
와 같은 JumpStart 모델의 ID로 바꿉니다.
벤치마크 지표를 검색하려면
-
배포하려는 사전 최적화 구성을 확인하려면 SageMaker AI가 제공하는 옵션을 조회합니다. 다음 예제에서는 다음을 표시합니다.
model_builder.display_benchmark_metrics()
이
display_benchmark_metrics()
메서드는 다음과 같은 테이블을 인쇄합니다.| Instance Type | Config Name | Concurrent Users | Latency, TTFT (P50 in sec) | Throughput (P50 in tokens/sec/user) | |:----------------|:--------------|-------------------:|-----------------------------:|--------------------------------------:| | ml.g5.48xlarge | lmi-optimized | 1 | 2.25 | 49.70 | | ml.g5.48xlarge | lmi-optimized | 2 | 2.28 | 21.10 | | ml.g5.48xlarge | lmi-optimized | 4 | 2.37 | 14.10 | . . . | ml.p4d.24xlarge | lmi-optimized | 1 | 0.10 | 137.40 | | ml.p4d.24xlarge | lmi-optimized | 2 | 0.11 | 109.20 | | ml.p4d.24xlarge | lmi-optimized | 4 | 0.13 | 85.00 | . . .
첫 번째 열의 표에는 선택한 JumpStart 모델을 호스팅하는 데 사용할 수 있는 잠재적 인스턴스 유형이 나열되어 있습니다. 각 인스턴스 유형에 대해
Config Name
에서 미리 최적화된 구성의 이름을 나열합니다. SageMaker AI가 제공하는 구성의 이름은 입니다lmi-optimized
. 각 인스턴스 유형 및 구성에 대해 테이블은 벤치마크 지표를 제공합니다. 이러한 지표는 모델이 다양한 수의 동시 사용자에 대해 지원할 처리량과 지연 시간을 나타냅니다. -
벤치마크 지표를 기반으로 성능 요구 사항을 가장 잘 지원하는 인스턴스 유형과 구성 이름을 선택합니다. 배포 구성을 생성할 때 이러한 값을 사용합니다.
사전 최적화된 모델을 배포하려면
-
배포 구성을 만듭니다. 다음 예에는
ModelBuilder
인스턴스가 사용됩니다. 인스턴스 유형 및 구성 이름을set_deployment_config()
메서드에 전달합니다.model_builder.set_deployment_config( config_name="
", instance_type="config-name
", )instance-type
를config-name
lmi-optimized
와 같은 테이블의 구성 이름으로 바꿉니다.ml.p4d.24xlarge
를
와 같은 테이블의 인스턴스 유형으로 바꿉니다.instance-type
-
모델을 구축합니다. 다음 예제에서는
ModelBuilder
인스턴스의.build()
메서드를 사용합니다.optimized_model = model_builder.build()
.build()
메서드는 배포 가능한Model
인스턴스를 반환합니다. -
추론 엔드포인트로 모델 배포 다음 예제에서는
Model
인스턴스의.deploy()
메서드를 사용합니다.predictor = optimized_model.deploy(accept_eula=True)
deploy()
메서드는Predictor
인스턴스를 반환합니다. 인스턴스를 사용하여 추론 요청을 모델에 전송할 수 있습니다.
추론 요청을 사용하여 모델을 테스트하려면
-
추론 엔드포인트에 모델을 배포한 후 모델의 예측을 테스트합니다. 다음 예제에서는
인스턴스를 사용하여 추론 요청을 보냅니다.Predictor
predictor.predict(sample_input)
모델은 다음과 같은 응답으로 생성하는 텍스트를 반환합니다.
{'generated_text': ' Jupiter is the largest planet in the solar system. It is the fifth planet from the sun. It is a gas giant with . . .'}
사전 최적화된 JumpStart 모델
다음은 사전 최적화된 구성이 있는 JumpStart 모델입니다.
Meta
-
Llama 3.1 70B 지침
-
Llama 3.1 70B
-
Llama 3.1 405B FP8 지시
-
Llama 3.1 405B FP8
-
Llama 3 8B 지침
-
Llama 3 8B
-
Llama 3 70B 지침
-
Llama 3 70B
-
Llama 2 70B Chat
-
Llama 2 7B Chat
-
Llama 2 13B Chat
HuggingFace
-
Mixtral 8x7B Instruct
-
Mixtral 8x7B
-
Mistral 7B 지침
-
Mistral 7B
사전 컴파일된 JumpStart 모델
일부 모델 및 구성의 경우 SageMaker AI는 특정 AWS Inferentia 및 AWS Trainium 인스턴스에 대해 사전 컴파일된 모델을 제공합니다. 이를 위해 컴파일 최적화 작업을 생성하고 배포 인스턴스 유형으로 ml.inf2.48xlarge 또는 ml.trn1.32xlarge를 선택하면 SageMaker AI가 컴파일된 아티팩트를 가져옵니다. 작업은 이미 컴파일된 모델을 사용하기 때문에 컴파일을 처음부터 실행하지 않고도 빠르게 완료됩니다.
다음은 SageMaker AI에 사전 컴파일된 모델이 있는 JumpStart 모델입니다.
Meta
-
Llama3 8B
-
Llama3 70B
-
Llama2 7B
-
Llama2 70B
-
Llama2 13B
-
코드 Llama 7B
-
코드 Llama 70B
HuggingFace
-
Mistral 7B