TGI Launcher — 서버를 띄우는 두 가지 방법

TGI Launcher — 서버를 띄우는 두 가지 방법

Text Generation Inference 서버를 실행하는 방법에는 단일 프로세스 방식과 비동기(Async) 방식 두 가지가 있어요. 이 중 원하는 배포 환경에 맞는 방식을 고르면 됩니다.

출처: https://huggingface.co/docs/text-generation-inference/basic_tutorials/launcher

1. 단일 프로세스(single-process) 방식

전체 서빙 루프를 하나의 Rust 프로세스로 실행하는 방식이에요. 배포가 간단하고 다중 GPU를 사용하지 않아도 되는 경우에 적합합니다.

text-generation-server serve <MODEL_ID> --revision <REVISION>

2. 비동기(async) 방식

Rust 서버로 토큰 생성(generation)을 처리하고, Python 백그라운드 프로세스가 모델에 대한 추론을 담당하는 방식이에요. 두 개의 프로세스로 나뉘어 동작합니다.

text-generation-service serve-async <MODEL_ID> --revision <REVISION>

두 방식 모두 서버가 올라오면 inference, tokenizer, messages 등 여러 REST 엔드포인트를 노출합니다.

컨테이너에서 실행

컨테이너 환경에서는 text-generation-launcher가 Docker 이미지의 기본 진입점으로 번들됩니다. Docker 이미지의 진입점은 TGI 버전에 따라 달라질 수 있으니 공식 이미지 문서를 확인해요.

서버 실행 옵션

--num-shard, --max-batch-tokens, --max-input-tokens, --max-total-tokens 등의 인자를 조합해 리소스 사용량과 배치 크기를 제어합니다.

text-generation-launcher --model-id <MODEL_ID>   --max-input-tokens 1024   --max-batch-tokens 3584   --max-total-tokens 4608

더 알아보기