Essencial

Positional encoding II: RoPE

Rotary position embeddings giram pares de queries e keys para que seu produto escalar carregue posição relativa.

Atualizada em

1

Conceito

Positional encodings absolutos anexam uma coordenada a cada representação de token. Rotary position embedding, abreviado como RoPE, escolhe outro caminho: gira features de query e key por ângulos determinados pelas posições. O produto escalar de attention passa a carregar deslocamento relativo por meio da geometria.

Comece com um par bidimensional (x0,x1)(x_0,x_1). Na posição mm, gire-o pelo ângulo mθm\theta:

R(mθ)=[cos(mθ)sin(mθ)sin(mθ)cos(mθ)].R(m\theta)= \begin{bmatrix} \cos(m\theta)&-\sin(m\theta)\\ \sin(m\theta)&\cos(m\theta) \end{bmatrix}.

RoPE aplica a ideia a pares de features, usando uma frequência θi\theta_i diferente por par. Alguns giram rápido e representam variações finas; outros giram devagar e cobrem intervalos maiores. Query e key antes da rotação ainda vêm de projeções aprendidas de conteúdo. A posição altera a orientação, não a norma.

A identidade central é

(R(mθ)q)(R(nθ)k)=qR((nm)θ)k.(R(m\theta)q)^\top(R(n\theta)k)=q^\top R((n-m)\theta)k.

Como matrizes de rotação são ortogonais, duas rotações absolutas viram uma rotação pela diferença nmn-m. A pontuação depende do conteúdo da query, do conteúdo da key e do offset relativo. Por isso RoPE é descrito como posição relativa, embora cada vetor seja girado pelo próprio índice absoluto.

No código, a implementação costuma dividir o último eixo em pares ou metades, calcular tabelas de seno e cosseno e combiná-las sem criar matrizes explícitas. Os valores precisam usar dtype, device, posições e dimensão da head corretos. Trocar a convenção de pares mantém shapes válidos, mas torna pesos incompatíveis; o layout exato faz parte do contrato do checkpoint.

RoPE normalmente entra depois das projeções de queries e keys e antes do produto escalar. Values não são girados. O residual stream não precisa receber um embedding de posição absoluta. Isso prende posição diretamente ao roteamento de attention. Heads diferentes costumam compartilhar o cronograma de frequências, embora existam variações.

Métodos de extensão alteram o mapeamento de posição para ângulo. Interpolação simples comprime um intervalo solicitado maior dentro do intervalo familiar. Outros métodos mudam frequências ou aplicam escalas dependentes da dimensão. Existe um tradeoff entre resolução em curtas distâncias e estabilidade nas longas. A avaliação precisa cobrir tarefas comuns e recuperação distante; perplexity menor não prova que toda habilidade posicional sobreviveu.

RoPE também interage com o KV cache. No decode autoregressivo, keys em cache já devem conter a rotação de sua posição original, enquanto uma query nova recebe a posição atual. Reiniciar índices incorretamente ou girar keys duas vezes faz attention comparar offsets errados sem necessariamente gerar erro. Sistemas com sliding window ou chunks precisam definir índices globais ou locais.

Uma boa visualização começa num único plano bidimensional. Mostre uma seta de query e outra de key na posição zero, gire-as por ângulos diferentes e exiba o produto escalar. Depois revele a dependência da diferença angular. O embedding completo repete o mecanismo em diversas frequências; não é uma única rotação física em três dimensões.

O insight durável é que posição pode entrar por uma operação, não apenas por uma soma. RoPE transforma deslocamento da sequência em fase relativa dentro da similaridade query–key, numa interface compacta compatível com attention causal e caching.

2

Como explicar para uma criança de cinco anos

Dois faroleiros giram setas idênticas por um ângulo definido pelo marco quilométrico de cada um. Ao comparar as setas, a orientação inicial importa, mas o alinhamento depende da diferença entre os marcos. RoPE repete isso em vários planos bidimensionais com velocidades distintas: conteúdo fornece as setas, posição as gira e attention mede o alinhamento relativo.

3

Ensine de volta

Explique como RoPE injeta posição relativa em attention sem somar um vetor de posição ao residual stream.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Salvo somente neste dispositivo.

Ver uma resposta-modelo

RoPE agrupa features de query e key em pares bidimensionais e gira cada par por um ângulo dependente da posição. Rotações preservam normas, e o produto entre uma query girada na posição m e uma key girada em n pode ser reescrito usando uma rotação por n menos m. As pontuações dependem de conteúdo e deslocamento relativo, sem exigir um vetor absoluto no residual stream.

4

Teste seu entendimento

1. A quais tensores RoPE normalmente se aplica?
Resposta e explicação

Queries e keys — Girar queries e keys muda seus produtos escalares segundo a posição relativa; values normalmente não são girados.

2. Que propriedade geométrica ajuda RoPE a preservar a escala do conteúdo?
Resposta e explicação

Rotação preserva a norma do vetor — Uma rotação ortogonal muda orientação, mas preserva a norma euclidiana.

Conclua o teach-back e acerte o quiz para finalizar a aula.

Fontes

  1. Jianlin Su et al. (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding.