SGLang
SGLang
SGLang은 저지연·고처리량 LLM 추론 엔진이에요. Transformers 모델을 백엔드로 사용해 SGLang으로 실행하는 방법을 살펴볼게요.
출처: 문서
본문
SGLang은 대규모 언어 모델(LLM)을 위한 저지연·고처리량 추론 엔진이에요. 에이전트형 워크플로를 구축하기 위한 프론트엔드 언어도 함께 제공해요.
Transformers 모델링 백엔드를 불러오려면 model_impl="transformers"로 설정해요.
import sglang as sgl
llm = sgl.Engine("meta-llama/Llama-3.2-1B-Instruct", model_impl="transformers")
print(llm.generate(["The capital of France is"], {"max_new_tokens": 20})[0])
온라인 서빙의 경우 sglang.launch_server 명령에 --model-impl transformers를 넘겨요.
python3 -m sglang.launch_server \
--model-path meta-llama/Llama-3.2-1B-Instruct \
--model-impl transformers \
--host 0.0.0.0 \
--port 30000
Transformers 통합 과정
model_impl="transformers"로 설정하면 SGLang이 자체 모델 매칭을 건너뛰고 Transformers 모델을 직접 사용해요.
- PreTrainedConfig.from_pretrained()가 Hub 또는 Hugging Face 캐시에서 모델의
config.json을 불러와요. - AutoModel.from_config()가 config를 바탕으로 모델 클래스를 결정해요.
- 로딩 중
_attn_implementation이"sglang"으로 설정돼요. 그러면 attention 호출이 SGLang의 RadixAttention 커널을 통해 이뤄져요. - SGLang의 병렬 선형(parallel linear) 클래스가 선형 레이어를 대체해 텐서 병렬화를 지원해요.
- load_weights 함수가 safetensors 파일의 가중치로 모델을 채워요.
Transformers 모델 구조를 쓰면서도 SGLang의 모든 최적화 혜택을 받는 구조예요.
[!WARNING] 호환 모델은
_supports_attention_backend=True여야 SGLang이 attention 실행을 제어할 수 있어요. 자세한 내용은 추론용 호환 모델 백엔드 만들기 가이드를 참고하세요.
리소스 (Resources)
- SGLang docs에 Transformers를 백엔드로 쓰는 더 많은 사용 예시와 팁이 있어요.
- Transformers backend integration in SGLang 블로그 글이 이 통합이 제공하는 기능을 설명해요.
더 알아보기 (Learn more)
- 추론용 호환 모델 백엔드 만들기 문서
- vLLM 문서에서 다른 추론 엔진 통합을 살펴보세요.