AI VIDEO BRIEFING
딥시크 V4 희소 어텐션 구조 해설: 100만 토큰 긴 문맥을 저렴하게 처리하는 원리
딥시크 V4는 토큰을 블록으로 압축하고 필요한 부분만 골라 계산하는 방식으로 100만 토큰 문맥을 감당한다. 압축 희소 어텐션과 슬라이딩 윈도, 고압축 어텐션이 층마다 어떻게 맞물리는지 쉽게 정리했다.

핵심 메시지
쉽게 이해하기
딥시크가 공개한 V4의 기술 보고서는 한 가지 목표에 집중한다. 언어 모델이 다룰 수 있는 문맥을 100만 토큰 규모까지 늘리는 것이다. 영상에서는 100만 토큰이 대략 70만 단어, 학술 논문 200편이나 코드 5만 줄에 해당한다고 설명한다. 문제는 이 정도 길이를 기존 방식으로 처리하면 계산 비용이 감당할 수 없이 커진다는 점이다.
이유는 어텐션의 구조에 있다. 모델은 새 토큰을 만들 때마다 그 앞에 있던 모든 토큰의 키·값 표현을 훑어봐야 한다. 이미 계산한 값을 KV 캐시에 저장해 재활용하더라도, 토큰 하나를 처리할 때마다 전체 길이만큼의 연산이 필요하므로 전체 시퀀스로 보면 길이의 제곱에 비례하는 비용이 든다. 문맥이 길어질수록 이 부담은 기하급수적으로 커진다.
딥시크의 첫 번째 해법은 압축 희소 어텐션이다. 인접한 토큰 몇 개(예를 들어 네 개)를 한 덩어리로 묶어 하나의 블록 표현으로 바꾼다. 여기서 압축되는 것은 임베딩의 차원이 아니라 임베딩의 '개수'다. 어텐션 비용이 토큰 수에 민감하기 때문에 개수를 줄이는 쪽이 효과가 크다. 여기에 더해 라이트닝 인덱서라는 모듈이 현재 질의와 캐시 속 블록들의 유사도를 빠르게 계산해 상위 몇 개만 추려내고, 실제 어텐션은 그 추려진 대상에만 적용된다.
다만 압축만으로는 최근 문맥의 미세한 정보가 뭉개진다. 그래서 최근 일정 개수의 토큰에는 슬라이딩 윈도 어텐션을 따로 적용해 세밀한 표현을 유지한다. 또한 자기 블록 안의 토큰끼리는 인과 구조를 깨지 않기 위해 압축 경로를 쓸 수 없는데, 이 빈틈도 슬라이딩 윈도가 메운다. 두 경로에서 나온 표현을 이어 붙인 뒤 마지막에 다중 질의 어텐션으로 최종 계산을 수행한다.
층 구조도 한 가지 방식으로 통일하지 않았다. 압축 희소 어텐션 층과, 훨씬 넓은 범위를 한꺼번에 묶는 고압축 어텐션 층을 번갈아 배치한다. 고압축 층은 이미 충분히 압축했기 때문에 별도의 선별 과정 없이 전체를 훑어 값싼 전역 기억 역할을 하고, 압축 희소 층은 필요한 부분을 정밀하게 골라오는 역할을 맡는다. 어텐션 밖에서도 여러 개의 잔차 흐름을 두는 구조, 전문가 혼합, 초기 층의 해시 라우팅, 다중 토큰 예측 같은 선택이 함께 쓰인다.
주요 인사이트
- 긴 문맥 문제는 '어텐션을 없애는' 방향이 아니라 '무엇을 얼마나 거칠게 볼지 층마다 다르게 정하는' 방향으로 풀리고 있다. 정밀함과 비용을 층 단위로 배분하는 설계다.
- 압축의 대상이 임베딩 차원이 아니라 토큰 개수라는 점이 핵심이다. 비용이 개수에 제곱으로 반응하므로 같은 압축률이라도 어디를 줄이느냐에 따라 효과가 크게 달라진다.
- 이론적으로 동일한 연산이라도 실제 속도는 구현에 좌우된다. 영상은 상위 k개를 골라 모으는 작업을 일반 프레임워크 함수로 짜면 느리고, 전용 커널로 짜야 제 성능이 난다고 지적한다.
- 전문가 혼합에서 초기 몇 개 층에 학습되는 라우터 대신 규칙 기반 배분을 쓰면, 학습 도중 뒷단이 겪는 분포 변화가 줄어 안정적으로 학습된다는 점이 흥미롭다.
- 다중 토큰 예측처럼 이전 세대에서 그대로 유지된 요소는, 개발팀이 그 설계에 충분한 확신을 갖고 있다는 신호로 읽을 수 있다.
자주 묻는 질문
KV 캐시를 쓰는데도 왜 긴 문맥이 비싼가요?
KV 캐시는 과거 토큰의 키·값 표현을 다시 계산하지 않게 해줄 뿐, 새 토큰이 그 캐시 전체를 훑는 과정 자체는 줄여주지 않습니다. 토큰 하나마다 전체 길이만큼 훑으므로 시퀀스 전체로는 길이의 제곱에 비례하는 연산이 남습니다.
압축 희소 어텐션에서 '압축'과 '희소'는 각각 무엇을 뜻하나요?
압축은 인접한 여러 토큰을 하나의 블록 표현으로 묶어 캐시에 담는 표현의 개수를 줄이는 부분입니다. 희소는 그 블록들 중 현재 질의와 관련성이 높은 상위 몇 개만 골라 실제 어텐션 계산을 그 대상에만 수행하는 부분을 가리킵니다.
슬라이딩 윈도 어텐션은 왜 함께 필요한가요?
최근 토큰은 언어 모델링에서 특히 중요해 지나치게 압축하면 손해입니다. 또한 자기가 속한 블록 안의 토큰은 인과 구조상 압축 경로로 참조할 수 없기 때문에, 최근 일정 범위를 그대로 보는 슬라이딩 윈도가 그 빈틈을 메웁니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