머신러닝, 딥러닝, AI를 공부하는 사람이라면 모를 수 없는 페이퍼, Attention Is All You Need! 이 페이퍼의 핵심은 self-attention이라는 개념입니다. 한 단어씩 한국어로 풀어보자면, 나 (self) 에 대한 관심 (attention) 인데요. 즉, self-attention은 자기 자신 (언어 모델에선 입력 문장이겠죠?) 의 이곳저곳에 주의를 기울이는 것입니다.
Self-Attention 너무나도 유명한 너
문장의 왼쪽에서 오른쪽으로, 일종의 "방향성"을 가지고 있었던 이전 아키텍쳐들 (예. RNN, LSTM) 과는 다르게, self-attention은 방향성 없이 앞/뒤 모든 위치의 단어를 고려할 수 있다는 점에서 획기적인 아이디어였습니다. 예를 들어, "어제 화성에 갔는데 짜장면 진짜 맛있더라."라는 문장이 주어졌을 때, 이전 모델들은 "짜장면"이라는 단어에 도달하기 전까진 "화성=행성"이라고 생각할 가능성이 높은 반면, self-attention에 기반한 모델은 모든 단어들을 동시에 고려할 수 있기 때문에 "화성"이 중국집이라는 것을 쉽게 알 수 있을 것입니다. 😂
이처럼 문맥을 잘 파악할 수 있는 능력 덕분에 self-attention은 최근의 거대 언어 모델 (Large Language Model, LLM) 의 필수적인 구성 요소가 되었습니다.
하지만 완벽한 것이란 존재하지 않고 모든 것엔 개선할 점이 있죠. self-attention의 약점 중 하나는 입력 문장의 길이가 길어질 수록 attention 점수 계산을 위한 연산량이 제곱으로(quadratically) 증가한다는 점이었습니다. 5개의 단어로 된 문장이 있다고 할 때, 필요한 연산량은 5 x 5 = 25이지만, 10개의 단어로 된 문장의 경우 필요 연산량은 10 x 10 = 100이 됩니다. 문장 길이는 2배 ( 5-> 10 ) 로 늘었지만 연산량은 4배 (25 -> 100) 가 된 것이죠. 따라서 초기의 self-attention 기반 트랜스포머 모델들은 긴 문장에 약한 모습을 보였습니다.
Sliding Window Attention의 등장
이를 해결하기 위해 등장한 것이 바로 오늘의 주제인 sliding window attention입니다. 이 개념은 Longformer (긴 문장에 강한 트랜스포머) 논문에서 처음 제시되었습니다. 해당 논문에서 발췌한 아래 그림을 보시면 어떤 개념인지 감을 쉽게 잡으실 수 있을 겁니다.

기존 방식과 달리, sliding window attention은 전체 단어를 고려하기 보다는 타깃 단어 앞/뒤로 w개의 단어만 고려합니다. 이 방식의 장점은 입력 문장의 길이가 길어지더라도 연산량이 선형적으로(linearly) 증가한다는 점입니다. 예를 들어, 앞/뒤로 2개의 단어만 고려한다고 가정하면, 입력 문장이 1 단어씩 길어질 때마다 연산량은 5회씩 늘어납니다. 즉, 문장 길이가 2배 ( 5-> 10 ) 로 늘었을 때 연산량은 단 25회만 증가합니다. 기존 full attention 방식에 비하면 증가하는 연산량이 획기적으로 적죠.
Sliding Window Attention의 변형
하지만 이렇게 일부 단어에 대해서만 attention을 계산할 경우, 윈도우 내의 문맥은 파악할 수 있지만 문장 전체의 문맥은 놓칠 수 있다는 단점이 있습니다. 이를 보완하기 위해 Longformer 모델은 일부 중요한 토큰(단어)에 대해서는 전체 문장의 attention을 계산하는 global attention을 사용했습니다. 위의 그림 (d)를 보면 이를 시각적으로 확인할 수 있는데요. 일부 단어는 전체 행 또는 열이 초록색 (full attention), 대부분의 단어는 대각선을 중심으로 초록색 (sliding window self-attention) 으로 표시되어 있음을 볼 수 있습니다.
위의 그림에서 아직 다루지 않은 하나 - dilated sliding window (팽창된 슬라이딩 윈도우) 는 더 넓은 범위를 커버하되 연산량을 sliding window 방식과 동일하게 유지하기 위해 일부 단어를 건너뛰는 방식입니다. 예를 들어, 2칸씩 건너뛰며 attention을 계산할 수 있습니다. Longformer 논문에 따르면 dilated 버전을 일부 섞어주는 것이 sliding window만 사용하는 것보다 퍼포먼스가 좋다고 합니다.
마무리
오늘은 sliding window attention에 대해 간략하게 알아보았는데요. Longformer는 2020년도의 모델로 요즘 추세로 따지자면 오래된 모델이지만, sliding window attention은 Mistral-7B, Gemma2와 같은 최근의 모델에도 적용되고 있으니 개념공부는 여전히 유효할 것 같습니다. 그럼 안녕!
한 판 정리 - Full attention은 인풋 길이의 증가에 따라 연산량이 제곱으로 증가, O(n^2) - Sliding attention window은 연산량이 선형으로 증가, O(n) - 긴 문장에는 sliding attention window가 유리 |
Reference
[1] Attention Is All You Need (Vaswani et al., 2017)
[2] Longformer: The Long-Document Transformer (Beltagy et al., 2020)
'LLM' 카테고리의 다른 글
[Position Embedding] RoPE 로타리 포지션 임베딩 (0) | 2025.03.01 |
---|