Presentamos IBM Data Prep Kit para flujos de trabajo de LLM optimizados
Los grandes modelos de lenguaje (LLMs) se han adoptado ampliamente en los sectores de la salud, el retail y el comercio electrónico, generando miles de millones de dólares en ingresos totales. Un ingrediente clave detrás del éxito de estos LLMs son los datos con los que se entrenan. La inteligencia general de estos modelos depende de la cantidad, la calidad y la variedad de los datos utilizados; por lo tanto, garantizar un preprocesamiento eficiente se vuelve fundamental.
En un reciente NYC Unstructured Data Meetup organizado por Zilliz, Santosh Borse, Senior Engineer en IBM Research, habló sobre un Data Prep Kit (DPK) de código abierto que crearon para optimizar el proceso de preparación de datos para flujos de trabajo de LLM. Analizó los desafíos relacionados con la calidad de los datos, cómo los abordaron y la canalización para implementar el DPK de código abierto.
Este blog resumirá sus puntos clave y explorará cómo DPK puede integrarse aún más con Milvus para aplicaciones como la búsqueda semántica y la Generación Aumentada por Recuperación (RAG).
¡Los datos son el nuevo petróleo!
“Los datos son el nuevo petróleo”: esta afirmación puede aplicarse acertadamente al crecimiento de los LLM. Al igual que el petróleo impulsa la economía, los datos son la fuente del éxito de los LLM.
Aquí hay una lista de fuentes de datos que muchos LLM, como los modelos GPT de OpenAI, han aprovechado para extraer datos para el entrenamiento de LLM.
Common Crawl: Una fuente de datos masiva que contiene petabytes de datos, equivalente a casi 250 mil millones de páginas web. También es un superconjunto de muchos otros conjuntos de datos disponibles. Estos datos sirven como fuente fundamental para modelos de lenguaje de propósito general.
Conjuntos de datos procesados: C4, The Pile, Red Pajama y Wikipedia ofrecen datos seleccionados de alta calidad adaptados a tareas específicas.
Datos específicos de dominio: Los datos específicos de dominio pueden utilizarse para abordar casos de uso más específicos. Algunos ejemplos son BookCorpus para análisis literario, MathQA para resolución de problemas matemáticos y StarCoder para tareas relacionadas con la programación.
HuggingFace: Tiene más de 210K conjuntos de datos, lo que permite la personalización para tareas de ajuste fino.
Tus propios datos: Los LLM suelen entrenarse utilizando una combinación de datos de la empresa y de código abierto.
¡La calidad de los datos es la clave!
Garantizar la calidad de los datos es el paso más importante para obtener un rendimiento óptimo de los LLM. Algunos de los aspectos clave que deben considerarse al procesar tus datos de entrenamiento son:
Variedad—Los datos deben contener una variedad de información y provenir de diversas fuentes para garantizar que haya suficiente información para aprender y permitir la generalización del modelo.
Patrón lingüístico—Deben estar presentes patrones lingüísticos diversos en los datos para que los LLM sean más generalizables entre idiomas y dominios.
Sobreajuste vs. subajuste—Si una noticia aparece en más de 100 páginas en Internet, entonces el modelo se entrenará con todas esas páginas, lo que hará que se sobreajuste a esos datos particulares. En cambio, para otras noticias, se subajustaría. Por lo tanto, debe mantenerse un equilibrio entre ambos.
Sesgo—Los sesgos en los datos de entrenamiento, como estereotipos de género o culturales, pueden propagar resultados dañinos en los LLM. Por lo tanto, la mitigación de sesgos es un paso de preprocesamiento crucial.
Información personal—La información personal debe codificarse o eliminarse para proteger la privacidad y la seguridad de la persona.
Datos deficientes—Los datos que contienen contenido dañino (abuso, obscenidades o discurso de odio) deben eliminarse para mantener los estándares éticos y profesionales de los resultados de los modelos.
| Datos malos | Datos buenos |
|---|---|
| Duplicados | Únicos y distintos |
| Errores tipográficos y ortográficos | Precisos y sin errores |
| Inconsistentes | Consistentes |
| Alucinaciones | Validados |
| Tóxicos | Seguros y protegidos |
| … | … |
Tabla: Datos buenos vs. datos malos
Si los datos siguen siendo de mala calidad, aumentarán el coste computacional y el tiempo necesarios para entrenar LLMs de manera eficaz.
Limpieza de datos
La limpieza de datos es otro paso esencial para el preprocesamiento de datos de LLMs. Garantiza que los datos de entrenamiento estén libres de incoherencias, imprecisiones o información irrelevante. A continuación se presentan algunos de los pasos principales para la limpieza de datos.
Figura- Ejemplos de limpieza de datos .png
Figura: Ejemplos de limpieza de datos
Deduplicación—Las entradas duplicadas del conjunto de datos pueden sesgar los resultados del entrenamiento, lo que conduce a una utilización ineficiente de los recursos y al sobreajuste.
Filtros de calidad—Filtros para eliminar datos incoherentes (p. ej., dos idiomas en la misma oración), imputar valores faltantes, normalizar formatos, eliminar patrones o texto no deseados y depurar aún más los datos.
Filtros de contenido—Los datos tóxicos o sesgados se filtran reemplazando palabras dañinas específicas por palabras moderadas y éticas que sean más inclusivas para todos.
Reducción de privacidad—La información de identificación personal (PII) se codifica con ciertas palabras clave para proteger la privacidad de los datos de las personas u organizaciones.
Limpieza basada en reglas—Se establecen ciertas reglas para eliminar errores relacionados con errores tipográficos, signos de puntuación innecesarios, problemas de formato, etc.
Data Prep Kit y el recorrido de los datos para el modelo IBM Granite
Después de hablar sobre los principales problemas con la calidad de los datos y abordarlos mediante la limpieza de datos, Santosh Borse habló sobre el recorrido de procesamiento de datos para su propio modelo IBM Granite, que se muestra a continuación. También menciona algunas estadísticas interesantes sobre el volumen de datos (en última instancia, 2,5 billones de tokens para el entrenamiento) después de algunos pasos de preprocesamiento, como se menciona a continuación. Más del 70% de los datos sin procesar son inútiles, lo que significa que el preprocesamiento y la limpieza de datos son pasos cruciales.
El Data Prep Kit (DPK) es un conjunto de herramientas de código abierto de IBM Research diseñado para agilizar la preparación de datos no estructurados para desarrolladores que crean aplicaciones habilitadas para LLMs. Está adaptado para casos de uso como el fine-tuning, el instruction-tuning y la generación aumentada por recuperación (RAG), ofreciendo soluciones modulares y escalables para gestionar diversos desafíos de procesamiento de datos. DPK ha sido beneficioso y eficaz en la producción de conjuntos de datos de preentrenamiento para los modelos LLM de código abierto Granite.
Flujo de trabajo de DPK
El Data Prep Kit (DPK) simplifica la preparación de datos con transformaciones (módulos) reutilizables diseñadas para datos de código y de lenguaje. También se prevé ampliar su soporte a imágenes, voz y datos multimodales. DPK proporciona APIs de alto nivel que permiten a los desarrolladores comenzar rápidamente a procesar sus datos sin requerir un conocimiento profundo de los frameworks o entornos de ejecución subyacentes.
Figura- Flujo de trabajo de Data Prep Kit.png
Figura: Flujo de trabajo de Data Prep Kit
El flujo de trabajo comienza convirtiendo archivos de entrada (como HTML, PDF o código) al formato Parquet estandarizado, garantizando esquemas de datos consistentes. En su núcleo, DPK incluye una sólida biblioteca de procesamiento de datos que permite a los usuarios aplicar transformaciones predefinidas o personalizadas, encadenando múltiples transformaciones para procesar datos de manera sistemática. Por ejemplo, los datos de texto pueden pasar por una deduplicación exacta y luego proceder a pasos como el análisis de calidad de documentos y la tokenización, o la fragmentación de documentos y la generación de embeddings.
Los embeddings de documentos resultantes pueden aprovecharse para aplicaciones avanzadas como el fine-tuning de modelos, la implementación de pipelines RAG o el instruct-tuning. Al automatizar y estandarizar el proceso de preparación de datos, DPK permite a los desarrolladores centrarse en construir y perfeccionar sus modelos de IA, escalando con facilidad desde portátiles hasta entornos basados en clústeres.
DPK también permite a los usuarios crear y añadir sus transformaciones personalizadas para ajustarse a necesidades específicas. Aquí te mostramos cómo puedes empezar:
Tutorial paso a paso para ayudarte a añadir tu propia transformación.
Demostración completa para implementar todos los pasos de preprocesamiento de documentos en un único flujo de trabajo.
Integración de DPK con Milvus para RAG
Después de pasar los datos sin procesar por DPK, el resultado son embeddings de texto, que pueden integrarse además con bases de datos vectoriales como Milvus para crear aplicaciones LLM interesantes. Veamos un ejemplo de pipeline RAG integrando DPK con Milvus.
La Generación Aumentada por Recuperación (RAG) es una técnica avanzada que mejora la precisión, la relevancia y el fundamento factual de las salidas de los LLM al combinar métodos de recuperación y generación. Consta de dos componentes clave: el recuperador, que obtiene información contextual relevante de una base de datos vectorial como Milvus llena de datos externos, y el generador, que utiliza este contexto para crear respuestas precisas y significativas.
A continuación se muestra el pipeline RAG creado con Milvus y DPK. Milvus actúa como el recuperador en este pipeline, gestionando y consultando eficientemente datos externos a gran escala. DPK preprocesa los datos, garantizando que estén limpios, sean consistentes y de alta calidad antes de almacenarse en Milvus. El LLM es el generador, que produce respuestas precisas y conscientes del contexto adaptadas a las necesidades del usuario.
Figura- Flujo de trabajo general de Data Prep Kit con Milvus para RAG.png
Figura: Flujo de trabajo general de Data Prep Kit con Milvus para RAG (Fuente)
Limpieza de documentos - Este paso realiza todas las funciones de preprocesamiento de datos, como eliminar marcas, realizar deduplicación exacta y difusa, etc.
Dividir en fragmentos - Divide los documentos en fragmentos o segmentos manejables utilizando diversas estrategias de fragmentación. Los documentos pueden dividirse en páginas, párrafos o secciones. La estrategia de fragmentación adecuada depende de los tipos de documentos que se estén procesando.
Vectorizar/Generar Embeddings - Los fragmentos obtenidos se vectorizan luego utilizando modelos de embedding. Este paso sirve para hacer que el texto sea buscable.
Guardar datos en la base de datos vectorial Milvus - Milvus almacena todos los embeddings codificados y los prepara para la recuperación por similitud.
Vectorizar la pregunta - Cuando un usuario plantea una pregunta, esta se vectoriza utilizando el mismo modelo de embedding.
Búsqueda vectorial - La consulta codificada se envía a Milvus para una búsqueda de similitud vectorial.
Recuperar documentos relevantes - Milvus devuelve los top-K documentos más relevantes para la consulta.
Formar un nuevo prompt: Los documentos recuperados y la consulta original se combinan para formar un nuevo prompt para el LLM.
El LLM genera la respuesta— Finalmente, el LLM genera una respuesta más precisa utilizando su conocimiento y la información contextual recuperada de la base de datos vectorial Milvus.
Para consultar la implementación completa del flujo de trabajo anterior, consulta este tutorial.
Conclusión
El Data Prep Kit (DPK) de código abierto de IBM simplifica el preprocesamiento de datos para flujos de trabajo de LLM al abordar desafíos comunes como la toxicidad, el sobreajuste y el sesgo en los datos. Con más de 20 transformaciones modulares, DPK agiliza tareas esenciales como la deduplicación, el filtrado y la protección de la privacidad. La canalización de DPK comienza preprocesando entradas sin procesar como PDF o HTML y convirtiéndolas en formatos estructurados como Parquet. A este paso le siguen comprobaciones de calidad, limpieza de datos y generación de embeddings. Estos embeddings pueden almacenarse en bases de datos vectoriales como Milvus para admitir aplicaciones como el ajuste fino y la generación aumentada por recuperación (RAG).
Este blog también demostró cómo la integración de Milvus con DPK permite la recuperación de documentos contextualmente relevantes y mejora las salidas de los LLM con respuestas fiables y basadas en hechos.
Recursos relevantes
Sigue leyendo

Why Context Engineering Is Becoming the Full Stack of AI Agents
Discover how context engineering unifies prompts, RAG, and tools to build smarter, production-ready AI agents powered by Milvus.

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.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


