Índice
4 min de leitura

Colei o prompt duas vezes e a precisão mudou

O método mais barato de melhorar o desempenho de um LLM, validado pelo Google Research em 7 modelos. Sem treinamento extra, sem engenharia de prompt. Só copiar e colar.

Eu estava debugando um pipeline de geração de texto quando percebi que o modelo estava ignorando parte das instruções. Achei que era bug meu. Revisei o código, verifiquei os tokens, testei de novo. O modelo continuava priorizando o começo do prompt e largando o meio pra lá.

Aí li o paper do Google Research sobre repetição de prompt e entendi que não era bug nenhum. Era arquitetura.

O problema está em como os modelos leem

Transformers têm um viés estrutural: prestam mais atenção ao começo e ao fim de um contexto do que ao meio. Isso não é falha de implementação, é consequência direta do mecanismo de atenção. Quanto mais longo o prompt, mais o miolo fica esquecido.

O Google Research chamou isso de “attention asymmetry” e testou em sete modelos diferentes, incluindo Gemini, GPT e alguns modelos open source. O padrão se repetiu em todos: instruções no meio do contexto têm menos peso na saída final do que instruções nas bordas.

Para tarefas simples isso mal aparece. Mas pra tarefas que dependem de seguir instruções precisas, o efeito é mensurável e consistente.

O truque é colar duas vezes

A proposta do paper é direta: repetir o prompt no final do contexto. Você coloca a instrução antes do conteúdo e depois coloca de novo depois do conteúdo. Assim:

[instrução]
[conteúdo ou contexto]
[instrução novamente]

Isso garante que a instrução esteja tanto no começo quanto no fim, aproveitando os dois pontos de maior atenção da janela de contexto. O modelo recebe o mesmo sinal duas vezes, de posições privilegiadas.

Os resultados no paper foram consistentes: melhora de precisão em tarefas de seguimento de instrução, sem nenhuma mudança no modelo, sem fine-tuning, sem prompt mais elaborado. Só a repetição.

Testei isso nos meus pipelines com GPT-4o e a diferença foi visível em tarefas onde o contexto era longo, tipo resumo de documentos com restrições de formato. O modelo parou de ignorar as restrições que eu colocava no meio do prompt.

Três vezes já não compensa

Uma pergunta óbvia: e se repetir três vezes? O paper testou isso também.

A melhora de duas pra três repetições foi marginal na maioria dos benchmarks. Em alguns casos, repetir três vezes até piorou levemente, possivelmente porque o modelo começa a tratar a repetição como parte do conteúdo em vez de instrução, ou porque o espaço extra no contexto tira atenção de outras partes relevantes.

A conclusão prática é que duas repetições é o ponto ótimo. Uma no começo, uma no fim. Mais do que isso, você está pagando mais tokens sem ganho real.

Quando não funciona

Repetição de prompt não é bala de prata. O paper deixa claro os casos onde o efeito é mínimo ou inexistente.

Em tarefas de raciocínio puro, como matemática ou lógica encadeada, a repetição não ajuda quase nada. Modelos de raciocínio (como o o1 da OpenAI ou variantes com chain-of-thought) já têm mecanismos internos pra manter o contexto da tarefa ao longo da geração. A atenção assimétrica importa menos quando o modelo está construindo um raciocínio passo a passo.

O efeito também é menor em prompts curtos. Se o seu contexto tem menos de alguns centenas de tokens, a atenção não cai tanto no meio e a repetição não muda muito. O benefício escala com o tamanho do contexto, então é mais relevante quando você está passando documentos longos, transcrições, bases de código ou qualquer coisa que enche a janela de contexto.

Por fim, se a instrução já está no começo de um prompt curto e o conteúdo é pequeno, você provavelmente não vai notar diferença nenhuma.

O custo é real mas pequeno

Repetir o prompt dobra o número de tokens da instrução. Isso aumenta o custo e a latência proporcionalmente ao tamanho da instrução.

Se a instrução tem 50 tokens e o contexto tem 2.000, você está pagando por 2.100 tokens em vez de 2.050. Irrelevante.

Se a instrução tem 500 tokens e o contexto tem 5.000, você vai de 5.500 pra 6.000 tokens. Ainda gerenciável, mas já aparece na conta se você processa volume alto.

A conta vale quando o custo de um erro é maior que o custo dos tokens extras. Pra casos de uso críticos onde precisão importa, o custo da repetição é irrisório comparado ao custo de reprocessar saídas erradas ou corrigir erros downstream.

O paper

Se quiser ler a metodologia completa e os benchmarks por modelo, o paper está disponível no arXiv: Prompt Repetition Improves Non-Reasoning LLMs.

Vale a leitura especialmente se você trabalha com modelos não especializados em raciocínio e já bateu nessa parede de “o modelo ignora metade das instruções”. A solução está documentada, testada em sete modelos e custa zero pra implementar.

Assine a newsletter

Receba atualizações sobre meus projetos mais recentes, artigos e experimentos com IA e desenvolvimento web.