[논문 리뷰] vLLM: Efficient Memory Management for LLM Serving with PagedAttention

smj·2026년 3월 31일

review

목록 보기
19/30

한줄 요약: 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

1. 문제 정의

LLM 추론에서 KV Cache가 GPU 메모리의 최대 병목이다. Autoregressive 생성에서 이전 토큰의 Key/Value를 재사용하기 위해 캐시에 저장하는데, 기존 시스템은 각 요청에 최대 시퀀스 길이만큼 연속 메모리를 미리 할당한다.

문제:
  요청 A: 최대 2048 토큰 예약, 실제 생성 500 토큰 → 75% 낭비
  요청 B: 최대 2048 토큰 예약, 실제 생성 1200 토큰 → 41% 낭비

  내부 단편화: 예약 중 미사용 공간
  외부 단편화: 요청 간 메모리 조각화
  → 실제 메모리 활용률: 20-40%에 불과
  → 같은 GPU에서 서빙 가능한 동시 요청 수가 2-4배 줄어듦

2. 제안 방법

PagedAttention: OS 가상 메모리에서 영감

OS 가상 메모리:
  물리 메모리를 페이지(4KB) 단위로 관리
  프로세스의 가상 주소는 연속, 물리 메모리는 비연속
  → 내부/외부 단편화 해결

PagedAttention:
  KV Cache를 블록(예: 16 토큰) 단위로 관리
  논리적으로 연속, 물리 GPU 메모리에서는 비연속
  → 마지막 블록만 부분 사용 → 내부 단편화 <4%
  → 블록 단위 할당/해제 → 외부 단편화 제거

블록 테이블 (Block Table)

논리 블록 → 물리 블록 매핑 (페이지 테이블과 동일)

요청 A:
  논리: [Block 0][Block 1][Block 2][Block 3]
  물리: [Slot 7] [Slot 2] [Slot 15][Slot 9]

어텐션 계산 시:
  블록 테이블을 참조하여 올바른 물리 위치에서 K, V를 가져옴
  → 연속 메모리가 아니어도 정확한 어텐션 계산 가능

Copy-on-Write (CoW) 메모리 공유

같은 시스템 프롬프트를 사용하는 요청들:
  요청 A: [시스템 프롬프트 KV] + [사용자 A KV]
  요청 B: [시스템 프롬프트 KV] + [사용자 B KV]

기존: 시스템 프롬프트 KV를 2벌 저장
PagedAttention: 시스템 프롬프트 KV 블록을 공유 (1벌만 저장)
  → 수정이 필요하면 그때 복사 (Copy-on-Write)

효과:
  Beam Search(beam=4): KV 메모리 ~4배 절약
  공통 프리픽스: 프리픽스 길이에 비례하여 절약

3. 실험 결과

3.1 처리량 비교

OPT-13B, A100 GPU:

시스템처리량 (req/s)배율
HuggingFace TGI8.41.0x
ORCA14.21.7x
vLLM22.22.6x

OPT-175B, 8×A100:

시스템처리량 (req/s)배율
FasterTransformer1.21.0x
vLLM3.12.6x

3.2 메모리 활용률

시스템KV Cache 메모리 활용률
기존 (연속 할당)20-40%
vLLM (PagedAttention)>96%

3.3 Beam Search에서의 메모리 절약

Beam 크기기존 메모리vLLM 메모리 (CoW)절약률
1기준기준-
44x1.05x~3.8x
88x1.12x~7.1x

4. 한계점

  • 블록 크기 고정: 최적 블록 크기가 모델/하드웨어마다 다를 수 있음 → 수동 튜닝
  • 비연속 메모리 접근의 오버헤드: 캐시 미스 발생 가능 → 블록 크기가 너무 작으면 성능 저하
  • 구현 복잡도: 커스텀 CUDA 커널 필요, 블록 테이블 관리 로직 추가
  • Prefill(프롬프트 처리) 단계에서는 이점 적음: Prefill은 메모리가 아닌 연산이 병목
  • 멀티 GPU 환경에서의 블록 관리: Tensor Parallelism 시 블록 동기화 필요
  • 초기 논문 시점에서 양자화 모델 지원 제한: 이후 AWQ, GPTQ 지원 추가

5. 의의와 영향

  • LLM 서빙의 사실상 표준: 2024년 기준 대부분의 프로덕션 LLM 서빙이 vLLM 기반
  • 같은 하드웨어에서 2-4배 더 많은 사용자 서빙 → 직접적 비용 절감
  • OS 개념(페이징, CoW)의 GPU 적용이라는 시스템적 사고의 승리
  • Continuous Batching, Prefix Caching, Speculative Decoding 등 추가 최적화의 기반 플랫폼
  • SGLang, TensorRT-LLM 등 경쟁 서빙 엔진에도 PagedAttention 아이디어 채택

6. 💬 리뷰어 코멘트

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

0개의 댓글