Creación de pipelines RAG para datos en tiempo real con Cloudera y Milvus
En la era actual del big data, las empresas generan enormes cantidades de datos que requieren un procesamiento eficiente para desbloquear todo su potencial. Por lo tanto, realizar procesamiento de datos a gran escala, la adaptabilidad a diversos entornos cloud y la capacidad de tomar decisiones en tiempo real mientras se mantiene la gobernanza y la seguridad de los datos son algunas de las características esenciales requeridas en una plataforma de gestión de datos.
En un reciente Unstructured Data Meetup organizado por Zilliz, Chris Burns, ingeniero principal de Gen AI en Cloudera, habló sobre cómo Cloudera, una plataforma cloud de datos empresariales para gestionar el ciclo de vida de los datos de extremo a extremo, puede utilizarse para crear pipelines eficientes de Retrieval Augmented Generation (RAG). Habló sobre la importancia de RAG para las aplicaciones de Large Language Model (LLM), los desafíos que pueden presentarse y los pasos para crear un pipeline RAG con Milvus para generar mejores datos.
En este blog, resumiremos sus puntos clave y exploraremos cómo Cloudera puede integrarse con Milvus para implementar eficazmente algunas de las funcionalidades clave de los pipelines RAG. Para más detalles, mira la repetición completa de su charla en YouTube.
Una breve introducción a Cloudera
Cloudera es una plataforma integral de datos empresariales que admite todo el ciclo de vida de los datos, desde la ingesta y el almacenamiento hasta la analítica. Ofrece un despliegue rápido y la capacidad de crear AI a escala con menor coste y riesgo en cualquier centro de datos o plataforma cloud. Con capacidades como streaming en tiempo real, ingeniería de datos, almacenamiento multi-temperatura y adaptabilidad a datos multimodales, Cloudera es una gran plataforma para crear aplicaciones flexibles de Gen AI para empresas.
Creación de pipelines RAG con datos en tiempo real
Retrieval Augmented Generation (RAG) es una técnica para mejorar el rendimiento de los LLMs accediendo a información de fuentes externas como bases de datos. Esta información adicional (lago) hace que los LLMs produzcan respuestas más contextualmente relevantes y precisas, fundamentadas en conocimiento específico del dominio que, de otro modo, no estaba disponible en los datos de entrenamiento del LLM. Es una técnica eficiente para hacer que un LLM aborde casos de uso específicos sin volver a entrenarlo cada vez. El desafío radica en crear un pipeline que pueda manejar las complejidades de la ingesta, el procesamiento y la recuperación de datos en tiempo real, manteniendo una baja latencia y coste junto con una alta precisión. Aquí es donde entran en juego la sólida infraestructura de Cloudera y herramientas como Milvus, que admiten AI privada y recuperación en tiempo real.
Antes de ver los flujos de trabajo listos para pipelines RAG, primero entendamos algunos de los conceptos teóricos involucrados.
¿Cómo abordar la creación de pipelines RAG?
Crear un pipeline RAG implica varios pasos, desde comprender la teoría básica hasta implementar configuraciones avanzadas. Vamos a desglosarlo:
RAG - 101 - Desafíos comunes y configuración básica
Chris comienza hablando sobre el desafío común de la alucinación que sufren la mayoría de los LLMs. Sin embargo, aquí, lo reformula para llamarlo confabulación y fabricación. La confabulación se refiere a que los LLMs completan la información faltante con información que suena plausible pero es incorrecta, mientras que la fabricación se refiere a crear algún texto imaginario. Para manejar estos problemas, Chris menciona que comprender contextualmente la consulta es muy importante, además de realizar razonamiento automático de múltiples saltos y mantener la trazabilidad para rastrear el flujo de datos u objetos.
Después de hablar sobre los desafíos, entendamos la configuración básica de un sistema RAG. En esencia, una canalización RAG consta de dos componentes principales:
Recuperador: Este componente busca en un gran conjunto de datos (por ejemplo, una base de datos vectorial) para encontrar información relevante en función de una consulta.
Generador: Este componente utiliza la información recuperada para generar una respuesta coherente y contextualmente precisa.
El recuperador y el generador trabajan en conjunto para garantizar que el sistema proporcione respuestas precisas y relevantes, incluso cuando trata con consultas complejas. Sin embargo, como señala Chris, un proyecto de ML exitoso requiere no solo buenos datos, sino también experiencia en el dominio. Los datos deben ser relevantes y consistentes, y el conocimiento del dominio es fundamental para garantizar la relevancia.
RAG - 201 - Análisis Estadístico e Inferencia Híbrida
Análisis Estadístico - Para mejorar el rendimiento de las canalizaciones RAG, hacer algún análisis estadístico puede ayudar a comprender mejor la calidad de las respuestas de los LLMs.
Usar una matriz de confusión en el contexto de la IA generativa podría ayudar a comprender cuantitativamente las tasas de éxito de recuperación.
Antropomorfizar las respuestas de los LLMs negando las respuestas cuando no se conocen, en lugar de inventar declaraciones falsas, podría añadir un toque más humano a las respuestas.
- Inferencia Híbrida - La inferencia híbrida es una gran técnica para que las empresas equilibren el rendimiento y la seguridad dentro de las restricciones presupuestarias. Utiliza una combinación de reglas predefinidas y modelos de aprendizaje automático para manejar casos límite y mejorar la calidad de las respuestas. El objetivo aquí es poder reproducir resultados en diferentes plataformas, por lo que el enfoque debe estar en arquitecturas que sean ágiles, escalables y adecuadas para tiempo real.
RAG - 301 - Consideraciones sobre el Tipo de Datos
Para almacenar los datos en la base de datos vectorial de manera eficiente, es esencial diseñar estrategias apropiadas de particionamiento y fragmentación. El particionamiento se refiere a dividir los datos en unidades más pequeñas y manejables, mientras que la fragmentación se refiere a agrupar estas particiones según el contenido de los elementos. Para determinar ambos, conocer el tipo de datos es crucial.
Tipos de Estrategias de Fragmentación
Tipos de Estrategias de Fragmentación
Los datos en forma de novelas, documentos técnicos o correos electrónicos se clasifican como datos densos, es decir, con muy pocos valores nulos, lo que significa que cada elemento es importante. Por otro lado, los datos como los datos de sensores, los datos categóricos o de grafos se denominan datos dispersos, ya que tienen muchos valores nulos.
Un ejemplo de datos densos y dispersos
Un ejemplo de datos densos y dispersos
El tipo de datos que se utiliza en una canalización RAG puede tener un impacto significativo en su rendimiento y precisión. Diferentes tipos de datos, como texto, imágenes y audio, requieren diferentes técnicas de procesamiento y recuperación. Comprender el tipo de datos que se utiliza y cómo procesarlo eficazmente es crucial para construir una canalización RAG exitosa.
RAG - 401 - Configuraciones de la DB Vectorial Milvus
Milvus es una base de datos vectorial de código abierto diseñada para el almacenamiento, la indexación y la búsqueda eficientes de embeddings vectoriales de alta dimensionalidad. Está optimizada para la búsqueda por similitud, lo que la hace ideal para sistemas de recomendación, aplicaciones de recuperación de imágenes y pipelines RAG. Milvus puede admitir grandes conjuntos de datos y es altamente escalable, lo que la hace adecuada para aplicaciones empresariales. Las siguientes capacidades de Milvus son particularmente útiles para pipelines RAG -
- Búsqueda híbrida - Milvus admite la búsqueda híbrida (búsqueda multivectorial), que implica realizar consultas simultáneas en múltiples campos vectoriales dentro del mismo conjunto de datos e integrar los resultados con estrategias de reordenamiento. Esto permite la flexibilidad de que los vectores individuales utilicen diferentes modelos de embeddings, técnicas de procesamiento de datos o cualquier otra operación personalizada.
Búsqueda híbrida con Milvus
Búsqueda híbrida con Milvus
- Consultas multi-trip - Milvus admite técnicas avanzadas de recuperación para consultas complejas que pueden equilibrar la compensación entre los diferentes métodos de búsqueda utilizados en la búsqueda híbrida. Mediante consultas multi-trip, una consulta puede procesarse iterativamente en múltiples pasos para mejorar los resultados de búsqueda. Después de la ejecución inicial de la consulta, se pueden ejecutar consultas adicionales basadas en reordenamiento (ordenar los resultados con un orden de prioridad), expansión de consultas (expandir sobre un atributo particular) o filtrado.
Consulta multi-trip con Milvus
Consulta multi-trip con Milvus
Finalmente, Milvus admite el uso de gatekeepers, que son filtros que pueden aplicarse al proceso de recuperación para garantizar que solo se recupere información relevante antes de pasarla al generador. Esto puede ser particularmente útil en pipelines RAG en tiempo real, donde el volumen de datos puede ser muy grande, y es importante filtrar rápidamente la información irrelevante.
Integración de Milvus y Cloudera para pipelines RAG
Cloudera ofrece flujos de trabajo listos para RAG que están impulsados por Apache NiFi 2.0 (un sistema de flujo de datos basado en programación basada en flujos). Los flujos de trabajo admiten varios almacenes de datos, modelos y bases de datos vectoriales, incluido Milvus. Echemos un breve vistazo a algunos de ellos.
- S3 a Milvus - El primer paso en RAG es recopilar los datos de la fuente, preprocesarlos, convertirlos en embeddings y almacenarlos en una base de datos vectorial.
Flujo de trabajo de datos a VectorDB
Flujo de trabajo de datos a VectorDB
Por ejemplo, este flujo de trabajo de Cloudera toma documentos pdf de S3, los vectoriza usando un modelo de huggingface y escribe los resultados en Milvus. Todos los pasos de procesamiento de datos, como la partición y la fragmentación, pueden realizarse simplemente arrastrando, soltando y ejecutando los conectores relevantes.
Flujo de trabajo de S3 a Milvus de Cloudera
Flujo de trabajo de S3 a Milvus de Cloudera
- Consulta RAG Milvus - El segundo paso en RAG es tomar la consulta como entrada, convertirla en embeddings y luego realizar una búsqueda por similitud con los embeddings ya almacenados en la base de datos vectorial. Se recuperarán los datos cuyos embeddings estén más cerca del embedding de la consulta. Esta información actuará como contexto adicional para que el LLM genere la respuesta. Cloudera ofrece un flujo de trabajo listo para consultar Milvus para RAG.
Flujo de trabajo RAG Query Milvus de Cloudera
Flujo de trabajo RAG Query Milvus de Cloudera
Conclusión
En este blog, hablamos sobre cómo puedes crear pipelines RAG en tiempo real con Cloudera basados en la charla dada por Chris Burns en el Unstructured Data Meetup. A medida que las empresas evolucionan al hacerse más grandes día a día, necesitamos soluciones avanzadas para obtener valor de la enorme cantidad de información de manera eficiente. A través de plataformas de gestión del ciclo de vida de datos como Cloudera, las aplicaciones de Gen AI pueden desarrollarse fácilmente para empresas con un esfuerzo mínimo. Además, integrar Milvus con Cloudera proporciona en conjunto un marco sólido para crear pipelines RAG.
Chris comenzó hablando sobre los desafíos comunes que enfrentan los LLM, como la confabulación y la fabricación, y las formas de manejarlos. Además, destacó la importancia de realizar análisis estadístico e inferencia híbrida para mejorar el rendimiento de los pipelines RAG. Milvus es una gran base de datos vectorial para el caso de uso de RAG, ya que admite inferencia híbrida, consultas multi-trip y gatekeepers, para garantizar respuestas precisas y conscientes del contexto mientras se mantiene la seguridad.
Sigue leyendo

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.

What is the K-Nearest Neighbors (KNN) Algorithm in Machine Learning?
KNN is a supervised machine learning technique and algorithm for classification and regression. This post is the ultimate guide to KNN.

Selecting the Right ETL Tools for Unstructured Data to Prepare for AI
Learn the right ETL tools for unstructured data to power AI. Explore key challenges, tool comparisons, and integrations with Milvus for vector search.


