Engenharia de Contexto: A Chave para Construir Agentes de IA que Realmente Funcionam (com exemplos)
Engenharia de Contexto: A Nova Era das LLMs
Introdução à Engenharia de Contexto
- Ao construir soluções com IA, percebe-se que os Modelos de Linguagem (LM) são ferramentas poderosas, mas também frágeis.
- O termo "engenharia de contexto" é novo e não possui uma definição universal completa, mas é fundamental para o desenvolvimento eficaz de LLMs.
Definição e Importância
- Engenharia de contexto refere-se à construção de sistemas dinâmicos que fornecem informações e ferramentas adequadas para que uma LLM realize tarefas plausíveis.
- O canal do apresentador tem se concentrado em engenharia de contexto nos últimos dois anos, mesmo sem um nome definido anteriormente.
Desafios das LLMs
- Apesar da maravilha que são as LLMs, elas têm fraquezas que precisam ser abordadas através da engenharia de contexto.
- A era dos chatbots está ultrapassada; agora as interações com modelos como o ChatGPT envolvem acesso a ferramentas mais sofisticadas.
Performance e Controle
- Muitas vezes, a falta de desempenho confiável em agentes se deve à comunicação inadequada do contexto e instruções ao modelo.
- Para obter bons resultados, é necessário controlar a parte determinística do software enquanto se ajuda a parte probabilística.
Evolução das Aplicações
- As aplicações estão evoluindo para sistemas mais complexos; a engenharia de contexto tornou-se uma habilidade essencial para engenheiros.
- É comum observar degradação na performance das LLM após algumas interações devido à distração com contextos irrelevantes.
Limitações dos Modelos
- Estudos mostram que modelos podem se distrair facilmente com informações irrelevantes durante tarefas específicas.
- Um benchmark chamado No Lima avalia como janelas maiores de contexto afetam a qualidade dos modelos ao longo do tempo.
Janela de Contexto
- A janela de contexto é limitada em tamanho; informações devem ser otimizadas dentro desse espaço para evitar perda na performance.
A Importância da Engenharia de Contexto em LLMs
Desempenho e Perda de Informação
- O desempenho das LLMs (Modelos de Linguagem de Grande Escala) pode degradar com o aumento da janela de contexto, levando à perda de informações relevantes.
- É crucial fornecer não apenas um bom prompt, mas também dados adequados para que a LLM funcione corretamente.
Estruturação do Prompt e Dados
- A engenharia de contexto é fundamental; gastar tempo na recuperação dos dados certos é essencial para otimizar as respostas da LLM.
- O conceito "lixo entra, lixo sai" destaca a importância de garantir que a informação fornecida à LLM seja da melhor qualidade possível.
Influência nas Saídas da LLM
- Embora não se tenha controle total sobre as saídas das LLMs, é possível influenciar positivamente os resultados através do tratamento adequado dos dados.
- Recomenda-se assistir ao vídeo sobre engenharia de contexto para entender melhor como melhorar a interação com as LLMs.
Memória Semântica e Poluição do Contexto
- A memória semântica é uma solução importante em chatbots, permitindo que eles mantenham um histórico relevante das interações com os usuários.
- As LLMs são "stateless", ou seja, não retêm informações entre chamadas. Para contornar isso, é necessário fornecer contextos históricos.
Desafios na Manutenção do Contexto
- Há um dilema em quantas mensagens manter no histórico: muitas podem poluir o texto e poucas podem resultar em falta de informação relevante.
- O termo "poluição de contexto" refere-se ao excesso de informações irrelevantes que podem prejudicar a eficácia das respostas.
Soluções para Melhorar Interações
- Para mitigar problemas relacionados à janela de contexto limitada, recomenda-se o uso da memória vetorial como ferramenta para armazenar diálogos importantes.
- Essa abordagem permite que a LLM aprenda com as interações passadas e melhore sua capacidade ao longo do tempo.
Experiência e Aprendizado Contínuo
- Ao salvar informações relevantes durante diálogos, a solução proposta visa tornar as interações mais inteligentes e personalizadas.
- O conceito apresentado remete à ideia de "memória infinita", onde a experiência acumulada melhora continuamente o desempenho da LLM.
Conclusão sobre Engenharia de Contexto
Sumarização de Mensagens em LLM com Python
Introdução ao Código Experimental
- O apresentador menciona a necessidade de sumarizar textos para evitar que sua janela de contexto "exploda" e seu agente fique descontrolado.
- Um código Python experimental é apresentado, disponível na comunidade, permitindo que os usuários experimentem e explorem suas funcionalidades.
Estrutura do Grafo e Controle
- A estrutura do grafo é discutida como um meio de controlar o fluxo de mensagens em um modelo LLM (Large Language Model), que opera com base em probabilidades.
- O nó principal aciona a sumarização quando uma mensagem atinge 256 tokens, permitindo que o sistema responda adequadamente.
Funcionamento da Sumarização
- O código verifica se há um sumário existente e se há mensagens do usuário antes de enviar as informações para a LLM.
- Um prompt específico é criado, onde o sistema considera apenas o histórico relevante das conversas para gerar respostas.
Resultados da Experiência
- O apresentador compartilha resultados práticos ao solicitar a criação de histórias sobre personagens fictícios, observando como o sistema lida com contextos maiores.
- Ao criar antagonistas e outros personagens, o sistema utiliza resumos anteriores para enriquecer as respostas geradas.
Melhoria Contínua e Reflexões Finais
- A importância do controle no acesso às mensagens é destacada; melhorias podem ser feitas para otimizar a entrega de contexto à LLM.
Inscrições e Comunidade
Oportunidade de Inscrição
- O apresentador menciona a abertura das inscrições para sua comunidade no dia 11/08, convidando os interessados a se inscreverem.
- Ele destaca que o propósito do vídeo não é se estender sobre a comunidade, mas sim informar sobre a oportunidade de discussão mais aprofundada dos assuntos abordados.
Conteúdo Gratuito
- É ressaltado que há bastante conteúdo gratuito disponível na Rockpr, permitindo que as pessoas acessem informações valiosas sem custo.
- O apresentador sugere que seus vídeos são densos e podem ser revisados várias vezes para melhor compreensão dos temas discutidos.
Construindo com LLMs
Novas Técnicas para Novos Materiais
- A construção com LLMs (Modelos de Linguagem de Grande Escala) é comparada à construção de software com um novo tipo de material, exigindo novas técnicas.
- O apresentador enfatiza a importância da criatividade e do conhecimento técnico na resolução de problemas do mundo real, destacando que existem múltiplas maneiras de abordar um mesmo problema.
Resolução Criativa de Problemas