Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Rotary Position Embedding (RoPE)

회전 위치 임베딩(RoPE)은 토큰 위치에 따라 쿼리 및 키 벡터를 회전시켜 어텐션 점수가 상대적 거리에 따라 달라지게 합니다. 대부분의 오픈 LLM에서 사용됩니다.

회전 위치 임베딩(RoPE)은 각 쿼리 벡터와 키 벡터를 토큰 위치에 비례하는 각도만큼 회전시켜 트랜스포머에 토큰 순서 정보를 제공합니다. 셀프 어텐션만으로는 단어 순서를 구별할 수 없으므로 모델에 위치 정보를 주입해야 합니다. RoPE를 사용하면 위치 m의 쿼리와 위치 n의 키 사이 어텐션 점수는 오프셋 m − n에만 좌우됩니다. 2021년 RoFormer 모델과 함께 도입되고 EleutherAI의 GPT-J 및 GPT-NeoX를 통해 널리 알려진 RoPE는 이제 Llama, Mistral, Qwen, Gemma, DeepSeek를 비롯한 오픈 대규모 언어 모델(LLM)의 표준 위치 인코딩입니다.

RoPE 작동 방식#

RoPE는 차원이 d인 각 쿼리 및 키 벡터를 d/2개의 특징 쌍으로 나누고, 각 쌍을 평면상의 점으로 취급합니다. 위치 m에서 i번째 쌍은 각도 m·θᵢ만큼 회전하며, θᵢ = base^(−2i/d)이고 원 논문에서 base는 10,000입니다. 앞쪽 쌍은 빠르게 회전해 가까운 토큰의 순서를 세밀하게 구분하고, 뒤쪽 쌍은 천천히 회전하면서 수천 위치 떨어진 토큰도 구별합니다. 쿼리를 mθ만큼, 키를 nθ만큼 회전하면 두 벡터의 내적은 차이인 (m − n)θ에만 좌우되며, 회전해도 벡터의 길이는 바뀌지 않습니다. 회전은 쿼리 및 키 프로젝션 뒤에 각 어텐션 계층 내부에서 적용됩니다. 값 벡터는 회전하지 않으며 입력 단계의 토큰 임베딩에는 아무것도 더해지지 않습니다:

아래 코드는 Meta의 Llama 참조 코드와 같이 복소수를 사용해 회전을 구현하고 상대 위치 속성을 확인합니다:

import torch

torch.manual_seed(0)
dim = 64
freqs = 10000 ** (-torch.arange(0, dim, 2) / dim)  # one rotation frequency per pair of features


def rope(x, pos):
    """Rotate each consecutive feature pair of x by the angle pos * frequency."""
    pairs = torch.view_as_complex(x.reshape(-1, 2))
    return torch.view_as_real(pairs * torch.polar(torch.ones_like(freqs), pos * freqs)).flatten()


q, k = torch.randn(2, dim)
# The same query and key, three tokens apart, at two different places in the sequence
print(f"positions 5 and 2:     {rope(q, 5) @ rope(k, 2):.4f}")
print(f"positions 105 and 102: {rope(q, 105) @ rope(k, 102):.4f}")
print(f"positions 5 and 4:     {rope(q, 5) @ rope(k, 4):.4f}")  # one token apart
print(f"Vector length kept: {rope(q, 5).norm():.4f} vs {q.norm():.4f}")

위치가 5와 2든 105와 102든 세 토큰 떨어진 두 쌍에 대해 모두 -8.2811을 출력하고, 같은 벡터가 한 토큰 떨어진 경우에는 -11.4563을 출력합니다. 회전한 쿼리의 길이는 8.3705로 유지됩니다.

RoPE와 다른 위치 인코딩 비교#

  • 사인파 절대 위치 인코딩: 최초 트랜스포머는 첫 번째 계층 이전에 고정된 사인 및 코사인 벡터를 입력 임베딩에 한 번 더합니다. 혼합된 신호에서 상대 거리를 추론해야 합니다.
  • 학습된 절대 임베딩: BERT와 GPT-2는 위치마다 벡터 하나를 학습하며, 각각 최대 512개와 1,024개 위치를 지원합니다. 이 제한을 넘는 위치에는 임베딩이 없습니다.
  • 상대 위치 편향: T5와 ALiBi는 거리 기반의 학습형 또는 고정 편향을 어텐션 점수에 더합니다. RoPE는 회전 자체로 상대 거리를 인코딩하며 매개변수를 추가하지 않습니다.

컨텍스트 윈도우 확장#

길이 L의 시퀀스로 RoPE를 학습한 모델은 L을 초과하는 위치의 회전 각도를 접해 본 적이 없으므로 그러한 위치가 입력되면 어텐션 성능이 저하됩니다. 컨텍스트 확장 방법은 처음부터 다시 학습하는 대신 각도를 재조정합니다. 위치 보간은 새로운 위치를 학습된 범위에 맞춰 압축하며, 1,000회의 파인튜닝 단계만으로 Llama 모델의 컨텍스트 윈도우를 32,768토큰까지 확장했습니다. NTK 인식 스케일링과 YaRN은 느린 저주파 쌍을 빠른 쌍보다 더 많이 늘립니다. YaRN은 이전 방법보다 학습 토큰을 10배 적게 사용해 Llama 2를 128K 토큰까지 확장했습니다. Llama 3는 사전 학습 중 기준값을 10,000에서 500,000으로 높였으므로, 가장 느린 쌍은 토큰당 회전량이 줄어들고 멀리 떨어진 위치도 구별할 수 있습니다.

비전 모델에서의 RoPE#

이미지에는 두 개의 좌표가 필요하므로 비전 트랜스포머는 2D 또는 축형 RoPE를 사용합니다. 각 헤드의 특징 쌍 절반은 패치의 열을 기준으로, 나머지 절반은 행을 기준으로 회전합니다. Qwen2-VL은 멀티모달 M-RoPE에서 비디오를 위한 세 번째 시간 축을 추가합니다. Ultralytics 패키지에서 실행되는 Meta의 SAM 2는 메모리 어텐션의 네 계층에 축형 RoPE를 적용합니다. 이 어텐션에서는 현재 비디오 프레임의 특징이 이전 프레임의 저장된 특징을 참조합니다. 저장된 각 프레임의 키에는 현재 프레임의 쿼리와 동일한 그리드 각도가 적용되므로, 두 프레임 사이의 어텐션은 패치 간 공간 오프셋에 따라 달라집니다.

Explore solutions

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 환경 모니터링, 자연 보호, 공간정보 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 항공 모니터링에 비전 AI를 도입하세요. 컴퓨터 비전 솔루션으로 드론, 항공우주 워크플로, 환경 보전 및 공간정보 산업을 지원하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요