llm-d

llm-d

llm-d는 추론 서버 팔리트(Fleet)에 걸쳐 대규모 언어 모델을 서빙하기 위한 Kubernetes 네이티브 분산 추론 프레임워크입니다. SGLang은 llm-d의 지원 추론 엔진 중 하나로, llm-d가 클러스터 전체의 SGLang 인스턴스 팔리트를 조정해 실제 프로덕션 트래픽에서도 성능이 유지되게 해요. 대부분의 하드웨어 가속기에서 핵심 OSS 모델의 "time to state-of-the-art (SOTA) performance"를 달성합니다.

출처: 문서

본문

llm-d는 추론 서버 팔리트 전반에 걸쳐 대규모 언어 모델을 서빙하는 Kubernetes 네이티브 분산 추론 프레임워크입니다. SGLang은 llm-d에서 지원하는 추론 엔진입니다. llm-d는 클러스터 전체의 SGLang 인스턴스 팔리트를 조정해 실제 프로덕션 트래픽에서 성능이 유지되게 하며, 대부분의 하드웨어 가속기에서 핵심 OSS 모델의 가장 빠른 "time to state-of-the-art (SOTA) performance"를 달성합니다.

llm-d는 Red Hat, Google Cloud, IBM Research, CoreWeave, NVIDIA가 설립한 CNCF Sandbox 프로젝트입니다.

llm-d가 SGLang 배포에 추가하는 것

단일 SGLang 서버는 빠르고, RadixAttention은 이미 각 복제본(replica) 내부의 캐시 재사용을 최대화합니다. 하지만 규모가 커지면 그림이 달라져요. 많은 복제본에 걸쳐 라운드로빈 부하 분산 아래에서 캐시 지역성(locality)이 깨지고, 관련 요청이 분산되며 radix-cache 적중률이 무너지고, 긴 프롬프트는 time-to-first-token을 부풀리고, 가속기가 유휴 상태가 됩니다. llm-d는 엔진이 혼자 제공하려 하지 않는 클러스터 레벨 계층을 추가합니다:

  • Prefix-aware routing. 라운드로빈 대신, llm-d Router가 각 복제본을 프리픽스 캐시 지역성과 현재 부하로 평가해 각 요청을 프리픽스를 이미 보유할 가능성이 가장 높은 복제본으로 라우팅합니다. 다중 턴·공유 프리픽스 워크로드에서 RadixAttention 적중률을 높이면서 포화된 서버는 피합니다.
  • Distributed KV-cache management. 전역 인덱스가 어느 토큰 블록이 어느 복제본에 있는지 추적하고, 계층형 오프로딩이 캐시를 CPU 메모리나 로컬 SSD로 넘겨 accelerator HBM을 넘어서는 워킹 셋으로 확장합니다.
  • Prefill/decode disaggregation. 프롬프트 처리와 토큰 생성을 별도 워커에서 실행하며, KV-cache를 고속 상호연결로 옮겨 긴 프롬프트에서 TTFT를 낮추고 토큰별 지연을 안정화합니다.
  • SLO-aware autoscalingflow control. 원시 GPU 사용률이 아니라 실제 추론 신호(큐 깊이, 실제 수요)로 SGLang 풀을 확장하며, 멀티 테넌트 공정성과 우선순위 디스패치를 갖춥니다.
  • 혼합 팔리트용 단일 제어 플레인(One control plane for mixed fleets). llm-d는 엔진 간 스케줄링하므로 플랫폼 팀이 SGLang과 vLLM 풀을 동일한 게이트웨이·정책·관측성 뒤에서 서빙할 수 있고 별도 스택을 병행 운영할 필요가 없습니다.

이 기능들은 합성 가능합니다. 대부분의 팀은 기존 SGLang 풀에 prefix-aware routing을 추가하는 것으로 시작하고, 특정 병목이 나타나면 나머지를 차례로 얹습니다.

Kubernetes 네이티브 게이트웨이

llm-d는 Gateway API Inference Extension 위에 구축되어 SGLang 풀이 표준 Kubernetes 리소스(Gateway, HTTPRoute, InferencePool)로 관리되고, 전용 라우팅 계층 대신 Istio, GKE Inference Gateway, agentgateway 같은 지원 게이트웨이 프로바이더에서 동작합니다.

성능 (Performance)

llm-d는 Prism에서 프로덕션 규모 배포의 재현 가능한 벤치마크를 게시합니다. 대표적인 결과로, prefix-aware routing은 라운드로빈 부하 분산보다 3배 높은 출력 처리량과 2배 빠른 TTFT를 제공했습니다(Llama 3.1 70B). 이 메커니즘은 SGLang에 그대로 이어지며, RadixAttention이 클러스터 레벨 캐시 적중률을 라우팅의 함수로 만듭니다.

시작하기 (Get started)

  • 추론 서버로 SGLang을 선택해 Quickstart로 최적화된 베이스라인을 배포하세요. 테스트된 구성으로 Kubernetes의 SGLang 풀 위에 지능형 라우터(the llm-d Router)를 세웁니다.
  • well-lit path guides를 살펴보세요. 각각 위 기능 중 하나에 대한 검증된 레시피이며, 워크로드에 맞는 최적화를 추가할 수 있습니다.
  • IntroductionArchitecture overview를 읽어 스케줄러·게이트웨이·모델 서버가 SGLang 배포를 어떻게 감싸는지 확인하세요.

질문과 기여는 GitHubSlack에서 환영합니다.

현재 범위 (Current scope)

SGLang은 well-lit path 전반에서 지원됩니다 — 지능형 추론 스케줄링, precise prefix-cache routing(llm-d Router가 구독하는 KV-cache 이벤트를 SGLang이 발행), 계층형 KV-cache 관리, prefill/decode 분리, flow control, autoscaling을 포함합니다. 현재 유일한 예외는 Multi-Node Wide Expert Parallelism이며, 현재는 vLLM 전용입니다. 최신 엔진별 지원 상태는 llm-d 문서를 참고하세요.

더 알아보기 (Learn more)