vLLM 라우팅과 KV (16분 읽기)
핵심 내용
혼합 트래픽에서는 클래스 인지 vLLM 라우팅이 가장 좋은 균형을 보였다.
자세히 보기
FCK가 생성한 혼합 생산 트래픽으로 vLLM V1, SGLang, llama.cpp, TGI를 같은 OpenAI-compatible 인터페이스 아래 비교했다. 서빙 스윕은 균형 풀, 대형 토큰 풀, 소형 인터랙티브 풀, prefix-cache routing, slow-client isolation, class-aware routing을 시험했다.
요청군은 6개였다.
- interactive chat
- 반복 프리픽스를 쓰는 RAG
- long-prefill 요청
- agent tool loops
- batch summarization
- slow streaming clients
가장 좋은 프로필은 vllm-v1/class-aware-router였다. 첫 토큰 지연(TTFT), 토큰 간격(ITL), 느린 스트리밍 클라이언트 격리, 유용 처리량의 균형이 가장 좋았고, 단일 글로벌 vLLM 풀보다 mixed traffic에 훨씬 적합했다.
운영 기준은 단순했다.
- 인터랙티브 트래픽은 더 작은
max_num_batched_tokens와 적당한max_num_seqs로 묶는다. - 긴 컨텍스트와 배치 작업은 더 큰 토큰 예산의 별도 풀로 분리한다.
- chunked prefill에서는
max_long_partial_prefills를max_num_partial_prefills보다 낮게 둔다. max_num_batched_tokens,max_num_seqs, partial-prefill 제한, stream interval은 워크로드 제어값으로 본다.
스케일을 키운 실험에서는 단일 공유 풀이 TTFT/ITL 게이트를 통과하지 못했지만, class-aware routing은 거의 모든 요청을 받아냈다. prefix-cache-only와 slow-client-only 프로필은 각 구간에는 도움이 됐으나 전체 시스템 해법은 아니었다.
소스 빌드에서는 Debian이 더 큰 rootfs를 필요로 했고 GCC 버전 게이트에 막혔다. Fedora 44에서는 GCC 16, Python 3.14, VLLM_TARGET_DEVICE=cpu, MAX_JOBS=4, numactl-devel 조합으로 확장 모듈을 성공적으로 빌드했으며, 런타임 성능을 위해 tcmalloc 설치가 권장됐다.
Hybrid KV 랩은 PagedAttention 재작성 경로를 검증했다. 블록 소유권, prefix sharing, refcounts, partial blocks, eviction, copy-on-write를 유지하면서 긴 per-token block table 대신 compact logical span을 노출했다. 정확성 오라클은 odd lengths, MQA/GQA, ALiBI, sliding windows, prefix reuse, copy-on-write, partial final blocks, FP8-style scaling을 대조했고, 첫 실행에서 30/30을 통과해 virtual-contiguous와 hybrid-prefix-shared를 하드웨어 프로파일링 우선 후보로 골랐다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.