챕터별 상세
Sinusoidal PE의 아쉬운 점
기존의 Sinusoidal PE 방식은 단어 벡터에 위치 벡터를 직접 더하는 구조를 취한다. 이 방식은 위치 벡터끼리만 내적했을 때는 상대 거리를 잘 반영하지만, 단어 의미 정보가 섞인 쿼리와 키 벡터를 내적하면 상대 거리 반영 성질이 깨지는 문제가 발생한다. 결과적으로 모델이 단어 간의 상대적 위치 관계를 정확하게 학습하는 데 한계가 있다.
어텐션 메커니즘에서 쿼리와 키의 내적은 단어 간 유사도를 결정하는 핵심 요소이다.
python
def apply_rotary_pos_emb(q, k, cos, sin, unsqueeze_dim=1):
cos = cos.unsqueeze(unsqueeze_dim)
sin = sin.unsqueeze(unsqueeze_dim)
q_embed = (q * cos) + (rotate_half(q) * sin)
k_embed = (k * cos) + (rotate_half(k) * sin)
return q_embed, k_embedHugging Face Llama 구현체에서 RoPE를 적용하여 쿼리와 키 벡터를 회전시키는 핵심 로직
RoPE의 핵심: 벡터 회전
RoPE는 별도의 위치 벡터를 더하지 않고 쿼리와 키 벡터 자체를 회전시키는 방식을 사용한다. 고차원 벡터를 2D 단위로 쪼개어 각 차원마다 고유한 회전 주기를 적용하며, 인덱스가 작은 차원은 빠르게, 큰 차원은 느리게 회전시킨다. 이 과정에서 별도의 위치 벡터를 정의하지 않고도 위치 정보를 벡터의 위상 변화로 인코딩한다.
복소수 평면에서의 회전 변환 개념이 RoPE의 수학적 기초가 된다.
RoPE 구현 공식과 행렬 연산
벡터의 회전은 2D 회전 행렬을 사용하여 구현된다. 16차원 벡터의 경우 2개씩 묶어 8개의 쌍을 만들고, 각 쌍에 코사인과 사인 성분으로 구성된 회전 행렬을 곱하여 특정 각도만큼 회전시킨 결과를 얻는다. 이 연산은 행렬 곱셈을 통해 효율적으로 처리되며 실제 Llama 코드에서도 동일한 로직이 확인된다.
회전 행렬은 벡터의 크기를 유지하면서 방향만 바꾸는 선형 변환이다.
RoPE의 장점: 상대 위치 정보 보존
RoPE를 적용한 쿼리와 키 벡터를 내적하면 그 결과값이 두 위치의 차이인 (m - n)에만 의존하게 된다. 이는 문장 내에서 특정 어구가 어느 위치에 등장하든 어구 내부 단어들 사이의 상대적 거리는 동일하게 유지됨을 의미한다. 셀프 어텐션 연산 시 문장의 절대적 위치가 바뀌어도 단어 간의 관계 정보를 흐려지지 않고 일관되게 반영할 수 있다.
상대적 위치 정보의 보존은 긴 문맥을 처리하는 모델의 성능에 결정적인 역할을 한다.
용어 해설
- 위치 인코딩(Positional Encoding)
- — Transformer 모델이 입력 데이터의 순서 정보를 인식할 수 있도록 각 토큰의 위치 정보를 벡터 형태로 추가하는 기법이다. 단어의 의미를 담은 임베딩 벡터에 위치 정보를 더하거나 곱하여 모델이 문장 내 단어 간의 거리를 파악하게 돕는 역할을 한다.
- 사인파 위치 인코딩(Sinusoidal PE)
- — 사인과 코사인 함수를 사용하여 절대적인 위치 정보를 생성하는 방식이다. 초기 Transformer 모델에서 사용되었으나, 단어 임베딩에 위치 정보를 직접 더하는 방식 때문에 내적 연산 시 상대적 위치 관계가 왜곡될 수 있는 한계가 있다.
- 회전식 위치 임베딩(RoPE)
- — Rotary Positional Embedding의 약자로, 위치 정보를 벡터의 회전으로 표현하는 기법이다. 쿼리와 키 벡터를 특정 각도만큼 회전시켜 내적 연산 시 두 토큰 사이의 상대적 거리 정보가 자연스럽게 보존되도록 설계된 최신 기법이다.
- 내적(Dot Product)
- — 두 벡터의 성분별 곱의 합으로, 어텐션 메커니즘에서 두 단어 사이의 유사도를 측정하는 핵심 연산이다. 위치 인코딩이 적용된 벡터들 간의 내적 결과가 단어 간의 상대적 거리를 정확히 반영하는지가 모델 성능에 큰 영향을 미친다.
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 04. 12.수집 2026. 04. 12.출처 타입 YOUTUBE
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.

