triton-deploy
NVIDIA Triton Inference Server 배포 및 관리. "triton 서버", "triton 실행", "모델 서빙", "inference server" 요청 시 활성화됩니다.
When & Why to Use This Skill
The Triton Deploy skill automates the end-to-end deployment and management of NVIDIA Triton Inference Servers. It streamlines complex MLOps workflows by handling Docker container orchestration, GPU resource allocation, and model repository management, enabling developers to serve AI models with high performance and minimal manual configuration.
Use Cases
- Production AI Serving: Deploying high-performance inference servers with multi-GPU support and optimized shared memory for large-scale model deployment.
- Development & Testing: Quickly spinning up local Triton instances to test model compatibility and performance using predefined environment profiles.
- Infrastructure Monitoring: Automating health checks and resource tracking, including GPU memory usage and model status, to ensure system reliability.
- Model Lifecycle Management: Managing the loading, unloading, and versioning of models within a running inference server through simple natural language requests.
| name | triton-deploy |
|---|---|
| description | NVIDIA Triton Inference Server 배포 및 관리. "triton 서버", "triton 실행", "모델 서빙", "inference server" 요청 시 활성화됩니다. |
Triton Deploy 스킬
Overview
NVIDIA Triton Inference Server 컨테이너 배포 및 관리를 자동화하는 스킬입니다.
중요: 이 스킬이 활성화되면 Claude가 자동으로 스크립트를 실행합니다. 사용자가 직접 명령어를 입력할 필요가 없습니다.
핵심 기능:
- 서버 실행: GPU/메모리 설정이 포함된 docker 컨테이너 실행
- 모델 관리: 모델 레포지토리 마운트 및 로드
- 상태 모니터링: 서버 헬스체크 및 모델 상태 확인
- 포트 관리: HTTP/gRPC/metrics 포트 자동 설정
- 프로파일 지원: 개발/프로덕션 환경별 설정
Script Location
SCRIPT: ./scripts/triton-deploy.sh
Claude는 이 스크립트를 Bash 도구로 직접 실행합니다.
When to Use
이 스킬은 다음 상황에서 활성화됩니다:
명시적 요청:
- "triton 서버 실행해줘"
- "모델 서빙 시작해줘"
- "inference server 띄워줘"
- "triton 상태 확인해줘"
- "모델 로드해줘"
자동 활성화:
- Triton 관련 docker 명령 실행 시
- 모델 서빙 요청 시
Prerequisites
# Docker 설치 확인
docker --version
# NVIDIA Container Toolkit 확인 (GPU 사용 시)
nvidia-container-cli --version
# 스크립트 실행 권한
chmod +x /path/to/agent-skills/ml/triton-deploy/scripts/triton-deploy.sh
Workflow
Claude 실행 절차
Step 1: 사용자 요청 분석
- 실행할 모델 또는 모델 레포지토리 경로 파악
- GPU 설정 확인 (기본: GPU 0)
- 포트 설정 확인 (기본: 8000/8001/8002)
Step 2: 스크립트 실행
# 스크립트 경로
SCRIPT=./scripts/triton-deploy.sh
# 서버 시작
$SCRIPT start --model-repo <path> [--gpu <devices>] [--port <port>] [--profile <name>]
# 상태 확인
$SCRIPT status
# 모델 목록
$SCRIPT models
# 서버 중지
$SCRIPT stop
# 로그 확인
$SCRIPT logs [--follow]
Step 3: 결과 보고
- 서버 시작 성공 여부
- 로드된 모델 목록
- 접속 URL 안내
명령어 레퍼런스
| 작업 | 명령어 |
|---|---|
| 기본 시작 | $SCRIPT start --model-repo /path/to/models |
| GPU 지정 | $SCRIPT start --model-repo /path --gpu 0,1 |
| 프로파일 사용 | $SCRIPT start --profile langdetector |
| 상태 확인 | $SCRIPT status |
| 모델 목록 | $SCRIPT models |
| 서버 중지 | $SCRIPT stop |
| 로그 확인 | $SCRIPT logs --follow |
자주 사용하는 설정
| 용도 | 명령어 |
|---|---|
| 개발 (단일 GPU) | triton-deploy.sh start --model-repo ./models --gpu 0 |
| 프로덕션 (멀티 GPU) | triton-deploy.sh start --model-repo ./models --gpu all --shm 8g |
| 디버그 모드 | triton-deploy.sh start --model-repo ./models --verbose |
| 특정 모델만 | triton-deploy.sh start --model-repo ./models --load-model my_model |
Examples
예시 1: 기본 서버 실행
사용자: langdetector 모델로 triton 서버 띄워줘
Claude: Triton 서버를 실행합니다.
$ triton-deploy.sh start --profile langdetector
Starting Triton Server...
- Image: nvcr.io/nvidia/tritonserver:24.01-py3
- GPU: device=0
- Model Repo: /nfs/train/langdetector/models/triton
- Ports: 8000 (HTTP), 8001 (gRPC), 8002 (metrics)
Container ID: abc123def456
Waiting for server ready...
Server is READY
## Status
| Property | Value |
|----------|-------|
| Container | triton-langdetector |
| Status | Running |
| HTTP | http://localhost:8000 |
| gRPC | localhost:8001 |
예시 2: 멀티 GPU 프로덕션 배포
사용자: GPU 0,1번으로 triton 띄워줘. 메모리 8GB로
Claude: 멀티 GPU 설정으로 Triton을 실행합니다.
$ triton-deploy.sh start \
--model-repo /mnt/models \
--gpu 0,1 \
--shm 8g \
--port 16000
Starting Triton Server...
- GPU: device=0,1
- Shared Memory: 8GB
- Ports: 16000, 16001, 16002
Server is READY
## Loaded Models
| Model | Version | Status |
|-------|---------|--------|
| langdetector_ensemble | 1 | READY |
| features | 1 | READY |
| classifier | 1 | READY |
예시 3: 서버 상태 확인
사용자: triton 상태 확인해줘
Claude: Triton 서버 상태를 확인합니다.
$ triton-deploy.sh status
## Server Status
| Property | Value |
|----------|-------|
| Container | triton-server |
| Status | Running |
| Uptime | 2h 35m |
| HTTP | healthy |
| gRPC | healthy |
## Resource Usage
| Metric | Value |
|--------|-------|
| GPU Memory | 4.2GB / 24GB |
| CPU | 15% |
| Memory | 2.1GB |
예시 4: 모델 상태 확인
사용자: 로드된 모델 확인해줘
Claude: 모델 상태를 확인합니다.
$ triton-deploy.sh models
## Loaded Models
| Model | Version | Status | Backend |
|-------|---------|--------|---------|
| langdetector_ensemble | 1 | READY | ensemble |
| langdetector_features | 1 | READY | onnxruntime |
| langdetector_classifier | 1 | READY | tensorrt |
Total: 3 models loaded
Configuration
프로파일 설정
~/.triton-profiles.yaml 파일로 프로파일 정의:
profiles:
langdetector:
image: hub.rtzr.ai/rtzr/tritonserver:25.01-rtzr-py3
model_repo: /nfs/train/langdetector/models/triton
gpu: "0"
shm_size: 4g
ports:
http: 15000
grpc: 15001
metrics: 15002
asr:
image: nvcr.io/nvidia/tritonserver:24.01-py3
model_repo: /nfs/train/asr/models
gpu: "0,1"
shm_size: 8g
환경 변수
| 변수 | 설명 | 기본값 |
|---|---|---|
TRITON_IMAGE |
Docker 이미지 | nvcr.io/nvidia/tritonserver:24.01-py3 |
TRITON_SHM_SIZE |
공유 메모리 크기 | 4g |
TRITON_PINNED_MEMORY |
Pinned 메모리 | 2073741824 |
Best Practices
DO:
- 프로파일 사용으로 설정 재사용
- 헬스체크로 서버 준비 확인 후 요청
- 적절한 공유 메모리 크기 설정
- 모델별 최적 백엔드 선택 (TensorRT > ONNX > PyTorch)
DON'T:
- 포트 충돌 무시하고 실행
- 공유 메모리 부족 상태로 운영
- GPU 메모리 초과 모델 로드
- 프로덕션에서 verbose 모드 사용
Troubleshooting
서버 시작 실패
# 포트 사용 확인
triton-deploy.sh check-port 8000
# GPU 가용성 확인
nvidia-smi
# 컨테이너 로그 확인
triton-deploy.sh logs
모델 로드 실패
# 모델 설정 검증
triton-deploy.sh validate --model-repo /path/to/models
# 특정 모델 로그
triton-deploy.sh logs --model my_model
GPU 메모리 부족
# GPU 메모리 확인
nvidia-smi
# 다른 컨테이너 정리
docker ps -a | grep triton
docker rm -f <container_id>
Resources
| 파일 | 설명 |
|---|---|
scripts/triton-deploy.sh |
Triton 서버 배포 통합 스크립트 |
~/.triton-profiles.yaml |
프로파일 설정 파일 (사용자 정의) |