Triton + TensorRT-LLM로 LLM 서빙하기
Triton + TensorRT-LLM로 LLM 서빙하기
TensorRT-LLM이 뭔가요?
TensorRT-LLM(TRT-LLM)은 NVIDIA GPU에서 LLM 추론 성능을 가속·최적화하기 위한 오픈소스 라이브러리예요. PyTorch 기반으로 만들어졌고, 사용하기 쉬운 Python LLM API를 제공해서 HuggingFace 모델을 바로 서빙할 수 있어요. 최신 최적화 기법을 적용해 NVIDIA GPU에서 효율적인 추론을 보장해 줍니다.
Triton Server에서 TensorRT-LLM 백엔드로 모델 실행하기
TensorRT-LLM Backend는 TensorRT-LLM 모델을 Triton Inference Server에서 서빙할 수 있게 해 줍니다. PyTorch 백엔드(LLM API)를 쓰면 엔진 컴파일 없이 어떤 HuggingFace 모델이든 바로 서빙할 수 있어요. 아래 단계를 따라 하면 빈 컨테이너에서 몇 분 만에 서버를 띄울 수 있습니다.
컨테이너 실행
docker run --rm -it --net host --shm-size=2g --ulimit memlock=-1 --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
nvcr.io/nvidia/tritonserver:25.12-trtllm-python-py3 bash
25.12 자리에는 NGC의 최신 태그를 넣으세요.
TRT-LLM 클론과 모델 설정
git clone https://github.com/NVIDIA/TensorRT-LLM.git
TensorRT-LLM/triton_backend/all_models/llmapi/tensorrt_llm/1/model.yaml을 열고 model:에 원하는 HuggingFace 모델 ID나 로컬 경로를 넣어요. 예를 들면:
model: TinyLlama/TinyLlama-1.1B-Chat-v1.0
model.yaml의 모든 키는 LLM() 생성자 인자에 그대로 대응돼요. KV cache, 양자화, 병렬 처리 등을 여기서 설정합니다. Llama처럼 gated 모델이라면 먼저 토큰을 설정해야 해요: export HF_TOKEN=hf_...
실행과 테스트
TensorRT-LLM/ 부모 폴더에서 실행 스크립트를 돌려요. 클론한 폴더 안에서 실행하면 ModuleNotFoundError: No module named 'tensorrt_llm.bindings' 오류가 나므로 주의하세요.
python3 TensorRT-LLM/triton_backend/scripts/launch_triton_server.py \
--model_repo=TensorRT-LLM/triton_backend/all_models/llmapi/
서버가 뜨면 요청을 보내 봅니다.
curl -X POST localhost:8000/v2/models/tensorrt_llm/generate \
-d '{"text_input": "The future of AI is", "sampling_param_max_tokens": 50}' | jq
멀티 GPU·멀티 노드와 모든 설정·배포 옵션은 TensorRT-LLM Backend README와 LLM API 가이드를 참고하세요.
고급 설정·배포 전략
Triton과 TRT-LLM 모델을 최적화해 운영하기 위한 고급 옵션들입니다.
- 모델 배포(Model Deployment): 다양한 환경에서 모델을 효율적으로 배포하고 관리하는 기법.
- MIG 지원: MIG로 GPU 리소스 관리를 최적화하며 Triton·TRT-LLM 모델을 실행.
- 스케줄링(Scheduling): 요청 관리·실행 방식을 제어하는 스케줄링 정책.
- KV Cache: KV cache와 reuse로 메모리 사용을 최적화하고 성능을 개선.
- 디코딩(Decoding): top-k, top-p, beam search, Medusa, speculative decoding 등 고급 텍스트 생성 기법.
- Chunked Context: 컨텍스트를 여러 조각으로 나눠 생성 단계에서 배치해 전체 처리량을 높임.
- 양자화(Quantization): 모델 크기를 줄이고 추론 속도를 높이는 양자화 기법.
- LoRA: 효율적인 파인튜닝·적응을 위한 LoRA 사용.
튜토리얼
인기 LLM 모델을 Triton Server + TensorRT-LLM으로 서빙하고 Kubernetes에 배포하는 더 많은 가이드는 tutorials 저장소를 확인하세요.
벤치마크
GenAI-Perf는 Triton Inference Server가 서빙하는 LLM의 처리량과 지연을 측정하는 커맨드라인 도구예요. Quick Start에서 LLM 모델을 벤치마크하는 방법을 볼 수 있습니다.
성능 모범 사례
TensorRT-LLM 모델 성능을 최적화하는 방법은 Performance tuning guide를 참고하세요.
메트릭
Triton Server는 GPU·요청 통계를 나타내는 메트릭을 제공해요. TensorRT-LLM 백엔드 저장소의 Triton Metrics 절에서 Triton 메트릭 엔드포인트에 질의해 TRT-LLM 통계를 얻는 방법을 배울 수 있습니다.
질문·이슈
찾는 내용이 없거나 질문·이슈가 있다면 GitHub issues 페이지에서 질문하거나 리포트하세요.