[논문 리뷰] Rethinking Attention with Performers

DD[Dev_Diary]·2026년 3월 2일

Rethinking Attention with Performers(https://arxiv.org/pdf/2009.14794)

메모리 폭발 없이 무한히 긴 문맥을 처리하는 트랜스포머

복잡한 어텐션 연산량을 선형 시간(Linear-Time)으로 확 줄이면서도 정보 손실이 전혀 없는 FAVOR+ 의 수학적 원리를 파헤쳐 봅니다.


목차

  1. 서론
  2. Background
  3. Problem Definition
  4. Proposed Method / Approach
  5. Experiments & Results
  6. Discussion
  7. My Insights
  8. Summary

1. 서론

오늘 리뷰할 논문은 효율적인 트랜스포머(Efficient Transformer) 연구의 마스터피스 중 하나로 꼽히는 "Rethinking Attention with Performers" 입니다.

요즘 대형 언어 모델(LLM)을 써보시면 문맥 길이가 길어질수록 메모리가 펑펑 터지는 'OOM(Out of Memory)' 문제를 다들 겪어보셨을 텐데요. 이 논문은 기존의 복잡한 어텐션(Attention) 계산 순서를 기발한 수학적 마법(FAVOR+)으로 뒤집어서, 메모리 사용량을 기하급수적 폭발에서 선형적인 증가로 확 줄여버린 놀라운 아이디어를 담고 있습니다.

이 글을 끝까지 읽으시면, 복잡한 수식의 늪에 빠지지 않고도 어떻게 트랜스포머가 한계를 극복하여 수만 자의 텍스트나 긴 단백질 서열을 한 번에 스윽 읽어내는지 그 직관적인 원리를 깨닫게 되실 겁니다.


2. Background

논문의 핵심으로 들어가기 전에, 왜 이런 연구가 필요했는지 배경지식을 가볍게 짚고 넘어가 보겠습니다.

어텐션(Attention) 메커니즘

트랜스포머 모델의 심장은 바로 어텐션입니다. 문장 속 단어들이 서로 얼마나 연관되어 있는지를 점수로 매기는 과정이죠.

"나는 어제 아주 맛있는 피자를 먹었다"라는 문장에서 '먹었다'라는 단어가 '피자'와 강하게 연결되어 있음을 파악하는 능력입니다.

무엇이 문제인가? (시간/공간 복잡도)

단어의 총 개수(시퀀스 길이)를 LL이라고 해볼게요. 기존 어텐션은 모든 단어가 다른 모든 단어와 빠짐없이 1:1로 인사를 나눠야 합니다.

단어 수필요한 인사 횟수
10개100번
1만 개1억 번

이를 수학적으로는 계산량과 메모리 소모가 O(L2)O(L^2) 단위로 커진다고 표현합니다.

왜 이 문제를 풀어야 할까요?

AI가 똑똑해지려면 책 한 권을 통째로 읽거나, 고해상도 이미지를 한 번에 분석하거나, 엄청나게 긴 DNA 염기서열을 봐야 합니다. 하지만 문맥이 조금만 길어져도 GPU 메모리가 제곱으로 팽창하며 터져버리기 때문에, 이 O(L2)O(L^2)의 벽을 허무는 것은 AI 학계의 가장 시급한 숙제였습니다.


3. Problem Definition

이 논문이 꼬집는 가장 근본적인 문제는 "Softmax 함수의 병목 현상" 입니다. 어텐션을 계산할 때는 반드시 Softmax라는 함수를 거쳐야 하는데, 이 녀석 때문에 무조건 거대한 L×LL \times L 크기의 표(행렬)를 메모리에 만들어야만 합니다.

기존 방식의 한계

Performer 이전에도 이 문제를 풀려는 시도는 아주 많았습니다. 보통 두 가지 꼼수를 썼습니다.

방식설명치명적 단점
Sparse Attention"너무 머니까 내 주변 10단어하고만 연결하자!"멀리 떨어진 단어 간의 의미를 놓침
Local Attention"긴 글을 100단어씩 뚝뚝 끊어서 보자!"문맥이 조각나며 정보 유실 발생

직관적 비유 🤝

1,000명의 사람이 모인 네트워킹 파티장이 있습니다.

  • 기존 어텐션: 1,000명이 모두 서로 1:1로 명함을 교환합니다. (100만 번의 악수 필요, 극도의 체력 소모)
  • 기존 꼼수들: "자기 양옆에 있는 사람 5명하고만 인사하세요!" (정보의 파편화 발생)
  • Performer가 풀려는 것: "어떻게 하면 누구 하나 소외되지 않고 1,000명의 정보를 완벽히 공유하면서도, 악수 횟수를 획기적으로 줄일 수 있을까?"

Performer의 목표
정보의 손실(꼼수) 전혀 없이, 완벽하게 기존 어텐션과 똑같은 결과를 내면서도 메모리만 O(L)O(L) 크기로 획기적으로 줄이는 것.


4. Proposed Method / Approach

Performer는 FAVOR+ (Fast Attention Via positive Orthogonal Random features) 라는 강력한 수학적 무기를 도입하여 이 문제를 해결합니다.

핵심 아이디어

원래 어텐션의 수식은 이렇습니다.

Attention=Softmax(QKT)VAttention = \text{Softmax}(Q \cdot K^T) \cdot V

괄호 안의 QQKK를 내적한 뒤 Softmax\text{Softmax}를 씌우는 과정이 문제입니다. 지수 함수(exp\exp)가 포함되어 있어서 괄호를 풀고 분배/결합 법칙을 쓸 수가 없습니다. 무조건 QQKK를 먼저 곱해 어마어마한 L×LL \times L 행렬을 만들어야 하죠.

저자들은 여기서 천재적인 접근을 합니다.

"Softmax 자물쇠를 부수지 말고, 아주 비슷한 복제 키를 만들어서 쪼개버리자!"

수학의 커널 근사(Kernel Approximation) 기법을 이용해 식을 아래와 같이 변형합니다.

Attentionϕ(Q)(ϕ(K)TV)Attention \approx \phi(Q) \cdot (\phi(K)^T \cdot V)

ϕ\phi라는 마법의 필터(무작위 특성 투영)를 씌웠더니, 묶여있던 QQKK분리되었습니다. 이제 괄호의 위치를 바꿀 수 있게 된 겁니다! 거대한 행렬을 만들 필요 없이, 덩치가 작은 ϕ(K)T\phi(K)^TVV를 먼저 곱해버리고 나중에 QQ를 곱하면 끝납니다.

직관적 비유 2가지 💡

🧮 비유 1: 계산기 괄호 옮기기 (결합 법칙 비유)

메모리 한도가 숫자 '100'까지인 계산기가 있습니다.

  • (10 × 10) × 2 → 괄호 안을 먼저 계산하면 100이 꽉 차서 계산기가 멈춰버립니다.
  • 10 × (10 × 2) → 10 × 20이 되어, 중간 과정에서 메모리가 터지지 않고 무사히 정답 200을 얻을 수 있습니다.

Performer는 행렬 곱셈에서 이 '괄호 옮기기' 를 가능하게 한 것입니다.

🧚 비유 2: 브로커(요정) 배치 비유

다시 파티장으로 돌아가 보죠. 1,000명이 1:1로 악수하는 대신, 파티장 한가운데에 5명의 정보 브로커 요정(ϕ\phi 차원) 을 배치합니다.

  1. 1,000명의 사람들은 이 5명의 요정에게만 가서 자기 정보를 줍니다. (5,000번 대화)
  2. 요정들은 정보를 싹 정리해서 다시 1,000명에게 뿌려줍니다.

100만 번 필요했던 대화가 순식간에 줄어들면서도 모두가 정보를 알게 됩니다!


📊 Figure 1: 정규 어텐션과 Performer 연산 구조 비교

  • 이 그림이 보여주는 것: 일반 트랜스포머의 행렬 곱셈 순서와 Performer의 행렬 곱셈 순서를 시각적인 블록으로 비교한 도식
  • 핵심 메시지: 기존 방식은 L×LL \times L이라는 거대한 사각형 블록이 중간에 떡하니 만들어지는 반면, Performer는 거대한 사각형 대신 얇고 긴 직사각형 형태를 유지하며 끝까지 연산이 흘러갑니다.

내가 이해한 포인트
결국 행렬을 어떤 순서로 묶어서 곱하느냐(결합 법칙)의 차이가 메모리 점유율의 형태를 완전히 바꿔버린다는 점을 한눈에 알 수 있었습니다. 이 논문의 핵심 기여인 "공간 복잡도 O(L)O(L) 달성" 을 눈으로 가장 명확하게 증명하는 도식입니다.


📊 Figure 2: 시퀀스 길이에 따른 시간/메모리 소모 그래프

  • 이 그림이 보여주는 것: X축은 입력 데이터의 길이(시퀀스 길이), Y축은 처리 속도(Time)와 메모리(Memory) 소모량
  • 핵심 메시지: 일반 트랜스포머의 그래프는 길이가 길어질수록 롤러코스터처럼 가파르게 위로 솟구치는 반면, Performer의 그래프는 완만한 직선(선형적 증가) 을 그립니다.

내가 이해한 포인트
데이터가 4,000자만 넘어가도 기존 모델은 GPU 메모리가 터져서 죽어버리지만, Performer는 6만 자가 넘어가도 아주 평온하게 버팁니다. 이론으로 수립한 수학 공식이 실제 하드웨어 인프라에서도 완벽하게 작동하여 병목을 없앴음을 증명하는 실험적 결과입니다.


5. Experiments & Results

저자들은 이 마법의 공식이 진짜로 성능 하락 없이 작동하는지 확인하기 위해 아주 가혹한 환경에서 테스트를 진행했습니다.

태스크내용결과
픽셀 예측고해상도 이미지를 1차원 픽셀로 길게 늘어뜨려 입력65,536 길이 시퀀스에서 메모리 초과 없이 학습 완료
단백질 서열 분석무지막지하게 긴 아미노산 서열 구조 학습기존 O(L2)O(L^2) 트랜스포머와 정확도 그래프가 완벽히 일치

결과 해석

더 놀라운 것은 정확도(Accuracy) 그래프가 기존 O(L2)O(L^2) 트랜스포머와 소름 돋게 완벽히 겹쳤다는 점입니다.

연산량을 쥐어짜 내기 위해 꼼수를 쓴 것이 아니라, 수학적으로 정답을 완벽하게 근사(Unbiased estimation)했기 때문에 모델이 전혀 멍청해지지 않았음을 증명한 것입니다. 다른 꼼수 기반의 경량화 모델(Reformer, Linformer 등)과 비교했을 때도 압도적인 성능 유지력을 보여주었습니다.


6. Discussion

✅ 이 방법의 장점

  1. 무손실 압축 같은 느낌 — 정보를 버리지 않고 전체 문맥(Global context)을 모두 활용합니다.
  2. 뛰어난 호환성 — 기존에 학습해둔 트랜스포머 모델에서 어텐션 부품만 Performer로 갈아 끼우고 살짝 튜닝만 해주면 바로 작동합니다. (Plug-and-play 가능)

❌ 한계점 및 트레이드오프

  1. 짧은 문장에서는 오히려 느림 — "브로커 요정"들을 소환하고 수학적 매핑(ϕ\phi)을 거치는 준비 작업 때문에, 데이터 길이가 짧을 때(예: 512자 이하)는 기존 방식보다 실질적인 연산 속도가 오히려 조금 더 느려지는 배보다 배꼽이 더 큰 상황이 발생할 수 있습니다.
  2. Causal Masking 구현의 난해함 — 단어를 순서대로 생성해야 하는 GPT 같은 모델에서는 뒤의 단어를 미리 커닝하지 못하도록 막아야 합니다. Performer 구조에서 이를 구현하려면 누적합(Prefix-sum) 이라는 복잡한 처리가 필요해 구현 난이도가 꽤 높습니다.

💡 개선 가능한 방향

문장 길이에 따라 ϕ\phi 매핑의 차원 수를 동적으로 조절하는 어댑티브 FAVOR+ 구조를 설계한다면, 짧은 문장에서의 오버헤드 문제를 해결하면서도 긴 문장에서의 강점을 그대로 살릴 수 있을 것으로 보입니다.


7. My Insights

새롭게 알게 된 점

AI 연구에서 단순히 "이거저거 깎아내서 가볍게 만들자!"라는 엔지니어링적 접근이 아니라, 수학의 깊은 원리(커널 이론, 직교성 등)를 가져와 근본적인 수식 자체를 재설계해 버린 저자들의 뷰티풀한 접근 방식에 큰 감명을 받았습니다.

기존 생각이 바뀐 부분

Softmax 안에 갇혀있는 변수들을 독립적으로 꺼내어 행렬의 결합 법칙을 활용한다는 큰 그림은 아주 직관적으로 와닿았습니다.

어텐션을 통째로 구하지 않고, Key와 Value를 먼저 버무려 놓는다는 발상의 전환이 핵심이었습니다.

아직 헷갈리는 부분

오차를 줄이기 위해 사용했다는 '긍정 직교 무작위 특성(Positive Orthogonal Random Features)' 의 구체적인 수학적 증명 과정은 수식이 너무 빽빽해서 아직 100% 소화하지는 못했습니다. 왜 하필 무작위 벡터들을 서로 '수직(직교)'으로 만들어야 에러율의 분산(Variance)이 최소화되는지에 대해서는 커널 이론을 좀 더 파봐야 할 것 같습니다.

어디에 응용할 수 있을까?

요즘 뜨고 있는 긴 문서 요약(Long-document QA) 서비스나, 수만 시간 분량의 비디오 프레임 단위 분석, 혹은 유전자 염기서열 분석 같은 Bio-Informatics 분야에 이 구조를 도입하면 기존의 한계를 가볍게 뛰어넘는 혁신적인 모델이 나올 수 있겠다고 생각했습니다.


8. Summary

항목내용
핵심 문제트랜스포머의 어텐션은 문맥이 길어질수록 메모리와 계산량이 O(L2)O(L^2)으로 폭발하여 긴 데이터 처리 불가
해결 방법FAVOR+ 기법을 도입하여 Softmax 수식을 쪼갠 뒤 행렬 곱셈의 순서를 변경 (괄호 옮기기 신공)
핵심 기여정보 손실 전혀 없이 기존 어텐션을 완벽하게 근사하면서 시간/공간 복잡도를 선형 O(L)O(L) 수준으로 압축
가장 인상 깊었던 점특정 도메인에 얽매이지 않고 수학적 증명을 통해 어떤 데이터든 100% 성능 보장이 가능함을 입증한 우아함
아쉬운 점문장 길이가 짧을 때는 구조적 복잡성 때문에 오히려 속도 이득을 보기 어렵다는 태생적인 트레이드오프
확장 방향텍스트를 넘어 극단적으로 긴 DNA/RNA 분석 등 바이오 AI 모델 설계의 새로운 표준 뼈대로 활용 가능

🧠 이 논문을 한 문장으로 말하면?

Performer는 Softmax라는 자물쇠를 수학적 복제 키로 열어 행렬 곱셈의 순서를 뒤집음으로써, 정보 손실 없이 트랜스포머의 메모리 폭발 문제를 우아하게 해결한 혁명적인 아키텍처다.

profile
AI로 유용한 서비스 개발을 꿈꾸는 A린이

0개의 댓글