¿Qué es el Data Prep Kit?

Mano de una persona que señala con un bolígrafo un monitor que muestra un panel de control

Autores

Jobit Varughese

Technical Content Writer

IBM

Shalisha Witherspoon

Software Engineer

IBM Research

¿Qué es el Data Prep Kit?

Un conjunto de datos fiable procedente de fuentes de datos de calidad es necesario para producir sistemas de inteligencia artificial (IA) eficientes y aplicaciones de modelos de lenguaje de gran tamaño (LLM). La preparación de los datos incluye limpieza, transformación y procesos sofisticados para organizar datos no estructurados en un conjunto de datos. Este proceso es difícil, ya que los problemas de calidad pueden ocultarse y hacerse evidentes tarde en el ciclo de vida del desarrollo del software, lo que dificulta los esfuerzos de depuración y retrasa el tiempo total del proyecto. Los datos de calidad son esenciales para construir aplicaciones LLM y de IA responsables, ya que una preparación deficiente de datos podría conducir a resultados sesgados o inseguros. También existe el riesgo de una violación de la privacidad si se incluye información de identificación personal (PII) en los datos del modelo sin el reconocimiento adecuado de sus ramificaciones. Además, una mala preparación de los datos puede provocar una pérdida de tiempo y recursos. La base para desarrollar IA generativa responsable es preparar adecuadamente sus datos para desarrollar su producto de forma eficiente.

Con el fin de proporcionar a los desarrolladores y a los especialistas en ciencia de datos las herramientas necesarias para hacer frente a los retos que plantea la preparación de datos, IBM ha creado el kit de preparación de los datos o Data Preparation Kit (DPK) de código abierto. El DPK es un kit de herramientas adecuado para que los profesionales preparen archivos de datos para aplicaciones basadas en IA y flujos de trabajo de LLM. Para lograr este objetivo, DPK proporciona varias "transformaciones" en un entorno Python. El usuario puede emplear las "transformaciones" como clases aisladas o combinarlas en un pipeline de datos para limpiar, transformar y organizar los datos de una fuente de datos. DPK está diseñado para escalar y utiliza conjuntos de datos en columnas como archivos Parquet y tiempos de ejecución de escalabilidad como Ray y Spark. Esta capacidad permite que la preparación de datos se realice en una sola máquina o en un gran clúster para agilizar el procesamiento de datos. DPK se ha utilizado con éxito para preparar datos para modelos IBM® Granite, demostrando su efectividad en casos de uso reales.

Características clave y arquitectura de DPK

DPK se construye con tres componentes arquitectónicos principales:

Acceso a datos, transformación y tiempo de ejecución.

Acceso a datos: este componente permite una forma uniforme de leer y escribir datos desde varias ubicaciones de almacenamiento (por ejemplo, sistemas de archivos locales, almacenamiento compatible con S3). Admite el uso de puntos de control, de modo que, si es necesario reiniciar un trabajo, este solo procesará los archivos que aún no se hayan completado, lo que permite ahorrar tiempo y recursos.

Transformación: este módulo proporciona funciones específicas que se aplicarán a los datos, incluida la conversión de datos, la deduplicación y la detección de información de identificación personal (PII). DPK tiene una biblioteca de transformaciones en desarrollo como un conjunto de transformaciones preconstruidas. El marco también permite a un colaborador (no muy familiarizado con un marco de computación distribuida [Ray o Spark]) crear y construir sus propias transformaciones personalizadas. Cada transformación funciona como una unidad de trabajo independiente y configurable, se puede integrar en flujos de trabajo y permite la preparación de datos a escala de LLM.

Tiempo de ejecución: el tiempo de ejecución es el entorno de ejecución específico para el trabajo de asignación de transformación y la monitorización. DPK puede ejecutarse en varios tiempos de ejecución, incluidos Python puro (con multiprocesamiento), Ray y Spark. Esta capacidad ofrece al usuario la flexibilidad necesaria para escalar la preparación de sus datos, desde un único ordenador portátil hasta un gran clúster con miles de nodos. El tiempo de ejecución gestiona la asignación del trabajo a los trabajadores. Los tiempos de ejecución también permiten que las transformadas utilicen funciones específicas como clases compartidas o almacenes de objetos. La arquitectura general de tiempo de ejecución se compone de un lanzador de transformación (el punto de entrada), un orquestador de transformación (el componente que ejecuta el flujo de trabajo y crea trabajadores) y procesadores de archivos (el componente que procesa cada archivo individual). El orquestador utilizará el tiempo de ejecución para establecer componentes compartidos y el acceso a datos que le permitirá encontrar archivos con los que trabajar. Cada procesador de archivos leerá, procesará y, a continuación, volverá a escribir los resultados y los metadatos mediante llamadas a la interfaz de programación de aplicaciones (API).

