포지셔널 인코딩
트랜스포머에게 "순서"를 가르치는 방법
왜 포지셔널 인코딩이 필요할까?
트랜스포머의 치명적 결함
트랜스포머의 어텐션 메커니즘은 순서에 무관(permutation invariant)합니다. "고양이가 쥐를 쫓았다"와 "쥐가 고양이를 쫓았다"를 구분할 수 없습니다! 단어의 의미만 보고 위치 정보는 완전히 무시됩니다.
위치 정보의 중요성
문장 A
"고양이가 쥐를 쫓았다"
→ 고양이 = 주어(추적자)
문장 B
"쥐가 고양이를 쫓았다"
→ 쥐 = 주어(추적자)
같은 단어들이지만 순서에 따라 의미가 완전히 달라집니다. 포지셔널 인코딩 없이는 두 문장을 구분할 수 없습니다.
각 토큰의 위치 정보를 벡터로 인코딩하여 입력에 추가합니다. 이렇게 하면 같은 단어라도 위치에 따라 다른 표현을 갖게 됩니다.
사인/코사인 포지셔널 인코딩
원본 트랜스포머의 위치 인코딩
원본 트랜스포머 논문(2017)에서 제안한 방식입니다. 각 위치를 다양한 주파수의 사인과 코사인 파동으로 표현합니다.
수식
🧪 파동 시각화
차원에 따라 파장이 달라집니다. 낮은 차원은 긴 파장, 높은 차원은 짧은 파장.
📊 인코딩 히트맵
각 위치(행)와 차원(열)에 대한 인코딩 값. 색상은 값의 크기를 나타냅니다.
- 값이 -1 ~ 1 사이로 정규화 (학습 안정성)
- 인접 위치 간 대칭적이고 자연스러운 거리
- 학습 파라미터 없음 (결정론적)
- 이론적으로 무한한 길이에 일반화 가능
RoPE: 회전 위치 임베딩
현대 LLM의 표준
현대 LLM의 사실상 표준이 된 Rotary Position Embedding입니다. Llama, Mistral, Qwen 등 대부분의 최신 모델이 사용합니다.
위치 정보를 벡터를 회전시키는 것으로 인코딩합니다. Query와 Key 벡터를 위치에 따라 다른 각도로 회전시키면, 내적(dot product)이 자연스럽게 상대적 위치 차이만 반영합니다.
🔄 회전 시각화
같은 벡터가 위치에 따라 다른 각도로 회전합니다.
θ = 0
θ = 45
θ = 90
θ = 135
RoPE 회전 행렬
[sin(θ), cos(θ)]
RoPE의 장점
벡터 크기 보존
회전은 벡터의 크기를 변경하지 않아 학습 안정성 유지. cos²θ + sin²θ = 1
상대 위치 인코딩
Q·K의 내적이 자연스럽게 (pos_q - pos_k)만 반영. 절대 위치 불필요
길이 외삽
기하학적 진행 덕분에 학습 때보다 긴 시퀀스에도 일반화 가능
파라미터 프리
학습 파라미터 없이 순수 수학 연산만으로 구현. 메모리 효율적
포지셔널 인코딩 비교
각 방식의 장단점
각 위치에 대해 학습 가능한 벡터를 사용
- ✅ 간단하고 직관적
- ✅ 데이터에서 직접 학습
- ❌ 최대 길이 고정 (512, 1024 등)
- ❌ 학습 데이터 외 길이 일반화 불가
다양한 주파수의 사인파로 위치 표현
- ✅ 파라미터 없음
- ✅ 이론상 무한 길이
- ⚠️ 절대 위치 인코딩
- ⚠️ 임베딩에 더해져 왜곡 가능
Q/K 벡터를 위치에 따라 회전
- ✅ 상대 위치 자동 인코딩
- ✅ 벡터 크기 보존
- ✅ 긴 컨텍스트 외삽
- ✅ 현대 LLM의 표준
어텐션 점수에 선형 바이어스 추가
- ✅ 매우 간단한 구현
- ✅ 긴 시퀀스 일반화
- ⚠️ RoPE 대비 성능 약간 하락
- ⚠️ 일부 모델에서만 사용
포지셔널 인코딩의 진화
절대 위치에서 상대 위치로
Sinusoidal Encoding
"Attention is All You Need" 논문에서 제안. 절대 위치를 사인/코사인 파동으로 인코딩.
Learned Positional Embedding
BERT, GPT-2에서 학습 가능한 위치 임베딩 사용. 고정 길이 제한이 문제로 부각.
RoPE (Rotary Position Embedding)
RoFormer 논문에서 제안. 회전을 통한 상대 위치 인코딩. 이후 Llama, Mistral 등에서 채택.
ALiBi & 확장 기법
ALiBi, YaRN, NTK-aware 스케일링 등 더 긴 컨텍스트를 위한 다양한 확장 기법 등장.
핵심 요약
❓ 필요한 이유
- 어텐션은 순서 무관
- "A가 B를"과 "B가 A를" 구분 불가
- 위치 정보 추가 필수
🌊 사인/코사인
- 원본 트랜스포머 방식
- 다양한 주파수 파동
- 절대 위치 인코딩
🔄 RoPE
- 현대 LLM 표준
- Q/K 벡터 회전
- 상대 위치 자동 인코딩
다음 강의에서는 트랜스포머 전체 구조를 살펴봅니다. 인코더, 디코더, FFN, Layer Normalization, Residual Connection 등 지금까지 배운 개념들이 어떻게 조합되는지 알아봅니다.