Filtragem de Metadados, Busca Híbrida ou Agente ao Criar sua Aplicação RAG
O que é RAG?
Retrieval Augmented Generation (RAG) é uma técnica que aprimora LLMs integrando fontes de dados adicionais. Uma aplicação RAG típica envolve:
Indexação - um pipeline para ingerir dados de uma fonte e indexá-los, o que geralmente consiste em carregar, dividir e ordenar os dados no Milvus.
Recuperação e geração - Em tempo de execução, o RAG processa a consulta do usuário, busca dados relevantes no índice armazenado no Milvus, e o LLM gera uma resposta com base nesse contexto enriquecido.
Existem diferentes maneiras de melhorar sua aplicação RAG. Neste blog, discutiremos como o banco de dados vetorial Milvus pode impulsionar o desempenho dos seus apps RAG com seus recursos de Filtragem de Metadados, Busca Híbrida, e Agente.
Filtragem de Metadados
Ao inserir seus dados no Milvus, é útil incluir metadados sobre seus dados. Por exemplo, se você trabalha com PDFs, pode inserir a página à qual os vetores pertencem, o nome do arquivo PDF, o autor, etc.
Armazenar metadados no Milvus permite filtrar dados irrelevantes, tornando sua recuperação mais rápida e eficiente. Essa abordagem pode ser particularmente útil com sua aplicação RAG, pois você pode garantir que só devolva ao LLM o conteúdo relevante para a consulta do usuário.
O Milvus oferece suporte à correspondência de metadados de string completa, possibilitando corresponder strings usando buscas por prefixo, infixo, sufixo, ou até mesmo curinga de caractere.
# Exemplo de prefixo, corresponde a qualquer string começando com “The”.
expression='title like "The%"'
# Exemplo de infixo, corresponde a qualquer string com a palavra “the” em qualquer lugar da frase.
expression='title like "%the%"'
# Exemplo de sufixo, corresponde a qualquer string terminando com “Rye”.
expression='title like "%Rye"'
# Exemplo de curinga de caractere único, corresponde a qualquer caractere único em uma posição específica.
expression='title like "Flip_ed"'
Também é possível usar valores de array, seja por correspondências exatas ou verificando se algum elemento no array corresponde com contains_any().
Busca Híbrida
O Milvus permite até 10 campos vetoriais em uma única coleção de dataset. Esse suporte possibilita a busca híbrida, permitindo que os usuários pesquisem em várias colunas vetoriais simultaneamente. Esse recurso facilita a busca multimodal, a busca híbrida esparsa e densa, e a busca híbrida densa e de texto completo, oferecendo funcionalidade de busca versátil e flexível.
Vetores em colunas diferentes representam vários aspectos dos dados gerados por diferentes modelos de embedding com métodos de processamento distintos. Os resultados da busca híbrida são então combinados e reclassificados usando várias estratégias de reclassificação.
Como a Busca Híbrida Funciona no Milvus
Representa múltiplas perspectivas da informação. Por exemplo, no e-commerce, imagens de produtos incluem vistas frontal, lateral e superior. Diferentes vistas podem ser representadas com diferentes tipos ou dimensões de vetores.
Utiliza vários tipos de embeddings vetoriais. Isso inclui embeddings densos de modelos como BERT e Transformers e embeddings esparsos de algoritmos como BM25, BGE-M3, e SPLADE.
Suporte à fusão de vetores multimodais de vários tipos de dados não estruturados, como imagens, vídeos, áudio e arquivos de texto. Por exemplo, em investigações criminais, suspeitos podem ser representados por meio de modalidades biométricas como impressões digitais, impressões vocais e reconhecimento facial, auxiliando na identificação de indivíduos em diferentes modalidades.
Suporte à fusão de busca vetorial e busca de texto completo.
Agentes em Aplicações RAG
Modelos de linguagem grandes não conseguem realizar ações por conta própria — eles apenas geram texto. Agentes são sistemas que usam LLMs como motores de raciocínio para determinar quais ações realizar e quais entradas passar para elas. Depois de executar ações, os resultados podem ser transmitidos de volta ao LLM para determinar se mais ações são necessárias ou se está tudo bem finalizar.
Eles podem ser usados para realizar ações como pesquisar na web, navegar pelos seus e-mails, corrigir RAG para adicionar autorreflexão ou autoavaliação em documentos recuperados, e muito mais.
Uma vez configurados, os agentes podem adicionar novos dados ao Milvus se os dados ainda não estiverem armazenados, ou também podem recuperá-los e devolvê-los ao seu LLM. Isso permite que seu sistema RAG continue atualizado. O Milvus também facilita a atualização dos seus dados, se necessário, com a função ``` upsert()` ``.
É por isso que ter metadados na sua coleção é importante, pois permite que você faça upsert apenas das informações necessárias.
Sinta-se à vontade para conferir nosso blog, onde mostramos como construir um sistema Local Agentic RAG com LangGraph, Llama 3 e Milvus
Conclusão
Para concluir, usar Filtragem por Metadados, Busca Híbrida e Agentes, todos integrados ao Milvus, pode aprimorar sua aplicação RAG.
Filtragem por Metadados permite enriquecer seus dados com atributos adicionais, possibilitando buscas precisas e eficientes. Busca Híbrida expande as capacidades de busca ao permitir consultas em várias colunas vetoriais. Agentes levam a funcionalidade um passo adiante ao automatizar ações com base na saída do LLM.
Você pode construir uma aplicação RAG mais robusta e eficiente usando essas estratégias.
Se você gostou desta publicação no blog, considere nos dar uma estrela no Github e entrar no nosso Discord para compartilhar suas experiências com a comunidade.
Continue lendo

Zilliz Cloud On-Demand Compute: Pay Only for What You Use
The customer case behind Zilliz Cloud On-Demand: how a $10K vector search bill came down to under $500, and the engineering changes that made it possible.

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.



