Janela de contexto versus comprimento de contexto

Os termos janela de contexto e comprimento de contexto costumam ser usados como sinônimos. Quando uma fonte faz uma distinção entre eles, a janela é a capacidade máxima, e o comprimento é a quantidade em uso no momento.

Isso deixa três números que vale a pena separar:

  1. Janela de contexto máxima: a capacidade anunciada para um modelo ou endpoint.
  2. Comprimento de contexto atual: os tokens que ocupam uma solicitação e uma resposta específicas.
  3. Contexto utilizável de modo confiável: a quantidade que o modelo consegue usar bem para a sua tarefa.

O terceiro número não é uma especificação fixa. Ele depende do modelo, da tarefa, da posição dos detalhes relevantes e da quantidade de material irrelevante que compete por atenção.

Como funciona uma janela de contexto

Um aplicativo reúne o material de uma solicitação. Isso pode incluir:

  • instruções do sistema e do desenvolvedor
  • mensagens anteriores do usuário e do assistente
  • a mensagem atual
  • trechos recuperados ou documentos anexados
  • descrições e resultados de ferramentas
  • formatação e tokens especiais de controle

Um tokenizador converte esse material nos tokens que o modelo processa. O modelo de linguagem de grande porte então gera a resposta um token por vez. Cada token gerado passa a fazer parte da sequência disponível quando o token seguinte é produzido, portanto a saída também precisa de espaço.

Em uma etapa posterior do chat, o aplicativo normalmente envia novamente parte do material anterior selecionado. Ele pode manter o histórico intacto, descartar etapas antigas, recuperar apenas trechos relevantes ou substituir material mais antigo por um resumo. Um recurso separado de memória pode armazenar informações entre solicitações, mas esse armazenamento não é a própria janela de contexto. As informações precisam ser trazidas para o contexto atual antes que o modelo possa usá-las.

O comportamento nos limites varia. Uma API pode rejeitar uma solicitação grande demais. Um produto de chat pode remover o material mais antigo ou resumir seu conteúdo. Uma geração pode ser interrompida ao atingir um limite. Consulte a documentação do modelo e do endpoint específicos.

Um exemplo prático

Suponha que um modelo tenha uma janela de contexto compartilhada hipotética de 12.000 tokens:

  • instruções ocultas: 700 tokens
  • definições de ferramentas: 800 tokens
  • chat e documentos mantidos: 6.500 tokens
  • solicitação atual: 1.000 tokens

O total da entrada é de 9.000 tokens. Restam no máximo 3.000 para a resposta.

Agora suponha que o endpoint tenha um limite separado de saída de 2.000 tokens. Embora restem 3.000 tokens na janela compartilhada, a resposta pode usar no máximo 2.000. O limite prático é aquele que for atingido primeiro entre as restrições aplicáveis.

Se o aplicativo compactar o histórico de 6.500 tokens em um resumo de 1.500 tokens, a entrada cairá para 4.000 tokens. Isso cria mais espaço, mas não aumenta a janela de contexto. Trata-se de uma representação diferente e menor do material anterior, e os detalhes omitidos do resumo deixam de estar presentes na solicitação.

Por que as janelas de contexto são importantes

A janela limita quanto material de origem um modelo pode considerar de uma vez. Isso afeta a possibilidade de enviar um contrato longo em uma única solicitação, manter coerente uma conversa extensa ou fornecer a um assistente de programação uma parte suficiente de um repositório para resolver um problema.

Ela também afeta o planejamento da saída. Preencher quase toda a capacidade disponível com a entrada pode deixar pouco espaço para a resposta. Os aplicativos costumam reservar um orçamento de saída antes de decidir quanto histórico ou texto recuperado incluir.

Mais contexto também tem custos. Entradas mais longas normalmente exigem mais tempo e computação para serem processadas, e muitas APIs cobram por token. Contexto irrelevante pode dificultar a identificação das evidências úteis. A melhor solicitação não é necessariamente a mais completa; ela contém material relevante suficiente e espaço para a resposta necessária.

Uma janela maior não é uma memória melhor

Uma janela de contexto mede capacidade, não memória duradoura, conhecimento ou inteligência. Um modelo pode aceitar um trecho sem usar todas as suas partes igualmente bem.

Estudos controlados sobre contextos longos constataram que os modelos podem ter um desempenho melhor quando as informações relevantes estão próximas do início ou do fim do que quando as mesmas informações estão enterradas no meio. Os resultados variam conforme o modelo e a tarefa, mas a lição prática é estável: um máximo anunciado informa o que pode caber, não o que o modelo lembrará ou sobre o qual raciocinará perfeitamente.

O armazenamento em cache de prompts não altera essa distinção. Ele pode reduzir o trabalho ou o preço de reutilizar um prefixo, mas o material armazenado em cache ainda pode contar para a capacidade de contexto do modelo.

Uma janela de contexto também é diferente de um limite de conhecimento. A janela de contexto limita o que está disponível durante esta resposta. Um limite de conhecimento descreve a fronteira temporal das informações aprendidas durante o treinamento.

Próximos passos

Use O que é um token em IA? para entender como o texto é contabilizado no limite. Use O que é um LLM? para situar a janela de contexto no processo do modelo de gerar um token por vez. Para conhecer o limite mais frequentemente confundido com a capacidade de contexto, leia Janela de contexto vs. limite de conhecimento.