TL;DR
긴 컨텍스트 LLM serving에서 KV 캐시는 시퀀스 길이에 비례해 커지며 GPU 메모리, 동시성, 처리량을 제한하는 핵심 병목입니다. PagedAttention은 KV 캐시를 16 또는 32토큰 단위의 비연속 블록으로 나누고 block table로 주소를 변환해 메모리 단편화와 과잉 예약을 줄입니다. RadixAttention은 반복되는 prompt prefix를 radix tree에 저장하고 가장 긴 일치 prefix의 KV 상태를 재사용해 suffix만 계산하므로 prefill 비용과 Time to First Token을 낮춥니다. vLLM의 chain hashing도 같은 prefix 재사용을 제공하며, cache salting, 계층형 KV caching, cache-aware routing은 멀티테넌트 보안과 분산 serving으로 확장하기 위한 후속 기법입니다.
섹션별 상세
- Llama-3 8B급 모델에서 100,000토큰 컨텍스트는 batching과 추가 요청을 고려하기 전에도 약 12.8 GiB의 KV 캐시 메모리를 요구합니다. — KV 캐시 병목을 설명하는 도입부의 메모리 계산 예시

- PagedAttention은 KV 캐시를 16 또는 32토큰 단위의 고정 크기 블록으로 나누고 block table을 통해 논리 블록과 GPU 물리 블록을 연결합니다. — PagedAttention 작동 방식의 블록 분할과 block table 단계 및 이미지 1





- RadixAttention은 가장 긴 일치 token prefix의 KV 텐서를 재사용하고 일치하지 않는 suffix만 계산해 반복적인 prefill 연산을 줄입니다. — RadixAttention의 prefix matching과 suffix 계산 단계 및 이미지 4와 이미지 5

- PagedAttention은 메모리 할당과 배치를 최적화하고 RadixAttention은 요청 사이의 KV 상태 재사용을 최적화하므로 두 기법은 서로 다른 문제를 해결하며 함께 사용할 수 있습니다. — PagedAttention과 RadixAttention 비교 표 및 결론

- vLLM은 radix tree가 아니라 부모 hash, 현재 블록 token IDs, 선택적 메타데이터를 연결한 chain hashing으로 자동 prefix caching을 구현합니다. — vLLM의 prefix caching 구현과 Radix tree 대 chain hashing 비교 절



- 멀티테넌트 환경에서는 tenant별 cache salt를 cache identifier에 포함해 동일한 prompt라도 테넌트 간 KV 캐시 적중을 차단해야 합니다. — Prefix cache side channel과 cache salting을 다룬 보안 절
용어 해설
- KV 캐시(KV Cache)
- — Transformer가 이전 토큰의 Key와 Value 벡터를 저장해 다음 토큰 생성 때 재계산을 피하는 메모리 구조입니다. 시퀀스가 길어질수록 토큰 수에 비례해 커지므로 GPU 메모리 사용량, 동시 처리 요청 수, 지연 시간에 직접 영향을 줍니다.
- PagedAttention
- — KV 캐시를 요청마다 하나의 연속 메모리 영역에 배치하지 않고 고정 크기 블록으로 나누어 필요할 때 할당하는 방식입니다. 논리 블록과 GPU의 물리 블록을 block table로 연결해 메모리 단편화를 줄이고 동시 처리량을 높입니다.
- RadixAttention
- — 반복되는 프롬프트 prefix와 이에 대응하는 KV 상태를 radix tree에 저장한 뒤 새 요청에서 가장 긴 일치 prefix를 찾아 재사용하는 방식입니다. 이미 계산한 토큰을 건너뛰고 일치하지 않는 suffix만 처리해 prefill 연산과 Time to First Token을 줄입니다.
- Radix Tree
- — 토큰 시퀀스의 공통 prefix를 하나의 경로로 공유하는 압축 trie 자료구조입니다. 요청마다 토큰이 달라지는 지점에서만 가지를 만들기 때문에 동일한 시스템 프롬프트나 대화 이력에 연결된 KV 캐시를 중복 저장하지 않고 검색할 수 있습니다.
- Prefix Caching
- — 여러 요청에 반복되는 프롬프트 앞부분의 KV 상태를 캐시에 보관하고 이후 요청에서 같은 토큰 prefix를 다시 계산하지 않는 기법입니다. 반복 요청의 prefill 비용을 줄이지만 테넌트 간 캐시 공유가 타이밍 정보 유출로 이어질 수 있어 cache salting이 필요합니다.
- Cache-Aware Routing
- — 분산 LLM serving 환경에서 요청의 캐시 적중 가능성을 고려해 이미 필요한 KV 캐시를 가진 replica로 요청을 보내는 라우팅 방식입니다. 단순한 부하 균등화 대신 cache locality를 반영해 다른 GPU로 요청이 흩어지면서 발생하는 prefix cache miss를 줄입니다.
기술
- PagedAttention
- RadixAttention
- vLLM
- SGLang
- CUDA Virtual Memory Management (VMM)
- FP16
- LoRA
- RAG
활용 사례
- 긴 컨텍스트 LLM serving
- 다중 사용자 챗봇
- 멀티턴 대화
- RAG 파이프라인
- Coding assistant
- Agent loop
- Beam search
- Parallel sampling
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.


