LLM 서빙

LLM 추론을 위한 다양한 inference engine들을 조사하여 각 엔진의 아키텍처, 특징, 최적화 기법, 장단점을 정리했습니다.

주요 LLM Inference Engine

1. vLLM (UC Berkeley)

  • V1 Alpha 아키텍처: 비동기 스케줄링과 성능 오버헤드 최소화로의 대대적 전환
  • Chunked Prefill: 긴 프롬프트를 쪼개어 처리하여 TTFT와 ITL(지연 시간)의 균형 최적화
  • Automatic Prefix Caching: 해시 기반 KV 캐시 재사용으로 멀티턴 대화 속도 극대화
  • 멀티모달 지원: Vision(LLaVA, Qwen2-VL) 및 Audio 모델의 인코더 캐싱 지원

2. SGLang

  • RadixAttention: 기수 트리(Radix Tree) 구조를 이용한 계층적 KV 캐시 관리로 vLLM 대비 높은 적중률
  • 압도적 처리량: Llama 3.1 기준 vLLM 대비 최대 29%~116% 높은 토큰 처리량 달성
  • 구조적 생성 최적화: JSON, XML 등 구조화된 데이터 생성 시 Compressed FSM으로 속도 향상
  • DeepSeek 최적화: FlashMLA 및 DeepGemm 커널 통합으로 DeepSeek V3/R1 최적 추론 지원

3. TensorRT-LLM (NVIDIA)

  • Blackwell (GB200) 지원: 2세대 Transformer Engine을 활용한 FP4(4-bit) 정밀도 추론 지원
  • EAGLE-3 투기적 디코딩: 하드웨어 성능을 넘어서는 최대 4배의 추가 속도 향상
  • Disaggregated Serving: Prefill과 Decode 단계를 서로 다른 GPU 노드에서 처리하여 효율성 극대화
  • PyTorch 워크플로우: v1.0부터 PyTorch 기반 설계가 기본 채택되어 개발 편의성 개선

4. Ollama

  • 병렬 도구 호출 (Parallel Tool Calling): 한 번의 응답에서 여러 함수를 동시에 호출하고 처리
  • MCP (Model Context Protocol) 지원: Anthropic의 개방형 표준을 통한 외부 도구 및 데이터 연결
  • 동시성 관리: 다중 GPU 환경에서 메모리 부족(OOM)을 방지하는 지능형 모델 스케줄링
  • API 호환성: OpenAI 뿐만 아니라 Anthropic Messages API와의 완벽한 호환성 제공

5. HuggingFace TGI

  • 유지보수 모드 전환: 2025년 12월부로 신규 기능 추가 중단 (vLLM, SGLang 사용 권장)
  • TGI v3.0: 긴 프롬프트(200k+) 처리 시 이전 버전 대비 13배 속도 향상 달성
  • Zero Config: 하드웨어별 최적 설정을 자동으로 적용하는 편의성 제공

6. LMDeploy

  • TurboMind 엔진: C++/CUDA 기반의 고도화된 엔진으로 vLLM 대비 최대 1.8배 높은 처리량
  • MXFP4 지원: Microscaling Formats 지원으로 H800 등 최신 하드웨어 성능 극대화
  • 양자화 특화: W4A16, KV8/KV4 등 다양한 양자화 기법에서 업계 최고 수준의 속도 제공

7. LightLLM

  • LiteLLM 통합: LLM 게이트웨이인 LiteLLM과의 결합으로 관리 편의성 및 생태계 확장
  • Token Attention: 효율적인 KV 캐시 관리를 통해 경량 서빙 환경에서의 처리량 개선

8. FlexFlow Serve

  • 트리 기반 투기적 추론: 작은 모델(SSM)을 이용한 트리 형태의 다중 토큰 예측 및 병렬 검증
  • CPU 오퍼로딩: 대형 모델을 단일 GPU에서 구동하기 위한 효율적인 메모리 관리 기법 도입

9. MLC LLM

  • MLCEngine: iOS/Android 네이티브 앱 통합을 위한 Swift/Kotlin 바인딩 제공
  • WebLLM: WebGPU 가속을 통한 브라우저 내 서버리스 LLM 추론 (Llama 3, Qwen 2.5 지원)
  • JSON 모드: 브라우저 환경에서도 구조화된 데이터 생성 및 함수 호출 지원

10. KTransformers

  • 하이브리드 추론: 일반 PC(RTX 4090 + RAM)에서 DeepSeek-V3/R1(671B)과 같은 초거대 모델 구동 가능
  • DeepSeek 전용 최적화: FlashMLA, DeepGemm 등 최신 전용 커널을 내장하여 추론 효율 극대화

11. ExLlamaV2

  • NVIDIA 극한 속도: 순수 C++/CUDA 기반으로 Llama 아키텍처에서 타 엔진 대비 압도적인 디코딩 속도 달성
  • EXL2 양자화: 정밀한 비트 레이트 조절로 가진 VRAM에 최적화된 모델 서빙 가능

12. Aphrodite Engine

  • vLLM 대안 서빙: vLLM 아키텍처를 계승하면서도 프로덕션 환경에서의 안정성과 버그 수정에 집중
  • 멀티 테넌트 최적화: 대규모 사용자 대상 API 서비스에서 균일한 품질의 추론 결과 제공

성능 비교 및 선택 가이드

처리량 중심 비교 (Llama 3 70B, A100 80GB)

Engine Tokens/s (100 users) 특징
LMDeploy 700 TurboMind 엔진
TensorRT-LLM ~700 NVIDIA 최적화
ExLlamaV2 800+ (Single user) NVIDIA 전용 극한의 속도
SGLang 118 (Hermes-3) 저지연 특화
vLLM ~400-500 균형잡힌 성능
TGI ~300-400 안정성 중심

사용 시나리오별 추천

고성능 프로덕션

  • TensorRT-LLM: NVIDIA GPU + 최고 성능 필요시
  • LMDeploy: 빠른 배포 + 높은 처리량
  • Aphrodite Engine: 안정성 중심의 서비스 운영

연구 및 실험

  • SGLang: 최신 기법 실험
  • vLLM: 범용적 연구 플랫폼

로컬 배포

  • Ollama: 개인/소규모 팀 (최고의 편의성)
  • ExLlamaV2: NVIDIA GPU 환경에서의 극한의 텍스트 생성 속도
  • KTransformers: 일반 PC에서 DeepSeek-V3/R1 등 초거대 모델 구동
  • MLC LLM: 모바일/엣지 디바이스

엔터프라이즈

  • TGI: Hugging Face 생태계 유지보수
  • vLLM: 클라우드 확장성

특수 요구사항

  • FlexFlow Serve: 멀티 노드 분산 추론
  • LightLLM: 경량 고속 서빙

선택 시 고려사항

각 inference engine은 서로 다른 디코딩 전략과 최적화 기법을 적용하여 특정 사용 사례에 최적화되어 있습니다. 선택 시 다음 요소들을 종합적으로 고려해야 합니다:

  • 하드웨어 환경: GPU 종류, 메모리 용량, CPU 성능
  • 성능 요구사항: 처리량, 지연시간, 동시 사용자 수
  • 개발 복잡성: 설정 난이도, 학습 곡선, 유지보수
  • 확장성: 수평/수직 확장, 클라우드 배포, 분산 처리
  • 생태계: 모델 지원, 커뮤니티, 문서화 품질
  • 라이선스: 상업적 사용, 오픈소스 정책

자세한 내용은 각 엔진의 상세 페이지를 참조하시기 바랍니다.


Table of contents


This site uses Just the Docs, a documentation theme for Jekyll.