
DeepSeek-V4가 KV 캐시를 10분의 1로 줄일 수 있었던 CSA와 HCA 설계
요약
DeepSeek-V4는 CSA와 HCA 설계를 통해 100만 토큰 문맥에서의 KV 캐시를 이전 세대 대비 1/10로 절감했습니다. CSA는 4:1 압축과 희소 주의를, HCA는 128:1 압축과 밀집 주의를 사용하여 시퀀스를 두 가지 해상도로 처리합니다.
핵심 포인트
- CSA와 HCA를 교차 사용하여 KV 캐시를 획기적으로 감소시킴
- CSA: 4:1 압축 및 상위 k개 선택하는 희소 주의(Sparse Attention) 적용
- HCA: 128:1 고압축 및 시퀀스 전체를 조망하는 밀집 주의(Dense Attention) 적용
- 기존 MLA가 벡터 차원을 줄였다면, V4는 시퀀스 방향의 엔트리 수를 줄임
- 100만 토큰 기준 KV 캐시 10분의 1 절감 및 추론 FLOPs 27% 감소
긴 문맥을 다루는 LLM에서 실제로 큰 영향을 미치는 비용은 FLOPs(연산량)보다는 오히려 KV 캐시의 메모리다. 입력이 100만 토큰에 달하면 각 토큰분의 Key/Value를 계속 유지하는 것만으로도 GPU 메모리가 가득 차고, 배치 사이즈(Batch Size)가 제한되어 결국 처리량(Throughput)이 떨어진다. DeepSeek가 지난 7월 말에 발표한 DeepSeek-V4-Flash-0731 체크포인트와 그 토대가 된 기술 보고서를 읽어보면, 그들이 이 문제에 대해 "주의 집중 메커니즘(Attention Mechanism)을 두 종류, 서로 다른 해상도로 층마다 교차하여 쌓는다"라는 정공법으로 답을 내놓았음을 알 수 있다. 수치부터 먼저 말하자면, 100만 토큰 문맥에서의 KV 캐시는 이전 세대인 V3.2 대비 약 10분의 1로 줄었으며, 추론 FLOPs는 약 27%까지 떨어졌다.
출처는 arXiv의 기술 보고서다.
KV 캐시를 줄이는 발상은 여러 가지가 있다. DeepSeek가 이전 세대까지 사용했던 MLA(Multi-head Latent Attention)는 토큰 1개당 KV 표현 자체를 작은 잠재 벡터(Latent Vector)로 압축하는 방향이었다. 즉, "세로"를 깎는 것이다. 1토큰분의 데이터를 얇게 만드는 접근 방식이다.
V4가 새롭게 도입한 CSA(Compressed Sparse Attention)와 HCA(Heavily Compressed Attention)는 그곳이 아니라 "가로", 즉 시퀀스(Sequence) 방향의 엔트리(Entry) 수를 줄인다. 과거의 토큰을 묶어서 하나의 KV 엔트리로 컨볼루션(Convolution)하여, 주의(Attention)가 참조하는 상대의 "개수" 자체를 줄이는 것이다. 같은 KV 캐시 절감이라도 MLA와는 깎는 축이 직교한다. 이 점을 혼동하면 "또 MLA의 개량판인가"라고 잘못 읽을 수 있으므로, 처음에 확실히 짚고 넘어가야 한다.
이 차이를 정리한 것이 Sebastian Raschka의 아키텍처 해설이다.
CSA와 HCA는 둘 다 "과거의 토큰을 몇 개씩 묶어 1개의 엔트리로 압축한다"는 점은 같지만, 차이점은 압축의 강도와 그 이후의 관점에 있다.
CSA는 4개의 토큰을 1개의 엔트리로 묶는다(4:1). 다만 모든 엔트리를 보는 것이 아니라, 쿼리(Query)별로 관련성이 높은 상위 k개만 선택하는 희소 주의(Sparse Attention)를 가한다. 이 "무엇을 선택할 것인가"를 빠르게 결정하는 것이 전작에서 이어받은 경량 스코어러(Lightning Indexer)다. 여기에 더해 최근 128토큰 분량은 압축하지 않고 그대로 남겨두는 국소 윈도우(Local Window)를 병용한다. 가까운 과거는 세밀하게, 먼 과거는 요점만, 이라는 자연스러운 우선순위가 여기에 담겨 있다.
HCA는 훨씬 더 과감하여, 128개의 토큰을 1개의 엔트리로 묶는다(128:1). 이 정도로 압축하면 엔트리의 총수가 차원이 다르게 작아지기 때문에, CSA처럼 골라내지 않고 압축된 모든 엔트리에 솔직하게 밀집 주의(Dense Attention)를 가한다. 세부 사항은 완전히 상실되지만, 시퀀스 전체를 대략적으로 조망하는 역할을 담당한다.
멘탈 모델(Mental Model)로 비유하자면, 똑같이 긴 사진 한 장을 망원 렌즈(CSA, 세밀하지만 일부만)와 광각 렌즈(HCA, 전체를 보지만 거칠게)라는 두 개의 렌즈로 찍어두고, 층(Layer)에 따라 나누어 사용한다고 생각하면 이해가 쉽다. 한쪽만 사용하면 "세밀하지만 시야가 좁다" 혹은 "전체를 볼 수 있지만 세부 사항이 뭉개진다" 중 어느 한쪽으로 치우치지만, 양쪽을 교차하여 쌓음으로써 모델은 하나의 시퀀스를 두 가지 해상도로 동시에 가질 수 있게 된다.
| CSA | HCA |
|---|---|
| 압축률 | 4:1 |
| ... | 128:1 |
막연히 "V4는 긴 문장에서 빠르다"가 아니라, 무엇이 어떻게 가벼워졌는지 나누어 보고 싶다. CSA와 HCA가 깎고 있는 것은 크게 두 가지다. 하나는 참조하는 KV 엔트리의 개수이며, 이것이 곧바로 KV 캐시의 메모리 절감으로 이어진다. 다른 하나는 각 토큰이 계산하는 주의(Attention)의 FLOPs다. 밀집 전결합 주의(Dense All-to-all Attention)라면 문맥 길이의 제곱에 비례하여 늘어날 부분을, 압축과 희소 선택을 통해 선형(Linear)에 가깝게 만들고 있다.
기술 보고서에 따르면, 100만 토큰 설정에서 V4-Pro는 1토큰당 추론 FLOPs가 V3.2의 약 27%, KV 캐시가 약 10%이다. Raschka의 요약에 따르면, 더 소형인 V4-Flash는 FLOPs가 약 10%, KV 캐시가 약 7%로 더욱 공격적인 수치를 보여준다. 여기서 핵심은 "문맥이 길수록 압축의 효율이 좋아진다"는 성질이다. 짧은 입력에서는 이점이 적지만, 100만 토큰급에서는 효과가 폭발적으로 증가한다. 이는 긴 문장 RAG(Retrieval-Augmented Generation)나 코드베이스 전체를 읽히는 에이전트(Agent) 용도를 명확히 겨냥한 설계라고 읽힌다.
모델의 규모는 V4-Pro가 총 파라미터 1.6T, 토큰당 유효 49B의 MoE(Mixture-of-Experts)이며, V4-Flash는 총 284B, 유효 13B로, 둘 다 문맥 길이(Context Length)는 100만 토큰이다. 학습은 32T 토큰 이상으로 진행되었으며, 최적화에는 AdamW 대신 Muon을 사용했고, 잔차 연결(Residual Connection)도 Manifold-Constrained Hyper-Connections (mHC)라는 개량된 방식으로 교체했다. 어텐션 메커니즘(Attention Mechanism)만 눈에 띄지만, 보고서는 이들을 결합한 종합적인 효율화라고 규정하고 있다. 벤치마크에 대해서는 보고서가 오픈 모델 중 최고 수준이라고 주장하고 있으나, 공식 리포지토리(Repository)에서 수치를 대조해 보기 전까지는 개별 점수 인용은 삼가고자 한다.
내가 이 설계에서 가장 공감한 부분은 '단 하나의 완벽한 어텐션 메커니즘을 찾는 것'을 그만두었다는 점이다. 압축률을 하나로 결정하면, 세부 사항 중시형인지 혹은 전체 조망 중시형인지에 대한 트레이드오프(Trade-off)를 층(Layer)마다 고정하게 된다. V4는 이를 피하기 위해 미세한 렌즈와 거친 렌즈를 층 방향으로 교차 배치함으로써, 어느 쪽을 더 비중 있게 다룰지를 네트워크 전체에 분산시켰다. 단일 메커니즘의 최적화에 에너지를 소모하기보다, 역할이 다른 메커니즘들을 나란히 배치하여 상호 보완하게 하는 것이 장문(Long-context)이라는 난관에서는 정직하게 효과를 발휘한다. 설계 판단으로서 매우 타당하다고 생각한다.
한편, 이것이 '공짜 가속화'는 아니라는 점도 잊어서는 안 된다. HCA가 128:1로 압축한 이후의 세부 정보는 원리적으로 되돌릴 수 없다. 먼 문맥의 미세한 단어 하나에 의존하는 태스크(예: 방대한 계약서의 특정 조항 문구를 정확하게 인용하는 처리 등)에서는 이러한 거친 해상도가 영향을 미칠 가능성이 있다. 로컬 윈도우(Local Window)가 직전 128토큰을 무압축 상태로 보호하고 있는 것은 바로 그 약점에 대한 보험일 것이다. 장문 성능을 벤치마크의 평균 점수로만 판단하지 말고, 자신의 워크로드(Workload)가 '멀리 있는 세부 사항'을 얼마나 요구하는지에 따라 평가를 나누어야 한다.
DeepSeek-V4-Flash-0731
으로서 최근의 체크포인트(Checkpoint)가 계속 공개되고 있다는 사실 자체도, 이 계열이 실제 운영의 이터레이션(Iteration) 단계에 진입했다는 신호로 받아들인다. 오픈 웨이트(Open Weights) 모델로 이 정도 클래스의 장문 효율이 나온다면, 100만 토큰을 풀(Full)로 사용하는 에이전트(Agent)를 자체적으로 돌리는 비용 감각이 한 단계 달라질 것이다. CSA와 HCA라는 이름은 향후 다른 모델에서도 자주 보이게 될 것 같으며, 지금 그 메커니즘을 파악해 두는 것은 매우 가치 있는 일이다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기