본문으로 건너뛰기

SageMaker SDK로 노트북에서 생성형 추론 추천과 벤치마크

SDK v3으로 노트북에서 엔드투엔드 추론 추천·벤치마크·배포를 한 곳에서 실행한다

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

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 v3(버전 3.17.0 이상)는 sagemaker.serve.ai_inference_recommender 패키지를 통해 노트북 환경에서 생성형 AI 추론 최적화 워크플로를 통합한다; 사용자는 ModelBuilder.from_jumpstart_config로 모델을 가져오고 mb.generate_deployment_recommendations로 후보 구성을 자동으로 탐색해 랭킹된 추천을 도출하며 mb.deploy로 상위 구성을 실시간 엔드포인트에 배포할 수 있어 콘솔과 API 호출 간 전환 없이 모든 단계를 코드로 연결할 수 있다. 이 흐름은 실제 트래픽 프로파일이나 합성 워크로드를 입력으로 받아 각 후보에 대해 부하 테스트를 실행하고 RequestThroughput, TimeToFirstToken, RequestLatency 같은 지표를 수집해 비용·성능 기준으로 순위를 정하는 방식으로 작동한다. 노트북 기반으로 실험·해석·배포·벤치마크를 연속적으로 수행하면 MLOps 파이프라인과의 통합이 쉬워진다.
근거
  • 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'라는 문구가 있음.
새로 추가된 주요 API는 ModelBuilder.from_jumpstart_config, start_benchmark, mb.generate_deployment_recommendations, mb.deploy, 그리고 ModelBuilder.from_recommendation_job이며, 각 API는 엔드투엔드 최적화의 입력·프로세스·출력을 명확히 분리한다. 예를 들어 generate_deployment_recommendations는 토크나이저, 동시성, 평균 토큰 길이, 성능 목표(TTFT 등)를 받아 후보별로 모델을 배포하고 부하를 걸어 예상 처리량과 지연을 산출해 랭킹 테이블을 반환한다. 이 결과물은 pandas 데이터프레임으로 변환해 각 후보의 RequestThroughput·OutputTokenThroughput·TimeToFirstToken·RequestLatency를 비교하고 비용·성능 절충을 근거로 선택할 수 있게 한다.
python
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 예제 코드와 해당 설명에서 서비스가 각 후보를 배포하고 부하 테스트를 실행해 랭킹된 목록을 반환한다고 기술되어 있음.
추천 결과의 해석은 핵심 메트릭을 우선순위로 삼아 이루어지며, TimeToFirstToken(TTFT)은 대화형 UX 민감도를, RequestThroughput과 OutputTokenThroughput은 배치·처리량 민감도를 각각 반영한다. 문서의 예시에서는 동일 인스턴스(ml.g6.2xlarge)에서 LMI 컨테이너 버전 차이로 랭킹 0은 112.8 req/s와 3,609 tokens/s, p90 TTFT 983 ms, p90 latency 약 1,000 ms를 기록했고 랭킹 1은 96.9 req/s와 3,099 tokens/s, p90 TTFT 1,088 ms, p90 latency 1,122 ms를 기록해 랭킹 0이 약 16% 높은 처리량과 약 10% 낮은 지연을 보였다. 사용자는 우선 목표 성능 지표(예: TTFT)를 설정하면 옵티마이저가 그 목표를 기준으로 후보를 정렬하므로 목표 설정이 결과 선택에 직접적 영향을 준다는 점을 고려해야 한다.
근거
  • 추천 결과에는 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의 수치 및 퍼센트 차이가 명시되어 있음.
배포 검증을 위한 벤치마크는 start_benchmark로 수행하며 합성 워크로드로 throughput, p50/p90/p99 지연, 토큰 수준 타이밍 등을 수집해 서비스 수준 목표 충족 여부를 판정한다; 반환되는 결과 객체의 typed metrics는 IDE 자동완성을 통해 programmatic하게 접근 가능하고, 예시 결과는 request_throughput avg 3.84 req/sec, time_to_first_token avg 91.77 ms, request_latency p90 257.9 ms 등 다양한 메트릭을 제공한다. 벤치마크 결과는 데이터프레임으로 정리해 이력 관리나 비교 실험에 활용하는 것이 권장된다.
프레임워크 선택을 위해 LMI와 vLLM을 병렬로 추천 작업에 넣어 최상위 권장안의 처리량·지연을 비교하는 패턴을 제시하며, 코드 예시는 ThreadPoolExecutor로 두 추천 작업을 동시에 실행해 각 프레임워크의 best 추천을 비교해 우승 프레임워크를 자동으로 배포하는 흐름을 보여준다. 이 방식은 동일한 입력 프로파일과 동시성 조건에서 프레임워크 간 성능 차이를 정량적으로 판단해 운영 환경에 맞는 서빙 스택을 결정하도록 해준다.
python
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 접근 예시가 제공됨.
운영 고려사항으로는 SDK 버전(>=3.17.0), 적절한 IAM 권한, 실험용 엔드포인트 또는 JumpStart 모델 준비가 필요하며, 추천·벤치마크로 생성된 엔드포인트는 실험 종료 후 삭제해 비용을 관리해야 한다. 문서와 샘플 노트북은 노트북에서 추천 생성·배포·벤치마크·프레임워크 비교의 네 가지 시나리오를 엔드투엔드로 제공하므로 실무 전환 시 재현 가능한 실험 프로세스를 구성하는 데 활용할 수 있다.
python
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 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 07.수집 2026. 08. 07.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.