트랜스포머에서 각 토큰이 모든 토큰이 아니라 앞뒤 정해진 거리(윈도우) 안의 토큰만 보게 해서, 입력이 길어져도 계산량이 길이에 비례해서만 늘도록 바꾼 어텐션 방식이다. 모든 토큰이 서로를 보는 일반 어텐션으로는 긴 문서의 메모리와 연산을 감당할 수 없을 때 쓴다.
| 구분 | 전체 어텐션 | 슬라이딩 윈도우 |
|---|---|---|
| 한 토큰이 보는 범위 | 문장 전체 | 주변 윈도우만 |
| 길이가 2배가 되면 | 계산 4배 | 계산 2배 |
| 강점 | 멀리 떨어진 관계 파악 | 긴 입력을 싸게 처리 |
윈도우 크기는 보통 128~512 토큰 정도의 고정값이고, 입력 길이와 상관없이 그대로 유지된다.
언어는 가까운 단어끼리 구를 만들고, 구가 모여 절이 되는 식으로 의미가 주로 근처에서 정해진다. 그래서 주변만 봐도 대부분의 정보를 얻는다. 게다가 다음 층의 토큰은 이전 층에서 이미 자기 주변을 본 토큰을 다시 보기 때문에, 층이 깊어질수록 실제로 닿는 범위가 점점 넓어진다.
윈도우만 쓰면 문서 맨 앞과 맨 뒤처럼 멀리 떨어진 정보를 잇기 어렵다. 그래서 몇 가지 보완책이 함께 쓰인다.
| 변형 | 방식 | 이럴 때 쓴다 |
|---|---|---|
| 확장(dilated) 윈도우 | 간격을 두고 띄엄띄엄 봄 | 같은 비용으로 더 넓게 보고 싶을 때 |
| 글로벌 + 윈도우 | CLS 같은 특수 토큰만 전체를 봄 | 문서 분류처럼 전체 요약이 필요할 때 |
| 싱크(sink) 토큰 추가 | 항상 참고하는 고정 토큰을 둠 | 긴 생성에서 안정성을 높일 때 |
긴 문서 분류나 질의응답 모델을 직접 학습한다면, 대부분의 토큰은 윈도우로 처리하고 질문이나 분류용 토큰만 전체를 보게 설정하는 방식이 기본이다. 윈도우를 넓히면 맥락은 늘지만 비용도 함께 늘어나므로 GPU 메모리에 맞춰 정한다. 생성 모델에서는 윈도우 밖의 오래된 KV 캐시를 버리는 롤링 버퍼를 쓸 수 있어, 대화가 길어져도 캐시 메모리가 일정하게 유지된다.
긴 입력을 싸게 처리하는 또 다른 방법으로 선형 어텐션이 있다. 2026년 8월 발표된 논문은 싱크 토큰을 더한 SWA가 사후 학습으로 만든 선형 어텐션 모델과 같거나 더 나은 성능을 보였다고 보고했다. 다만 멀리 떨어진 맥락이 꼭 필요한 작업에서는 정보 손실이 생길 수 있으니, 내 작업으로 직접 확인하는 것이 안전하다.
SWA는 따로 불러 쓰는 도구라기보다 긴 입력을 다루는 모델 안에 들어가 있는 경우가 많다. 특히 오픈 LLM에서는 일부 층만 윈도우로 처리하고 나머지 층은 전체 어텐션으로 두어, 긴 컨텍스트 비용을 줄이면서도 먼 거리 정보를 놓치지 않는 구성이 흔하다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 긴 문서 분류·질의응답 | 본문 토큰은 윈도우로, 질문·분류용 토큰만 전역으로 두고 미세조정 |
| 긴 컨텍스트 LLM 설계 | 윈도우 층과 전체 어텐션 층을 번갈아 쌓아 비용과 먼 맥락을 함께 챙김 |
| LLM 추론 서버 | 롤링 버퍼 KV 캐시로 대화가 길어져도 메모리를 일정하게 유지 |
| 긴 스트리밍 생성 | 싱크 토큰과 윈도우를 함께 써서 끝없이 이어지는 출력도 안정적으로 |