개요

Triton Inference Server (현재 명칭: NVIDIA Dynamo-Triton)는 NVIDIA가 개발한 오픈소스 추론 서빙 플랫폼입니다. 추론 엔진 자체가 아니라 모델 서빙 오케스트레이터로, 다양한 프레임워크의 모델을 통합 관리하고 서빙합니다. 25,000+ 기업이 프로덕션에서 사용 중입니다.

핵심 특징

멀티 프레임워크 지원

프레임워크용도
TensorRT-LLMLLM 추론 최적화
TensorRT일반 DL 추론 최적화
PyTorch범용 딥러닝
ONNX Runtime크로스 플랫폼 추론
OpenVINOIntel 최적화
Python커스텀 로직
RAPIDS FIL트리 기반 ML 모델

크로스 플랫폼

  • NVIDIA GPU (Turing, Ampere, Hopper, Ada, Blackwell)
  • 비NVIDIA 가속기
  • x86 CPU, ARM CPU

요청 처리

클라이언트 요청
    ↓
HTTP/REST | gRPC | C API
    ↓
모델별 스케줄러
    ↓
배칭 → 백엔드 → 추론 실행

주요 기능

Dynamic Batching

  • 클라이언트 요청을 서버 측에서 자동으로 큰 배치로 병합
  • 처리량 최대화, 지연 시간 최소화 균형

모델 앙상블 (Ensemble)

  • 여러 모델을 DAG(Directed Acyclic Graph) 파이프라인으로 구성
  • 모델 간 입출력 텐서 자동 연결
  • 전처리 → 추론 → 후처리 파이프라인 구축

병렬 실행 (Instance Groups)

  • 모델별 병렬 실행 인스턴스 수 설정 가능
  • 기본: 사용 가능한 GPU당 1개 인스턴스
  • instance_group 설정으로 인스턴스 수 조절

Stateless vs Stateful 모델

유형스케줄러예시
StatelessDefault / Dynamic Batcher이미지 분류, 객체 탐지
StatefulSequence Batcher시계열, 대화형 모델
  • Stateful 모델: 요청 시퀀스를 동일 인스턴스로 라우팅, 시작/종료 시그널 제어

Decoupled Backend

  • 요청당 여러 응답 전송 가능 (스트리밍)
  • 또는 응답 없이 처리 가능

모델 리포지토리

  • 디렉토리 기반 모델 관리
  • 모델 버전 관리
  • 동적 모델 로딩/언로딩

아키텍처

┌─────────────────────────────────────────┐
│           클라이언트 요청                   │
│     (HTTP/REST, gRPC, C API)            │
├─────────────────────────────────────────┤
│         모델 스케줄러/배처                  │
│  ┌──────────┐  ┌──────────┐  ┌────────┐│
│  │ Dynamic  │  │ Sequence │  │Default ││
│  │ Batcher  │  │ Batcher  │  │Sched.  ││
│  └──────────┘  └──────────┘  └────────┘│
├─────────────────────────────────────────┤
│            백엔드 (Backends)              │
│  TensorRT │ PyTorch │ ONNX │ Python   │
├─────────────────────────────────────────┤
│         하드웨어 (GPU / CPU)              │
└─────────────────────────────────────────┘

DevOps / MLOps 통합

  • Kubernetes: 스케일링, 오토스케일러 연동
  • Prometheus: 메트릭 모니터링 (요청 수, 지연 시간, GPU 활용률)
  • OpenTelemetry: 분산 트레이싱
  • Docker / NGC: 컨테이너 이미지 배포
  • NVIDIA AI Enterprise: 엔터프라이즈 지원, 안정 API

설치 및 사용법

# Docker (권장)
docker pull nvcr.io/nvidia/tritonserver:26.01-py3
 
# 서버 실행
docker run --gpus all -p 8000:8000 -p 8001:8001 -p 8002:8002 \
  -v /path/to/models:/models \
  nvcr.io/nvidia/tritonserver:26.01-py3 \
  tritonserver --model-repository=/models
 
# 클라이언트 요청 (HTTP)
curl -X POST localhost:8000/v2/models/<model>/infer \
  -d '{"inputs": [...]}'

포트

포트프로토콜용도
8000HTTP/REST추론 요청
8001gRPC고성능 추론 요청
8002HTTP메트릭 (Prometheus)

모델 리포지토리 구조

models/
├── model_a/
│   ├── config.pbtxt      # 모델 설정
│   ├── 1/                # 버전 1
│   │   └── model.plan    # TensorRT 엔진
│   └── 2/                # 버전 2
│       └── model.plan
└── model_b/
    ├── config.pbtxt
    └── 1/
        └── model.pt      # PyTorch 모델

TensorRT-LLM 연동

TensorRT-LLM (추론 엔진)
        ↓
Triton Inference Server (서빙)
        ↓
클라이언트 (HTTP/gRPC)
  • TensorRT-LLM을 Triton의 백엔드로 사용
  • In-Flight Batching, Paged KV Cache 활용
  • 멀티 모델 동시 서빙 가능

사용 기업

Microsoft, Samsung, Siemens Energy, Snapchat 외 25,000+ 기업

클라우드 지원

  • Google Cloud: Vertex AI에서 Triton 네이티브 지원
  • AWS: SageMaker 통합
  • Azure: AKS에서 배포 가능

비교

특성TritonvLLMSGLang
역할서빙 오케스트레이터추론 엔진추론 엔진
멀티 프레임워크O (7+)X (LLM 전용)X (LLM 전용)
멀티 모델 동시 서빙O제한적제한적
LLM 전용 최적화TensorRT-LLM 위임PagedAttentionRadixAttention
설정 난이도중간낮음낮음
최적 시나리오엔터프라이즈 멀티 모델LLM 서빙LLM 에이전트/RAG

관련 항목