TGI (Text Generation Inference)
HuggingFace에서 개발한 LLM 추론 서버입니다. HuggingFace 모델 허브와 긴밀하게 통합되어 있으며, Flash Attention, 양자화 등 최적화 기술을 지원합니다.
어디에 쓰이나요?
- HuggingFace 모델 서빙: HuggingFace Hub의 모델을 바로 API로 서빙
- 텍스트 생성 API: OpenAI API 호환 형식으로 챗봇, 텍스트 생성 서비스 구축
- 스트리밍 응답: Server-Sent Events(SSE) 기반의 실시간 토큰 스트리밍
- 프로덕션 배포: HuggingFace Inference Endpoints의 백엔드로 사용되는 검증된 엔진
NVIDIA GPU가 필수입니다. GPU가 없는 환경에서는 실행되지 않습니다.
Docker Compose
services:
tgi:
image: ghcr.io/huggingface/text-generation-inference:latest
container_name: tgi
restart: unless-stopped
ports:
- "8080:80"
volumes:
- tgi_data:/data
environment:
- HUGGING_FACE_HUB_TOKEN=${HF_TOKEN}
command: >
--model-id meta-llama/Llama-3.1-8B-Instruct
--max-input-tokens 4096
--max-total-tokens 8192
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
tgi_data:
모델 다운로드 후 서버가 시작됩니다. 로그로 진행 상태를 확인합니다.
docker compose logs -f tgi
접속 확인
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/Llama-3.1-8B-Instruct",
"messages": [{"role": "user", "content": "Hello!"}]
}'
기본 정보
| 항목 | 값 |
|---|
| API 포트 | 8080 |
| API 형식 | OpenAI API 호환 + HuggingFace 네이티브 |
| GPU | NVIDIA GPU 필수 |
주요 실행 옵션
| 옵션 | 설명 |
|---|
--model-id | HuggingFace 모델 ID |
--max-input-tokens | 입력 최대 토큰 수 |
--max-total-tokens | 입력 + 출력 최대 토큰 수 |
--quantize | 양자화 방식 (bitsandbytes, gptq, awq) |
--num-shard | GPU 샤딩 수 (멀티 GPU) |
라이선스
| 구분 | 내용 |
|---|
| 라이선스 | Apache License 2.0 |
| 개인 사용 | 자유롭게 사용 가능 |
| 상업적 사용 | 자유롭게 사용 가능. 단, 서빙하는 모델의 라이선스는 별도 확인 필요 |