vLLM GLM 5.3 최적화: 하이브리드 HiSparse 오프로딩
vLLM는 GLM 5.3의 서빙 속도를 빠르게 하고 비용을 절감하기 위해 하이브리드 HiSparse 오프로딩을 도입했습니다. 이 최적화는 이전에는 이 하드웨어에서 불가능했던 단일 8x H200 노드에서 GLM 5.3을 100만 토큰의 전체 컨텍스트 길이로 실행할 수 있게 하며, 다양한 컨텍스트 길이에서 동시성(concurrency)을 크게 증가시킵니다.
KV 캐시 메모리 압박 해결
에이전트 워크로드는 일반적으로 긴, 점점 길어지는 컨텍스트를 가진 많은 동시 요청을 포함합니다. GPU 블록 풀은 고정되어 있으므로, KV 캐시는 결국 사용 가능한 메모리를 고갈시키고, 다음 두 가지 전통적인 방법 중 하나를 선택해야 합니다:
- 프리emptive: 요청의 KV 캐시가 삭제되고 나중에 다시 프리필해야 하며, 이는 전체 Time to First Token (TTFT) 패널티를 초래합니다.
- 오프로딩: KV 블록이 호스트 메모리로 이동되지만, 밀집된 어텐션은 모든 토큰이 GPU에 존재해야 하므로 동시성은 GPU 메모리 용량에 제한됩니다.
하이브리드 HiSparse는 GLM 5.3의 스파스-MLA (Multi-head Latent Attention) KV 캐시를 활용하여 이 문제를 해결합니다. 스파스-MLA에서는 인덱서가 어텐션에 사용할 최상위-K 토큰만 선택합니다. HiSparse는 이 선택된 토큰을 제외한 모든 KV 캐시를 CPU로 오프로딩합니다.
하이브리드 HiSparse는 용량이 남아 있는 한 KV 캐시를 GPU에 유지합니다. 시스템이 KV 캐시 압박을 느낄 때만 오프로딩을 트리거합니다. 이 접근 방식은 CPU-GPU 메모리 전송을 최소화하여, 동시성 증가 시점에만 비용을 지불합니다.
하이브리드 HiSparse의 기술적 구현
하이브리드 HiSparse는 vLLM의 하이브리드 메모리 할당기(HMA)를 사용하여 공유 GPU 블록 풀을 통해 거주성(residency)을 관리합니다. 메모리 압박에 따라 요청을 세 가지 상태로 이동시키며, 각 페이지별로 거주성을 추적합니다:
- 전체 거주성: 모든 스파스-MLA KV는 GPU에 유지되며, 완료된 접두사 페이지는 사전에 호스트 메모리로 복사됩니다.
- 혼합 거주성: 요청의 꼬리 부분은 GPU에 유지되지만, 오래된 페이지는 CPU 메모리에 존재합니다. 인덱서가 필요한 행은 GPU의 "핫 버퍼"에 저장됩니다. 융합된 커널이 최상위-K 해상도를 처리합니다: 거주 중인 토큰을 그 자리에서 읽고, 핫 토큰을 읽으며 LRU 엔트리를 갱신하거나, 미스 시 핀된 호스트 메모리에서 단일 행을 LRU 슬롯으로 복사합니다.
- 거주성 없음: 접두사가 CPU 메모리에만 존재하는 요청의 경우, 시스템은 자리표시자와 핫 페이지로 시작하며, 인덱서가 선택할 때마다 행을 로드합니다.
핵심 아키텍처 세부 사항
- 핫 버퍼: 별도의 할당이 아니라 HMA 풀에서 빌려온 일반적인 KV 캐시 블록입니다. 기본적으로 요청당 최상위-K 행의 2배 크기로 설정되어 높은 히트율을 유지하면서 최소한의 크기로 유지됩니다.
- 사전 복사: 압박을 대비해, 완료된 접두사 페이지를 GPU에서 제공하는 동안 호스트 메모리로 복사 작업을 큐에 넣습니다. 이로 인해 압박이 발생할 때 GPU 슬롯을 즉시 해제할 수 있으며, 추가 복사 작업이 필요하지 않습니다.
- 경량 실행:
hisparse-glm브랜치는 프로퍼그레이션 후 단일 실행으로 모든 스파스-MLA 레이어를 복사하며, 모델의 GPU 스트림에 따라 순서를 정해 동기화를 단순화합니다.
vLLM 스택과의 통합
하이브리드 HiSparse는 공유 HMA 풀 위에 있는 거주성 정책으로 작동합니다. 기존 vLLM 기계와 통합되며 다른 구성 요소에 영향을 주지 않습니다:
- 접두사 캐싱: 다른 캐시 그룹은 여전히 표준 접두사 캐싱과 오프로딩을 사용합니다.
- 인덱서 KV: 인덱서 KV는 표준
OffloadingConnector를 사용하여 블록 단위 저장을 독립적으로 처리합니다. - P/D 디아그리게이션: 프리필/디코딩 디아그리게이션에서 가져온 내용은 접두사가 거주 메모리에 맞지 않으면 호스트 측에 도착할 수 있습니다.
- 예측적 디코딩: 단계별로 재실행 가능한 리졸버 계획을 통해 작동하며, 요청의 핫 상태를 공유합니다.
성능 벤치마크
vLLM은 OpenHands 다중 턴 에이전트 워크로드(13턴 대화, 첫 번째 턴 74,160토큰, 이후 턴 753토큰, 출력 220토큰)를 사용하여 8x H200 GPU에서 GLM 5.3을 벤치마크했습니다. 구성은 MTP3, FP8 KV 캐시, 142K 입국 제한을 사용했습니다.
하이브리드 HiSparse(384 GiB HiSparse 풀, 128 GiB 오프로딩 풀 사용)를 표준 오프로딩 베이스라인(512 GiB 오프로딩 풀 사용)과 비교했을 때, 하이브리드 HiSparse는 더 우수한 상호작용-처리량 파레토 곡선과 더 높은 평균 동시 실행 요청 수를 보였습니다.
가용성 및 구성
하이브리드 HiSparse는 vLLM v0.30에서 넓은 범위로 가용할 예정입니다. 현재는 NVIDIA GPU에서만 구현되어 있습니다. 현재 재현을 위해서는 hisparse-glm 브랜치(커밋 e8ef1e07bd)가 필요합니다.
하이브리드 HiSparse를 활성화하려면 vllm serve 명령어에서 다음 구성이 사용됩니다:
--attention-config '{"hisparse_config":{"host_pool_gib":384}}'
--kv-transfer-config '{"kv_connector":"OffloadingConnector","kv_role":"kv_both","kv_connector_extra_config":{"spec_name":"TieringOffloadingSpec","cpu_bytes_to_use":137438953472}}'