한줄 요약: OS의 가상 메모리 페이징 기법을 KV Cache에 적용하여 메모리 낭비를 거의 제거하고, LLM 서빙 처리량을 2-4배 향상시켰다.
| 항목 | 내용 |
|---|---|
| 저자 | Woosuk Kwon, Zhuohan Li, Siyuan Zhuang, Ying Sheng, Lianmin Zheng, Cody Hao Yu, Joseph E. Gonzalez, Hao Zhang, Ion Stoica |
| 소속 | UC Berkeley |
| 발표 | SOSP 2023 |
| 링크 | arxiv.org/abs/2309.06180 |
| 키워드 | LLM Serving, KV Cache, Memory Management, Paging |
LLM 추론에서 KV Cache가 GPU 메모리의 최대 병목이다. Autoregressive 생성에서 이전 토큰의 Key/Value를 재사용하기 위해 캐시에 저장하는데, 기존 시스템은 각 요청에 최대 시퀀스 길이만큼 연속 메모리를 미리 할당한다.
문제:
요청 A: 최대 2048 토큰 예약, 실제 생성 500 토큰 → 75% 낭비
요청 B: 최대 2048 토큰 예약, 실제 생성 1200 토큰 → 41% 낭비
내부 단편화: 예약 중 미사용 공간
외부 단편화: 요청 간 메모리 조각화
→ 실제 메모리 활용률: 20-40%에 불과
→ 같은 GPU에서 서빙 가능한 동시 요청 수가 2-4배 줄어듦
OS 가상 메모리:
물리 메모리를 페이지(4KB) 단위로 관리
프로세스의 가상 주소는 연속, 물리 메모리는 비연속
→ 내부/외부 단편화 해결
PagedAttention:
KV Cache를 블록(예: 16 토큰) 단위로 관리
논리적으로 연속, 물리 GPU 메모리에서는 비연속
→ 마지막 블록만 부분 사용 → 내부 단편화 <4%
→ 블록 단위 할당/해제 → 외부 단편화 제거
논리 블록 → 물리 블록 매핑 (페이지 테이블과 동일)
요청 A:
논리: [Block 0][Block 1][Block 2][Block 3]
물리: [Slot 7] [Slot 2] [Slot 15][Slot 9]
어텐션 계산 시:
블록 테이블을 참조하여 올바른 물리 위치에서 K, V를 가져옴
→ 연속 메모리가 아니어도 정확한 어텐션 계산 가능
같은 시스템 프롬프트를 사용하는 요청들:
요청 A: [시스템 프롬프트 KV] + [사용자 A KV]
요청 B: [시스템 프롬프트 KV] + [사용자 B KV]
기존: 시스템 프롬프트 KV를 2벌 저장
PagedAttention: 시스템 프롬프트 KV 블록을 공유 (1벌만 저장)
→ 수정이 필요하면 그때 복사 (Copy-on-Write)
효과:
Beam Search(beam=4): KV 메모리 ~4배 절약
공통 프리픽스: 프리픽스 길이에 비례하여 절약
OPT-13B, A100 GPU:
| 시스템 | 처리량 (req/s) | 배율 |
|---|---|---|
| HuggingFace TGI | 8.4 | 1.0x |
| ORCA | 14.2 | 1.7x |
| vLLM | 22.2 | 2.6x |
OPT-175B, 8×A100:
| 시스템 | 처리량 (req/s) | 배율 |
|---|---|---|
| FasterTransformer | 1.2 | 1.0x |
| vLLM | 3.1 | 2.6x |
| 시스템 | KV Cache 메모리 활용률 |
|---|---|
| 기존 (연속 할당) | 20-40% |
| vLLM (PagedAttention) | >96% |
| Beam 크기 | 기존 메모리 | vLLM 메모리 (CoW) | 절약률 |
|---|---|---|---|
| 1 | 기준 | 기준 | - |
| 4 | 4x | 1.05x | ~3.8x |
| 8 | 8x | 1.12x | ~7.1x |
vLLM의 핵심 인사이트는 "40년 된 OS 개념이 최신 AI 문제를 해결한다"는 것이다. 가상 메모리 페이징은 1960년대부터 존재했고, Copy-on-Write는 1970년대에 나왔다. 이 오래된 아이디어를 GPU의 KV Cache 관리에 적용한 것은 분야 간 지식 전이의 훌륭한 사례다.
실전에서 vLLM의 가장 큰 이점은 처리량 향상보다도 "예측 가능한 메모리 사용"이다. 기존 시스템은 최대 시퀀스 길이를 보수적으로 잡아야 OOM을 방지할 수 있었는데, vLLM은 실제 사용량에 따라 동적으로 할당하므로 메모리 계획이 훨씬 수월하다.
LLM 서빙 비용이 곧 회사의 마진을 결정하는 시대에, vLLM은 "같은 GPU로 2배 더 많은 사용자를 서빙"이라는 직접적 비즈니스 가치를 제공한다.
관련 논문: Flash Attention, Speculative Decoding, Continuous Batching, SGLang