Longformer — 장문서를 위한 Transformer
Digest: 표준 Transformer의 self-attention은 시퀀스 길이 n에 대해 O(n²) 메모리/연산을 요구하여 BERT 계열이 512 토큰 한계에 묶여 있었다. Longformer는 이 한계를 벗어나기 위해 (1) sliding window attention(각 토큰이 좌우 고정 폭 w 내의 이웃만 참조, 복잡도 O(n·w)), (2) dilated sliding window(팽창된 윈도우로 receptive field 확장, WaveNet의 dilated convolution과 유사), (3) global attention(QA의 질문 토큰, 분류의
[CLS]같은 소수의 태스크 특정 토큰만 전체 시퀀스를 보게 함)을 조합한다. 핵심 통찰은 “모든 토큰이 모두를 볼 필요는 없고, 오직 태스크가 요구하는 소수의 앵커 토큰만 글로벌 정보를 집약하면 충분하다”는 것이다. 이를 character-level LM(text8/enwik8)에서 SOTA, RoBERTa 가중치를 장문서로 continued-pretrain한 뒤 WikiHop/TriviaQA SOTA, HotpotQA/OntoNotes coref/IMDB/Hyperpartisan에서 RoBERTa 대비 개선으로 입증하였고, v2에서는 seq2seq 확장인 **LED(Longformer-Encoder-Decoder)**를 제안해 arXiv 장문서 요약에서 우수한 성능을 보였다. 한계는 (i) 어떤 토큰을 global로 둘지 태스크별 수동 설정 필요, (ii) dilated window의 저수준 효율적 구현이 CUDA 커스텀 커널을 요구, (iii) 디코더 측 cross-attention 효율화는 제한적이라는 점이다. Open Questions: global 토큰을 학습/자동 선택 가능한가(→ BigBird의 random attention), 윈도우 크기·팽창률의 레이어별 최적 스케줄은 무엇인가, linear attention(Performer/Linformer) 대비 품질-속도 파레토는 어디인가?
섹션별 요약
Introduction
- 배경: BERT/RoBERTa는 positional embedding과 O(n²) self-attention 때문에 512 토큰까지만 처리하며, 장문서 QA·coreference·요약에서 sliding window + 결과 합치기 같은 조잡한 우회가 필요했다.
- 문제: 문서 전역에 걸친 의존성(예: 멀티홉 QA의 증거 분산, 문서 요약)을 온전히 모델링하지 못함.
- 기여: (1) O(n)으로 스케일되는 local+global 혼합 attention 패턴 제안, (2) autoregressive character-level LM에서 SOTA, (3) RoBERTa를 장문서로 추가 사전학습하여 6개 다운스트림 태스크에서 개선, (4) seq2seq용 LED 제안.
Methods
- Sliding Window Attention: 각 토큰 i가 [i-w/2, i+w/2] 윈도우 내의 토큰만 attend. 복잡도 O(n·w). 여러 레이어를 쌓으면 CNN처럼 receptive field가 선형 증가하여 최상층에서는 문서 전역에 가까운 문맥을 통합.
- Dilated Sliding Window: 윈도우 내 토큰을 간격 d로 건너뛰어 receptive field를 l·d·w로 확장(l=레이어 수). 레이어별·헤드별로 d를 다르게 설정(하위 레이어는 d=1로 로컬 상세, 상위 레이어는 d>1로 장거리 집약).
- Global Attention: 태스크 특정 소수 토큰(분류:
[CLS], QA: 질문 전체 토큰, coref: 멘션 후보)은 (a) 전체 시퀀스를 attend하고 (b) 시퀀스의 모든 토큰도 이들을 attend. Global과 local은 별도 Q/K/V 프로젝션을 두어 두 모드가 표현적으로 분리되게 함. - 구현: 순수 PyTorch는 메모리 과다, 따라서 TVM으로 커스텀 CUDA 커널을 작성해 실제 O(n·w) 메모리 달성.
- LED (v2): BART 가중치 초기화 후 encoder에만 Longformer attention 패턴을 적용(디코더는 full attention). positional embedding은 BART의 1024를 복제 확장하여 최대 16K 토큰 지원.
Pretraining (Long-context MLM)
- Initialization: RoBERTa 체크포인트에서 시작, positional embedding은 512를 복제하여 최대 4096 토큰까지 확장(복제가 랜덤 초기화보다 훨씬 빠르게 수렴).
- Corpus: 장문 포함 Books+Wikipedia+Realnews+Stories 혼합.
- Objective: 표준 MLM을 긴 시퀀스로 계속 학습(continued pretraining).
- Attention 설정: 윈도우 w=512, global attention은 fine-tuning 시 태스크별로 지정.
Experiments
- Character-level LM: text8/enwik8에서 small/large 모두 SOTA BPC; dilated window의 유효성 검증(ablation에서 dilation 미사용 시 성능 하락).
- QA:
- WikiHop(멀티홉): SOTA. 질문+후보 토큰에 global attention.
- TriviaQA: SOTA. 질문 토큰에 global attention.
- HotpotQA: 강한 baseline 대비 개선.
- Coreference: OntoNotes에서 RoBERTa-base 기반 모델 대비 개선.
- Classification: IMDB(긴 리뷰), Hyperpartisan News(긴 뉴스)에서 RoBERTa 대비 특히 긴 문서에서 큰 격차.
- Summarization (LED): arXiv 장문서 요약에서 BigBird와 경쟁하거나 상회하는 ROUGE.
| 태스크 | 데이터셋 | Longformer | 비교(RoBERTa/BART 등) | 핵심 수치 방향 |
|---|---|---|---|---|
| Char LM | enwik8 (large) | SOTA BPC | Transformer-XL 대비 개선 | dilated 기여 |
| Multi-hop QA | WikiHop | SOTA | RoBERTa-large truncated 대비 +5~7pt 수준 | global=질문+후보 |
| QA | TriviaQA | SOTA | BigBird와 경쟁 | global=질문 |
| Coref | OntoNotes | 개선 | RoBERTa-base 대비 +0.x~1pt F1 | 멘션에 global |
| Classification | IMDB / Hyperpartisan | 개선 | RoBERTa 대비 특히 long-doc | [CLS] global |
| Summ. | arXiv (LED) | 경쟁 SOTA | BART(truncated) 대비 크게 상회 | 16K 토큰 입력 |
Discussion
- 한계: (i) 어떤 토큰에 global attention을 부여할지는 수작업이며 태스크 지식 의존, (ii) dilated window는 CUDA 커널이 필요해 일반 프레임워크 호환성 저하, (iii) 디코더 cross-attention은 여전히 full(LED), (iv) 매우 짧은 문서에서는 이점 없음.
- 향후: global selection 학습, sparse pattern 자동 설계, generative 양방향 모두에 sparse attention 적용.
Insights
- 주목할 점: “local + 소수의 global”이라는 단순한 편향이 full attention을 근사하기에 충분하다는 실증. Transformer의 inductive bias를 그래프 희소화 관점으로 재해석.
- 연결 고리: WaveNet의 dilated convolution(수용장 확장), ETC/BigBird의 global+random 조합, Sparse Transformer(고정 패턴).
- 시사점: 장문서 처리는 새로운 아키텍처가 아니라 attention 연결 패턴의 설계 문제로 환원 가능.
- 비판적 코멘트: global 토큰 수동 선택은 모델의 일반성을 제한; BigBird의 random attention 혹은 ETC의 구조화 global이 더 태스크 독립적.
Discussion Points
- 논쟁점: local window만으로는 진짜 장거리 의존성을 못 본다 vs. 여러 레이어 쌓으면 된다.
- 검증 필요 가정: dilated pattern의 이점이 언어 모델링 외 downstream에도 유효한가?
- 후속 연구: BigBird, ETC, LongT5, Performer, Linformer.
메타데이터
| 항목 | 내용 |
|---|---|
| 제목 | Longformer: The Long-Document Transformer |
| 저자 | Iz Beltagy, Matthew E. Peters, Arman Cohan |
| 소속 | Allen Institute for AI (AI2) |
| 연도 | 2020 |
| 발표 | arXiv:2004.05150 |
| 링크 | arXiv, GitHub |
| 키워드 | sparse attention, sliding window, global attention, long document, RoBERTa, LED |
왜 이 연구를 하는가?
핵심 질문
Transformer self-attention의 O(n²) 비용을 깨뜨리면서도 full attention에 준하는 표현력을 유지해 수천 토큰 이상의 문서를 end-to-end로 처리할 수 있는가?
기존 접근법의 한계
| 한계 | 설명 |
|---|---|
| Truncation | 512 토큰으로 잘라 사용 → 장거리 의존성 손실 |
| Chunk + aggregate | 청크별로 인코딩 후 결합 → 청크 경계 정보 유실, 태스크별 조합 규칙 필요 |
| Transformer-XL | 세그먼트 recurrence로 확장되나 양방향(BERT-style) 사전학습에 부적합 |
| Sparse Transformer | 고정 패턴(strided/fixed)은 autoregressive LM 전용으로 설계 |
| Reformer | LSH attention은 random projection noise, 배치·구현 복잡 |
핵심 통찰
- 모든 토큰이 모든 토큰을 볼 필요는 없다: 로컬 문맥으로 대부분 해결.
- 소수의 앵커 토큰(질문/CLS 등)만 전역을 보면 full attention을 근사.
- Dilation은 CNN에서 검증된 receptive field 확장 도구이며 attention에도 그대로 이식 가능.
방법 (Method)
프레임워크 개요
flowchart TB subgraph Input["입력 시퀀스 (예: n=4096 tokens)"] T["t1 t2 t3 ... tn"] end Input --> Emb["Token + Position Emb (512→4096, copy-init)"] Emb --> L1["Layer 1: sliding window (w=512, d=1)"] L1 --> L2["Layer 2: sliding window (w=512, d=1)"] L2 --> Lm["... 중간 레이어: dilated sliding (d>1, 일부 헤드)"] Lm --> Lg["상위 레이어: sliding + GLOBAL attention on task tokens"] Lg --> Out["Output representations"] subgraph GlobalTokens["Global tokens (task-specific)"] CLS["[CLS] / 질문 토큰 / 멘션"] end GlobalTokens -. "attend to all & attended by all" .-> Lg
Attention Pattern 행렬 (핵심 시각화)
graph TD subgraph Pattern["n x n attention matrix"] direction LR A["대각선 밴드 = Sliding Window (폭 w)"] B["밴드 안 간격 건너뛰기 = Dilated Window (간격 d)"] C["몇 개 전체 행/열 = Global Tokens (task-specific)"] A --- B --- C end
개념적 ASCII:
col → 1 2 3 4 5 6 7 8 ... n
row ↓
1 [G G G G G G G G G G] ← global token: 행 전체 attend
2 [G X X . . . . . . .] ← local window (±w/2)
3 [G X X X . . . . . .]
4 [G . X X X . . . . .]
5 [G . . X X X . . . .]
6 [G . . . X X X . . .]
...
k [G . . d . d . X X d] ← dilated: 간격 d로 추가 참조
...
n [G . . . . . . . X X]
G: global attention 행/열 (전체 시퀀스 ↔ 이 토큰)X: sliding window 내 인접 토큰d: dilated 위치(특정 헤드/레이어에만)
핵심 구성요소
- Sliding Window: 레이어당 O(n·w) 복잡도. 최상위 레이어의 receptive field ≈ l·w.
- Dilated Sliding Window: 일부 헤드에서 d>1 적용, 나머지 헤드는 d=1로 로컬 상세 유지(멀티스케일).
- Global Attention: 별도의 Q_g/K_g/V_g 선형사상을 두어 pretrained local attention을 훼손하지 않음.
- 커스텀 CUDA 커널(TVM): banded matmul을 효율적으로 구현해 이론 복잡도를 실제 메모리/속도로 구현.
발견 (Findings)
주요 결과 (정성 요약)
| 태스크 / 벤치마크 | Longformer | 비교 baseline | 관찰 |
|---|---|---|---|
| enwik8 (char LM, small/large) | SOTA BPC | Transformer-XL | dilation 제거 시 열화 |
| WikiHop | SOTA | RoBERTa-large(512 truncated) | 멀티홉에서 큰 격차 |
| TriviaQA | SOTA | BigBird와 경쟁 | 질문 global만으로 충분 |
| HotpotQA | 개선 | RoBERTa 기반 | paragraph ranking 없이 end-to-end |
| OntoNotes coref | 개선 | SpanBERT/RoBERTa | 멘션 global의 이득 |
| IMDB / Hyperpartisan | 개선 | RoBERTa | 긴 문서일수록 격차 확대 |
| arXiv summarization (LED) | SOTA급 | BART (truncated) | 최대 16K 입력 |
핵심 발견
- Positional embedding 복제 초기화가 랜덤 초기화보다 극적으로 빠르게 수렴(저자 보고).
- Global attention을 올바른 토큰에 부여하는 것이 윈도우 크기보다 성능에 더 큰 영향.
- Downstream 다수 태스크에서 dilation은 선택적; 문자 LM에서 가장 효과.
이론적 의의
Attention을 그래프 희소화로 재해석
Full attention = complete graph. Longformer는 이를 band graph + star graph 합집합으로 근사. 이 관점은 이후 BigBird의 random graph, ETC의 구조화 global 등으로 일반화된다.
”Drop-in replacement” 패러다임
기존 Transformer 파이프라인/체크포인트를 거의 그대로 쓰면서 attention 모듈만 교체 가능 — 장문서 처리의 진입장벽을 낮춘 공학적 기여.
Pretraining-Finetuning 연속성
RoBERTa로부터 continued pretraining만으로 장문서 모델을 얻을 수 있음을 보여 scratch 사전학습 없는 길이 확장의 실현 가능성 입증.
재현성 및 신뢰도 평가
| 항목 | 등급 | 비고 |
|---|---|---|
| 코드 공개 | ✅ | allenai/longformer + HuggingFace 통합 |
| 데이터 공개 | ✅ | 공개 벤치마크 및 공개 코퍼스 사용 |
| 하이퍼파라미터 | ✅ | 논문·레포에 학습 스크립트 존재 |
| 실험 환경 | ✅ | GPU/메모리 요건 명시, TVM 커널 제공 |
| 통계적 신뢰도 | ⚠️ | 다중 seed/분산 보고는 제한적 |
| 종합 등급 | A | 널리 재현·활용된 표준 구현 존재 |
주장별 신뢰도
| # | 주장 | 근거 | 신뢰도 |
|---|---|---|---|
| 1 | Local+Global로 O(n²)→O(n) 실현 | 알고리즘적으로 자명 + 커스텀 커널로 실증 | 🟢 |
| 2 | WikiHop/TriviaQA SOTA | 공식 리더보드 수치 | 🟢 |
| 3 | Dilated가 char-LM에서 유효 | Ablation 제공 | 🟢 |
| 4 | RoBERTa continued-pretrain이 장문서로 일반화 | 다수 다운스트림 개선 | 🟡 |
| 5 | Global 토큰 수동 선택이 실용적 최적 | 자동 선택 비교 부재 | 🟡 |
읽기 난이도: ⭐⭐
필요 배경지식: Transformer/self-attention, BERT·RoBERTa 사전학습, dilated convolution 개념, QA/coref 태스크 이해.
관련 연구 비교 매트릭스
| 축 | Longformer | Sparse Transformer (Child+2019) | Reformer (Kitaev+2020) | BigBird (Zaheer+2020) |
|---|---|---|---|---|
| 핵심 접근 | Sliding window + dilated + task-specific global | Strided/fixed 고정 패턴 | LSH(해시) 버킷 내 attention | Window + Random + Global |
| Attention 패턴 | Band(+dilation) + star(global tokens) | Strided band + fixed heads | Hash-bucketed (data-dependent) | Band + Random edges + Global |
| 복잡도 | O(n·w) | O(n√n) | O(n log n) | O(n) (w/ random) |
| 방향성 | Encoder(+LED decoder) | Autoregressive (이미지/텍스트) | Autoregressive | Encoder |
| Pretraining | RoBERTa에서 continued | Scratch | Scratch | BERT/RoBERTa에서 확장 |
| Global token 설계 | 태스크별 수동 (질문, CLS 등) | 없음 | 없음 | ITC/ETC 변형 with global |
| 이론적 근사 보장 | 없음 (경험적) | 없음 | 확률적 근사 | Full attention에 대한 universal approximator 증명 |
| 주요 벤치마크 | WikiHop/TriviaQA/enwik8/arXiv | enwik8/ImageNet64 | enwik8/imagenet/synthetic | QA/Genomics/Summ. |
| 코드 공개 | ✅ | ✅ | ✅ | ✅ |
| 주요 약점 | global 수동 설계, dilation 커널 의존 | downstream 활용 사례 적음 | LSH noise, 구현 복잡 | random edge의 해석 난이도 |
관련 연구
- Attention Methods — 본 볼트의 attention 개괄 노트
- GQA - Training Generalized Multi-Query Transformer Models — KV head 희소화로 다른 축에서 효율화
- Mamba - Linear-Time Sequence Modeling with Selective State Spaces — attention 대체 선형 시퀀스 모델
- BigBird — random attention을 추가해 universal approximation 보장
- Sparse Transformer — 고정 패턴 희소화의 선구
- Reformer — LSH 기반 data-dependent 희소화
- ETC / LongT5 — 구조화된 global + long-input seq2seq
원자적 인사이트 (Zettelkasten)
💡 Attention의 “별 모양(star) 토폴로지”가 장거리 의존성의 저렴한 대리자이다
출처: Longformer - The Long-Document Transformer (Beltagy et al., 2020)
유형: 이론적
소수의 global 토큰을 모든 토큰과 양방향으로 연결하는 star graph 구조는, local band graph와 합쳐졌을 때 full attention의 핵심 정보 경로(2-hop 도달성)를 보존한다. 즉 어떤 두 토큰이든 “임의의 global 허브”를 거쳐 2홉에 도달 가능하므로 장거리 의존성을 표현할 수 있다.
핵심 조건/맥락: global 토큰이 태스크의 정보 병목(질문, CLS)에 배치될 때 가장 효과.
연결: BigBird(random edge를 추가해 star+random 혼합), ETC(structured global).
활용 가능성: 그래프 신경망의 hub node 설계, MoE의 routing token 등에 유추 적용 가능.
💡 “복제 초기화(copy-init)“가 positional embedding 길이 확장의 가장 단순하고 강한 베이스라인이다
출처: Longformer - The Long-Document Transformer (Beltagy et al., 2020)
유형: 방법론적
512 → 4096 positional embedding 확장 시, 학습된 512개를 그대로 8번 복제하는 초기화가 랜덤 초기화보다 훨씬 빠르게 수렴한다. 이는 pretrained 모델이 상대적 위치 근방의 패턴에 민감하며, 복제가 그 국소 구조를 보존하기 때문이다.
핵심 조건/맥락: absolute positional embedding에 국한; RoPE/ALiBi는 자연스럽게 extrapolate됨.
연결: RoPE, ALiBi, Position Interpolation.
활용 가능성: 장문 파인튜닝 시 저비용 길이 확장, curriculum extension의 초기화 전략.
💡 Dilation은 convolution뿐 아니라 attention에도 “거의 공짜로” 수용장을 확장한다
출처: Longformer - The Long-Document Transformer (Beltagy et al., 2020)
유형: 방법론적
윈도우 내 토큰을 간격 d로 샘플링하면 연산량은 그대로인 채 receptive field가 d배 확장된다. 일부 헤드만 dilated로 설정하여 멀티스케일 표현을 얻는 것이 실무적 권장.
핵심 조건/맥락: 문자 LM에서 효과가 크고 downstream token-level 태스크에서는 상대적으로 작음.
연결: WaveNet, Dilated Convolution.
활용 가능성: 긴 오디오·DNA 시퀀스, hierarchical attention 설계.
💡 Global attention을 위한 “별도 Q/K/V 파라미터” 분리는 pretrained 로컬 표현을 보호한다
출처: Longformer - The Long-Document Transformer (Beltagy et al., 2020)
유형: 방법론적
Global과 local이 같은 프로젝션을 공유하면 fine-tuning 시 local behavior가 훼손된다. 별도 Q_g/K_g/V_g를 두되 local projection 값으로 초기화하면 안정적 수렴.
핵심 조건/맥락: continued pretraining 체제에서 특히 중요.
연결: Adapter, LoRA(파라미터 분리 철학 공유).
활용 가능성: 새로운 attention 모드 추가 시 기존 능력 보존 전략.
💡 장문서 태스크의 성능 향상은 “모델 용량”이 아니라 “정보 경로”의 문제다
출처: Longformer - The Long-Document Transformer (Beltagy et al., 2020)
유형: 연결
같은 RoBERTa-base 파라미터 수로도 attention 연결 패턴만 재설계하면 IMDB/Hyperpartisan/WikiHop에서 큰 개선. 즉 장문 성능 병목은 파라미터가 아니라 정보가 흐를 수 있는 그래프 구조.
핵심 조건/맥락: 문서 내부에 실제로 장거리 의존성이 존재하는 태스크.
연결: Retrieval-Augmented Generation, State Space Models.
활용 가능성: 효율 모델 설계 시 “파라미터 늘리기 vs 경로 늘리기” 의사결정 프레임.
핵심 용어 정리
| 용어 | 정의 |
|---|---|
| Self-attention | 시퀀스 내 모든 토큰 쌍에 대한 Q·K 내적으로 가중합을 계산하는 연산. 표준 복잡도 O(n²). |
| Sliding window attention | 각 토큰이 좌우 고정 폭 w의 이웃만 attend하는 패턴. O(n·w). |
| Dilated attention | 윈도우 내 토큰을 간격 d로 샘플링하여 receptive field를 d배 확장. |
| Global attention | 소수의 토큰이 전체 시퀀스를 양방향으로 attend하는 패턴. |
| Receptive field | 한 출력 위치가 입력의 어느 범위까지 영향을 받는지의 범위. |
| Continued pretraining | 사전학습된 체크포인트에서 새로운 도메인/길이로 학습을 이어가는 방식. |
| LED | Longformer-Encoder-Decoder. BART 초기화 + 인코더에 Longformer attention 적용한 seq2seq 모델. |
| Position embedding copy-init | 기존 길이의 positional embedding을 반복 복제하여 더 긴 길이로 초기화하는 기법. |
| BPC | Bits Per Character. 문자 단위 언어 모델의 perplexity 지표. |
태그
paper #2020 sparse-attention long-context transformer longformer attention-pattern