추론 프레임워크

지원 버전: Kubernetes 1.31, 1.32, 1.33 마지막 업데이트: 2026년 2월 25일

이 장에서는 Amazon EKS에서 대규모 언어 모델(LLM)을 배포하기 위한 vLLM 이외의 고급 추론 프레임워크를 다룹니다. NVIDIA NIM, NVIDIA Dynamo, AIBrix, Ray Serve 통합, 그리고 Inferentia2를 위한 AWS Neuron을 살펴봅니다.

추론 프레임워크 생태계

LLM 추론 생태계는 빠르게 발전하고 있으며, 여러 프레임워크가 프로덕션 배포의 다양한 측면을 다루고 있습니다. 다음 다이어그램은 이러한 프레임워크 간의 관계를 보여줍니다:

spinner

프레임워크 선택 가이드

사용 사례
권장 프레임워크
이유

NVIDIA GPU를 사용한 엔터프라이즈 프로덕션

NVIDIA NIM

최적화된 컨테이너, 지원, 모니터링

KV 캐시 최적화가 필요한 고처리량

NVIDIA Dynamo

분리형 서빙, 지능형 라우팅

LoRA 어댑터를 사용한 멀티테넌트

AIBrix

네이티브 LoRA 관리, 이기종 GPU

대규모 분산 추론

Ray Serve + vLLM

성숙한 오케스트레이션, 자동 스케일링

AWS 실리콘을 통한 비용 최적화

AWS Neuron + Inferentia2

GPU 대비 40-70% 비용 절감

연구 및 실험

vLLM 단독

간단한 설정, 활발한 커뮤니티

NVIDIA NIM

NVIDIA NIM(NVIDIA Inference Microservices)은 최적화된 추론 엔진, 내장 모니터링, OpenAI 호환 API를 갖춘 프로덕션 준비 컨테이너화된 LLM 배포를 제공합니다.

NIM 아키텍처

spinner

사전 요구 사항

NIM을 배포하기 전에 다음을 확인하세요:

Karpenter를 사용한 NIM 배포

먼저 GPU 워크로드를 위한 Karpenter NodePool을 구성합니다:

NIM 배포 매니페스트

Llama 3.1 70B로 NVIDIA NIM 배포:

OpenAI 호환 API 사용

NIM은 OpenAI 호환 API를 제공합니다:

Python 클라이언트 예제:

NIM 성능 메트릭

NIM 배포에서 모니터링해야 할 주요 메트릭:

메트릭
설명
목표값

TTFT (Time to First Token)

첫 번째 토큰이 생성될 때까지의 지연 시간

< 500ms

ITL (Inter-Token Latency)

연속 토큰 간의 시간

< 50ms

Throughput

초당 생성되는 토큰 수

모델에 따라 다름

GPU Utilization

GPU 컴퓨트 활용률

80-95%

KV Cache Utilization

KV 캐시 메모리 사용량

< 90%

Queue Depth

대기열의 대기 중인 요청

< 100

GenAI-Perf 벤치마킹

NVIDIA GenAI-Perf를 사용한 벤치마킹:

NVIDIA Dynamo

NVIDIA Dynamo는 Prefill(프롬프트 처리) 단계와 Decode(토큰 생성) 단계를 분리하여 최적의 리소스 활용을 가능하게 하는 추론 그래프 오케스트레이션 프레임워크입니다.

Dynamo 아키텍처

spinner

핵심 개념

  1. 분리형 서빙 (Disaggregated Serving): Prefill(컴퓨트 집약적) 단계와 Decode(메모리 대역폭 집약적) 단계 분리

  2. KV 캐시 라우팅: KV 캐시 지역성을 기반으로 지능적인 요청 라우팅

  3. 멀티 런타임 지원: vLLM, SGLang, TensorRT-LLM 백엔드와 함께 작동

  4. 이기종 GPU 지원: Prefill과 Decode 워크로드에 서로 다른 GPU 유형 사용

Dynamo 배포

AIBrix

AIBrix는 LLM 게이트웨이/라우팅, LoRA 어댑터 관리, 애플리케이션 맞춤형 오토스케일링, 이기종 GPU 지원을 제공하는 오픈소스 GenAI 추론 인프라입니다.

AIBrix 구성 요소

AIBrix는 여러 핵심 구성 요소로 이루어져 있습니다:

  1. Gateway: 지능형 요청 라우팅 및 로드 밸런싱

  2. LoRA Manager: 동적 LoRA 어댑터 로딩 및 관리

  3. Autoscaler: 추론 파드를 위한 워크로드 인식 오토스케일링

  4. Model Registry: 중앙 집중식 모델 및 어댑터 관리

AIBrix 배포

AIBrix LoRA 관리

LoRA 어댑터 등록 및 관리:

Ray Serve 통합

Ray Serve는 Kubernetes 네이티브 배포를 위한 KubeRay 오퍼레이터와 함께 분산 서빙 기능을 제공합니다.

KubeRay Operator 설치

