KV Cache
[!tldr] 업무 관점 takeaway KV Cache는 우리 미션 전체의 데이터 객체다. 이 데이터의 (1) 크기·생명주기·재사용 패턴이 WAF 증가 원인, (2) GPU 밖으로 빼야만 하는 이유가 [[LMCache-개요|LMCache]] 존재 이유, (3) hot/cold가 극단적으로 갈리는 특성이 [[NVMe-FDP|FDP]] 적용 효과의 근거. 한 문장: "KV Cache의 lifetime 불균일이 [[WAF]] 증가의 직접 원인이며, FDP는 정확히 그걸 푼다."
한 줄 정의
LLM이 텍스트를 생성할 때, 이전 토큰들의 Attention 계산 결과(Key, Value 텐서)를 저장해 재계산을 피하는 메모리.
100페이지 책을 다시 읽을 때 포스트잇 메모를 보는 것에 비유.
왜 GPU 밖으로 꺼내야 하는가? — 3가지 이유
① GPU 메모리 한계
- LLM은 입력 토큰마다 KV를 저장
- Context 길이↑ + 동시 사용자↑ → KV 크기 폭증
- GPU HBM은 빠르지만 작음 → 금방 꽉 참
- 외부 티어 필요: CPU DRAM → SSD → Remote ([[LMCache-아키텍처|4-tier]])
② 재사용 (Prefix Caching)
User A: "Summarize this paper..."
User B: "Translate this paper..."
앞 prefix가 같으면 KV 재사용 가능. 하지만 GPU만 쓰면:
- GPU가 바뀌면 사용 불가
- 메모리 부족 시 eviction
- 서버 간 공유 불가
③ 멀티 GPU / 분산 환경 ([[PD-Disaggregation|PD 분리]])
Prefill GPU → Decode GPU로 KV를 옮겨야 한다.
KV Cache의 워크로드 특성 (FDP 핵심 근거)
Lifetime이 극단적으로 갈린다
Prefix Cache (시스템 프롬프트): 수명 hours ~ days (long)
중간 컨텍스트 캐시: 수명 minutes (medium)
Single-query KV: 수명 seconds (short)
이게 같은 NAND 블록에 섞이면 → 짧은 게 지워질 때 긴 게 같이 복사됨 → [[WAF]] 증가 ([[NAND-Flash-기초]] 참조).
재사용 패턴 — 의외로 높은 히트율
- 실측 RAG/대화 기록에서도 50% 히트율
- 전체 사용자 19%가 1.5회 이상 재사용
- ⇒ 캐시 가능성이 매우 넓음
KV Cache가 SSD에 만드는 I/O 패턴
Write: GPU에서 evict된 KV → SSD에 저장 (burst, async)
Read: 재사용 시 SSD → CPU → GPU (blocking, latency-sensitive)
Delete: 더 이상 필요없는 KV → 공간 반환
→ random write + delete가 빈번 + [[Garbage-Collection|GC]] 폭주 + WAF 증가.
의외의 연결
[!note] KV Cache lifetime 불균일 ↔ FDP의 핵심 가치 KV Cache 워크로드는 lifetime이 자연스럽게 hot/cold로 분리된다. [[NVMe-FDP|FDP RUH]]가 풀려는 정확한 문제 = "lifetime 다른 데이터 분리 배치". 그래서 KV Cache는 FDP의 ideal workload다.
[!note] KV Cache 256 토큰 chunk ↔ medium file Llama-3.1-8B 기준 256 토큰 chunk ≈ 134MB. small file 아님. medium file의 random write 폭주가 WAF 원인. ([[LMCache-Local-Disk-Backend|LMCache "청크 하나 = 파일 하나"]])
측정 가능한 KV Cache 효과
- TTFT (Time to First Token) — cold(캐시 없음) vs warm(있음) 비교
- ITL (Inter-Token Latency) — 토큰 사이 간격
- 자세히: [[TTFT-ITL]]
실측: 15,376 토큰 프롬프트 기준 cold 6.314초 → warm 0.148초 (42.6×)
관련 페이지
- [[LMCache-개요]] — KV Cache를 외부 티어로 빼내는 SW
- [[vLLM-PagedAttention]] — KV Cache 메모리 관리 방식 (페이지)
- [[NVMe-FDP]] — KV Cache 워크로드에 이상적인 SSD 기술
- [[WAF]] — KV Cache가 증가시키는 핵심 지표
- [[PD-Disaggregation]] — KV Cache 전송이 필수가 되는 환경