AI VIDEO BRIEFING

RoPE 정리: 회전 위치 임베딩의 원리와 긴 문맥으로 확장하는 PI·NTK·YaRN 기법

트랜스포머가 단어 순서를 인식하게 만드는 회전 위치 임베딩 RoPE의 원리를 정리했다. 쿼리와 키를 회전시키면 내적이 상대 거리에만 의존하는 이유, 구현 요령, 학습 길이를 넘어 문맥을 늘리는 PI·NTK·YaRN 기법까지 살펴본다.

위치를 회전으로 알려준다, LLM이 RoPE를 쓰는 이유 영상 대표 이미지

핵심 메시지

  • 셀프 어텐션은 토큰 순서를 바꿔도 결과가 같기 때문에, 어딘가에서 위치 정보를 넣어 주지 않으면 어순을 이해할 수 없다.
  • RoPE는 쿼리와 키 벡터의 차원을 두 개씩 짝지어 2차원 점으로 보고, 토큰 위치에 비례하는 각도만큼 회전시킨다.
  • 회전된 두 벡터의 내적은 절대 위치가 아니라 두 위치의 차이에만 의존하며, 이것이 RoPE가 시프트 불변성을 갖는 이유다.
  • 회전 각도는 하나의 주파수가 아니라 차원에 따라 기하급수적으로 줄어드는 다중 주파수로 정해져, 고주파는 지역 구조를 저주파는 장거리 패턴을 담당한다.
  • 학습 길이를 넘어서면 모델이 겪어보지 못한 회전 각도가 나타나 성능이 급격히 무너지므로, PI·NTK·YaRN·LongRoPE 같은 스케일링이 필요하다.

쉽게 이해하기

영상은 같은 문장에서 뽑은 두 개의 어텐션 패턴으로 시작한다. 하나는 토큰 50개만큼 밀려 있는데, RoPE를 적용하면 두 패턴이 정확히 겹친다. 어텐션이 절대 위치가 아니라 상대 위치를 보게 만드는 것, 이것이 RoPE가 하는 일이다.

기존 방식들과의 자리매김도 분명하다. 토큰 임베딩에 사인파를 더하는 절대 위치 인코딩은 단순하지만 상대 관계를 직접 담지 못하고, 어텐션 점수에 거리 기반 편향을 더하는 방식은 거리를 반영하는 대신 연산이 늘어난다. RoPE는 그 중간 지점을 찾는다.

핵심 항등식은 회전된 쿼리와 회전된 키의 내적이, 원래 쿼리와 상대 거리만큼 회전된 키의 내적과 같다는 것이다. 코사인 각도 차 공식에서 자연스럽게 따라 나오며, 회전 행렬이 절대 위치를 상쇄하고 두 위치의 차이만 남긴다.

구현은 생각보다 짧다. 역주파수를 계산하고, 위치 축으로 브로드캐스트한 뒤, 헤드 차원에 맞춰 이어 붙여 코사인과 사인을 얻는다. 짝수와 홀수 인덱스를 뒤바꾸고 부호를 뒤집는 이른바 로테이트 하프 요령을 쓰면 몇 줄이면 끝난다. 적용 위치도 중요한데, RoPE는 헤드별로 어텐션 점수를 계산하기 전에 쿼리와 키에만 적용하고 값 벡터에는 적용하지 않는다.

긴 문맥은 별개의 문제다. 학습 창을 넘어서면 분포 밖의 회전 각도가 나타나면서 성능 곡선이 절벽처럼 떨어진다. 위치 보간은 위치 값을 축소해 학습된 범위 안으로 밀어 넣고, NTK 기반 방식은 기저 주파수를 조정해 각도가 완만하게 변하도록 만든다. YaRN과 LongRoPE는 여기서 더 나아가, 장거리를 담당하는 저주파 차원은 더 과감하게 늘리고 지역 구조를 담는 고주파 차원은 원래에 가깝게 두는 식으로 대역별로 다르게 다룬다.

실무에서 만지게 되는 손잡이도 정리된다. 기저 값은 주파수 격자를 정하고, 부분 회전 비율은 헤드 차원의 일부만 회전시켜 안정성을 확보하며, KV 캐시를 쓸 때는 캐시가 끝난 지점부터 위치 ID를 이어 주면 된다. 멀티모달에서는 헤드 차원을 반으로 나눠 한쪽은 세로 위치로, 다른 쪽은 가로 위치로 회전시켜 2차원으로 확장할 수 있다.

주요 인사이트

  • RoPE가 널리 쓰이는 이유는 성능만이 아니라 결합성에 있다. 값 벡터를 건드리지 않고 쿼리와 키에만 적용되므로 KV 캐시나 어텐션 커널 최적화와 충돌 없이 얹힌다.
  • 차원마다 주파수를 다르게 두는 설계는 사실상 여러 해상도의 위치 시계를 동시에 돌리는 것과 같다. 문맥 확장 기법이 대역별로 다르게 접근하는 것도 이 구조 덕분에 가능해진다.
  • 문맥 확장은 공짜가 아니다. 위치 보간과 NTK 스케일링 모두 장거리 안정성을 얻는 대신 단거리 충실도를 내주는 교환이므로, 실제 사용 사례에서 검증하지 않으면 짧은 입력의 품질이 조용히 나빠질 수 있다.
  • 스케일링은 마법이 아니라는 경고가 중요하다. 학습 분포에서 지나치게 멀어지면 앨리어싱은 여전히 발생하므로, 문맥 길이를 늘리는 데는 실질적인 한계가 있다.
  • 가장 흔한 실수가 값 벡터까지 회전시키는 것이라는 지적은, 이 기법의 수학적 근거가 어디에서 오는지를 되짚게 한다. 상대 위치 성질은 쿼리와 키의 내적에서 나오는 것이라 값 벡터에는 해당 논리가 성립하지 않는다.

자주 묻는 질문

트랜스포머에 위치 정보를 따로 넣어야 하는 이유가 무엇인가요?

셀프 어텐션은 순열 불변이라 토큰 순서를 섞어도 계산 결과가 달라지지 않기 때문입니다. 하지만 언어에서는 어순이 의미를 바꾸므로 위치 정보를 별도로 주입해야 합니다.

RoPE는 어떻게 상대 위치를 표현하나요?

쿼리와 키의 차원을 두 개씩 짝지어 2차원 점으로 보고 토큰 위치에 따라 회전시킵니다. 회전된 두 벡터의 내적을 계산하면 회전 행렬이 절대 위치를 상쇄하고 두 위치의 차이만 남기 때문에, 어텐션 점수가 상대 거리에만 의존하게 됩니다.

RoPE는 어디에 적용하나요?

Q, K, V로 투영한 뒤 쿼리와 키에만 헤드별로 적용하고, 값 벡터에는 적용하지 않습니다. 그 다음에 평소처럼 어텐션 점수를 계산합니다.

학습 길이보다 긴 문맥을 쓰려면 어떻게 해야 하나요?

위치 보간으로 위치 값을 학습 범위 안으로 압축하거나, NTK 기반 방식으로 기저 주파수를 조정합니다. YaRN과 LongRoPE는 주파수 대역별로 다르게 스케일링해 단거리 품질을 지키면서 문맥을 크게 늘립니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식