본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 18. 20:35

FlashMemory: Lookahead Sparse Attention을 통해 DeepSeek-V4의 KV Cache를 13.5%로 절감

요약

FlashMemory-DeepSeek-V4 논문은 Lookahead Sparse Attention(LSA) 기술을 통해 KV Cache 점유율을 13.5%로 획기적으로 절감하는 방법을 제안합니다. Neural Memory Indexer를 활용해 필요한 캐시 청크만을 예측하여 로드함으로써, 긴 컨텍스트 디코딩 시 발생하는 메모리 병목 문제를 해결합니다.

핵심 포인트

  • LSA 기술로 KV Cache 물리적 점유율을 기존 대비 13.5% 수준으로 감소
  • Neural Memory Indexer를 통한 효율적인 캐시 청크 예측 및 로드
  • 백본 없이(Backbone-free) 인덱서를 독립적으로 학습하여 비용 절감
  • 정확도를 0.6% 높이면서도 메모리 병목 현상 완화

무엇인가 (What): FlashMemory-DeepSeek-V4 논문은 **Lookahead Sparse Attention (LSA)**를 소개합니다. 이는 토큰이 캐시된 과거의 어느 청크(chunk)를 실제로 사용할지 예측하도록 작은 Neural Memory Indexer를 학습시켜, 전체 KV cache를 로드하지 않고도 매우 긴 컨텍스트(context)를 디코딩하는 기술입니다.

이유 (Why): 긴 컨텍스트에서는 병목 비용이 **연산이 아닌 메모리 (memory, not math)**에서 발생합니다. KV cache는 토큰이 추가될 때마다 커지며 GPU 서빙 메모리를 점유하게 되는데, LSA는 정확도를 0.6% 높이면서도 물리적 캐시 점유율 (physical cache footprint)을 전체 버전의 13.5%로 줄여줍니다.

이전 방식과의 차이 (vs prior): 일반적인 **전체 KV cache (full KV cache)**가 전체 컨텍스트에 대한 모든 토큰의 Key와 Value를 보유하는 반면, LSA의 인덱서(indexer)는 예측된 관련 청크만을 유지합니다. 또한 특이하게도 이 인덱서는 백본 없이 (backbone-free) 학습되므로, 인덱서가 학습되는 동안 조 단위 규모의 모델이 GPU 메모리에 상주할 필요가 없습니다.

비유하자면

당신이 다음에 열어볼 파일들만 미리 챙겨두는 비서와 같습니다.

                  다음에 쓸 단어
                            │
            ┌───────────────┴───────────────┐
...
  • 컨텍스트 토큰 (context token) = 모델이 읽으면서 파일로 저장해둔 문서
  • KV cache = 지금까지 읽은 모든 것의 전체 아카이브
  • Neural Memory Indexer = 당신이 어떤 폴더를 열지 예측하는 비서
  • Lookahead Sparse Attention (LSA) = 그 몇 안 되는 폴더들만 책상 위로 가져오는 것
  • 13.5% 점유율 (footprint) = 아카이브의 약 7분의 1 정도만 담을 수 있는 책상

용어 사전 (Quick glossary)

KV cache — 이미 처리된 모든 토큰에 대해 저장된 KeyValue 벡터로, 모델이 과거를 다시 계산하지 않도록 합니다. 컨텍스트 길이(context length)에 따라 커지며, 500K 토큰 수준에서는 엄청난 크기가 됩니다. 배경: KV Cache → 메모리 비용.

Lookahead Sparse Attention (LSA) — FlashMemory의 메커니즘: 전체 캐시에 어텐션(attention)을 수행하는 대신, 앞을 내다보고 (looks ahead) 토큰이 필요할 것으로 예측되는 KV 엔트리만 유지합니다. 따라서 디코딩 중에 캐시의 대부분은 로드되지 않습니다.

Neural Memory Indexer (신경망 메모리 인덱서) — 예측을 수행하는 경량 모델입니다. 캐시된 컨텍스트의 **청크 (chunks)**에 점수를 매기고, 현재 쿼리에 중요한 것이 무엇인지 표시합니다. 즉, LSA가 무엇을 유지할지 결정하는 부분입니다.

Backbone-free / decoupled training (백본 없는 / 분리된 학습) — 거대한 베이스 모델을 로드하지 않고 인덱서를 독립적으로 학습시킵니다. 인덱서 학습 중에 조 단위 규모의 "백본 (backbone)"이 GPU 메모리에 상주할 필요가 없기 때문에, 이 방식은 학습 비용이 훨씬 저렴합니다.

Decode vs prefill (디코딩 대 프리필) — **프리필 (prefill)**은 전체 프롬프트를 한 번의 병렬 패스로 읽습니다. 반면 **디코딩 (decode)**은 한 번에 하나의 토큰을 생성하며, 매번 캐시를 읽습니다. LSA는 캐시를 반복해서 읽게 되는 디코딩 단계를 목표로 합니다.