Automatización y escalabilidad

Las capacidades de automatización y escalabilidad de DPK son innovadoras, capaces de adaptarse a varios tiempos de ejecución como Local, Ray y Spark.

Con sus nuevas funciones, DPK se diferencia de los proyectos de preparación de los datos establecidos como BigCode, DataTrove y Dolma. Un factor diferenciador clave es el número de casos de uso que admite (preentrenamiento, ajuste fino y generación aumentada por recuperación (RAG)), así como la dimensión de los datos que puede gestionar. A diferencia de otros kits de herramientas que admiten una única modalidad de datos, DPK admite datos de lenguaje natural y datos de código. DPK es extensible, lo que significa que añadir cualquier número de módulos escalables es fácil.

En cuanto a la automatización, DPK cuenta con una interfaz de línea de comandos (CLI) y una opción no-code mediante el uso de Kubeflow Pipelines (KFP), una plataforma para implementar flujos de trabajo escalables de machine learning (ML) en Kubernetes. Esta función amplía la audiencia y permite una aplicabilidad más amplia para científicos de datos y desarrolladores de aplicaciones de IA.

Las características de la integración de KFP son: 

Escalabilidad: KFP permite escalar grandes conjuntos de datos y flujos de trabajo de alta complejidad gracias a Kubernetes, que es una plataforma de computación escalable bajo demanda.

Modularidad: cada flujo de trabajo se divide en componentes reutilizables, lo que implementa fácilmente flujos de trabajo complejos y depuración adicional.

Reproducibilidad: se realiza un seguimiento del historial de cada ejecución, lo que permite reproducir los experimentos.

Visualización: existe una interfaz para monitorizar las ejecuciones del pipeline, visualizar resultados y solucionar problemas. 

La escalabilidad de DPK está respaldada por estudios experimentales. Por ejemplo, el kit de herramientas reduce proporcionalmente el tiempo de ejecución de las transformaciones a medida que aumenta la escala de los nodos de procesamiento. Se escala de manera uniforme en todas las cargas de trabajo, desde la anotación de datos simples hasta la ejecución de cargas de trabajo más complejas, como la identificación de idiomas, que incurre en costes computacionales adicionales.

Gobierno del preprocesamiento de datos para el entrenamiento de IA con DPK

A medida que mejoran las capacidades de los sistemas de IA y estos pasan a formar parte cada vez más integral de los procesos de toma de decisiones, se hace urgente la necesidad de establecer un marco de gobierno que garantice una IA ética, segura y conforme a la normativa. Sin embargo, es importante destacar que el gobierno no comienza con los modelos, sino con los datos.

Lo que hace que DPK sea especialmente valioso es cómo contribuye directamente a los objetivos del gobierno de la IA:

Seguridad: las "transformaciones" de DPK identifican y eliminan contenidos tóxicos o nocivos gracias a su sistema de detección de HAP (odio, abuso y lenguaje soez).

Equidad: las "transformaciones" de DPK eliminan el sesgo mediante la deduplicación y el filtrado de datos de mala calidad o irrelevantes. 

Cumplimiento normativo: las "transformaciones" de DPK permiten deducir y ocultar la PII de conformidad con la normativa en materia de privacidad, como el RGPD (Reglamento General de Protección de Datos) y la HIPAA (Ley de Portabilidad y Responsabilidad del Seguro Médico).

Transparencia: las "transformaciones" de DPK añaden hash de los documentos y puntuaciones de calidad para mejorar la trazabilidad y la auditabilidad.

Tanto si trabaja en el sector sanitario, financiero, público o en cualquier ámbito en el que la confianza sea fundamental, DPK le ayuda a crear sistemas de IA basados en datos responsables.

Caso de uso en el mundo real: resumen de documentos legales

