Como resolver os problemas de contexto longo
(dbreunig.com)- Ao usar contexto longo, surgem problemas típicos como contaminação de contexto, confusão, conflito e dispersão, entre outras questões de gerenciamento de informações
- Gerenciamento de informações é o ponto central, e informações incorretas afetam diretamente e negativamente a qualidade do resultado
- Entre as principais soluções, táticas como RAG, Tool Loadout, Context Quarantine, Pruning, Summarization e Offloading se mostram eficazes
- Mesmo quando a janela de contexto dos LLMs mais recentes é grande, é preciso atenção ao fato de que o uso excessivo de informações desnecessárias ainda causa problemas reais
- Cada tática ajuda bastante o projetista de agentes a gerenciar o contexto de forma sistemática e a aumentar a eficiência e a precisão
Problemas que surgem em contextos longos e resumo
Ao usar contextos longos, os principais tipos de falha que podem surgir no sistema são os seguintes
- Contaminação de contexto: quando alucinações (
hallucination) ou erros entram no contexto e passam a ser consultados repetidamente - Dispersão de contexto: quando o contexto fica longo demais e o modelo passa a focar apenas no contexto em vez do conteúdo aprendido originalmente
- Confusão de contexto: situação em que informações desnecessárias são adicionadas e acabam gerando respostas de baixa qualidade
- Conflito de contexto: quando novas informações ou ferramentas entram em conflito com informações existentes
Todos esses problemas têm origem no gerenciamento de informações e, como no ditado da programação “Garbage in, garbage out”, a informação de entrada exerce grande influência sobre o resultado.
Felizmente, várias táticas podem mitigar ou prevenir com eficácia os problemas acima
Principais táticas de gerenciamento de contexto
RAG (Retrieval-Augmented Generation)
- RAG é uma abordagem que fornece ao LLM apenas as informações necessárias para melhorar a qualidade da resposta
- Com o aumento da janela de contexto dos LLMs, muita gente tenta “colocar tudo lá dentro”, mas informação desnecessária pode piorar o resultado
- O RAG continua sendo uma tecnologia muito importante e amplamente usada até hoje
Tool Loadout (seleção da composição de ferramentas)
- Método de inserir seletivamente no contexto apenas as ferramentas necessárias
- As descrições das ferramentas são gerenciadas em um banco de dados vetorial, e o RAG é usado por prompt para selecionar as ferramentas ideais
- A partir de mais de 30 ferramentas, descrições sobrepostas começam a causar confusão, e com mais de 100 o desempenho do modelo cai drasticamente
- No artigo “Less is More”, o Llama 3.1 8b falha quando recebe 46 ferramentas, mas tem sucesso quando recebe apenas 19
- Foi usado um recomendador baseado em LLM para selecionar dinamicamente as ferramentas necessárias, elevando desempenho, velocidade e eficiência energética
Context Quarantine (quarentena de contexto)
- Método de gerenciar o contexto separadamente em threads isoladas
- O problema é dividido em várias partes, como pesquisa e exploração, e cada uma delas é atribuída a um agente separado
- No sistema multi-agent da Anthropic, cada subagente usa uma janela de contexto independente para aumentar a eficiência e a precisão
- Esse design se destaca especialmente em tarefas que exigem exploração simultânea em várias direções
Context Pruning (poda de contexto)
- Método de filtrar continuamente informações desnecessárias ou antigas
- Na área de NLP, várias técnicas de pruning já vêm sendo usadas há muito tempo
- Mais recentemente, surgiram modelos leves e rápidos dedicados à “limpeza” de contexto, como o Provence (1.75GB, capaz de comprimir 95% dos documentos)
- Quando o contexto é gerenciado em formato estruturado, como dicionários, a poda e o resumo (compressão) se tornam mais fáceis
Context Summarization (resumo de contexto)
- Abordagem de comprimir e resumir o contexto inteiro quando ele fica muito longo
- Não serve apenas para evitar ultrapassar a janela, mas também é eficaz para prevenir repetições desnecessárias e fenômenos de dispersão
- É importante definir quais informações devem ser preservadas na etapa de compressão
- Com uma etapa separada de resumo baseada em LLM, é possível acumular e melhorar dados de avaliação
Context Offloading (descarregamento de contexto)
- Estratégia de criar um espaço de memória fora do contexto para deixar registros
- Por exemplo, a ferramenta “think” da Anthropic cria um
scratchpadseparado para induzir o LLM a registrar anotações intermediárias necessárias - Pode ser aplicada com utilidade em análise de saída de ferramentas, verificação de políticas e tomada de decisão sequencial
- Ao armazenar resultados intermediários separadamente, evita-se que o contexto fique desnecessariamente contaminado ou complexo
- Também foram observadas melhorias em desempenho e precisão, chegando a 54% em alguns casos
Conclusão e pontos de atenção no design de agentes
- O gerenciamento de contexto é justamente a parte mais difícil no design de agentes
- Ao programar com LLMs, a forma como informações, ferramentas e contexto são combinados e gerenciados determina o sucesso ou o fracasso
- Por maior que seja a janela de contexto, nem toda informação ajuda.
- É necessário verificar se cada item realmente está trazendo utilidade e gerenciar ativamente o contexto com os 6 métodos apresentados acima (RAG, Tool Loadout, Context Quarantine, Pruning, Summarization e Offloading)
Ainda não há comentários.