Physical footprint (물리적 점유 공간) — 단순히 연산 비용이 얼마나 드는가가 아니라, 캐시가 실제로 점유하는 GPU 메모리 양을 의미합니다. LSA의 핵심 성과는 점유 공간을 (**13.5%**까지) 줄인 것이며, 이는 속도 향상뿐만 아니라 메모리 측면에서의 승리입니다.

DeepSeek-V4 — FlashMemory가 통합된 롱 컨텍스트 (long-context) 모델 (2026년 4월 출시)입니다. LSA는 이 모델의 초장기 컨텍스트 서빙을 경제적으로 만드는 변화입니다.

뉴스. 2026년 6월 9일, Tencent 팀 (Wang et al., arXiv 2606.09079)이 Lookahead Sparse Attention (LSA)을 도입한 FlashMemory-DeepSeek-V4를 발표했습니다. 롱 컨텍스트 디코딩 중에 전체 KV 캐시를 로드하는 대신, Neural Memory Indexer가 어떤 컨텍스트 청크가 중요한지 예측하고 해당 KV 엔트리만 유지합니다. DeepSeek-V4에서 이는 물리적 KV 캐시 점유 공간을 전체 컨텍스트 기준선의 **13.5%**로 절감하며 — 500K 컨텍스트에서 90% 이상 감소 — 동시에 정확도를 평균 +0.6% 향상시킵니다. 논문 읽기 →

잠시 비유를 들어보겠습니다. 모델이 방대한 문서를 읽고 모든 페이지를 아카이브(archive)에 보관했다고 가정해 봅시다. 이 아카이브가 바로 KV 캐시(KV cache)입니다. 다음 단어를 쓰기 위해, 단순한(naive) 방식은 매번 아카이브 _전체_를 책상 위로 끌어옵니다. LSA는 당신의 습관을 학습한 조수를 고용합니다. 조수는 매 단계마다 당신이 무엇을 작업하고 있는지 훑어보고, 실제로 열어볼 몇 개의 폴더를 예측하여 그것들만 꺼내 놓습니다. 책상은 거의 비어 있는 상태를 유지하며, 논문에서 보고된 평가 결과에 따르면 품질은 그대로 유지됩니다. 이 "예측한 뒤 소수만 가져오는" 동작이 핵심 아이디어입니다.

왜 연산(arithmetic)이 아니라 아카이브가 장벽이 되는 것일까요? 모델이 읽는 모든 토큰은 KV 캐시에 키(Key)와 값(Value)을 남기며, 이 캐시는 레이어(layer)와 헤드(head)를 가로질러 배수로 늘어나기 때문에 컨텍스트 길이(context length)에 따라 급격히 팽창합니다. 수천 개의 토큰 수준에서는 아무도 눈치채지 못하지만, 500K 토큰에 이르면 캐시는 GPU 서빙 메모리(serving memory)의 지배적인 점유 요소가 되어 장치가 수용할 수 있는 용량을 제한합니다. LSA의 뉴럴 메모리 인덱서(Neural Memory Indexer)는 이 문제를 직접적으로 공략합니다. 이는 캐시된 과거의 청크(chunk)들에 점수를 매기고, 현재 토큰이 필요할 것으로 예측되는 청크를 표시하며, 오직 그들의 KV 엔트리(entry)만을 유지합니다. 즉, 캐시 전체를 훑는 대신 쿼리(query)에 중요한 청크만을 선택적으로 수집(selective gather)하는 방식입니다.

진정으로 새로운 기술은 _인덱서(indexer)를 학습시키는 방법_에 있습니다. 어떤 청크가 중요한지 배우는 단순한 방법은 전체 모델을 엔드 투 엔드(end-to-end)로 실행하는 것이지만, 이는 조 단위 규모의 백본(backbone)을 내내 GPU 메모리에 유지해야 함을 의미합니다. FlashMemory는 인덱서를 백본 없이(backbone-free) 그리고 분리하여(decoupled) 학습시킵니다. 즉, 인덱서 학습 중에 베이스 모델(base model)을 로드할 필요가 전혀 없으므로, 비용 절감을 실현하는 이 부분 또한 구축 비용이 저렴합니다.

이것은 이전에 보셨을 수 있는 블록 희소성(block-sparse) 방식과는 다른 접근법입니다. MiniMax의 MSA는 쿼리당 몇 개의 KV 블록만 모아서 어텐션 연산량(attention compute)을 줄이지만, 여전히 전체 캐시를 메모리에 상주(resident) 상태로 유지합니다. LSA는 한 단계 더 깊은 곳을 목표로 합니다: 대부분의 캐시 자체를 보유하지 않는 것을 목표로 하므로, 얻게 되는 이점은 **물리적 메모리 사용량(physical memory footprint)**입니다. 같은 계열이지만, 전자를 선택하는 방식이라면 후자는 훑어보는(sweep) 방식을 택합니다. 하나는 FLOPs를 절약하고 다른 하나는 기가바이트(gigabytes)를 절약합니다.

