RoFormer: Enhanced Transformer with Rotary Position Embedding (RoPE)
Digest: RoPE(Rotary Position Embedding)는 절대 위치 임베딩을 회전 행렬로 인코딩하여 상대 위치 정보를 자연스럽게 포착하는 위치 인코딩 방법이다. 핵심 아이디어는 토큰 임베딩을 position에 따라 회전시키면, 두 토큰 간의 내적이 자동으로 상대 거리에만 의존하게 된다는 것이다. 수식적으로 을 만족하는 함수 를 회전 행렬로 구성한다. 기존 학습 가능한 위치 임베딩(GPT)이나 sinusoidal 임베딩(원본 Transformer)보다 장거리 의존성과 외삽(extrapolation)에 강하며, LLaMA, Qwen, Mistral, PaLM, Gemma 등 현대 거의 모든 주요 LLM에 채택되었다.
핵심 아이디어
동기: 기존 방법의 한계
| 방법 | 한계 |
|---|---|
| Learned Absolute (GPT) | 학습 시 본 최대 길이를 넘으면 외삽 불가 |
| Sinusoidal (Transformer) | 상대 위치 정보가 명시적이지 않음 |
| Relative Position (T5, DeBERTa) | 추가 파라미터/연산 필요, 복잡한 구현 |
| ALiBi | 직선적 감쇠 → 표현력 제한 |
RoPE 수식
2D 회전 행렬로 일반화:
여기서 (원본 sinusoidal과 동일 주파수)
핵심 성질
→ 내적이 자동으로 상대 위치 (n-m)에만 의존
graph LR A["Query q at position m"] --> B["R(m) · q<br/>(m만큼 회전)"] C["Key k at position n"] --> D["R(n) · k<br/>(n만큼 회전)"] B --> E["내적 q^T R(n-m) k"] D --> E E --> F["상대 거리 (n-m)에만<br/>의존하는 attention score"]
효율적 구현
회전 행렬을 직접 곱하지 않고, 짝-홀 차원 쌍으로 분리하여 element-wise 연산:
→ 추가 파라미터 0개, 계산 비용 무시 가능
RoPE의 장점과 단점
장점
- 상대 위치 자동 인코딩: 절대 임베딩을 적용하면서 상대 정보 포착
- 추가 파라미터 없음: 학습 가능한 파라미터 0개
- 구현 간단: 2차원 회전만으로 구현
- 확장성: base frequency 조정(NTK-aware, YaRN)으로 컨텍스트 확장 용이
- 선형 감쇠: 거리가 멀수록 attention 자연 감쇠 (long-range decay)
단점
- 학습 시 미본 길이 외삽: 기본 RoPE는 학습 길이 초과 시 성능 저하 → NTK/YaRN으로 완화
- 이론적 한계: 2D 회전 → 고차원 관계 표현에 제한적 (실제로는 잘 작동)
컨텍스트 확장 방법
| 방법 | 핵심 아이디어 | 사용 모델 |
|---|---|---|
| Position Interpolation | 위치를 축소하여 학습 범위 내로 | CodeLlama |
| NTK-aware RoPE | base frequency를 증가 (10000 → 500000+) | LLaMA 3, Yi |
| YaRN | NTK + 차원별 스케일링 + 온도 조정 | DeepSeek-V3, Mistral |
| ABF (Adjusted Base Frequency) | 단순 base 조정 | LLaMA 3 |
| LongRoPE | 비균등 위치 보간 | Phi-3 |
채택 현황
| 모델 | RoPE 사용 | Base Frequency | 비고 |
|---|---|---|---|
| LLaMA 1/2 | ✅ | 10,000 | 2048/4096 context |
| LLaMA 3 | ✅ | 500,000 | ABF로 128K 확장 |
| Mistral/Mixtral | ✅ | 10,000 | SWA와 결합 |
| Qwen2.5/3 | ✅ | 1,000,000 | 128K context |
| PaLM | ✅ | — | — |
| Gemma 1/2/3 | ✅ | — | — |
| GPT-NeoX | ✅ | 10,000 | — |
| GPT-3/4 | ❌ | — | Learned Absolute 사용 |
| BERT | ❌ | — | Learned Absolute 사용 |
| T5 | ❌ | — | Relative Position Bias |
동시대 비교
| 방법 | 상대 위치 | 외삽 가능 | 추가 파라미터 | 계산 비용 | 채택도 |
|---|---|---|---|---|---|
| RoPE | ✅ (자동) | △ (확장 필요) | 0 | 매우 낮음 | 사실상 표준 |
| ALiBi | ✅ (선형 감쇠) | ✅ | 0 | 매우 낮음 | Falcon, BLOOM |
| T5 Bias | ✅ (학습) | △ | 소량 | 낮음 | T5, Flan-T5 |
| Learned Abs | ❌ | ❌ | d_model × max_len | 없음 | GPT-3, BERT |
| Sinusoidal | ❌ | △ | 0 | 없음 | 원본 Transformer |