IndexCache
IndexCache
IndexCache는 DeepSeek-V3.2(DSA) 모델에서 중복된 top-k 계산을 줄여주는 기능이에요. 레이어 간에 top-k 인덱스를 캐시하고 재사용해서 계산량을 아껴요.
배경 (Background)
DeepSeek-V3.2는 DeepSeek Sparse Attention(DSA, 희소 어텐션) 메커니즘을 쓰는데, 여기서 top-k 토큰 선택이 레이어마다 계산돼요. 레이어가 많은 깊은 모델에서는 이 계산이 비쌀 수 있어요. IndexCache는 이전 레이어의 인덱스를 재사용함으로써 중복된 top-k 계산을 건너뛸 수 있게 해줘요.
참고: IndexCache 논문
사용법 (Usage)
CLI
vllm serve deepseek-ai/DeepSeek-V3.2 \
--hf-overrides '{"use_index_cache": true, "index_topk_freq": 4}' ...
설정 참조 (Configuration Reference)
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
use_index_cache |
bool | false | IndexCache 활성화. 이 기능을 쓰려면 반드시 true로 설정해야 해요. |
index_topk_freq |
int | 1 | top-k를 계산하는 빈도(레이어 단위). 1 = 매 레이어마다 계산(비활성화), 4 = 1/4 레이어에서 계산 |
index_topk_pattern |
str | null | 레이어별 F/S 패턴. 설정하면 index_topk_freq를 덮어써요. 각 문자가 DSA 레이어 1개에 대응: F = Full, S = Shared |
설정 예시 (Configuration Examples)
index_topk_freq 사용 (N 레이어마다 계산):
vllm serve deepseek-ai/DeepSeek-V3.2 \
--hf-overrides '{"use_index_cache": true, "index_topk_freq": 4}' ...
index_topk_pattern 사용 (명시적 레이어별 제어):
# 61개 레이어용 커스텀 패턴: F = 계산, S = 재사용
vllm serve deepseek-ai/DeepSeek-V3.2 \
--hf-overrides '{"use_index_cache": true, "index_topk_pattern": "FFSFSSSFSSFFFSSSFFFSFSSSSSSFFSFFSFFSSFFFFFFSFFFFFSFFSSSSSSFSF"}'
동작 원리 (How It Works)
- IndexCache가 활성화되면
"F"(Full)로 표시된 레이어가 top-k 인덱스를 계산해 저장해요 - 이후
"S"(Shared)로 표시된 레이어는 다시 계산하는 대신 이전 레이어의 캐시된 인덱스를 받아요 - 캐시된 인덱스가 레이어 스택을 따라 전달되어, 총 계산량이 줄어들어요
요구 사항 (Requirements)
- DeepSeek-V3.2 또는 호환 DSA 모델
--hf-overrides로use_index_cache: true
더 알아보기
- vLLM 공식 문서: IndexCache