13.5% 수치 출처

설정은 그대로 두고 과정을 따라가 봅시다. 토큰 50만 개 전체 컨텍스트의 KV 캐시가 40GB(예시적)에 달한다고 가정해 봅시다. 이는 단일 GPU에게 이미 무거운 부하입니다. LSA의 인덱서(indexer)는 예측된 관련 청크(predicted-relevant chunks)만 유지합니다. 논문에서 보고한 비율로 볼 때, 이 캐시의 13.5%만을 보존하므로 상주 메모리 사용량은 약 5.4GB로 떨어집니다. 이는 ~34.6GB 절감액이며, 저자들이 보고하는 '50만 토큰에서 90% 이상 작음'에 해당합니다. 놀라운 부분은 정확도(accuracy) 수치입니다: 선택 방식은 보통 약간의 품질 손실을 초래하지만, FlashMemory는 평균 +0.6%를 보고합니다. 이는 인덱서가 어차피 사용하지 않을 청크들을 대부분 제거하기 때문입니다.

장문 컨텍스트 어텐션 옵션 비교

접근 방식KV 캐시에 유지되는 것절약하는 것참고 사항
전체 KV 캐시 (밀집)모든 토큰의 Key와 Value, 항상아무것도 아님 — 기준선(baseline)정확하지만 길이가 길어지면 메모리 사용량이 폭증함
...
One caveat worth keeping: the headline numbers — 13.5% footprint, over-90% reduction at 500K, +0.6% accuracy — are the authors' own results on DeepSeek-V4 at a single operating point, and selective-cache methods are setup-dependent: chunk size, how aggressively the indexer prunes, the sequence length, and the task all move them. The durable lesson is the lever (predict which chunks matter, hold only those); the exact percentage is a reported headline, not a guarantee at every length.

Goes deeper in: LLM Internals → KV Cache → Memory Cost

관련 설명 자료

FAQ

Lookahead Sparse Attention (LSA)란 무엇인가요?

LSA는 FlashMemory-DeepSeek-V4 내부에서 전체 KV 캐시를 로드하지 않고도 긴 컨텍스트를 디코딩하는 메커니즘입니다. 경량화된 신경망 메모리 인덱서 (Neural Memory Indexer)가 현재 토큰이 실제로 사용할 과거 캐시 청크를 예측하며, 전체 캐시를 상주시시키는 대신 해당 KV 엔트리만을 유지합니다. DeepSeek-V4에서 이는 물리적 KV 캐시 점유율을 전체 컨텍스트 기준선의 약 13.5%로 줄이는 동시에, 평균 정확도를 0.6% 향상시킵니다.

LSA가 왜 중요한가요?

매우 긴 컨텍스트에서는 어텐션 연산(attention math)이 아니라 KV 캐시가 병목 비용이 됩니다. KV 캐시는 모든 레이어와 헤드에 걸쳐 토큰이 추가될 때마다 증가하며, 500K 토큰 시점에서는 GPU 메모리를 압도하게 됩니다. LSA는 토큰이 필요할 것으로 예측되는 청크만 유지함으로써, 500K 컨텍스트에서 해당 점유율을 90% 이상 축소한다고 보고되었습니다. 이것이 DeepSeek-V4와 같은 모델에서 초장기 컨텍스트 서빙을 경제적으로 가능하게 만드는 핵심입니다. 또한 인덱서는 백본(backbone) 없이 학습되므로, 메모리를 절약하는 이 기술 자체를 구축하는 비용도 저렴합니다.

LSA는 MSA와 같은 블록 희소 어텐션 (block-sparse attention)과 어떻게 다른가요?

두 방식 모두 "전수 조사 대신 선택 (select instead of sweep)" 계열에 속하지만, 절약하는 자원이 서로 다릅니다. 블록 희소 어텐션 (block-sparse attention) 방식 (DSA, MoBA, MiniMax의 MSA)은 전체 KV 캐시 (KV cache)를 상주시키고 쿼리(query)당 소수의 블록만을 수집하여 어텐션 연산량을 줄입니다. LSA는 한 단계 더 나아갑니다. 캐시의 대부분을 아예 보유하지 않도록 하여, 물리적 메모리 점유율 (memory footprint)을 줄이는 데 강점이 있습니다. 하나는 연산량 (FLOPs)을 절약하고, 다른 하나는 기가바이트 (gigabytes) 단위의 용량을 절약합니다.

원문은 Learn AI Visually에 게시되었습니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0