Busca vetorial e RAG - Equilibrando precisão e contexto
Introdução
Os grandes modelos de linguagem (LLMs) fizeram avanços significativos, especialmente em aprendizado de máquina e processamento de linguagem natural, fazendo com que máquinas lidem com tarefas complexas com facilidade. No entanto, à medida que a tecnologia de LLMs cresce, ela enfrentou uma questão única: alucinações de IA. Isso ocorre quando a IA gera informações incorretas ou falsas, fazendo-nos questionar o quão confiáveis esses sistemas são. Christy Bergman, uma Developer Advocate na Zilliz com ampla experiência em AI/ML, falou recentemente sobre o impacto dessas alucinações e como elas afetam a implantação de sistemas de IA no Unstructured Data Meetup.
Durante sua apresentação, Christy discutiu o que causa as alucinações de IA e seus efeitos. Ela também mencionou o conceito principal chamado Retrieval Augmented Generation (RAG), um método usado para tornar os modelos de linguagem mais confiáveis ao fornecer informações relevantes e atuais relacionadas à pergunta de um usuário. Essa técnica ajuda a garantir que os modelos possam acessar os dados mais recentes, como notícias ou pesquisas recentes, para dar respostas melhores e reduzir erros.
Entendendo as alucinações de IA
Alucinações de IA referem-se ao fenômeno em que sistemas de inteligência artificial, particularmente aqueles baseados em grandes modelos de linguagem, geram saídas factualmente incorretas, enganosas ou inteiramente fabricadas.
Esse problema pode acontecer por vários motivos:
Falta de contexto: Modelos de IA podem não ter contexto suficiente para gerar respostas precisas, especialmente ao lidar com consultas complexas ou sutis.
Problemas nos dados de treinamento: Os dados usados para treinar modelos de IA podem conter erros, vieses ou informações desatualizadas, que os modelos podem replicar inadvertidamente.
Generalização excessiva: Modelos de IA podem generalizar demais a partir de seus dados de treinamento, levando a extrapolações incorretas quando confrontados com entradas novas.
Limitações de design: Algumas arquiteturas de IA não são projetadas para verificar a veracidade de suas saídas, concentrando-se em vez disso em gerar respostas estatisticamente prováveis com base em seus dados de treinamento.
Christy deu um ótimo exemplo disso no Unstructured Data Meetup. Ela pediu ao sistema de IA "Gemini" que listasse três políticos nascidos em Nova York, e ele incluiu Hillary Clinton, o que está errado porque ela nasceu em Chicago.
Este exemplo demonstra como a IA pode cometer erros, mesmo em perguntas simples e diretas.
Como Christy mencionou, “Observe que LLMs podem ser treinados em fontes não convencionais, como Reddit, o que pode levar a resultados incomuns.”
Como RAG alivia as alucinações
Retrieval Augmented Generation (RAG) é uma abordagem avançada em processamento de linguagem natural que visa aprimorar a precisão e a confiabilidade dos modelos de IA, particularmente na redução de alucinações.
Christy explicou que RAG é um novo método para integrar seus próprios dados ao processo de IA generativa. Veja como funciona em termos simples:
Você começa alimentando seus dados em um modelo de embedding. Esse modelo transforma as informações em um conjunto de números chamados vetores, que são então armazenados em um banco de dados vetorial.
Quando você faz uma pergunta, o mesmo modelo de embedding também transforma sua consulta em um vetor e, em seguida, procura os vizinhos vetoriais mais próximos nesse banco de dados ou espaço vetorial. Depois que encontra a correspondência mais próxima, ele a usa como contexto, junto com sua pergunta, para orientar o grande modelo de linguagem. Dessa forma, você obtém uma resposta com maior probabilidade de ser precisa.
Agora, veja como RAG combate as alucinações de IA:
1. Manter-se Atualizado: Modelos RAG podem incorporar os dados mais recentes, garantindo que suas respostas sejam baseadas nas informações mais atuais.
2. Precisão e Detalhe: Esses modelos são projetados para fornecer respostas precisas ao recuperar informações específicas e relevantes. Esse processo reduz a probabilidade de gerar conteúdo falso ou fabricado e garante que as respostas sejam detalhadas e adaptadas precisamente à pergunta, evitando afirmações excessivamente gerais.
Desafios De Construir Um Sistema RAG
Construir um sistema de Retrieval Augmented Generation (RAG) envolve várias etapas e decisões complexas. Aqui estão alguns desafios principais:
Escolhendo um Modelo de Embedding
Ao escolher um modo de embedding, você pode se concentrar em alguns fatores principais:
Dimensão do Vetor: Escolha modelos que produzam vetores de um tamanho fácil de trabalhar.
Desempenho de Recuperação: Veja o desempenho de modelos conhecidos de lugares como Cohere e Voyager.
Tamanho do Modelo: Considere o tamanho do modelo para garantir que ele se encaixe nas suas capacidades computacionais.
Precisão: Garanta que o modelo consiga compreender os detalhes sutis importantes para o seu campo ou produto.
Escalabilidade: Certifique-se de que o modelo consiga lidar com mais dados à medida que suas necessidades crescem.
E, quanto às suas opções, você pode escolher entre:
Modelos Open Source: Eles estão disponíveis gratuitamente e podem ser comparados e selecionados em plataformas como o Hugging Face hub de modelos de embedding.
Modelos Proprietários: Empresas como Cohere ou OpenAI oferecem modelos que podem ter recursos únicos ou melhor desempenho para tarefas específicas, mas têm um custo.
Escolhendo um Índice
Selecionar uma estrutura de índice apropriada é fundamental para o desempenho do sistema. Isso envolve considerar:
Escalabilidade: O índice deve ser capaz de escalar para milhões ou bilhões de documentos sem se tornar proibitivamente lento.
Consumo de memória: O uso eficiente da memória é importante, especialmente ao lidar com grandes conjuntos de dados.
Velocidade de recuperação vs. precisão: Frequentemente há uma compensação entre a rapidez com que os documentos podem ser recuperados e a precisão com que correspondem à consulta.
Chunking
Chunking envolve dividir documentos em partes menores e semanticamente coerentes para facilitar uma recuperação mais precisa.
Determinar o tamanho do chunk: Grande demais, e os chunks podem ser menos focados; pequeno demais, e um contexto importante pode ser perdido.
Manter a coerência: Garantir que cada chunk permaneça significativo e coerente por si só.
Lidar com sobreposições: Decidir como gerenciar informações que poderiam se encaixar em vários chunks.
Palavras-chave ou Busca Semântica
A escolha entre busca baseada em palavras-chave e busca semântica pode afetar a capacidade do sistema de entender e responder a consultas.
Embora a busca por palavras-chave possa parecer simples e rápida, deixar de encontrar documentos que não contêm as palavras-chave exatas, mesmo que sejam semanticamente relevantes, pode afetar muito nossa precisão. Pelo contrário, a busca semântica oferece uma compreensão mais profunda da intenção da consulta, mas exige mais recursos computacionais e modelos sofisticados.
Rerankers
Rerankers são modelos ou algoritmos adicionais que refinam os resultados iniciais de recuperação, com o objetivo de melhorar a relevância e a precisão dos documentos selecionados para gerar a resposta final. A questão passa a ser se vale a pena usá-los e do que precisamos para integrá-los com sucesso?
Integração: Rerankers devem ser integrados perfeitamente ao sistema sem introduzir latência significativa.
Dados de treinamento: Como outros modelos, os rerankers precisam de dados de treinamento de alta qualidade e representativos para serem eficazes.
Ajuste: Encontrar o equilíbrio certo entre a recuperação inicial e a fase de reranking pode ser desafiador.
O RAG está morto?
Uma pergunta da palestra da Christy que tem me incomodado ultimamente é se o RAG ainda é a estrela do show agora que os LLMs de contexto longo estão melhorando seu jogo.
Os avanços recentes em LLMs de Contexto Longo levantaram questões sobre o futuro das técnicas de Geração Aumentada por Recuperação (RAG). Com modelos como Claude ou Gemini 1.5 Pro, que podem processar até 10 milhões de tokens, alguns argumentam que a abordagem de recuperação dinâmica do RAG não é mais necessária.
O Confronto: O Contexto Longo Pode Dispensar o RAG?
Essa é a pergunta que está fazendo todo mundo falar. Vamos destrinchar.
Custo e Eficiência:
A natureza econômica do RAG, pegando apenas o que precisa, economiza custos de computação. Mas, à medida que os preços da tecnologia de IA caem, os LLMs de contexto longo se tornam mais amigáveis ao bolso. Aqui é uma disputa apertada.
Dinâmicas de Recuperação e Raciocínio:
Os LLMs de contexto longo combinam seu raciocínio com a recuperação de informações, criando um toque mais personalizado nas respostas. A coleta antecipada de informações do RAG pode parecer um pouco robótica em comparação.
Escalabilidade e Complexidade dos Dados:
A capacidade do RAG de lidar com trilhões de tokens é seu trunfo, tornando-o rei para lidar com conjuntos de dados massivos e em constante mudança. Os LLMs de contexto longo ficam para trás aqui.
Colaboração em vez de Competição:
Por que não usar ambos? Combinar a precisão do RAG com a adaptabilidade dos modelos de contexto longo poderia levar a uma sinergia poderosa.
RAG da OpenAI vs. Seu RAG Personalizado
Bem, você viu o que é RAG e os desafios que ele apresenta. Agora, é hora de mergulhar nos aspectos técnicos da construção de um RAG. Especificamente, discutiremos o RAG da OpenAI e como ele se compara à construção de um RAG personalizado usando bancos de dados vetoriais como Milvus.
Uma ótima pergunta feita por um membro da audiência foi “Quais são as razões para fazer um RAG personalizado em vez de um RAG da Open AI”
Como Christy mencionou, a parte mais importante é “ Assim você pode ter mais insight sobre o sistema RAG, o que você não tem usando Open AI; como desenvolvedor, você sabe o que ajustar”
O Papel da API OpenAI Assistant na Construção de RAG
A API OpenAI Assistant é uma ferramenta poderosa que permite criar assistentes de IA dentro dos seus próprios aplicativos. Um Assistant tem instruções e pode usar modelos, ferramentas e arquivos para responder a consultas dos usuários. Esta API é ótima para aplicativos que precisam de conversas envolventes e de longo prazo, como suporte ao cliente ou assistentes pessoais virtuais.
Comparando o RAG da OpenAI e o RAG Personalizado
Christy demonstrou duas abordagens para construir um RAG: uma usando a API da OpenAI e outra personalizando-o com um banco de dados vetorial chamado Milvus. Esta comparação nos ajudará a entender as diferenças e benefícios de cada abordagem..
Aqui estão as principais diferenças entre o RAG da OpenAI e o RAG Personalizado.
| Critérios | OpenAI RAG | RAG personalizado |
| Adequação da aplicação | Bom para suporte ao cliente, assistentes pessoais virtuais e conversas de longo prazo | Ótimo para assistência em pesquisa acadêmica, consultas complexas e dados baseados em fatos |
| Desempenho e escalabilidade | Tempos de resposta rápidos e alta eficiência | Pode apresentar tempos de resposta mais lentos devido à recuperação do banco de dados |
| Complexidade de implementação | Fácil de configurar e usar | Requer expertise em integração de modelos de IA e gerenciamento de banco de dados |
| Considerações de custo | Preços com base no uso | Os custos incluem recursos computacionais e manutenção do banco de dados |
Uma abordagem RAG personalizada usando bancos de dados vetoriais como Milvus oferece mais flexibilidade e controle, mas requer mais expertise e recursos
Quer ver o código em ação? Confira este notebook para um exemplo prático!
Métodos de avaliação de RAG
Para avaliar um pipeline RAG, você precisa analisar ambas as partes separadamente e em conjunto. Você também precisa verificar se o desempenho está melhorando. Para fazer isso, você precisa de duas coisas: uma métrica de avaliação e um conjunto de dados.
Como Christy abordou esta parte em sua palestra, o foco principal que ela mencionou foi “Sua resposta é fundamentada e responde fielmente à pergunta”
Uma das ferramentas que Christy mencionou é Truera, uma plataforma que ajuda a avaliar e otimizar aplicações de Large Language Model (LLM).
Com Truera, você pode:
Avaliar seus apps de LLM
Otimizar sua escolha de apps de LLM usando funções de feedback e rastreamento de apps
Minimizar alucinações aproveitando recursos como a tríade RAG e outras funções de feedback prontas para uso
Monitorar e acompanhar apps de LLM em produção em escala, criando dashboards responsivos e configurando alertas acionáveis
Christy também falou sobre RAGAs, é um framework, criado especificamente para avaliar pipelines RAG. Ele oferece todas as necessidades técnicas para avaliar cada componente do pipeline isoladamente.
RAGAs precisa das seguintes informações:
· Pergunta: A consulta do usuário
· Resposta: A resposta gerada
· Contextos: As informações recuperadas da fonte de conhecimento externa
· Verdades fundamentais: A resposta correta para a pergunta (necessária apenas para uma métrica)
RAGAs fornece várias métricas para avaliar o pipeline, incluindo:
· Precisão de contexto: Quão relevantes são as informações recuperadas
· Revocação de contexto: Se todas as informações relevantes foram recuperadas
· Fidelidade: Quão precisa é a resposta gerada
· Relevância da resposta: Quão relevante é a resposta gerada para a pergunta
Avaliando LLMs usando outros LLMs como juiz
Avaliar grandes modelos de linguagem (LLMs) pode ser desafiador. Uma solução é fazer com que LLMs avaliem uns aos outros. Esse processo envolve gerar casos de teste e medir o desempenho do modelo.
Veja como funciona:
Geração automática de testes: Um LLM cria uma variedade de casos de teste, incluindo diferentes entradas, contextos e níveis de dificuldade.
Métricas de Avaliação: O LLM sendo avaliado resolve os casos de teste, e seu desempenho é medido usando métricas como precisão, fluência e coerência.
Comparação e Classificação: Os resultados são comparados a uma linha de base ou a outros LLMs, mostrando os pontos fortes e fracos de cada modelo.
Um ponto interessante mencionado por Christy que é realmente intrigante é “GPT se classificar em uma posição mais alta quando ele é o juiz”, o que mostra outro aspecto que devemos considerar ao avaliar os LLMs para garantir a precisão.
talvez você queira conferir este artigo para se aprofundar no tópico.
Conclusão
E é isso! Cobrimos as Alucinações de IA e como o RAG pode ajudar a resolver o problema. Christy demonstrou uma ótima explicação de como construir RAG requer escolhas cuidadosas de modelos de embedding, índices e abordagens de busca semântica. Ao abordar o problema das alucinações de IA e aproveitar a recuperação dinâmica de informações atualizadas, o RAG oferece uma ferramenta poderosa para criar sistemas de IA mais confiáveis e conscientes do contexto.
A jornada de construir um sistema RAG envolve decisões cuidadosas sobre modelos de embedding, indexação e tratamento de vastos conjuntos de dados. Embora desafiadoras, as recompensas em termos de desempenho e precisão são substanciais.
Seja você intrigado pelas nuances técnicas ou inspirado pelas aplicações práticas, agora é o momento perfeito para mergulhar no RAG. Experimente bancos de dados vetoriais como Milvus, integre com técnicas de busca avançadas e testemunhe em primeira mão como o RAG pode transformar a recuperação de dados e as interações com IA.
Continue lendo

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

Zilliz Cloud Now Available in AWS Europe (Ireland)
Zilliz Cloud launches in AWS eu-west-1 (Ireland) — bringing low-latency vector search, EU data residency, and full GDPR-ready infrastructure to European AI teams. Now live across 30 regions on five cloud providers.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.


