본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 05. 05. 08:00

DeepSeek V4 의 정확한 KV 캐시 사용량 분석

요약

본 기사는 DeepSeek V4 모델의 KV 캐시 사용량을 심층적으로 분석하며, 기존 모델(DSV3.2) 대비 혁신적인 메모리 효율성을 입증합니다. 특히 DSV4는 CSA와 HCA 같은 새로운 아키텍처 요소를 도입하여 컨텍스트 길이 1M에서 필요한 KV 캐시 크기를 대폭 줄였습니다. 필자는 자체 계산을 통해 기존 논문의 수치를 검증하고, 실제 사용 가능한 RAM 환경(예: 256GB RAM)에서의 구동 가능성을 제시하며 DSV4의 기술적 우위를 강조합니다.

핵심 포인트

  • DSV4는 CSA와 HCA 같은 새로운 아키텍처를 활용하여 KV 캐시 사용량을 혁신적으로 절감했습니다.
  • 자체 계산 결과, 1M 컨텍스트에서 DSV3.2 대비 DSV4의 KV 캐시 절감률은 약 12.5배로 추정됩니다.
  • 이러한 메모리 효율성 덕분에 DSV4 Flash는 비교적 낮은 사양(예: 256GB RAM)에서도 긴 컨텍스트 길이(1M)를 처리할 수 있게 됩니다.
  • 필자는 KV 캐시 사용량 분석에 있어 공식적인 논문 수치와 실제 구현 환경(llama.cpp 등)의 차이점을 상세히 지적하며 기술적 깊이를 더했습니다.

DSV4 논문 Figure 1 은 DSV3.2 가 1m 컨텍스트에서 약 50GB 를, DSV4 가 약 5GB 를 사용한다고 암시하는 것으로 보입니다:

https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro/blob/main/DeepSeek_V4.pdf

vllm 의 KV 캐시 분해로 숫자 업데이트
https://vllm.ai/blog/deepseek-v4

제 own 계산에 따르면, 1m 컨텍스트에서의 정확한 FP16 KV 캐시는 다음과 같습니다:

ModelParams128k160k1mKV%
V3/3.1671B8.58GiB10.72GiB68.63GiB5.11%
...

따라서 KV 캐시 절감은 9.5 배가 아니라 7.879 배입니다. 그래도 매우 인상적입니다. KV% 지표를 보면 약 20 배의 향상을 볼 수 있습니다. 이는 현재 모든 transformer-SSM 하이브리드 모델의 KV 캐시 사용을 완전히 무너뜨립니다. 하지만 transformer-SSM 커뮤니티는 DSV4 의 CSA 와 HCA 를 자신의 transformer 레이어에 적용하여 추격할 수 있습니다.

이러한 KV 캐시 사용량에서, DSV4 가 llama.cpp 에서 지원되면 DSV4 Flash 는 256GB RAM 과 3090 에서 1m 컨텍스트를, DSV4 Pro 는 1.5TB RAM 과 RTX 6000 Blackwell 에서 쉽게 실행할 수 있습니다. 논문에서 언급된 다양한 속도 향상이 이를 가능하게 할 것이라고 추측합니다.

DSV4 Pro 가 인공 분석에서는 잘 작동하지 않습니다. Kimi 와 Zhipu 가 이를 기반으로 파생작품을 만들 것으로 예상되므로, 매우 적은 KV 캐시를 사용하는 괴물이 나올 것입니다.

전반적으로 DS 는 중국 AI 의 연구 백본으로서 여전히 매우 잘 수행하고 있습니다.

PS 관심 있는 분들을 위한 더 자세한 계산입니다. 제가 수학에 실수가 있는지 알려주세요:

제대로 V3.2 를 llama.cpp 로 실행한 결과, DSV3.2 의 실제 FP16 KV 캐시 사용량은 160k 컨텍스트에서 10.72GiB, 가상의 1m 컨텍스트에서 68.625GiB 입니다.

이 숫자는 per token per layer MLA KV 캐시 공식 (kv_lora_rank + qk_rope_head_dim) * precision = (512 + 64) * 2 = 1152 bytes 으로 검증할 수 있습니다. 따라서 61 레이어와 1m 토큰의 경우, 1152611024*1024 = 68.625GiB 가 되며 이는 50GB 가 아닙니다.

하지만 이 68.625GiB 는 V3 와 V3.1 에만 유효하며 llama.cpp 는 DSA 와 V3.2 에서 도입된 Lightning indexer 를 구현하지 않기 때문입니다. 실제로 V3.2 는 인덱스를 저장하는 추가 128 bytes 를 사용합니다. 따라서 V3.2 의 per token per layer KV 캐시는 (512+64+128)2 = 1408 입니다. 1m 토큰의 경우 총합은 14086110241024 = 83.875GiB 가 됩니다.

반면, DSV4 Pro 는 30 개의 CSA 레이어와 31 개의 HCA 레이어 interleaved.My 이해는 CSA 가 DSA 의 파생물이므로 MLA 구성 요소와 Lightning Indexer 를 모두 가지지만 RoPE'd k 를 저장할 필요가 없습니다. CSA 는 한 번에 4 토큰을 처리하여 1 로 압축하므로, per token per layer KV 캐시는 (512+128)2/4 = 320 bytes 입니다. HCA 는 MLA 의 파생물이지만 RoPE'd k 를 저장할 필요가 없으므로, per token per layer KV 캐시 는 5122/128 = 8 bytes 입니다. 따라서 (32030+831)10241024 = ~9.62GiB 가 됩니다.

DSV4 Flash 에서는 첫 두 레이어가 128 토큰의 윈도우 크기를 가진 Sliding Window Attention 입니다. 일반적으로, 이러한 두 레이어에서 128 보다 긴 길이의 경우 per layer KV 캐시는 2n_head_kvhead_dimprecisionwindow = 211282128 = 65536 bytes 가 되어야 합니다. 현재 llama.cpp 구현은 더 나은 배치 위해 윈도우에 256 bytes 를 추가하여 211282(128+256) = 196608 bytes 가 됩니다.

DSV4 Flash 의 경우 CSA 레이어 21 개와 HCA 레이어 20 개가 있으므로, 1m 컨텍스트의 KV 캐시는 (32021+820)10241024+2*196608 = 6.72GiB 입니다. 이는 DSV3.2 에 비해 12.5 배 절감이며, 주장된 13.7 배가 아닙니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0