피드로 돌아가기
Dev.toAI/ML
원문 읽기
IndexCache 도입을 통한 DSA 인덱서의 O(NL²) 연산 병목 제거
GML5 IndexCache
AI 요약
Context
DeepSeek Sparse Attention(DSA)은 O(L²) Attention을 O(Lk)로 최적화했으나, 모든 레이어에서 개별적으로 작동하는 Lightning Indexer로 인해 다시 O(NL²)의 연산 비용이 발생하는 구조적 한계 직면.
Technical Solution
- 인접 레이어 간 Top-k 토큰 선택 집합의 높은 중복성(70~100% overlap)을 활용한 IndexCache 아키텍처 설계
- 전체 레이어를 독립적으로 인덱싱을 수행하는 Full(F) 레이어와 이전 F 레이어의 캐시를 재사용하는 Shared(S) 레이어로 분리
- MLA(Multi-head Latent Attention)의 저차원 잠재 벡터를 활용하여 인덱서의 연산 부하를 최소화한 상태에서 캐싱 전략 적용
- 단순 주기적 배치(Uniform) 방식의 성능 저하를 방지하기 위해 LM-loss 기반의 Greedy Search를 통한 최적 F/S 패턴 식별
- Local Geometric Similarity의 한계를 극복하고 전역적인 오류 전파를 반영하기 위해 End-to-End 신호 기반의 레이어 선정 로직 채택
- 별도의 GPU 메모리 추가 할당 없이 임시 버퍼를 통한 T_cache 교체 방식으로 메모리 오버헤드 제로화 달성
실천 포인트
- 레이어 간 출력 유사도가 높더라도 하위 레이어로의 오류 전파(Error Propagation)가 발생하는 경우 local metric 대신 global loss 기반의 최적화 전략 검토 - 계산 복잡도가 높은 모듈이 반복될 때, 입력 데이터의 변화량과 출력 결과의 상관관계를 분석하여 캐싱 및 재사용 구간 설정 - 모델 구조 변경 없이 라우팅 결정(if/else branch)만으로 성능을 개선하는 비침습적 최적화 패턴 적용 고려