Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Rotary Position Embedding (RoPE)

A incorporação posicional rotativa (RoPE) roda os vetores de consulta e chave de acordo com a posição do token, fazendo com que as pontuações de atenção dependam da distância relativa. É utilizada na maioria dos LLMs abertos.

A Incorporação Posicional Rotativa (RoPE) fornece a um transformer informações sobre a ordem dos tokens ao girar cada vetor de consulta e chave por um ângulo proporcional à posição do token. A autoatenção, por si só, não consegue distinguir uma ordem de palavras de outra, então os modelos precisam injetar a posição de alguma forma; com RoPE, a pontuação de atenção entre uma consulta na posição m e uma chave na posição n depende apenas do deslocamento m − n. Apresentada em 2021 com o modelo RoFormer e popularizada pelo GPT-J e GPT-NeoX da EleutherAI, a RoPE é agora a codificação posicional padrão dos modelos de linguagem grandes (LLMs) abertos, incluindo Llama, Mistral, Qwen, Gemma e DeepSeek.

Como funciona a RoPE#

A RoPE divide cada vetor de consulta e chave de dimensão d em d/2 pares de características e trata cada par como um ponto em um plano. Na posição m, o par i é girado pelo ângulo m·θᵢ, com θᵢ = base^(−2i/d) e base de 10.000 no artigo original. Os primeiros pares giram rapidamente e distinguem a ordem local com precisão, enquanto os últimos giram lentamente e ainda diferenciam tokens separados por milhares de posições. Girar uma consulta por mθ e uma chave por nθ faz com que seu produto escalar dependa apenas da diferença (m − n)θ, e a rotação nunca altera o comprimento de um vetor. A rotação é aplicada dentro de cada camada de atenção, após as projeções de consulta e chave; os vetores de valor não são girados, e nada é adicionado às incorporações dos tokens na entrada:

O trecho abaixo implementa a rotação com números complexos, como faz o código de referência Llama da Meta, e verifica a propriedade de posição relativa:

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}")

Ele imprime -8.2811 para ambos os pares separados por três tokens, estejam eles nas posições 5 e 2 ou 105 e 102, e -11.4563 quando os mesmos vetores estão separados por um token. A consulta girada mantém seu comprimento de 8.3705.

RoPE vs. outras codificações posicionais#

  • Codificação absoluta senoidal: o transformer original adiciona vetores fixos de seno e cosseno às incorporações de entrada uma vez, antes da primeira camada. A distância relativa precisa ser inferida a partir do sinal incorporado.
  • Incorporações absolutas aprendidas: BERT e GPT-2 aprendem um vetor por posição, até 512 e 1.024 posições, e não têm incorporação para posições além desses limites.
  • Vieses de posição relativa: T5 e ALiBi adicionam às pontuações de atenção um viés aprendido ou fixo baseado na distância. A RoPE codifica a distância relativa por meio da própria rotação e não adiciona parâmetros.

Estendendo a janela de contexto#

Um modelo treinado com RoPE em sequências de comprimento L nunca viu os ângulos de rotação de posições além de L, e a atenção se degrada quando as encontra. Os métodos de extensão de contexto reescalam os ângulos em vez de treinar tudo novamente. A Interpolação Posicional comprime novas posições no intervalo treinado e estendeu os modelos Llama a uma janela de contexto de 32.768 tokens em 1.000 etapas de ajuste fino. O escalonamento com reconhecimento de NTK e o YaRN alongam os pares lentos e de baixa frequência mais do que os rápidos, e o YaRN estendeu o Llama 2 a 128 mil tokens usando 10 vezes menos tokens de treinamento do que os métodos anteriores. O Llama 3 aumentou a base de 10.000 para 500.000 durante o pré-treinamento, fazendo os pares mais lentos girarem menos por token e mantendo distinguíveis as posições distantes.

RoPE em modelos de visão#

As imagens precisam de duas coordenadas, por isso os transformers de visão usam RoPE 2D, ou axial: metade dos pares de características de cada cabeça gira com a coluna do patch e a outra metade, com sua linha. O Qwen2-VL acrescenta um terceiro eixo, temporal, para vídeo em sua M-RoPE multimodal. O SAM 2 da Meta, disponível no pacote Ultralytics, aplica RoPE axial nas quatro camadas de sua atenção de memória, em que as características do quadro de vídeo atual prestam atenção às características armazenadas dos quadros anteriores. As chaves de cada quadro armazenado recebem a mesma grade de ângulos que as consultas do quadro atual, de modo que a atenção entre os dois depende do deslocamento espacial entre os patches.

Explore solutions

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens aéreas e de drones em informações em tempo real para agricultura, aquicultura, monitoramento ambiental, conservação e análise geoespacial com o Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Leva a IA de visão ao monitoramento aéreo com modelos Ultralytics YOLO. Impulsiona drones, fluxos de trabalho aeroespaciais, conservação ambiental e setores geoespaciais com soluções de visão computacional.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina