위치 인코딩과 RoPE: 순서 없는 어텐션에 거리 정보를 넣는 법

위치 인코딩과 RoPE: 순서 없는 어텐션에 거리 정보를 넣는 법

기본 셀프어텐션만으로는 입력 순서를 구분하기 어려워 위치 정보를 추가하며, RoPE는 위치에 따라 Query와 Key의 성분을 회전시켜 내적에 상대 위치 차이가 반영되게 합니다.

같은 토큰 표현의 Query와 Key가 위치별 각도로 회전하며 상대 거리 차이가 점수에 나타나는 도식

위치 인코딩은 토큰 번호표를 붙이는 부속 기능이 아니라 같은 단어 배열의 순서 차이를 모델이 구별하게 만드는 구조적 장치입니다.

AI 핵심 지식 52편 중 15편입니다. 제품 화면이 바뀌어도 남는 원리와 판단 기준을 다룹니다.

대표 위치 표현 방식 비교

방식핵심 아이디어평가할 경계
절대 사인·코사인고정 주파수 함수로 각 위치 벡터 생성학습 밖 길이의 실제 성능
학습 절대 임베딩위치별 벡터를 데이터로 학습사전 정의된 최대 위치와 재학습
상대 위치 편향토큰 쌍의 거리나 방향을 점수에 반영거리 버킷과 구조별 구현 차이
RoPEQ·K를 위치별 회전해 내적에 상대 차이 반영회전 주파수와 길이 확장 설정
절대 위치 덧셈, 상대 거리 편향, RoPE 회전을 같은 토큰 시퀀스에 적용한 비교

위치 표현을 선택하고 검증하는 순서

  1. 과업이 필요로 하는 최대 길이와 거리 패턴을 정의한다.
  2. 절대 위치와 상대 거리 중 필요한 귀납 편향을 고른다.
  3. 학습 길이 안과 밖의 위치 조합을 분리해 평가 세트를 만든다.
  4. 내용은 같고 순서만 바꾼 입력으로 민감도를 확인한다.
  5. 길이 확장 기법을 적용했다면 원래 길이 성능도 다시 측정한다.

기본 셀프어텐션은 순열만으로 순서를 알지 못한다

토큰 표현에 위치 신호가 전혀 없으면 셀프어텐션의 같은 연산은 입력 순서를 바꿔도 그 순열에 맞춰 출력 위치만 바뀌는 성질을 가진다. “개가 사람을 물었다”와 “사람이 개를 물었다”처럼 단어는 같고 순서가 다른 문장을 의미상 구분하려면 어느 토큰이 몇 번째인지 또는 두 토큰이 얼마나 떨어졌는지 알려야 한다. 원 Transformer는 서로 다른 주파수의 사인과 코사인으로 만든 위치 벡터를 토큰 임베딩에 더했다. 고정 함수라 학습 파라미터를 늘리지 않고 위치마다 구별되는 패턴을 제공한다. 다른 모델은 위치별 임베딩을 직접 학습하거나 어텐션 점수에 상대 거리 편향을 넣는다. 위치 표현 방식은 어텐션 밖의 사소한 전처리가 아니라 모델이 순서와 거리를 일반화하는 방법을 규정하므로 구조 명세에 포함해야 한다.

학습 길이 안팎에서 핵심 정보 위치를 옮기며 회수 성능을 측정하는 평가 격자

절대 위치와 상대 위치는 서로 다른 질문에 답한다

절대 위치 표현은 한 토큰이 시퀀스의 몇 번째 자리에 있는지를 좌표처럼 제공한다. 문서 시작, 문단 끝처럼 고정 위치가 중요한 패턴을 학습하기 쉽지만, 학습 중 본 범위를 넘어선 새 위치에서 같은 관계를 유지할지는 별도 문제다. 상대 위치 방식은 두 토큰 사이의 거리와 방향을 어텐션 계산에 반영해 “세 칸 앞” 같은 관계를 직접 표현한다. 다만 상대라는 이름도 하나의 구현을 뜻하지 않는다. 거리별 학습 편향, 버킷화, 재귀 메모리와 결합한 표현처럼 설계가 다양하다. 어느 방식이 항상 낫다고 말하기보다 과업의 핵심이 절대 구간인지 반복되는 거리 관계인지 정해야 한다. 길이 일반화는 위치 표현뿐 아니라 학습 분포, 마스크, 어텐션 패턴과 최적화의 영향을 함께 받으므로 단일 부품의 특성으로 보장할 수 없다.

RoPE는 Query와 Key를 위치에 따라 회전한다

Rotary Position Embedding은 토큰 임베딩에 위치 벡터를 단순히 더하는 대신, 어텐션의 Query와 Key 성분 쌍을 위치별 각도로 회전한다. 두 회전된 벡터의 내적에는 각 위치의 절대 각도보다 위치 차이에 해당하는 회전 관계가 나타난다. 이 덕분에 어텐션 점수 안에서 상대 위치 정보를 다룰 수 있고 추가적인 값 벡터 결합 없이 기존 내적 연산과 통합된다. 여러 성분 쌍에는 서로 다른 회전 주파수가 적용되어 짧고 긴 거리 패턴을 표현한다. 그러나 RoPE라는 이름만 알아서는 구현을 재현할 수 없다. 기준 주파수, 적용 차원, 위치 번호 부여, 캐시와 길이 확장 시 스케일 조정이 결과에 영향을 준다. 또한 Value를 같은 방식으로 회전하는 구조라고 일반화하면 원래 정의와 달라질 수 있으므로 실제 코드의 적용 지점을 확인해야 한다.

길이 확장은 설정값이 아니라 외삽 평가 문제다

위치 표현이 수학적으로 더 큰 위치 번호를 계산할 수 있다고 해서 학습 때보다 긴 문맥을 안정적으로 활용한다는 뜻은 아니다. 모델은 특정 길이 분포와 내용 패턴에서 학습되며, 긴 입력에서는 보지 못한 회전 각도 조합, 새로운 거리와 더 많은 방해 토큰을 마주한다. RoPE의 주파수나 위치 스케일을 조정하는 여러 확장 기법은 이런 변화를 완화하려 하지만 원래 길이 구간의 해상도와 장거리 성능 사이에 절충이 생길 수 있다. 평가는 단순히 오류 없이 입력을 받는지보다 위치별 회수, 근거리 문법, 장거리 결합과 생성 품질을 함께 봐야 한다. 같은 핵심 정보를 처음·중간·끝에 배치하고 학습 길이 안팎을 나눠 측정한다. 외삽 주장을 채택할 때는 적용한 설정과 평가 길이를 함께 기록해야 다른 모델이나 배포 환경에서 재현할 수 있다.

판단 체크리스트

  1. 위치 정보가 입력, 어텐션 점수 또는 Q·K 중 어디에 적용되는지 확인한다.
  2. 학습 중 최대 길이와 배포 목표 길이를 각각 기록한다.
  3. 내용을 유지하고 토큰 순서와 핵심 위치만 바꾼 시험을 만든다.
  4. 길이 확장 후 짧은 구간과 긴 구간 성능을 모두 재평가한다.

자주 생기는 오해

  • 토큰이 입력 배열에 놓였으니 어텐션은 순서를 자동으로 안다 — 기본 어텐션 연산에는 별도 위치 신호가 필요하며 구조가 그 신호를 표현에 반영해야 한다.
  • RoPE를 쓰면 임의 길이까지 정확히 외삽한다 — 회전을 계산할 수 있는 범위와 학습 밖 길이에서 정보를 실제 활용하는 성능은 별도로 검증해야 한다.

위치 표현의 효과를 과대평가하는 신호

상황해석다음 행동
더 긴 위치 번호를 계산 가능유효한 긴 문맥 활용과는 다른 조건학습 밖 위치별 회수 평가
RoPE 적용 여부만 비교주파수·스케일·적용 차원 누락전체 위치 설정과 코드 기록
한 길이의 평균 점수만 제시근거리와 장거리 실패가 섞임거리·위치 구간별 결과 분해

자주 묻는 질문

사인·코사인 위치 인코딩은 학습하지 않나?

원 Transformer의 해당 위치 함수는 고정되어 있습니다. 다만 모델은 그 신호를 사용하는 나머지 가중치를 학습하며, 다른 구조는 위치 벡터 자체를 학습하기도 합니다.

RoPE는 토큰 임베딩에 더해지나?

기본 정의에서는 위치별 회전을 어텐션의 Query와 Key에 적용합니다. 단순한 절대 위치 벡터 덧셈과 계산 위치가 다릅니다.

상대 위치면 문서의 시작과 끝은 못 아나?

모델 전체에는 마스크, 경계 토큰과 내용 패턴 등 다른 신호도 있습니다. 상대 위치 기제가 모든 절대 단서를 제거한다고 단정할 수 없습니다.

컨텍스트 확장은 위치 설정만 바꾸면 끝나나?

아닙니다. 새로운 거리 분포에서 회수와 생성 품질을 검증하고, 캐시·메모리·어텐션 비용 및 짧은 문맥 성능도 다시 확인해야 합니다.

관련 좌표

작성·검증 정보

  • 작성·검토: AI좌표 편집부
  • 원문 확인일: 2026-07-27
  • 다음 재검토일: 2027-01-27
  • 재검토 조건: 원 논문의 정정·철회, 표준 정의 변경, 장기 평가에서 핵심 반례가 확인될 때

출처

댓글