Criando pipelines RAG para dados em tempo real com Cloudera e Milvus
Na era atual do big data, as empresas geram enormes quantidades de dados que exigem processamento eficiente para desbloquear todo o seu potencial. Portanto, realizar processamento de dados em larga escala, adaptar-se a vários ambientes de nuvem e ter a capacidade de tomar decisões em tempo real mantendo a governança e a segurança dos dados são alguns dos recursos essenciais necessários em uma plataforma de gerenciamento de dados.
Em um recente Unstructured Data Meetup organizado pela Zilliz, Chris Burns, engenheiro principal de Gen AI na Cloudera, falou sobre como a Cloudera - uma plataforma de nuvem de dados empresarial para gerenciar o ciclo de vida de dados de ponta a ponta, pode ser usada para criar pipelines eficientes de Retrieval Augmented Generation (RAG). Ele discutiu a importância do RAG para aplicações de Large Language Model (LLM), os desafios que podem ser enfrentados e as etapas para criar um pipeline de RAG com o Milvus para gerar dados melhores.
Neste blog, recapitularemos seus pontos principais e exploraremos como a Cloudera pode ser integrada ao Milvus para implementar de forma eficaz algumas das principais funcionalidades dos pipelines de RAG. Para mais detalhes, assista à gravação completa da palestra dele no YouTube.
Um breve resumo sobre a Cloudera
A Cloudera é uma plataforma abrangente de dados empresariais que oferece suporte a todo o ciclo de vida dos dados - da ingestão e armazenamento à análise. Ela oferece implantação rápida e a capacidade de criar IA em escala com custo e risco reduzidos em qualquer data center ou plataforma de nuvem. Com recursos como streaming em tempo real, engenharia de dados, armazenamento multi-temperatura e adaptabilidade a dados multimodais, a Cloudera é uma ótima plataforma para criar aplicações flexíveis de Gen AI para empresas.
Criando pipelines RAG com dados em tempo real
Retrieval Augmented Generation (RAG) é uma técnica para aumentar o desempenho dos LLMs acessando informações de fontes externas, como bancos de dados. Essas informações adicionais (lake) fazem com que os LLMs produzam respostas mais contextualmente relevantes e precisas, fundamentadas em conhecimento de domínio específico que, de outra forma, não estava disponível nos dados de treinamento do LLM. É uma técnica eficiente para fazer com que o LLM atenda a casos de uso específicos sem retreinamento a cada vez. O desafio está em criar um pipeline que possa lidar com as complexidades da ingestão, processamento e recuperação de dados em tempo real, mantendo baixa latência e baixo custo, além de alta precisão. É aqui que a infraestrutura robusta da Cloudera e ferramentas como o Milvus entram em ação, oferecendo suporte à IA privada e à recuperação em tempo real.
Antes de analisarmos os fluxos de trabalho prontos para pipelines de RAG, vamos primeiro entender alguns dos conceitos teóricos envolvidos.
Como proceder para criar pipelines RAG?
Criar um pipeline de RAG envolve várias etapas, desde entender a teoria básica até implementar configurações avançadas. Vamos detalhar:
RAG - 101 - Desafios comuns e configuração básica
Chris começa falando sobre o desafio comum da alucinação que a maioria dos LLMs sofre. No entanto, aqui, ele reformula para chamá-la de confabulação e fabricação. Confabulação refere-se aos LLMs preenchendo as informações ausentes com informações que parecem plausíveis, mas estão incorretas, enquanto fabricação refere-se à criação de algum texto imaginário. Para lidar com esses problemas, Chris menciona que compreender contextualmente a consulta é muito importante, além de realizar raciocínio de máquina multi-hop e manter a rastreabilidade para acompanhar o fluxo de dados ou objetos.
Tendo falado sobre os desafios, vamos entender a configuração básica de um sistema RAG. Em sua essência, um pipeline RAG consiste em dois componentes principais:
Retriever: Este componente pesquisa um grande conjunto de dados (por exemplo, um banco de dados vetorial) para encontrar informações relevantes com base em uma consulta.
Generator: Este componente usa as informações recuperadas para gerar uma resposta coerente e contextualmente precisa.
O retriever e o generator trabalham em conjunto para garantir que o sistema forneça respostas precisas e relevantes, mesmo ao lidar com consultas complexas. No entanto, como Chris aponta, um projeto de ML bem-sucedido requer não apenas bons dados, mas também expertise de domínio. Os dados devem ser relevantes e consistentes, e o conhecimento do domínio é fundamental para garantir a relevância.
RAG - 201 - Análise Estatística e Inferência Híbrida
Análise Estatística - Para melhorar o desempenho dos pipelines RAG, fazer alguma análise estatística pode ajudar a entender melhor a qualidade das respostas dos LLMs.
Usar uma matriz de confusão no contexto da Gen AI pode ajudar a entender quantitativamente as taxas de sucesso da recuperação.
Antropomorfizar as respostas dos LLMs negando as respostas quando elas não são conhecidas, em vez de inventar declarações falsas, poderia adicionar um toque mais humano às respostas.
- Inferência Híbrida - A inferência híbrida é uma ótima técnica para empresas equilibrarem desempenho e segurança dentro das restrições orçamentárias. Ela usa uma combinação de regras predefinidas e modelos de machine learning para lidar com casos extremos e melhorar a qualidade das respostas. O objetivo aqui é ser capaz de reproduzir resultados em diferentes plataformas; portanto, o foco deve estar em arquiteturas que sejam ágeis, escaláveis e adequadas para tempo real.
RAG - 301 - Considerações sobre Tipos de Dados
Para armazenar os dados no banco de dados vetorial de forma eficiente, é essencial elaborar estratégias apropriadas de particionamento e chunking. Particionamento refere-se a dividir os dados em unidades menores e mais gerenciáveis, enquanto chunking refere-se a agrupar essas partições com base no conteúdo dos elementos. Para determinar ambos, conhecer o tipo de dados é crucial.
Tipos de Estratégias de Chunking
Tipos de Estratégias de Chunking
Dados na forma de romances, documentos técnicos ou emails são classificados como dados densos, ou seja, com pouquíssimos valores nulos, o que significa que cada elemento é importante. Por outro lado, dados como dados de sensores, dados categóricos ou de grafos são chamados de dados esparsos, pois têm muitos valores nulos.
Um exemplo de dados densos e esparsos
Um exemplo de dados densos e esparsos
O tipo de dados usado em um pipeline RAG pode ter um impacto significativo em seu desempenho e precisão. Diferentes tipos de dados, como texto, imagens e áudio, exigem diferentes técnicas de processamento e recuperação. Entender o tipo de dados usado e como processá-lo efetivamente é crucial para construir um pipeline RAG bem-sucedido.
RAG - 401 - Configurações do Banco de Dados Vetorial Milvus
Milvus é um banco de dados vetorial de código aberto projetado para armazenamento, indexação e busca eficientes de embeddings vetoriais de alta dimensionalidade. Ele é otimizado para busca por similaridade, tornando-o ideal para sistemas de recomendação, aplicações de recuperação de imagens e pipelines de RAG. O Milvus pode suportar grandes conjuntos de dados e é altamente escalável, tornando-o adequado para aplicações empresariais. As seguintes capacidades do Milvus são particularmente úteis para pipelines de RAG -
- Busca Híbrida - O Milvus suporta busca híbrida (busca multivetorial), que envolve a execução de consultas simultâneas em vários campos vetoriais dentro do mesmo conjunto de dados e a integração dos resultados com estratégias de reranking. Isso permite flexibilidade para que os vetores individuais usem diferentes modelos de embedding, técnicas de processamento de dados ou qualquer outra operação personalizada.
Busca híbrida com Milvus
Busca híbrida com Milvus
- Consultas Multi-trip - O Milvus suporta técnicas avançadas de recuperação para consultas complexas, que podem equilibrar o trade-off entre diferentes métodos de busca usados na busca híbrida. Por meio de consultas multi-trip, uma consulta pode ser processada iterativamente em várias etapas para melhorar os resultados da busca. Após a execução inicial da consulta, consultas adicionais podem ser executadas com base em reranking (ordenar os resultados com uma ordem de prioridade), expansão de consulta (expandir um atributo específico) ou filtragem.
Consulta multi-trip com Milvus
Consulta multi-trip com Milvus
Por fim, o Milvus suporta o uso de gatekeepers, que são filtros que podem ser aplicados ao processo de recuperação para garantir que apenas informações relevantes sejam recuperadas antes de serem passadas ao gerador. Isso pode ser particularmente útil em pipelines de RAG em tempo real, em que o volume de dados pode ser muito grande, e é importante filtrar rapidamente informações irrelevantes.
Integrando Milvus e Cloudera para Pipelines de RAG
A Cloudera oferece fluxos de trabalho prontos para RAG, que são impulsionados pelo Apache NiFi 2.0 (um sistema de fluxo de dados baseado em programação orientada a fluxo). Os fluxos de trabalho oferecem suporte a vários armazenamentos de dados, modelos e bancos de dados vetoriais, incluindo Milvus. Vamos dar uma breve olhada em alguns deles.
- S3 para Milvus - O primeiro passo em RAG é coletar os dados da fonte, pré-processá-los, convertê-los em embeddings e armazená-los em um banco de dados vetorial.
Fluxo de trabalho de Dados para VectorDB
Fluxo de trabalho de Dados para VectorDB
Por exemplo, este fluxo de trabalho da Cloudera pega documentos pdf do S3, os vetoriza usando um modelo huggingface e grava os resultados no Milvus. Todas as etapas de processamento de dados, como particionamento e chunking, podem ser executadas simplesmente arrastando, soltando e executando conectores relevantes.
Fluxo de trabalho S3 para Milvus pela Cloudera
Fluxo de trabalho S3 para Milvus pela Cloudera
- Consulta RAG Milvus - O segundo passo em RAG é receber a consulta como entrada, convertê-la em embeddings e, em seguida, realizar uma busca por similaridade com os embeddings já armazenados no banco de dados vetorial. Os dados cujos embeddings estiverem mais próximos do embedding da consulta serão buscados. Essas informações atuarão como um contexto adicional para que o LLM gere a resposta. A Cloudera oferece um fluxo de trabalho pronto para consultar o Milvus para RAG.
Fluxo de trabalho Consulta RAG Milvus pela Cloudera
Fluxo de trabalho Consulta RAG Milvus pela Cloudera
Conclusão
Neste blog, falamos sobre como você pode criar pipelines RAG em tempo real com a Cloudera com base na palestra apresentada por Chris Burns no Unstructured Data Meetup. À medida que as empresas evoluem, tornando-se maiores a cada dia, precisamos de soluções avançadas para extrair valor da vasta quantidade de informações de forma eficiente. Por meio de plataformas de gerenciamento do ciclo de vida dos dados como a Cloudera, aplicações de Gen AI podem ser facilmente desenvolvidas para empresas com esforço mínimo. Além disso, integrar o Milvus com a Cloudera fornece, em conjunto, uma estrutura robusta para a criação de pipelines RAG.
Chris começou falando sobre os desafios comuns enfrentados pelos LLMs, como confabulação e fabricação, e formas de lidar com eles. Além disso, ele enfatizou a importância de realizar análise estatística e inferência híbrida para melhorar o desempenho dos pipelines RAG. O Milvus é um ótimo banco de dados vetorial para o caso de uso de RAG, pois oferece suporte a inferência híbrida, consultas multi-trip e gatekeepers, para garantir respostas precisas e conscientes do contexto, mantendo a segurança.
Continue lendo

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

Vector Databases vs. Object-Relational Databases
Use a vector database for AI-powered similarity search; use an object-relational database for complex data modeling with both relational integrity and object-oriented features.

DeepSeek Always Busy? Deploy It Locally with Milvus in Just 10 Minutes—No More Waiting!
Learn how to set up DeepSeek-R1 on your local machine using Ollama, AnythingLLM, and Milvus in just 10 minutes. Bypass busy servers and enhance AI responses with custom data.


