서빙 기능¶
이 페이지는 Rebellions와 함께 제공되는 Red Hat AI Enterprise(RHAIE)에서 지원하는 RBLN vLLM의 주요 기능을 요약합니다.
OpenAI 호환 API 서빙¶
RBLN vLLM은 업스트림 vLLM과 동일한 OpenAI 호환 HTTP API를 제공합니다. 현재 /v1/completions 및 /v1/chat/completions 엔드포인트가 검증되었습니다.
Chunked prefill¶
Chunked prefill은 긴 프롬프트의 prefill 계산을 더 작은 청크로 나누어 다른 요청의 decode 단계와 함께 스케줄링할 수 있도록 합니다. 이를 통해 단일 대형 prefill이 디바이스 시간을 독점하는 것을 방지하여 지연 시간 급증을 줄이고 토큰 간 지연(inter-token latency)을 일관되게 만들어 줍니다. 자세한 내용은 Chunked Prefill in vLLM에서 확인할 수 있습니다.
RBLN vLLM에서는 chunked prefill이 항상 활성화되며, 현재 이 기능은 제한적으로 지원됩니다. prefill 단계와 decode 단계의 혼합 스케줄링은 아직 지원되지 않으며, 두 연산은 단일 스케줄링 사이클 내에서 교차 실행(interleaving)되지 않고 독립적으로 처리됩니다. 이러한 제한은 향후 릴리스에서 개선될 예정입니다.
Automatic prefix caching¶
Prefix caching은 중복 prefill 계산을 제거하여 LLM 엔진 효율을 높입니다. 요청 간에 공유되는 프롬프트 접두사(prefix)에 대해 해시 기반으로 매칭된 KV 블록을 캐시하고 재사용하는 방식으로 동작합니다. 반복되는 접두사가 많은 워크로드에서 첫 토큰까지의 시간(time-to-first-token)을 줄일 수 있습니다. 자세한 내용은 Automatic Prefix Caching에서 확인할 수 있습니다.
RBLN vLLM에서는 ServingRuntime의 args에 --enable-prefix-caching을 넣어서 automatic prefix caching이 항상 활성화되도록 만듭니다. Prefix caching은 긴 시스템 프롬프트가 많은 요청에서 동일하게 재사용될 때 가장 효과적이며, 이는 RBLN vLLM에서 컴파일 재사용과 prefix-cache hit를 모두 높여줍니다. RBLN vLLM의 prefix caching은 향후 릴리즈에서 추가로 개선될 예정입니다.
- RBLN vLLM의 prefix caching은 현재 큰 block size에서 최적화되어 있습니다. 작은 block size에 대한 개선은 향후 릴리스에서 제공될 예정입니다.
- RBLN vLLM의 prefix caching은 현재 full attention만 지원합니다. 추가 attention 타입 지원은 향후 릴리스에서 제공될 예정입니다.
Structured output¶
Structured output(guided decoding)은 FSM 또는 bitmask 기반 logit masking 같은 기법을 사용해 모델의 토큰 생성을 제약함으로써, JSON/regex/grammar 등 지정된 스키마를 따르는 출력을 생성하도록 합니다. 이를 통해 후처리 재시도 없이도 생성 결과의 문법적 유효성과 파싱 가능성을 높일 수 있습니다. 자세한 내용은 Structured Output in vLLM에서 확인할 수 있습니다.
RBLN vLLM은 현재 JSON schema, regex, grammar, structural tag 유형의 필드/포맷에 대해 검증된 지원을 제공합니다.
Model parallelism¶
RBLN vLLM은 두 수준의 모델 병렬화를 지원합니다: vLLM-수준 병렬화(DP, TP, PP, EP)와 RBLN 컴파일러 자체의 디바이스 분할 기법인 Rebellions Scalable Design(RSD)입니다. 두 수준은 서로 무관한 개념이므로 조합할 수 있습니다. 각각의 파라미터, 제약 사항, 실행 예시는 모델 병렬화에서 확인할 수 있습니다.