모델

슬라이딩 윈도우 어텐션

Sliding Window Attention (SWA)

트랜스포머에서 각 토큰이 모든 토큰이 아니라 앞뒤 정해진 거리(윈도우) 안의 토큰만 보게 해서, 입력이 길어져도 계산량이 길이에 비례해서만 늘도록 바꾼 어텐션 방식이다. 모든 토큰이 서로를 보는 일반 어텐션으로는 긴 문서의 메모리와 연산을 감당할 수 없을 때 쓴다.

구분전체 어텐션슬라이딩 윈도우
한 토큰이 보는 범위문장 전체주변 윈도우만
길이가 2배가 되면계산 4배계산 2배
강점멀리 떨어진 관계 파악긴 입력을 싸게 처리

윈도우 크기는 보통 128~512 토큰 정도의 고정값이고, 입력 길이와 상관없이 그대로 유지된다.

좁게 봐도 되는 이유: 층을 쌓으면 시야가 넓어진다

언어는 가까운 단어끼리 구를 만들고, 구가 모여 절이 되는 식으로 의미가 주로 근처에서 정해진다. 그래서 주변만 봐도 대부분의 정보를 얻는다. 게다가 다음 층의 토큰은 이전 층에서 이미 자기 주변을 본 토큰을 다시 보기 때문에, 층이 깊어질수록 실제로 닿는 범위가 점점 넓어진다.

약점을 보완하는 변형들

윈도우만 쓰면 문서 맨 앞과 맨 뒤처럼 멀리 떨어진 정보를 잇기 어렵다. 그래서 몇 가지 보완책이 함께 쓰인다.

변형방식이럴 때 쓴다
확장(dilated) 윈도우간격을 두고 띄엄띄엄 봄같은 비용으로 더 넓게 보고 싶을 때
글로벌 + 윈도우CLS 같은 특수 토큰만 전체를 봄문서 분류처럼 전체 요약이 필요할 때
싱크(sink) 토큰 추가항상 참고하는 고정 토큰을 둠긴 생성에서 안정성을 높일 때

직접 쓸 때 고를 것: 윈도우 크기와 전역 토큰

긴 문서 분류나 질의응답 모델을 직접 학습한다면, 대부분의 토큰은 윈도우로 처리하고 질문이나 분류용 토큰만 전체를 보게 설정하는 방식이 기본이다. 윈도우를 넓히면 맥락은 늘지만 비용도 함께 늘어나므로 GPU 메모리에 맞춰 정한다. 생성 모델에서는 윈도우 밖의 오래된 KV 캐시를 버리는 롤링 버퍼를 쓸 수 있어, 대화가 길어져도 캐시 메모리가 일정하게 유지된다.

선형 어텐션과 비교하면

긴 입력을 싸게 처리하는 또 다른 방법으로 선형 어텐션이 있다. 2026년 8월 발표된 논문은 싱크 토큰을 더한 SWA가 사후 학습으로 만든 선형 어텐션 모델과 같거나 더 나은 성능을 보였다고 보고했다. 다만 멀리 떨어진 맥락이 꼭 필요한 작업에서는 정보 손실이 생길 수 있으니, 내 작업으로 직접 확인하는 것이 안전하다.

긴 입력을 다루는 모델 안에 섞여 들어간다

SWA는 따로 불러 쓰는 도구라기보다 긴 입력을 다루는 모델 안에 들어가 있는 경우가 많다. 특히 오픈 LLM에서는 일부 층만 윈도우로 처리하고 나머지 층은 전체 어텐션으로 두어, 긴 컨텍스트 비용을 줄이면서도 먼 거리 정보를 놓치지 않는 구성이 흔하다.

어디서어떻게 쓰나
긴 문서 분류·질의응답본문 토큰은 윈도우로, 질문·분류용 토큰만 전역으로 두고 미세조정
긴 컨텍스트 LLM 설계윈도우 층과 전체 어텐션 층을 번갈아 쌓아 비용과 먼 맥락을 함께 챙김
LLM 추론 서버롤링 버퍼 KV 캐시로 대화가 길어져도 메모리를 일정하게 유지
긴 스트리밍 생성싱크 토큰과 윈도우를 함께 써서 끝없이 이어지는 출력도 안정적으로
#어텐션#롱 컨텍스트#효율화#트랜스포머
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20