7 Limitações de Sistemas Baseados em RAG
As novas inovações dos grandes modelos linguísticos (do Inglês, LLMs) forneceram aos engenheiros de software novas capacidades para construir soluções mais sofisticadas, como por exmplo completar tarefas complexas, resumir documentos, responder a perguntas sobre um ou mais artefatos, e gerar novos conteúdos.
No entanto, os LLMs enfrentam limitações no que diz respeito ao conhecimento atualizado ou ao conhecimento específico de domínio atualmente capturado nos repositórios da empresa. Duas opções para abordar esse problema são:
Fine-tuning dos LLMs (continuação do treinamento de um LLM usando artefatos específicos do domínio), o que requer a gestão ou hospedagem de um LLM refinado; ou
Usar abordagens de Retrieval-Augmented Generation (RAG), que dependem de LLMs para a geração de respostas usando artefatos de conhecimento existentes (e extensíveis).
Ambas as opções têm prós e contras relacionados à privacidade/segurança dos dados, escalabilidade, custo, habilidades necessárias, etc. Neste texto, nos concentramos em algumas limitações das abordagem do RAG.
📚 Você é dev e quer criar aplicações baseadas em LLMs?
No próximo dia 18/05/2024 (sábado), vai rolar um bootcamp online de 3h de duração, sobre desenvolvimento de aplicações baseadas em LLMs. Alguns dos tópicos que serão abordados:
🟠 Entendendo sobre LLMs
🟣 Testando prompts e engenharia de prompts
🔵 Entendendo de embeddings
🟢 Comparando dados por similaridade
🟡 Conectando com um banco vetorial
E mais, se inscrevendo no bootcamp, você ganha acesso a três cursos sobre LLMs:
Interessou? Clique aqui e saiba mais:
RAG Overview
Os sistemas baseados em RAG oferecem uma solução atraente para esse desafio.
Ao integrar mecanismos de recuperação com as capacidades generativas dos LLMs, os sistemas RAG podem sintetizar informações contextualmente relevantes, precisas e atualizadas. Um sistema baseado em RAG combina capacidades de recuperação de informações e a habilidade generativa dos LLMs.
O componente de recuperação se concentra em recuperar informações relevantes para uma consulta de um usuário a partir de um repositório de dados. O componente de geração, por sua vez, usa essas informações recuperadas como contexto para gerar uma resposta para a consulta.
Os sistemas RAG são um caso de uso importante, já que todas as informações não estruturadas podem agora ser indexadas e disponibilizadas para consulta, reduzindo o tempo de desenvolvimento, sem necessidade de criação de, por exemplo, grafos de conhecimento e com pouca curadoria dos dados.
Engenheiros de software construindo sistemas RAG devem pré-processar o conhecimento de domínio capturado como artefatos em diferentes formatos, armazenar informações processadas em um banco de dados apropriado, implementar estratégias de busca adequadas, classificar os artefatos correspondentes e chamar a API dos LLMs passando consultas de usuários e documentos de contexto.
Limitações do RAG
No artigo “Seven Failure Points When Engineering a Retrieval Augmented Generation System”, os autores exploraram 3 sistemas baseados em RAG, de forma a identificar suas limitações.
Estudos de caso
O artigo conduziu três estudos de caso para descobrir os desafios que surgem ao implementar sistemas RAG.
Cognitive Reviewer: O Cognitive Reviewer é um sistema baseado em RAG que apoia pesquisadores na análise de documentos científicos. Ele permite que eles carreguem artigos de pesquisa relacionados a uma pergunta ou objetivo específico. Os documentos são classificados e disponíveis para revisão manual, e os pesquisadores podem fazer perguntas diretamente aos documentos. O sistema processa documentos em tempo real e usa um algoritmo de classificação para ordenar os documentos carregados.
AI Tutor: O AI Tutor é um sistema RAG integrado ao sistema de gestão de aprendizagem de uma Universidade. Ele permite que alunos façam perguntas sobre o conteúdo do curso, com respostas obtidas do material de aprendizagem, incluindo PDFs, vídeos e textos. Vídeos são transcritos e fragmentados pelo modelo Whisper. O sistema também inclui um reescritor para consultas, considerando o contexto.
Biomedical Q&A: Este sistema RAG foi criado usando um dataset científico, composto por perguntas, respostas e links para documentos. O dataset contém pares de perguntas e respostas no domínio biomédico, com respostas de tipos variados. Foram indexados 4.017 documentos e 1.000 perguntas.
Limitações de sistemas baseados em RAG
A partir dos estudos de caso, os autores identificaram uma sete principais limitações. São elas:
Conteúdo ausente. O primeiro caso ocorre ao fazer uma pergunta que não pode ser respondida pelos documentos disponíveis. No caso positivo, o sistema RAG responderá algo como "Desculpe, não sei". No entanto, para perguntas relacionadas ao conteúdo, mas que não têm respostas, o sistema pode ser enganado a dar uma resposta incorreta.
Documentos melhor ranqueados faltantes. A resposta para a pergunta está em um documento existente, mas este não foi classificado alto o suficiente para ser retornada ao usuário. Em teoria, todos os documentos são classificados e usados nas próximas etapas. No entanto, na prática, somente os K-principais documentos são retornados, onde K é um valor selecionado com base no desempenho
Documentos não selecionados para adicionar contexto. Documentos com a resposta foram recuperados do banco de dados, mas não foram selecionados para adicionar contexto para gerar uma resposta. Isso ocorre quando muitos documentos são retornados do banco de dados e um processo de consolidação ocorre para buscar a resposta.
LLM não identificou o documento. Aqui, a resposta está presente no contexto fornecido ao LLM, mas o modelo de linguagem não conseguiu identificar e extrair a resposta correta. Normalmente, isso ocorre quando há muito ruído ou informações contraditórias no contexto.
Formato Inadequado. A pergunta envolvia a extração de informações em um determinado formato, como uma tabela ou lista, e a LLM ignorou esta instrução.
Especificidade Incorreta. A resposta é retornada pela LLM, porém não é específica o suficiente (ou é muito específica) para atender à necessidade do usuário. Esse problema também ocorre quando os usuários não têm certeza de como fazer uma pergunta (e lançam perguntas muito gerais).
Incompleto. Respostas incompletas não são incorretas, mas perdem algumas das informações, mesmo que essas informações estejam no contexto e disponíveis para extração. Um exemplo de pergunta, como "Quais são os pontos-chave abordados nos documentos A, B e C?" Uma abordagem melhor seria fazer essas perguntas separadamente.
Conclusão
Os LLMs oferecem novas capacidades para engenheiros de software, permitindo a construção de soluções inovadoras. No entanto, eles enfrentam limitações no acesso a conhecimentos atualizados ou específicos de domínios capturados em repositórios corporativos. Sistemas baseadas em RAG emergem como uma solução, integrando capacidades de recuperação de dados e geração de respostas com precisão contextual.
O artigo “Seven Failure Points When Engineering a Retrieval Augmented Generation System” examina os desafios de implementar sistemas RAG, apresentando estudos de caso que revelam pontos falhos cruciais.
O estudo conclui que a implementação eficaz de sistemas RAG requer um equilíbrio entre pré-processamento de artefatos, armazenamento de dados, estratégia de busca e integração com APIs de LLMs, destacando o papel fundamental de desenvolvedores na superação dessas limitações para sistemas RAG robustos e eficazes.