Escenario: una agencia de gobierno está creando un LLM específico de dominio para ayudar a resumir documentos legales. El conjunto de datos contiene registros públicos, presentaciones legales y documentos de políticas extraídos de diversas fuentes.

Desafíos de gobierno:

  • Algunas fuentes no están verificadas o tienen un sesgo político.

  • El conjunto de datos incluye varios idiomas. 

  • Posible lenguaje ofensivo o provocador.

  • Se deben eliminar datos personales personales como nombres y direcciones.

  • Los archivos duplicados y el texto repetitivo son habituales.

  • La calidad de los documentos varía enormemente. 

Solución: al implementar una receta de gobierno que aproveche DPK, la agencia puede garantizar que el conjunto de datos:

  • Se haya obtenido de forma ética

  • Cumpla con la normativa de privacidad

  • Sea de alta calidad y diverso

  • Esté preparado para un entrenamiento responsable de los LLM

Receta para un pipeline de gobierno

Si necesita remediar los retos que plantea el caso de uso anterior, o cualquier otro escenario concreto, para mitigar los riesgos relacionados con la calidad de los datos, la seguridad y el cumplimiento normativo, necesitará un proceso que aplique de forma rigurosa las políticas de gobierno. DPK hace posible este proceso al proporcionar una serie de transformaciones modulares que se pueden encadenar para limpiar, filtrar y enriquecer el conjunto de datos.

Esta tabla destaca un sencillo pipeline de gobierno de 6 pasos que cumple los principales requisitos para el gobierno de la IA. Cada paso tiene un riesgo asociado o un problema de calidad para garantizar que el conjunto de datos final es ético, cumple con la privacidad y está preparado para un desarrollo de IA responsable.

El proceso de gobierno de la IA

Para crear su propio pipeline de gobierno:

  1. Clone el repositorio: https://github.com/data-prep-kit/data-prep-kit

  2. Instalar transformaciones: pip install 'data-prep-toolkit-transforms[all]'

  3. Configure su canalización pipeline KFP o Python con dpk_transform_chain.

  4. Ejecute el pipeline utilizando la CLI o intégrelo en su plataforma de datos mediante Ray o Spark.

Transformaciones disponibles de DPK

DPK contiene una matriz de transformaciones prediseñadas, clasificadas para diferentes requisitos de preparación de los datos.

Transformaciones de ingesta de datos: estas transformaciones convierten datos de uno o más formatos a un formato estandarizado. Por ejemplo, archivos de código comprimidos a Parquet, HTML/PDF a Parquet.

Transformaciones universales (de código y lenguaje): Estas transformaciones se pueden utilizar tanto para datos de código como para datos de lenguaje natural . Por ejemplo, deduplicación exacta y deduplicación difusa para eliminar registros duplicados y redimensionar los archivos al tamaño adecuado.

Transformaciones solo de lenguaje: estas transformaciones son para datos en lenguaje natural. Incluyen la identificación de idioma que identifica el idioma del texto, el anotador o redactor de PII que identifica y elimina la información de identificación personal.

Transformaciones de solo código: son para datos de solo código. Incluyen anotaciones en lenguaje de programación, anotaciones sobre la calidad del código y un limpiador de encabezados para centrarse en la información sobre licencias y derechos de autor. El marco también incluye transformaciones para aplicaciones RAG, como la segmentación de documentos y un codificador de texto que genera vectores de embedding para el texto. Estas transformaciones son un aspecto clave para preparar los datos que se utilizarán en una base de datos vectorial. 

DPK es crucial para cualquiera que cree IA, especialmente aplicaciones LLM. Este kit de herramientas es un marco de trabajo sencillo, escalable y estandarizado que simplifica el proceso complejo y, en ocasiones, laborioso de la preparación de datos. Gracias a un conjunto completo de "transformaciones" modulares diseñadas para ayudar a los desarrolladores y a los científicos de datos, estos pueden limpiar y estructurar los datos sin procesar e integrar aspectos importantes del gobierno de la IA en sus flujos de trabajo de datos. Les permite estar seguros de la calidad y fiabilidad de los datos fundacionales utilizados para la formación y la responsabilidad en torno a las estrategias de ética y privacidad. En última instancia, DPK mejora los sistemas de IA al garantizar la responsabilidad y la fiabilidad de los desarrolladores, lo que permite la innovación de modelos y, al mismo tiempo, se basa firmemente en una base de datos sólida.