O Problema da Memória em LLMs (IA)
Faz um tempo que venho estudando o uso de LLMs, agentes, frameworks, MCPs (Model Context Protocol) e tudo o que acompanha o ecossistema de IA como ferramenta de negócio. No entanto, algo que me chama a atenção é a questão da memória.
Pelo que entendi, a memória em sistemas atuais é muito mais uma questão de decidir quais dados passar para o "cérebro" da IA raciocinar do que o armazenamento de informações em si. Ou seja: memória em LLMs, hoje, nada mais é do que gerenciamento de contexto.
A Limitação da Proximidade Matemática
A forma como os dados são coletados de um banco vetorial parece, às vezes, como tentar ensinar alguém usando apenas um dicionário de termos isolados. Em vez de entender o contexto real do que aconteceu (como um ser humano) ou se basear em bilhões de parâmetros (como o treinamento base do LLM), as memórias atuais baseiam-se na proximidade matemática (vetorial).
Se eu perguntar "Qual é o meu nome?", o sistema buscará contextos similares a "meu nome". Se no banco de dados existir a informação sobre o meu cachorro, o RAG pode acabar entregando isso ao LLM, pois a distância vetorial entre "Meu nome é Wesley" e "O nome do meu cachorro é Bob" é curta. Isso resulta em desperdício de janela de contexto e possíveis alucinações.
O ser humano não "decide" ativamente cada bit do que armazenar; nós guardamos o que é relevante e criamos associações. Já a IA "lembra" apenas enquanto houver espaço no contexto; depois disso, ela simplesmente esquece.
O Custo da Inteligência na Memória
Projetos como o MemGPT tentam resolver isso usando um LLM para decidir o que deve ou não ser persistido e para realizar a busca. Parece uma solução viável, mas quando transportamos isso para uma aplicação de voz ou um humanoide, o fluxo se torna complexo e lento:
- Usuário fala -> Capturado por um STT (Speech to Text).
- LLM avalia se precisa de memória de longo prazo.
- MemGPT (ou outro LLM) realiza a busca das informações.
- LLM Principal gera a resposta integrando esses dados.
- TTS (Text to Speech) transforma a resposta em fala.
- MemGPT usa um LLM novamente para verificar se aquela interação deve ser salva.
Será que essa é realmente a melhor forma de estruturar a memória?
Frameworks como LangChain, Agno e a própria Google oferecem soluções de memória semântica. Outros papers e projetos sugerem o uso de Grafos de Conhecimento (GraphRAG) como memória, permitindo associações mais ricas, mas essa abordagem ainda não se popularizou totalmente devido à sua complexidade.
Estamos realmente criando "memória" ou apenas sistemas de busca cada vez mais complexos para compensar a falta dela?