Outro dia, em uma aula, me perguntaram se a janela de contexto permite que um LLM aprenda com as interações com o usuário. Boa pergunta. E, na verdade, janela de contexto é um dos conceitos mais mal interpretados quando se fala de LLMs.
A janela de contexto não constitui aprendizado no sentido tradicional. Modelos baseados na arquitetura Transformer não “leem” texto como humanos. Eles operam sobre sequências de tokens e têm um limite máximo do quanto conseguem processar de uma vez. Esse limite é justamente a janela de contexto, ou seja, o número máximo de tokens que entram como entrada em uma única inferência.
Na prática, isso define o “campo de visão” do modelo. Tudo que está dentro da janela pode influenciar a resposta, e tudo que fica fora simplesmente não existe para ele naquele momento.
O mecanismo que torna isso possível é o self-attention. Ele permite que tokens considerem outros dentro da janela e ponderem sua relevância. É isso que dá ao modelo a capacidade de manter coerência, seguir instruções longas e integrar múltiplas informações em uma resposta.
Mas há um detalhe importante. Embora a atenção seja ampla, na prática ela não é uniforme. Conforme o contexto cresce, ocorre uma espécie de diluição. Tokens mais antigos competem com muitos outros e tendem a perder influência. Isso ajuda a explicar por que modelos às vezes “esquecem” instruções dadas no início de uma conversa longa, mesmo que ainda estejam tecnicamente dentro da janela.
Outro ponto pouco intuitivo é que o modelo não armazena o texto bruto. Ele transforma a entrada em representações internas (embeddings e ativações), o que pode implicar uma compressão semântica. Detalhes finos podem se perder, enquanto padrões mais gerais são preservados.
Tudo isso pode dar a impressão de que o modelo está “aprendendo” ao longo da conversa. Esse comportamento é frequentemente chamado de in-context learning. Mas o nome engana, pois não há aprendizado no sentido de atualização de parâmetros, apenas adaptação temporária ao contexto fornecido.
Durante a inferência, os pesos do modelo permanecem estáticos. Eles foram definidos no treinamento, tipicamente via gradient descent, e não são atualizados quando você interage com o sistema. Não há backpropagation, não há ajuste de parâmetros, não há retenção persistente.
O que acontece é mais simples. A cada nova mensagem, o modelo processa novamente o histórico da conversa (dentro da janela) e gera a resposta condicionado a esse contexto. A sensação de memória é, na verdade, reprocessamento contínuo.
Isso cria algumas ilusões comuns. A primeira é achar que o modelo “aprendeu com você”. Se você remover o histórico, esse suposto aprendizado desaparece imediatamente. A segunda é acreditar que ele melhora ao longo da conversa, mas o que melhora é a quantidade e a organização do contexto disponível. A terceira é a ideia de personalização, quando, na prática, o comportamento está sendo condicionado pelo texto recente e altamente sensível à forma como esse contexto é estruturado.
Aprendizado real só acontece fora desse ciclo de inferência. Envolve atualização de pesos, seja via fine-tuning, seja por métodos como RLHF. Alternativamente, sistemas mais sofisticados podem acoplar memórias externas, como bancos de dados ou mecanismos de recuperação. Mas isso já não é mais propriedade do modelo em si, e sim da arquitetura ao redor dele.
A leitura mais honesta é que a janela de contexto não transforma o modelo em algo que aprende em tempo real. Ela o transforma em um sistema de inferência altamente condicionado, com uma espécie de memória temporária, mas descartável. E entender essa diferença muda bastante a forma de projetar sistemas com LLMs.



