--- id: kv-caching title: "KV Caching" category: "AI_and_ML" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["KV 캐싱", "Key-Value Caching", "KV Cache", "키-밸류 캐싱"] duplicate_of: "" source_trust_level: "A" confidence_score: 0.90 created_at: 2026-07-11 updated_at: 2026-07-11 review_reason: "" merge_history: [] tags: ["research", "context 이해 규칙"] raw_sources: ["[AI/LLM] Transformer Attention 이해하기: Q, K, V의 역할과 동작 원리"] applied_in: [] github_commit: "" --- # [[KV Caching]] ## 🎯 한 줄 통찰 (One-line insight) 트랜스포머 기반 디코더 모델의 텍스트 생성 과정에서 발생하는 불필요한 중복 연산을 방지하기 위해, 이전 스텝의 Key(K)와 Value(V) 벡터를 메모리에 저장하여 추론 속도를 획기적으로 높이는 최적화 기법. ## 🧠 핵심 개념 (Core concepts) - **Auto-regressive 특성 대응**: 디코더는 한 번에 하나의 토큰을 생성하며(Auto-regressive), 새로운 토큰 $t$를 생성할 때 $1$부터 $t-1$까지의 이전 토큰 정보는 변하지 않으므로 이를 매번 다시 계산할 필요가 없다는 구조적 사실에 기반함 [S1]. - **연산 복잡도(O(n²)) 제거**: 매 스텝마다 전체 시퀀스의 K와 V를 재계산하면 심각한 연산 낭비가 발생하므로, 캐싱을 통해 이 복잡도를 대폭 완화함 [S1]. - **추론 성능(TTFT, Throughput) 개선**: 불필요한 연산량(FLOPs)을 줄임으로써 모델 서빙 단계에서 첫 토큰 생성 시간(Time-to-First-Token, TTFT) 및 전체 처리량(Throughput)을 최적화함 [S1]. ## 🧩 추출된 패턴 (Extracted patterns) - **상태 보존(Caching) 전략**: 이전 스텝에서 이미 계산 완료된 K와 V 벡터를 메모리에 저장(Caching)해 두고, 현재 시점의 '새로운 Query'에 대해서만 어텐션 연산을 수행하는 구조적 패턴 [S1]. - **메모리 한계 극복을 위한 병행 기법**: 시퀀스 길이가 길어질수록 GPU VRAM의 캐시 점유율이 높아지는 물리적 한계가 발생하며, 이를 보완하기 위해 [[PagedAttention]]과 같은 진보된 메모리 관리 기법을 병행하는 설계 전략이 사용됨 [S1]. ## 📖 세부 내용 (Details) - **배경 및 필요성**: 실제 LLM 모델 배포 및 서빙 단계에서 리서치 엔지니어(RE)들이 반드시 고려해야 할 핵심 최적화 요소이다. Auto-regressive 모델인 디코더는 매 스텝 토큰을 생성할 때 과거의 토큰 정보가 변하지 않음에도 전체 시퀀스에 대해 K와 V를 재계산하게 되면 연산량이 급증하여 성능 저하를 일으킨다 [S1]. - **동작 원리**: 어텐션 메커니즘에서 이전 스텝까지 계산된 K(Key)와 V(Value) 벡터 값을 메모리에 캐싱해 둔다. 그리고 새로운 토큰을 생성하는 현재 시점에서 만들어진 새로운 Q(Query)에 대해서만 기존에 저장된 K, V 값들과 연산을 수행한다 [S1]. - **장점 및 트레이드오프**: 연산량(FLOPs)을 획기적으로 줄여 추론 속도(Throughput 및 TTFT)를 높인다는 확실한 장점이 있다. 하지만, 텍스트(시퀀스)가 길어지면 길어질수록 이를 담아두는 GPU VRAM의 점유율이 지속적으로 상승한다는 메모리 용량 측면의 단점이 공존한다 [S1]. ## ⚖️ 모순 및 업데이트 (Contradictions & updates) 소스 내에서 상충되거나 기존 상식과 모순되는 정보는 확인되지 않음. ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다. (소스에서 특정 파일 경로, 프로젝트 이름, 결정 사항 등에 대한 구체적인 적용 사례가 확인되지 않음) ## 💻 코드 패턴 (Code patterns) 소스에 코드 예시 없음. ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** A - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 관련 문서 링크 (Related document links) ### 상위/유사 개념 - [[Attention Mechanism]] — KV Caching 최적화가 직접적으로 적용되는 트랜스포머 모델의 코어 연산 구조. - [[PagedAttention]] — KV Caching으로 인해 발생하는 GPU VRAM 점유율 한계 문제를 해결하기 위해 병행되는 메모리 페이징 기법. - [[Auto-regressive]] — 이전 결과를 바탕으로 순차적으로 다음 토큰을 생성하는 메커니즘으로, KV Caching이 필요한 본질적 원인을 제공함. ### 심층 후속 질문 (Deeper Research Questions) - KV Caching을 적용할 때 발생하는 VRAM 병목 현상을 해결하기 위한 PagedAttention의 구체적인 메모리 할당 원리는 무엇인가? - 디코더(Decoder)와 달리 인코더(Encoder) 아키텍처에서는 KV Caching 기법이 어떻게 다르게 적용되거나 불필요해지는가? - 시퀀스 길이 증가에 따른 KV Cache VRAM 점유율 변화량을 정량적으로 계산하는 공식은 무엇인가? ### 실무 적용 맥락 (Practical Application Contexts) - **Implementation:** 대규모 언어 모델(LLM) 추론 서버 구축 시 속도 최적화를 위한 필수 엔진 설정 적용. - **System Design:** 트랜스포머 기반 디코더 모델의 메모리 레이아웃 및 VRAM 할당 스케줄러 아키텍처 설계. - **Operation / Maintenance:** 실시간 AI 서비스(챗봇 등) 운영 시 동시 접속자 수 증가에 따른 GPU 메모리 모니터링 및 캐시 한계 대응. - **Learning Path:** 트랜스포머의 어텐션 메커니즘 이론 학습 완료 후, 실제 서비스 배포를 위한 서빙 최적화 기법 습득 단계에서 필수 학습. ### 인접 주변 주제 (Adjacent Topics) - [[Transformer Architecture]] — KV Caching이 탑재되는 언어 모델의 근본 구조. - [[Large Language Model Serving]] — LLM을 실제 프로덕션 환경에 배포하고 운영하는 제반 기술 도메인. ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[context 이해 규칙]] - **관련 개념:** [[Attention Mechanism]], [[PagedAttention]] - **참조 맥락:** 트랜스포머(Transformer) 디코더 모델을 실제 서버 환경에 배포하고 실시간 추론 속도 및 메모리 사용량을 최적화할 때 핵심 참고 기준으로 활용. ## 📚 출처 (Sources) - [S1] [AI/LLM] Transformer Attention 이해하기: Q, K, V의 역할과 동작 원리 (https://mvje.tistory.com/258) ## 📝 변경 이력 (Change history) - 2026-07-11: Initial draft generated via Datacollector_MAC P-Reinforce engine.