Skip to main content

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

docker-compose.yml
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 up -d
모델 다운로드 후 서버가 시작됩니다. 로그로 진행 상태를 확인합니다.
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 네이티브
GPUNVIDIA GPU 필수

주요 실행 옵션

옵션설명
--model-idHuggingFace 모델 ID
--max-input-tokens입력 최대 토큰 수
--max-total-tokens입력 + 출력 최대 토큰 수
--quantize양자화 방식 (bitsandbytes, gptq, awq)
--num-shardGPU 샤딩 수 (멀티 GPU)

라이선스

구분내용
라이선스Apache License 2.0
개인 사용자유롭게 사용 가능
상업적 사용자유롭게 사용 가능. 단, 서빙하는 모델의 라이선스는 별도 확인 필요

참고