vLLM과 Ray Serve 배포

AWS Neuron과 Inferentia2

AWS Neuron SDK를 사용하면 GPU 인스턴스에 비해 상당한 비용 절감을 제공하는 비용 효율적인 Inferentia2(inf2) 인스턴스에서 LLM을 실행할 수 있습니다.

Neuron SDK 개요

AWS Inferentia2 제공 기능:

  • GPU 인스턴스 대비 최대 70% 낮은 비용

  • 추론 워크로드를 위한 높은 처리량

  • 인기 있는 모델 지원: Llama 2/3, Mistral, Stable Diffusion

지원 인스턴스 유형

인스턴스 유형
Neuron 코어
메모리
사용 사례

inf2.xlarge

2

32 GB

소형 모델 (7B)

inf2.8xlarge

2

32 GB

중형 모델 (배칭과 함께 7B)

inf2.24xlarge

6

96 GB

대형 모델 (13B-70B)

inf2.48xlarge

12

192 GB

초대형 모델 (70B+)

Neuron Device Plugin 설치

Inferentia2를 위한 Karpenter NodePool

Neuron에서의 vLLM 배포

프레임워크 비교

기능 비교 매트릭스

기능
NIM
Dynamo
AIBrix
vLLM
Ray+vLLM
Triton

OpenAI API

지원

지원

지원

지원

지원

백엔드 통해

텐서 병렬화

지원

지원

지원

지원

지원

지원

파이프라인 병렬화

지원

지원

미지원

지원

지원

지원

분리형 서빙

미지원

지원

미지원

미지원

미지원

미지원

KV 캐시 라우팅

미지원

지원

미지원

미지원

미지원

미지원

LoRA 지원

제한적

지원

지원

지원

지원

지원

멀티 모델

지원

지원

지원

미지원

지원

지원

자동 스케일링

수동

수동

내장

수동

내장

수동

GPU 메모리 최적화

높음

높음

중간

높음

높음

높음

멀티 백엔드

TRT-LLM

vLLM/SGLang/TRT

vLLM/SGLang

-

-

다중

엔터프라이즈 지원

지원

지원

커뮤니티

커뮤니티

커뮤니티

지원

Neuron 지원

미지원

미지원

미지원

지원

지원

지원

성능 비교 (Llama 3.1 70B, 8x A100)

프레임워크
TTFT (P99)
ITL (P99)
처리량 (tok/s)
최대 동시성

NIM

450ms

35ms

2,800

128

Dynamo

380ms

30ms

3,200

256

vLLM

520ms

40ms

2,400

96

Ray+vLLM

550ms

42ms

2,300

128

Triton+TRT-LLM

400ms

32ms

3,000

128

비용 비교 (월간, 일 100만 요청)

프레임워크
인스턴스 유형
수량
월간 비용
1K 요청당 비용

NIM

p4d.24xlarge

2

$48,000

$0.80

vLLM

p4d.24xlarge

3

$72,000

$1.20

Dynamo

p4d + g5 혼합

2+4

$52,000

$0.87

Neuron

inf2.48xlarge

4

$28,000

$0.47

Ray+vLLM

g5.48xlarge

4

$38,000

$0.63

모범 사례

프레임워크 선택 가이드라인

  1. NIM을 선택해야 하는 경우:

    • 엔터프라이즈 지원 및 SLA가 필요한 경우

    • NVIDIA GPU만 독점적으로 사용하는 경우

    • 최소한의 튜닝으로 사전 최적화된 컨테이너가 필요한 경우

    • Grafana 기반 모니터링을 선호하는 경우

  2. Dynamo를 선택해야 하는 경우:

    • 높은 처리량이 중요한 경우

    • 분리형 서빙의 이점을 활용할 수 있는 경우

    • 이기종 GPU 유형을 사용하는 경우

    • KV 캐시 지역성이 워크로드에 중요한 경우

  3. AIBrix를 선택해야 하는 경우:

    • LoRA 어댑터를 사용한 멀티테넌트 배포

    • 내장 오토스케일링이 필요한 경우

    • 같은 클러스터에서 혼합 GPU 유형을 사용하는 경우

    • 유연한 라우팅 전략이 필요한 경우

  4. Ray Serve를 선택해야 하는 경우:

    • 이미 Ray 생태계를 사용 중인 경우

    • 복잡한 서빙 파이프라인이 필요한 경우

    • Python 네이티브 배포가 필요한 경우

    • 멀티 모델 서빙이 필요한 경우

  5. Neuron을 선택해야 하는 경우:

    • 비용 최적화가 주요 목표인 경우

    • 워크로드가 inf2 제약에 맞는 경우

    • 컴파일 오버헤드를 수용할 수 있는 경우

    • 지원되는 모델(Llama, Mistral)을 실행하는 경우

프로덕션 배포 체크리스트

참고 자료

퀴즈

이 장에서 배운 내용을 테스트하려면 추론 프레임워크 퀴즈를 풀어보세요.

마지막 업데이트