SGLang Transformers 백엔드 통합

SGLang은 Hugging Face transformers 라이브러리를 백엔드로 통합하여 사용자가 transformers 호환 모델을 고성능 추론 기능으로 실행할 수 있게 했습니다. 이 통합은 transformers 생태계의 유연성과 프로덕션 환경의 고처리량·저지연 요구 사이의 격차를 메워줍니다.

SGLang을 통한 고성능 추론

SGLang은 효율성을 위해 설계되었으며, 메모리 효율적인 어텐션 메커니즘인 RadixAttention과 같은 기능을 활용해 특히 높은 부하 하에서 더 빠르고 자원 효율적인 추론을 제공합니다. 표준 transformers 라이브러리는 실험, 소규모 작업 및 학습에 최적화되어 있는 반면, SGLang은 대량 시나리오를 위한 특화된 엔진을 제공합니다.

SGLang은 여러 배포 모드를 제공합니다:

  • Offline Engine: sgl.Engine을 사용하여 직접 생성합니다.
  • Server Mode: sglang.launch_server를 통해 서버를 시작하여 API로 요청을 처리합니다.
  • OpenAI-Compatible API: 외부 서비스에 대한 즉시 대체 기능을 제공합니다.

Transformers 백엔드 통합

transformers 백엔드를 통해 SGLang은 SGLang에서 네이티브로 지원되지 않는 모델에 대해 자동으로 transformers 라이브러리로 대체할 수 있습니다. 이는 여러 즉각적인 이점을 제공합니다:

  • Instant Access: 사용자는 transformers 라이브러리에 새로 추가된 모델을 즉시 실행할 수 있습니다.
  • Custom Model Support: transformers와 호환되는 Hugging Face Hub에 호스팅된 모델을 배포할 수 있습니다.
  • Reduced Engineering Overhead: 사용자는 새로운 모델 아키텍처마다 네이티브 SGLang 구현을 기다릴 필요가 없습니다.

이 통합을 통해 transformers 생태계의 다양성을 손상시키지 않으면서 더 넓은 범위의 모델에 대해 최적화된 배포와 RadixAttention 사용이 가능해집니다.

사용법 및 호환성

transformers 백엔드를 사용하려면, 사용자는 엔진 초기화 시 구현 파라미터를 명시적으로 설정할 수 있습니다:

llm = sgl.Engine(model_path="meta-llama/Llama-3.2-1B-Instruct", impl="transformers")

impl="transformers" 지정은 선택 사항이며, 모델이 네이티브로 지원되지 않을 경우 SGLang이 자동으로 transformers 구현으로 전환합니다.

호환성 요구 사항

다음 기준을 충족하는 Hugging Face Hub의 모든 모델은 호환됩니다:

  1. transformers 라이브러리와 호환됩니다.
  2. 어텐션을 올바르게 구현합니다.
  3. 커스텀 모델의 경우 로드 시 trust_remote_code=True가 설정됩니다.

예를 들어, 아직 SGLang에서 네이티브로 지원되지 않는 Kyutai 팀의 Helium 모델(kyutai/helium-1-preview-2b)은 transformers 백엔드를 사용해 실행할 수 있습니다:

python3 -m sglang.launch_server \
  --model-path kyutai/helium-1-preview-2b \
  --impl transformers \
  --host 0.0.0.0 \
  --port 30000

향후 로드맵

다음 분야에서 통합을 개선하기 위한 개발이 진행 중입니다:

  • Performance Optimization: transformers 백엔드 모델과 네이티브 SGLang 통합 모델 간의 성능 격차를 줄입니다.
  • LoRA Support: Low-Rank Adaptation 지원을 추가합니다.
  • VLM Integration: Vision-Language Models(VLM)에 대한 지원을 확대하여 사용 사례를 늘립니다.

Sources