Sparse Attention은 Transformer 모델의 효율성을 높이기 위해 사용되는 기법으로,
Attention 메커니즘의 연산 복잡도를 줄이면서 중요한 정보를 유지하려는 목적을 가집니다.
Transformer 모델의 기본 Attention 메커니즘인 Self-Attention 은 O(n^2)의 시간 복잡도를 가지며,
이는 입력 시퀀스의 길이 n이 커질수록 계산량과 메모리 사용량이 기하급수적으로 증가함을 의미합니다.
Sparse Attention은 이러한 한계를 극복하기 위해 특정 패턴에 따라 어떤 Attention 값을 계산하지 않음으로써
연산량을 줄입니다.
Sparse Attention의 기본 아이디어
Sparse Attention은 입력 시퀀스의 모든 토큰 간의 Attention 관계를 계산하는 대신,
미리 정의된 일부 토큰 쌍에 대해서만 Attention을 계산합니다.
이를 통해 불필요한 연산을 줄이고 메모리 사용량을 감소시킵니다.
- Dense Attention : 모든 토큰 n에 대해 모든 토큰 간의 관계를 계산. O(n^2)
- Sparse Attention : 중요한 토큰 간의 관계만 계산. O(n*k), k는 sparse 패턴에 따라 달라짐
Sparse Attention의 유형
Sparse Attention은 어떻게 계산을 제한할지를 정의하는 다양한 패턴을 사용할 수 있습니다.
(1) Fixed Pattern Sparsity
미리 정의된 패턴에 따라 Attention을 계산합니다. 패턴들의 예제들은 다음과 같습니다.
- Window Attention : 각 토큰은 자신 주변의 일정 범위(슬라이딩 윈도우) 내의 토큰에만 Attention을 계산합니다. 이는 시간적 연속성이 중요한 시퀀스 데이터 (텍스트, 오디오)에 적합합니다.
- Dilated Attention : 일정 간격을 띄운 토큰과의 관계만 계산합니다. 이는 더 넓은 맥락을 다룰 수 있게 합니다.
- Block-wise Attention : 시퀀스를 블록으로 나누고, 블록 내부 또는 인접한 블록 간에만 Attention을 계산합니다.
(2) Learned Sparsity
모델이 학습을 통해 어떤 토큰 간의 Attention을 계산할지를 결정합니다.
- Top-k Sparsity : Attention 스코어가 높은 상위 k개의 토큰 간의 관계만 유지합니다.
- Dynamic Sparse Patterns : 학습 중에 중요한 관계를 선택하도록 학습합니다.
(3) Global-Local Attention
Sparse Attention을 적용하면서도, 일부 중요한 토큰은 모든 토큰에 대해 Attention을 계산할 수 있도록 합니다.
- Global Tokens : 예를 들어, CLS토큰과 같은 특수 토큰은 모든 입력에 대해 Attention을 계산합니다.
- Local Tokens : 나머지 토큰은 제한된 범위 내에서만 Attention을 계산합니다.
Sparse Attention의 장단점
- 장점
- 효율성 : 메모리 사용량과 계산량이 크게 감소하여 긴 시퀀스도 처리할 수 있습니다.
- 확장성 : 대규모 모델에서도 연산 자원을 절약하여 효율적인 학습과 추론이 가능합니다.
- 성능 : 잘 설계된 Sparse Attention은 Dense Attention에 비해 유사하거나 더 나은 성능을 보일 수 있습니다.
- 단점
- 설계 복잡성 : Sparse 패턴을 설계하는 데 전문적인 지식이 필요하며, 특정 문제에 맞는 최적의 패턴을 찾는 것이 어렵습니다.
- 정보 손실 가능성 : 중요하지 않은 것으로 간주된 관계를 무시하면 일부 중요한 정보가 손실될 위험이 있습니다.
- 일반화 문제 : 특정 Sparse 패턴은 특정 데이터에 적합할 수 있지만, 다른 데이터에서는 잘 작동하지 않을 수 있습니다.
Sparse Attention 구현사례
- Longformer : Sliding Window Attention과 Global Attention을 결합하여 긴 문서를 처리할 수 있도록 설계된 모델입니다.
- BigBird : Local Attention, Random Attention, Global Attention을 혼합하여 효율성과 성능을 동시에 개선합니다.
- Reformer : Locality-Sensitive Hashing (LSH)을 사용하여 Attention관계를 효율적으로 계산합니다.
- Sparse Transformer : 고정된 Sparse 패턴을 사용하여 Attention연산량을 줄인 초기 연구 사례 중 하나입니다.
'Data Science > Algorithm' 카테고리의 다른 글
LoRA (Low-Rank Adaptation) (0) | 2024.11.22 |
---|---|
Sentence Transformer (0) | 2024.11.21 |
특이값 분해 (Singular Value Decomposition, SVD) (1) | 2024.11.18 |
RAG (Retrieval-Augmented Generation) (1) | 2024.11.16 |
최소 자승법 (Least Squares Method) (0) | 2024.11.15 |
댓글