TL;DR
Amazon SageMaker Python SDK v3(>=3.17.0)는 sagemaker.serve.ai_inference_recommender를 통해 노트북에서 생성형 AI 추론 최적화 워크플로를 통합한다. ModelBuilder.from_jumpstart_config로 모델을 준비하고 mb.generate_deployment_recommendations로 후보 인스턴스·프레임워크를 자동 실험해 랭킹된 추천을 얻은 뒤 mb.deploy로 상위 구성을 실시간 엔드포인트에 배포할 수 있다. 추천과 벤치마크는 RequestThroughput, OutputTokenThroughput, TimeToFirstToken, RequestLatency 같은 지표를 제공하며 문서 예시에서는 ml.g6.2xlarge에서 상위 구성이 112.8 req/s와 3,609 tokens/s를 기록해 하위 구성보다 처리량이 약 16% 높았다. 또한 LMI와 vLLM을 병렬로 비교해 우승 프레임워크를 선택해 배포하는 패턴을 지원한다.
섹션별 상세
- Amazon SageMaker Python SDK에서 sagemaker.serve.ai_inference_recommender 기능은 버전 3.17.0부터 노트북 워크플로로 노출된다. — 문서 상단과 prerequisites 섹션에 'The new functionality is available under the sagemaker.serve.ai_inference_recommender package starting with version 3.17.0'라는 문구가 있음.
mb = ModelBuilder.from_jumpstart_config(
jumpstart_config=JumpStartConfig(model_id=MODEL_ID),
compute=Compute(instance_type=INSTANCE_TYPE),
role_arn=ROLE,
)
rec_job = mb.generate_deployment_recommendations(
tokenizer="google/gemma-4-e2b-it",
concurrency=1,
request_count=10,
prompt_input_tokens_mean=32,
output_tokens_mean=32,
streaming=True,
performance_target=PerformanceTarget.TTFT_MS,
instance_types=[INSTANCE_TYPE],
framework=InferenceFramework.LMI,
role_arn=ROLE,
wait=True,
)이 스니펫은 JumpStart 모델을 ModelBuilder로 초기화하고 mb.generate_deployment_recommendations 호출로 후보 인스턴스·컨테이너 조합을 자동으로 실험해 랭킹된 추천을 얻는 흐름을 보여준다. 입력으로 토크나이저, 동시성, 평균 입력·출력 토큰 수, 성능 목표(TTFT)를 전달하면 서비스가 각 후보를 배포해 부하 테스트를 실행하고 결과를 반환한다. 반환된 mb.recommendations에서 상위 추천을 확인해 바로 mb.deploy로 배포할 수 있다.
- mb.generate_deployment_recommendations 호출은 후보별로 모델을 배포해 부하 테스트를 실행하고 성능·비용 절충에 따라 랭킹된 추천을 반환한다. — generate_deployment_recommendations 예제 코드와 해당 설명에서 서비스가 각 후보를 배포하고 부하 테스트를 실행해 랭킹된 목록을 반환한다고 기술되어 있음.
- 추천 결과에는 RequestThroughput, OutputTokenThroughput, RequestLatency, TimeToFirstToken, InterTokenLatency 같은 메트릭이 포함되어 비교에 사용된다. — How to interpret recommendation results 섹션과 예시 데이터프레임에서 해당 메트릭들이 열로 출력되는 부분을 근거로 함.
- 문서 예시에서는 동일 ml.g6.2xlarge에서 LMI 컨테이너 버전 차이로 상위 구성은 112.8 req/s와 3,609 tokens/s를 기록해 하위 구성보다 처리량이 약 16% 높았다. — 추천 결과 출력과 'Choosing between the two configurations' 설명에 rank 0과 rank 1의 수치 및 퍼센트 차이가 명시되어 있음.
job = start_benchmark(
endpoint=core_endpoint,
tokenizer="google/gemma-4-e2b-it",
concurrency=1,
request_count=10,
prompt_input_tokens_mean=32,
output_tokens_mean=32,
streaming=True,
role=ROLE,
wait=True,
)
result = job.show_result()
print(f"Throughput avg: {result.metrics.request_throughput.avg} req/sec")
print(f"TTFT p99: {result.metrics.time_to_first_token.p99} ms")이 코드 조각은 이미 배포된 엔드포인트를 대상으로 start_benchmark를 호출해 합성 워크로드로 성능을 측정하는 절차를 보여준다. 결과 객체의 typed metrics 속성으로부터 request_throughput, time_to_first_token, request_latency 같은 지표에 IDE 자동완성으로 접근해 프로그램적으로 검증할 수 있다. 벤치마크 결과는 데이터프레임으로 변환해 비교·기록하는 용도로도 바로 활용할 수 있다.
- start_benchmark API는 벤치마크를 실행해 typed metrics 결과 객체를 반환하며 그것을 통해 평균 처리량과 p99 TTFT 등 지표에 프로그래밍적으로 접근할 수 있다. — 벤치마크 예제와 'Reading benchmark results' 섹션에서 job.show_result()와 result.metrics 접근 예시가 제공됨.
with ThreadPoolExecutor(max_workers=2) as ex:
futures = {
ex.submit(run_rec, mb_lmi, "LMI"): InferenceFramework.LMI,
ex.submit(run_rec, mb_vllm, "VLLM"): InferenceFramework.VLLM,
}
for fut in as_completed(futures):
print(f"[{futures[fut]}] rec job complete.")
# 이후 더 높은 throughput을 보인 프레임워크의 mb를 선택해 deploy이 예시는 LMI와 vLLM 두 프레임워크에 대해 병렬로 추천 작업을 실행해 서로 비교하는 패턴을 담고 있다. 각 프레임워크별 ModelBuilder로 빌드·추천을 실행한 뒤, mb.recommendations.best.expected_performance.request_throughput.avg 같은 지표로 우승 프레임워크를 결정해 그쪽을 배포하면 된다. 실무에서는 동일 입력·동시성 프로파일로 프레임워크별 차이를 정량적으로 판단하는 데 유용하다.
용어 해설
- 배포 추천(Deployment recommendations)
- — 실행 중인 워크로드 프로파일을 바탕으로 후보 인스턴스·프레임워크 조합을 자동으로 배포해 부하 테스트를 수행하고 비용·성능 절충을 기준으로 랭킹해 최적 구성을 선택하도록 돕는 절차이다. 입력으로는 토큰 분포·동시성 등 실제 사용 패턴을 사용하고 출력으로는 랭킹된 구성과 예상 성능 지표를 제공한다.
- 벤치마크(Benchmarking)
- — 엔드포인트에 합성 또는 실제 트래픽을 보내 처리량, TimeToFirstToken, end-to-end 지연 등 핵심 메트릭을 수집하는 과정으로, 입력→부하생성→측정의 파이프라인을 통해 서비스 수준 목표 충족 여부를 검증한다. SDK는 이를 프로그래밍 방식으로 실행해 결과 객체와 데이터프레임 변환을 제공한다.
- 첫 토큰 응답 시간(TimeToFirstToken (TTFT))
- — 요청을 보낸 시점부터 스트리밍으로 첫 토큰이 도착할 때까지의 지연을 백분위수(p50/p90/p99)로 측정하는 메트릭으로, 대화형 애플리케이션에서 사용자 체감 응답성을 직접 반영한다. 최적화 대상 성능 목표로 자주 사용된다.
- SageMaker JumpStart(JumpStart)
- — 사전학습 모델과 배포 구성을 빠르게 사용하도록 제공하는 SageMaker의 기능 모음으로, ModelBuilder.from_jumpstart_config로 JumpStart 모델을 불러와 빌드·배포·벤치마크 파이프라인에서 바로 사용할 수 있다. 실험 초기 모델 소스로 활용된다.
- vLLM
- — 고성능 대규모 언어 모델 추론을 목표로 하는 오픈소스/서빙 프레임워크로, LMI와 비교해 동일 입력에서의 처리량·지연 특성이 다를 수 있어 추천 작업 시 대안 프레임워크로 병렬 실험해 우열을 가린다.
기술
- Amazon SageMaker Python SDK v3
- SageMaker JumpStart
- LMI
- vLLM
- pandas
활용 사례
- 대화형 챗봇처럼 응답 시간(첫 토큰 응답)이 중요한 레이턴시 민감형 서비스의 배포 최적화
- 대량 텍스트 생성이나 요약처럼 처리량이 우선인 배치형 워크로드의 비용 대비 토큰 생산성 최대화
- 실험 환경에서 추천(job) 생성과 프로덕션 배포를 분리하는 MLOps 워크플로우
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.