핵심 요점
- vLLM과 Hugging Face TGI는 고처리량 다중 테넌트 서빙을 위한 두 주요 오픈소스 추론 서버(Apache 2.0)이며, 둘 다 continuous batching과 멀티 GPU 텐서 병렬 처리를 지원합니다.
- NVIDIA NIM은 TensorRT-LLM을 감싼 유료 사전 빌드 마이크로서비스(NVIDIA AI Enterprise 구독)로, NVIDIA 하드웨어에서 최고 처리량과 벤더 지원 SLA를 제공합니다.
- Ollama는 엔터프라이즈 다중 테넌트 서빙을 위해 설계되지 않았습니다 -- 단일 노드, 단일 사용자 지향 런타임입니다. 개발자 노트북과 에지/부서 단위 프로토타입에 사용하고, 프로덕션 API 트래픽에는 사용하지 마세요.
- Kubernetes 배포 성숙도는 다릅니다: vLLM과 TGI는 커뮤니티/공식 Helm 차트를 제공하고, NIM은 NVIDIA 자체 Operator를 갖고 있으며, Ollama는 네이티브 오토스케일링 훅이 없는 커뮤니티 차트만 있습니다.
- 라이선스가 총비용을 좌우합니다: vLLM과 TGI는 무료 오픈소스입니다. NIM은 GPU 자체 비용에 더해 GPU당 구독 비용을 추가하는 대신 지원과 완성된 최적화를 제공합니다.
- 옵저버빌리티는 크게 다릅니다: vLLM과 TGI는 기본으로 Prometheus 메트릭을 노출하고, NIM은 NVIDIA의 DCGM/Base Command 모니터링 스택과 통합되며, Ollama는 내장 텔레메트리가 최소한입니다.
- 최고의 오픈소스 비용 대비 처리량을 원하면 vLLM, 이미 Hugging Face 생태계 안에 있다면 TGI, 벤더 지원이 필요하고 비용을 감당할 수 있다면 NIM을 사용하고, Ollama는 프로토타이핑 용도로만 남겨두세요.
📍 한 문장으로
엔터프라이즈 멀티 GPU LLM 서빙에서는 vLLM과 Hugging Face TGI가 프로덕션 준비가 된 두 오픈소스 옵션이고, NVIDIA NIM은 유료 턴키 대안이며, Ollama는 다중 테넌트가 아닌 단일 사용자를 위해 설계되었습니다.
💬 쉽게 말하면
노트북에서 AI 모델 하나를 실행하는 것과 공유 GPU 풀에서 수백 명의 직원이나 고객에게 서비스하는 것은 다른 문제입니다. vLLM과 TGI는 두 번째 문제를 위해 만들어진 무료 소프트웨어입니다. NVIDIA NIM은 NVIDIA 지원이 뒷받침되는 유료 사전 패키징 제품으로 같은 작업을 수행합니다. 대부분의 사람들이 모델을 로컬로 테스트할 때 쓰는 Ollama는 그렇게 많은 동시 사용자를 염두에 두고 설계되지 않았습니다.
엔터프라이즈 LLM 추론 서버란 무엇인가
엔터프라이즈 LLM 추론 서버는 많은 사용자나 애플리케이션의 동시 요청을 받아 공유 GPU 풀 전체에 효율적으로 라우팅하는 소프트웨어 계층입니다. 이는 한 대의 머신에서 하나의 프로세스에 하나의 모델을 로드하는 단일 사용자용 런타임과는 다릅니다.
엔터프라이즈급 서빙 소프트웨어를 노트북용 도구와 구분하는 세 가지가 있습니다: continuous batching(진행 중인 여러 요청을 같은 GPU 패스에 묶는 것), 멀티 GPU 병렬 처리(하나의 모델을 여러 GPU나 노드에 분할하는 것), 그리고 플랫폼 팀이 Kubernetes 안에서 운영할 수 있는 프로덕션 API 표면(헬스체크, 메트릭, 오토스케일링 훅)입니다.
vLLM, Hugging Face TGI, NVIDIA NIM은 모두 처음부터 이 세 가지 요구사항을 중심으로 설계되었습니다. llama.cpp를 기반으로 한 Ollama는 단일 머신에서의 이식성과 사용 편의성을 중심으로 설계되었습니다 -- 다르지만 그 자체로 타당한 목표이지만, 같은 목표는 아닙니다. "내 PC에 가장 쉽게 설치할 수 있는 것은 무엇인가"가 실제로 궁금한 질문이라면 단일 사용자 엔진 비교 글을 참고하세요 -- 이 가이드는 그 의사결정의 반대편을 다룹니다.
기능 비교: vLLM vs TGI vs NVIDIA NIM vs Ollama
| 항목 | vLLM | TGI | NVIDIA NIM | Ollama |
|---|---|---|---|---|
| 라이선스 | Apache 2.0 / 무료 | Apache 2.0 / 무료 | NVIDIA AI Enterprise / 유료 | MIT / 무료 |
| 설계 목적 | 고처리량 GPU 서빙 | HF 네이티브 프로덕션 서빙 | 완성형 엔터프라이즈 NVIDIA 스택 | 단일 사용자, 비다중 테넌트 |
| 멀티 GPU | 텐서+파이프라인 병렬 | 텐서 병렬 | 텐서 병렬(TensorRT-LLM) | 단일 노드만 |
| Continuous batching | 지원(PagedAttention) | 지원(Rust 라우터) | 지원(Triton 백엔드) | 제한적/실험적 |
| 양자화 | GPTQ / AWQ / FP8 / INT4 | GPTQ / AWQ / bitsandbytes | FP8 / INT4(TensorRT-LLM) | GGUF Q4-Q8 |
| Kubernetes 배포 | Helm 차트 / KServe | 공식 HF Helm 차트 | NIM Operator(공식) | 커뮤니티 차트만 |
| 지원 모델 | 커뮤니티 / GitHub | 커뮤니티 + HF 계약 | SLA 기반 NVIDIA 지원 | 커뮤니티만 |
| 옵저버빌리티 | 내장 Prometheus 메트릭 | Prometheus + OTel 추적 | NVIDIA DCGM + Prometheus | 최소/내장 없음 |
vLLM 이해하기: 오픈소스 처리량 선두주자
vLLM은 멀티 GPU 고처리량 서빙을 위해 특별히 설계된 오픈소스 추론 서버(Apache 2.0)입니다. UC 버클리의 Sky Computing Lab에서 시작되었으며, 프로덕션 LLM API에서 가장 널리 배포된 오픈소스 엔진 중 하나입니다.
- PagedAttention: KV 캐시를 요청마다 연속으로 할당하는 대신 고정 크기 블록으로 관리해, 달성 가능한 GPU 메모리 활용률을 높이고 더 많은 동시 요청이 하나의 GPU를 공유할 수 있게 합니다.
- Continuous batching: 새 요청이 현재 배치가 끝나기를 기다리지 않고 실행 중인 배치에 합류해, 변동하는 트래픽에서도 GPU 활용률을 높게 유지합니다.
- 멀티 GPU 및 멀티 노드: 텐서 병렬 처리는 하나의 노드 내 여러 GPU에 모델의 레이어를 분할하고, 파이프라인 병렬 처리는 한 노드의 합산 VRAM을 초과하는 모델을 여러 노드에 분할합니다.
- 양자화: GPTQ, AWQ, FP8, INT4 형식이 레플리카당 VRAM 사용량을 줄여, 고정된 GPU 플릿이 수용할 수 있는 동시 모델 레플리카 수를 늘립니다.
- OpenAI 호환 API:
vllm serve <model>은 OpenAI Chat Completions API를 그대로 대체할 수 있는 엔드포인트를 제공해 애플리케이션 측 통합 작업을 최소화합니다. - vLLM은 공식 Helm 차트를 제공하며 Kubernetes 네이티브 모델 서빙을 위해 KServe와도 통합됩니다. 오토스케일링은 요청 큐 깊이나 GPU 활용률에 따라 구동할 수 있습니다.
# 4개 GPU에서 텐서 병렬로 모델 서빙
pip install vllm
vllm serve meta-llama/Llama-3.3-70B-Instruct \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.9 \
--host 0.0.0.0 --port 8000Hugging Face TGI 이해하기: HF 네이티브 옵션
Hugging Face Text Generation Inference(TGI)는 Hugging Face Hub에 호스팅된 모델을 프로덕션에 배포하기 위해 Hugging Face가 만든 오픈소스 추론 서버(Apache 2.0)입니다. Hugging Face 자체의 Inference Endpoints 제품을 구동하고 있어, 이미 프로덕션에서 엔터프라이즈 규모의 트래픽을 처리하고 있습니다.
- Rust 기반 요청 라우터: 순수 Python 라우터보다 요청당 오버헤드가 낮게 큐잉과 continuous batching을 처리합니다.
- Flash Attention과 Paged Attention: TGI는 vLLM과 동일한 메모리 효율화 기법을 채택해, 비슷한 하드웨어에서 두 엔진 간 처리량 격차 대부분을 해소했습니다.
- 텐서 병렬 처리: 하나의 노드 내 여러 GPU에 모델을 분할합니다. 멀티 노드 서빙도 지원하지만, vLLM만큼 자체 도구가 성숙하지는 않았습니다.
- 양자화: bitsandbytes, GPTQ, AWQ, EETQ 형식을 지원합니다.
- Hugging Face Hub 네이티브 통합: 모델이 이미 Hub에 호스팅되어 있다면 모델, 토크나이저, safetensors 가중치를 수동 변환 없이 그대로 가져올 수 있습니다.
- 라이선스 참고: TGI는 2023~2024년 사이 Hugging Face가 작성한 더 제한적인 라이선스(HFOILv2)로 잠시 배포된 후 Apache 2.0으로 돌아왔습니다 -- 배포 매니페스트에 고정된 라이선스 버전을 확인하세요. 오래된 캐시 이미지에는 제한적인 태그가 남아 있을 수 있습니다.
NVIDIA NIM 이해하기: 벤더 지원 옵션
NVIDIA NIM(NVIDIA Inference Microservices)은 NVIDIA의 TensorRT-LLM 추론 엔진을 표준화된 API 뒤에 감싼 유료 사전 빌드 컨테이너로, NVIDIA AI Enterprise 구독의 일부로 판매됩니다. vLLM과 TGI의 직접 구성 부담을, 지원이 뒷받침되고 사전 최적화된 배포로 맞바꿉니다.
- TensorRT-LLM 최적화 컨테이너: NVIDIA는 모델별, GPU 세대별(H100, A100, L40S)로 추론 커널을 사전 컴파일하고 튜닝하며, 이는 보통 NVIDIA 하드웨어에서 네 옵션 중 GPU당 최고 처리량을 냅니다.
- NVIDIA 지원 및 SLA: 오픈소스 옵션과의 차별점입니다 -- 플랫폼 팀이 벤더 계약에 명시할 수 있는 지원 티켓 경로와 가용성 약속입니다.
- Kubernetes용 NIM Operator: 클러스터 내에서 NIM 컨테이너를 배포, 확장, 관리하는 NVIDIA 자체의 Helm 기반 Operator로, NVIDIA 자체 모니터링 스택(DCGM Exporter, Base Command)과의 통합을 포함합니다.
- 모델 카탈로그: NVIDIA는 오픈 웨이트 모델을 사전 패키징한 NIM 컨테이너의 엄선된 세트를 유지하며, 자체 파인튜닝 모델을 패키징하는 경로도 제공합니다.
- 트레이드오프는 벤더 종속과 라이선스 비용입니다: NIM은 NVIDIA GPU에서만 효율적으로 동작하며, 구독료는 하드웨어 비용에 더해 GPU당 연간으로 부과됩니다 -- 예산을 세우기 전 NVIDIA AI Enterprise에서 현재 가격을 직접 확인하세요. 엔터프라이즈 소프트웨어 구독 가격은 큰 공지 없이 변경되는 경우가 많습니다.
Ollama가 엔터프라이즈 서빙 엔진이 아닌 이유
Ollama는 엔터프라이즈 다중 테넌트 추론 서빙을 위해 설계되지 않았으며, 이는 결함이 아니라 설계 의도입니다. Ollama는 llama.cpp를 간단한 REST API와 명령어 한 줄로 모델을 내려받는 방식으로 감싸, 한 대의 머신에서 하나의 모델을 실행하는 개발자를 위해 최적화되었습니다.
- 동시성: Ollama는 기본적인 병렬 요청 처리를 추가했지만, continuous batching이나 PagedAttention 방식의 메모리 관리가 없어 같은 GPU에서 동시 사용자가 많아지면 vLLM이나 TGI보다 처리량이 더 빠르게 저하됩니다.
- 멀티 GPU: Ollama는 한 대의 머신 내에서 큰 모델을 여러 GPU에 분할할 수 있지만, vLLM에 필적하는 네이티브 텐서 병렬 처리나 멀티 노드 분산 서빙은 없습니다.
- Kubernetes: 커뮤니티가 유지 관리하는 Helm 차트만 존재합니다. 자체 Kubernetes Operator, 오토스케일러 통합, 벤더 지원 계약은 없습니다.
- 옵저버빌리티: 내장 메트릭이 최소한입니다 -- vLLM, TGI와 달리 기본적으로 Prometheus 엔드포인트가 없습니다.
- Ollama가 여전히 기업 내에서 올바른 도구인 경우: 개발자 노트북, 내부 트래픽이 적은 부서 단위 프로토타입, 또는 한 번에 한 명의 사용자만 처리하는 에어갭 에지 디바이스입니다. 트래픽이 다중 테넌트 동시성을 필요로 하는 순간 vLLM, TGI, NIM으로 이전하세요 -- 그 이전의 하드웨어 측면은 로컬 LLM 멀티 GPU 구성을 참고하세요.
단일 노드 vs 멀티 노드 아키텍처 결정
첫 번째 아키텍처 결정은 단일 노드냐 멀티 노드냐이며, 이는 트래픽 양만이 아니라 모델이 한 노드의 합산 GPU 메모리에 들어가는지 여부로 결정됩니다.
- 단일 노드, 멀티 GPU: 텐서 병렬 처리(vLLM의
--tensor-parallel-size, TGI의--num-shard)를 사용해 한 서버 내 GPU들에 모델의 레이어를 분할합니다. 이는 노드의 합산 VRAM에 들어가는 모델의 기본값입니다. - 멀티 노드: 모델이 한 노드의 GPU 메모리를 초과하거나, 요청량이 한 노드의 텐서 병렬 처리로 감당할 수 있는 수준을 넘어서면 파이프라인 병렬 처리를 추가합니다. vLLM은 Ray를 통해, NIM은 자체 멀티 노드 배포 템플릿을 통해 이를 지원합니다.
- 로드 밸런싱: 동일한 크기의 레플리카에는 단순 라운드로빈 밸런서로 충분하지만, KV 캐시를 인식하는 라우팅 -- 같은 대화의 후속 요청을 이미 해당 컨텍스트를 캐시하고 있는 레플리카로 다시 보내는 방식 -- 은 채팅형 워크로드의 지연 시간을 눈에 띄게 줄여줍니다.
- 모델 라우팅: 코딩용 모델과 범용 채팅 모델처럼 하나 이상의 모델을 운영하는 기업은 보통 공유 풀 대신 라우팅 계층 뒤에 모델별로 별도의 레플리카 풀을 운영합니다 -- GPU 메모리는 크게 다른 모델 간에 그 복잡성을 정당화할 만큼 깔끔하게 시분할되지 않기 때문입니다.
- 오토스케일링: 전통적인 Kubernetes HPA 기본값인 CPU가 아니라 요청 큐 깊이나 GPU 활용률로 스케일링하세요 -- GPU 추론 파드의 CPU 사용률은 부하와 상관없이 거의 움직이지 않습니다. 커스텀 Prometheus 메트릭을 사용하는 KEDA가 vLLM/TGI에서 흔한 패턴이며, NIM의 Operator는 이를 제품의 일부로 내장하고 있습니다. 그 배후의 더 넓은 용량 계획은 엔터프라이즈용 로컬 LLM 스케일링을 참고하세요.
멀티 GPU 추론 스택 배포 방법
엔터프라이즈 추론 스택 배포는 고정된 순서를 따릅니다: SLA를 정의하고, 플릿 규모를 산정하고, 엔진을 선택한 다음, 그 주변에 배포·라우팅·옵저버빌리티를 연결합니다.
- 1하드웨어를 선택하기 전에 지연 시간과 동시성 SLA를 정의합니다.
- 2모델의 파라미터 수만이 아니라 모델의 VRAM 사용량과 목표 동시 요청 수를 기준으로 GPU 플릿 규모를 산정합니다.
- 3서빙 엔진을 선택합니다 -- 오픈소스의 유연성을 원하면 vLLM이나 TGI, 벤더 지원 턴키 배포를 원하면 NIM.
- 4엔진을 컨테이너화하고 Helm(또는 NIM Operator)을 통해 Kubernetes 클러스터에 배포합니다.
- 5모델이 필요로 하면 노드 내에서는 텐서 병렬, 노드 간에는 파이프라인 병렬을 구성합니다.
- 6레플리카 풀 앞단에 KV 캐시를 인식하는 로드 밸런싱 또는 라운드로빈을 설정합니다.
- 7오토스케일링을 CPU가 아니라 요청 큐 깊이나 GPU 활용률에 연결합니다.
- 8Prometheus/OpenTelemetry 옵저버빌리티를 추가하고, 실제 운영 전 목표 동시성 수준에서 부하 테스트를 수행합니다.
라이선스와 지원 모델 비교
이 네 가지 옵션 간 총소유비용을 가장 크게 바꾸는 항목은 라이선스입니다. vLLM과 Hugging Face TGI는 모두 Apache 2.0 라이선스이며 규모와 관계없이 무료입니다 -- 지불하는 것은 하부 GPU 인프라뿐입니다. NVIDIA NIM은 GPU 자체 비용에 더해 GPU당 연간 구독료를 추가하는 대신 TensorRT-LLM으로 최적화된 성능과 벤더 지원 계약을 제공합니다 -- 엔터프라이즈 소프트웨어 구독 가격은 소비자 제품처럼 공개되어 있지 않으므로 GPU당 현재 가격은 반드시 NVIDIA에 직접 확인하세요. Ollama는 MIT 라이선스로 무료이며, 지원은 커뮤니티 GitHub와 Discord로 제한됩니다 -- 이 글을 쓰는 시점 기준 유료 엔터프라이즈 지원 등급은 없습니다.
프로덕션 시스템에서는 지원 모델이 라이선스 비용만큼 중요합니다: vLLM과 TGI의 지원은 GitHub 이슈와 커뮤니티 채널에서 나옵니다(인기 있는 문제는 빠르지만 SLA는 없음). NIM은 NVIDIA 지원 계약과 가용성 약속을 동반합니다. Ollama는 커뮤니티 채널 외에는 지원 경로가 전혀 없습니다.
프로덕션 서빙을 위한 옵저버빌리티 연동 지점
**vLLM과 TGI 모두 기본으로 Prometheus 호환 /metrics 엔드포인트를 노출하며, 요청 지연, 큐 깊이, GPU KV 캐시 활용률, 토큰 처리량을 포함합니다.** 기존 Prometheus/Grafana 스택에 연결하면 별도의 커스텀 계측 없이 프로덕션급 대시보드를 얻을 수 있습니다.
NVIDIA NIM은 NVIDIA 자체 모니터링 스택 -- GPU 수준 메트릭(활용률, 메모리, 온도, ECC 오류)을 위한 DCGM Exporter와 플릿 수준 가시성을 위한 Base Command Manager -- 와 통합됩니다. 나머지 인프라가 이미 NVIDIA 중심이라면 더 잘 맞습니다.
Ollama의 내장 텔레메트리는 최소한입니다: 기본적으로 Prometheus 엔드포인트가 없으며, 이는 단일 사용자 설계와는 일관되지만 이를 공유 인프라로 운영하며 많은 동시 사용자에 걸친 요청별 지연을 봐야 한다면 실질적인 공백이 됩니다.
어떤 추론 서버를 선택해야 할까
전반적으로 최고의 오픈소스 선택: vLLM -- 가장 높은 커뮤니티 채택률, 가장 폭넓은 멀티 GPU 도구, 활발한 개발 속도.
이미 Hugging Face를 쓰고 있다면 최선: TGI -- Hub와의 네이티브 통합, 공식 Inference Endpoints와의 기능 동등성.
벤더 지원이 필요하다면 최선: NVIDIA NIM -- SLA 기반, 턴키, 구독 비용을 대가로 함.
프로덕션 다중 테넌트 트래픽에는 부적합: Ollama -- 개발자 머신과 단일 사용자 에지 배포에만 사용하세요.
- 🧭 여러 팀을 위한 공유 내부 LLM API를 운영하는 플랫폼 팀 → vLLM 또는 TGI를 Kubernetes에서 직접 호스팅.
- 🧭 지원 계약과 감사 추적이 필요한 규제 산업 기업 → NVIDIA NIM.
- 🧭 모델 호스팅에서 이미 Hugging Face Hub에 표준화된 팀 → TGI.
- 🧭 인프라가 프로비저닝되기 전 개념 증명을 만드는 개발자 → 먼저 Ollama, 실제 동시 트래픽이 발생하면 vLLM/TGI로 이전.
- ❌ 동시 사용자가 소수를 넘길 것으로 예상된다면 Ollama를 공유 프로덕션 엔드포인트 뒤에 두지 말고 vLLM이나 TGI를 대신 사용하세요.
- ❌ 요청 부하에 따른 Kubernetes 네이티브 오토스케일링이 필요하다면 Ollama에는 KEDA 기반 큐 깊이 스케일링에 상응하는 기능이 없으므로 vLLM, TGI, NIM을 사용하세요.
엔터프라이즈 추론 인프라 규모 산정 시 흔한 실수
- 동시 요청 수가 아니라 파라미터 수로 GPU 규모를 산정하는 것. 모델 사본 하나가 VRAM에 들어가는 것만 기준으로 산정된 GPU 플릿에는 동시 사용자를 위한 여유가 없습니다 -- 피크 동시성을 기준으로 산정한 뒤, 모델이 여전히 들어가는지 확인하세요.
- Ollama를 공유 프로덕션 로드 밸런서 뒤에 배포하는 것. 사용자 두 명의 데모에서는 동작하지만, 수백 명을 위한 설계에서는 버티지 못합니다.
- CPU 활용률로 스케일링하는 것. GPU 추론 파드는 부하와 상관없이 CPU가 거의 움직이지 않습니다 -- 대신 큐 깊이나 GPU 활용률로 스케일링하세요.
- TGI의 오래된 캐시 이미지에 대한 라이선스 확인을 건너뛰는 것. 가져온 이미지 태그가 Apache 2.0 릴리스에 해당하는지, 캐시된 HFOILv2 시대 빌드가 아닌지 확인하세요.
- NVIDIA에 직접 GPU당 현재 가격을 확인하지 않고 NIM 예산을 세우는 것. 엔터프라이즈 소프트웨어 구독 가격은 변동합니다. 오래된 견적은 예산의 근거가 될 수 없습니다.
출처
- vLLM 공식 문서 -- PagedAttention, continuous batching, 멀티 GPU/멀티 노드 배포 가이드를 포함한 공식 vLLM 문서.
- Hugging Face Text Generation Inference(GitHub) -- 아키텍처, 지원 양자화 형식, 라이선스 이력을 포함한 공식 TGI 저장소.
- NVIDIA NIM 공식 문서 -- 지원 모델, TensorRT-LLM 백엔드, Kubernetes용 NIM Operator를 포함한 공식 NIM 문서.
- Ollama GitHub -- 동시성 및 배포 동작 참고를 위해 인용한 공식 Ollama 저장소 및 이슈 트래커.
- NVIDIA AI Enterprise -- NIM이 배포되는 AI Enterprise 구독에 대한 NVIDIA 제품 페이지.
자주 묻는 질문
vLLM과 NVIDIA NIM의 차이는 무엇인가요?
vLLM은 직접 호스팅하고 운영하는 무료 오픈소스 추론 서버(Apache 2.0)입니다. NVIDIA NIM은 TensorRT-LLM 엔진을 감싼 NVIDIA의 유료 사전 빌드 컨테이너로, GPU당 NVIDIA AI Enterprise 구독과 벤더 지원과 함께 판매됩니다. NIM은 NVIDIA가 추론 커널을 사전 튜닝하기 때문에 보통 NVIDIA 하드웨어에서 GPU당 가장 높은 처리량을 냅니다. vLLM은 더 많은 제어권과 라이선스 비용 없음을 제공하는 대신, 그 튜닝과 지원을 직접 해야 합니다.
Ollama를 엔터프라이즈 다중 사용자 추론 서빙에 사용할 수 있나요?
프로덕션 다중 테넌트 트래픽에는 권장하지 않습니다. Ollama는 continuous batching이나 PagedAttention 방식의 메모리 관리, Kubernetes 네이티브 오토스케일링이 없어, 같은 GPU에서 동시 부하가 많아지면 vLLM, TGI, NIM보다 더 빨리 성능이 저하됩니다. 개발자 머신, 단일 사용자 에지 디바이스, 트래픽이 적은 내부 프로토타입에는 잘 맞습니다.
오픈소스 vLLM이나 TGI 대비 NVIDIA NIM의 라이선스 비용은 그만한 가치가 있나요?
벤더 지원 계약과 사전 최적화된 처리량이 무료로 직접 운영하는 인프라 대비 구독 비용만큼 가치가 있는지에 달려 있습니다. 감사 추적과 SLA가 필요한 규제 산업 기업은 이 비용을 정당화하는 경우가 많고, 내부에 ML 인프라 전문성을 갖춘 팀은 라이선스 비용 없이 vLLM이나 TGI로 비슷한 처리량을 얻는 경우가 많습니다.
여러 GPU와 노드에 걸쳐 LLM 추론을 어떻게 확장하나요?
텐서 병렬 처리로 하나의 모델 레이어를 같은 노드 내 GPU들에 분할하고, 모델이 한 노드의 합산 GPU 메모리를 초과하면 파이프라인 병렬 처리로 여러 노드에 분할합니다. vLLM은 둘 다 네이티브로 지원합니다(멀티 노드는 Ray 경유). TGI는 텐서 병렬 처리를 네이티브로 지원하지만 자체 멀티 노드 도구는 더 적습니다. NIM은 NVIDIA 자체 멀티 노드 템플릿을 통해 둘 다 지원합니다.
각 추론 서버는 어떤 양자화 형식을 지원하나요?
vLLM은 GPTQ, AWQ, FP8, INT4를 지원합니다. TGI는 bitsandbytes, GPTQ, AWQ, EETQ를 지원합니다. NVIDIA NIM은 GPU 세대별로 튜닝된 TensorRT-LLM 자체의 FP8, INT4 양자화를 사용합니다. Ollama는 다중 사용자 처리량보다 단일 머신에서의 메모리 절약을 목표로 Q4~Q8 정밀도의 GGUF 형식을 사용합니다.
vLLM이나 TGI를 Kubernetes에 어떻게 배포하나요?
둘 다 배포 가능한 컨테이너 이미지와 Helm 차트를 제공합니다 -- vLLM은 Kubernetes 네이티브 모델 서빙을 위해 KServe와도 통합되며, TGI는 공식 Hugging Face Helm 차트를 갖고 있습니다. GPU 할당에 맞춰 리소스 요청을 구성하고, 오토스케일링을 CPU가 아니라 요청 큐 깊이나 GPU 활용률로 설정하며, 내장 metrics 엔드포인트를 스크레이핑하는 Prometheus ServiceMonitor를 추가하세요.
Continuous batching이란 무엇이고 엔터프라이즈 서빙에서 왜 중요한가요?
Continuous batching은 새 요청이 현재 배치가 끝나고 새 배치가 시작되기를 기다리지 않고, 이미 실행 중인 GPU 배치에 합류할 수 있게 해줍니다. 이는 불규칙한 실제 트래픽 패턴에서도 GPU 활용률을 높게 유지해주기 때문에 vLLM, TGI, NIM의 TensorRT-LLM 백엔드에서 표준으로 자리잡았으며, Ollama 같은 단일 사용자 도구와의 가장 큰 처리량 차이 중 하나입니다.
어느 추론 서버가 옵저버빌리티가 가장 뛰어난가요?
vLLM과 TGI 모두 기본으로 지연, 큐 깊이, GPU KV 캐시 활용률을 포함하는 Prometheus 호환 metrics 엔드포인트를 노출해, 기존 Prometheus/Grafana 스택에 바로 연동됩니다. NVIDIA NIM은 NVIDIA의 DCGM Exporter와 Base Command Manager와 통합되어 NVIDIA 중심 인프라에 더 잘 맞습니다. Ollama는 내장 텔레메트리가 최소한이며 기본 metrics 엔드포인트가 없습니다.
여러 모델은 별도의 GPU 플릿이 필요한가요, 아니면 하나의 풀을 공유할 수 있나요?
실무에서는 하나 이상의 모델을 운영하는 기업은 보통 하나의 풀을 공유하기보다 모델별로 별도의 레플리카 풀을 운영합니다. GPU 메모리가 크기가 크게 다른 모델 사이에서 깔끔하게 시분할되지 않기 때문입니다. 여러 모델을 같은 GPU 레플리카에 함께 두려 하기보다, 애플리케이션이나 게이트웨이 계층에서 올바른 풀로 요청을 라우팅하세요.
vLLM, TGI, NVIDIA NIM 간 라이선스는 어떻게 다른가요?
vLLM과 Hugging Face TGI는 모두 Apache 2.0 라이선스이며 규모와 관계없이 무료입니다 -- 지불하는 것은 하부 GPU 인프라뿐입니다. NVIDIA NIM은 GPU 하드웨어 비용에 더해 GPU당 연간으로 청구되는 유료 NVIDIA AI Enterprise 구독이 필요합니다. 이전 견적에 의존하지 말고 현재 가격을 NVIDIA에 직접 확인하세요. Ollama는 MIT 라이선스로 무료이며 지원은 커뮤니티뿐입니다.