Essencial
Positional encoding II: RoPE
Rotary position embeddings rotacionam pares de query e key para que o produto escalar carregue posição relativa — e o Qwen3.8-27B as aplica a apenas 64 das 256 dimensões de cada head, com seções multimodais e um contexto nativo de 262.144 tokens.
Atualizada em
01 · Conceito
Conceito
A lição 4.6 terminou com uma queixa: encodings absolutos carimbam “este é o token 37” na entrada, quando o que a attention geralmente precisa é de “esta key está três tokens atrás desta query”. O problema concreto é fazer o próprio score — o produto escalar query–key — depender do deslocamento relativo, sem emaranhar posição no residual stream e em cada vetor de value pelo caminho. Rotary position embedding (RoPE) resolve isso com geometria: rotaciona queries e keys por ângulos dependentes da posição e deixa o produto escalar fazer a subtração.
Comece em duas dimensões. Um par de features na posição é rotacionado pelo ângulo :
A projeção de conteúdo fornece a seta; a posição a gira. A rotação preserva a norma do vetor, então as estatísticas de score da lição 4.3 sobrevivem intactas. O ganho é a identidade
Duas rotações absolutas se encontram num produto escalar e colapsam numa única rotação pela diferença . Cada vetor é rotacionado pelo seu próprio índice absoluto, e ainda assim o score depende apenas do conteúdo e do deslocamento relativo — exatamente a interface que pedimos. Values não são rotacionados, nada é somado a embeddings, e o mecanismo se compõe de forma limpa com o causal mask e com cache. O esquema completo apenas repete esse truque em muitos pares de features, com frequências espaçadas geometricamente e derivadas de uma base : planos rápidos resolvem deslocamentos finos, planos lentos cobrem faixas amplas — a ideia do banco de relógios senoidais realocada da entrada para o score.
Agora a suposição razoável mas errada a ser corrigida: a de que um modelo rotaciona todas as dimensões de cada head. O Qwen3.8-27B não rotaciona. Sua configuração define partial_rotary_factor como 0,25, e vale fazer a conta à mão. A dimensão de head é 256, então a fatia rotacionada é
dimensões por head — e, como cada plano de rotação consome um par de dimensões, isso dá planos. As dimensões restantes de cada query e de cada key não são rotacionadas diretamente pelo RoPE. Isso não as torna livres de posição: seus hidden states de entrada já podem codificar posição por attention ou recorrência anteriores. A rotação parcial concentra o sinal de fase rotativa direta num subespaço dedicado e deixa a maioria das dimensões disponível para casamento sem rotação.
Mais dois números fecham o retrato rotativo do Qwen. Primeiro, a base de frequência: o RoPE clássico usava ; o Qwen3.8-27B usa . Uma base maior estica todos os comprimentos de onda, desacelerando os planos para que posições separadas por centenas de milhares de tokens ainda caiam em fases distinguíveis — pré-requisito para o seu contexto nativo de 262.144 tokens. Segundo, os 32 planos não formam um banco indiferenciado. O modelo é multimodal, e um patch de vídeo tem três coordenadas relevantes: quando (frame) e onde (linha, coluna). O MRoPE do Qwen divide os 32 planos em seções intercaladas de — confira: — atribuídas às posições temporal, de altura e de largura, respectivamente. Para texto comum, as três coordenadas coincidem com o índice do token; para imagens e vídeo, cada seção rotaciona segundo o seu próprio eixo, dando ao mesmo mecanismo de attention uma noção nativa de layout bidimensional e temporal. Como patches de imagem entram na sequência de tokens é a história da lição 4.17.
Além dos 262.144 tokens nativos, o model card especifica extensão para 1M tokens via YaRN, que reescala o escalonamento de frequências para que posições desconhecidas caiam em faixas de fase familiares, em vez de extrapolar ângulos crus. A cautela da lição 4.6 vale com força total: uma fórmula que produz ângulos na posição 900.000 não promete que a rede treinada se comporte lá, e é por isso que métodos de extensão existem e por isso que são avaliados por recuperação de longo alcance, e não presumidos.
A interação do RoPE com o decode merece uma frase de antecipação: keys em cache mantêm a rotação da sua posição absoluta original, enquanto cada nova query chega com a rotação da posição atual, então a identidade de deslocamento relativo continua valendo conforme a sequência cresce — uma das várias razões pelas quais esse esquema venceu em modelos decoder-only. A aritmética do cache em si aparece na lição 7.2, e apenas as 16 camadas de attention completa do Qwen fazem qualquer coisa disso; suas 48 camadas DeltaNet acompanham a ordem de forma recorrente, sem maquinaria rotativa alguma (lição 4.15).
A percepção duradoura: a posição pode entrar num modelo por uma operação em vez de uma soma. RoPE transforma deslocamento em fase relativa dentro da similaridade query–key — e o Qwen3.8-27B mostra os refinamentos de 2026: rotacionar apenas um quarto do head, desacelerar o relógio em três ordens de grandeza e distribuir os planos entre tempo, altura e largura.
02 · Analogia
Analogia
Dois faroleiros giram setas de direção idênticas por um valor definido pelos seus marcos quilométricos. Quando comparam as setas, a orientação inicial compartilhada importa, mas o alinhamento entre as setas depende da diferença entre os marcos. RoPE faz isso em muitos planos bidimensionais com velocidades de rotação diferentes: o conteúdo fornece as setas, a posição as gira e a attention mede o alinhamento relativo. O Qwen deixa três quartos das dimensões de cada seta sem rotação direta pelo RoPE, portanto sem fase rotativa aplicada diretamente.
03 · Explique de volta
Explique de volta
Explique como RoPE injeta posição relativa na attention e descreva a configuração específica do Qwen3.8-27B: rotação parcial, frequência base, seções multimodais e comprimento de contexto.
Comparar com uma resposta-modelo
RoPE agrupa as features de query e key em pares bidimensionais e rotaciona cada par por um ângulo proporcional à posição do token, com frequência diferente por par. Como rotações são ortogonais, o produto escalar entre uma query rotacionada na posição m e uma key rotacionada na posição n depende apenas do conteúdo e do deslocamento n menos m, então os scores de attention carregam posição relativa sem somar nada ao residual stream. O Qwen3.8-27B aplica isso parcialmente: com partial_rotary_factor 0,25, só 64 das 256 dimensões de cada head são rotacionadas — 32 pares — enquanto 192 dimensões não recebem fase rotativa direta, embora ainda possam carregar informação dependente de posição de computações anteriores. Sua base de frequência theta é 10.000.000, e os 32 pares são divididos em seções MRoPE intercaladas de 11, 11 e 10 para as posições temporal, de altura e de largura de entradas multimodais. O contexto nativo é de 262.144 tokens, extensível a 1M com YaRN.
04 · Teste seu entendimento
Teste seu entendimento
Conclua o teach-back e acerte o quiz para finalizar a aula.
◎ · Marcador de evidência
Fontes
- Jianlin Su et al. (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding.
- Bowen Peng et al. (2023). YaRN: Efficient Context Window Extension of Large Language Models.
- Qwen Team (2026). Qwen3.8-27B Model Card.