¿Qué es el kit de preparación de datos?

Mano de una persona que apunta con un bolígrafo a un monitor que muestra un panel

Autores

Jobit Varughese

Technical Content Writer

IBM

Shalisha Witherspoon

Software Engineer

IBM Research

¿Qué es el kit de preparación de datos?

Es necesario disponer de un conjunto confiable de datos procedentes de fuentes de calidad para producir sistemas eficientes de inteligencia artificial (IA) y aplicaciones de modelos de lenguaje grandes (LLM). La preparación de datos incluye limpieza, transformación y procesos sofisticados para organizar datos no estructurados sin procesar en un conjunto de datos utilizable. Este proceso es difícil, ya que los problemas de calidad pueden ocultarse y hacerse evidentes tarde en el ciclo de vida del desarrollo de software, lo que genera esfuerzos de depuración desafiantes y retrasos en el tiempo general del proyecto. Los datos de calidad son esenciales para crear aplicaciones responsables de LLM e IA, ya que los datos mal preparados podrían generar resultados con sesgo 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 datos puede provocar una pérdida de tiempo y recursos. La base para desarrollar IA generativa responsable es preparar adecuadamente sus datos para construir su producto de forma eficiente.

Para proporcionar a los desarrolladores y especialistas en ciencia de datos las herramientas necesarias para afrontar los desafíos de la preparación de datos, IBM creó el kit de preparación de datos (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, el DPK proporciona varias “transformaciones” modulares 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. El DPK está diseñado para escalar y utiliza conjuntos de datos columnares como archivos Parquet y tiempos de ejecución de escalabilidad como Ray y Spark. Esta capacidad ayuda a que la preparación de datos se realice en una sola máquina o en un clúster para acelerar el procesamiento de datos. El DPK se ha utilizado con éxito para preparar datos para modelos IBM® Granite, demostrando su eficacia en casos de uso del mundo real.

Características clave y arquitectura del DPK

El 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 manera uniforme de leer y escribir datos desde varias ubicaciones de almacenamiento (por ejemplo, sistemas de archivos locales, almacenamiento compatible con S3). Admite puntos de verificación, de modo que si un trabajo necesita reiniciarse, solo procesará los archivos que no se hayan completado, ahorrando 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). El DPK tiene una biblioteca en desarrollo de transformaciones como una suite de transformaciones predefinidas. El marco también permite a un colaborador —no muy familiarizado en un marco de computación distribuida (Ray o Spark)— crear y construir sus propias transformaciones personalizadas. Cada transformación actúa como una unidad de trabajo autónoma y configurable, es componible en pipelines y proporciona 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 el monitoreo. El DPK puede ejecutarse en varios tiempos de ejecución, incluidos Python puro (con multiprocesamiento), Ray y Spark. Esta capacidad ofrece al usuario la flexibilidad de escalar la preparación de datos desde una única computadora 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 transformaciones 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 los datos que le permitirán encontrar archivos con los que trabajar. Cada procesador de archivos leerá, procesará y luego volverá a escribir los resultados y metadatos mediante llamadas a la interfaz de programación de aplicaciones (API).

Automatización y escalabilidad

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

Con sus nuevas funciones, el DPK se distingue de los proyectos de preparación de datos establecidos, como BigCode, DataTrove y Dolma. Un diferenciador importante es el número de casos de uso que admite (preentrenamiento, ajuste y generación aumentada por recuperación (RAG, por sus siglas en inglés)) y la dimensión de datos que puede apoyar. A diferencia de otros kits de herramientas que admiten una única modalidad de datos, el DPK admite datos de lenguaje natural y datos de código. El DPK es extensible, lo que significa que agregar cualquier cantidad de módulos escalables es fácil.

Para la automatización, el DPK tiene una interfaz de línea de comandos (CLI) y opción sin código utilizando Kubeflow Pipelines (KFP), una plataforma para desplegar flujos de trabajo escalables de machine learning (ML) y Kubernetes. Esta función amplía la audiencia y permite una aplicabilidad más amplia a los 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 registra la historia de cada ejecución, lo que permite reproducir experimentos.

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

La escalabilidad del DPK está respaldada por estudios experimentales. Por ejemplo, el kit de herramientas requiere una reducción proporcional en 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 anotar datos simples hasta ejecutar cargas de trabajo más complejas, como la identificación de idiomas, que incurre en costos computacionales adicionales.

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

A medida que las capacidades de los sistemas de IA mejoran y se vuelven más integrales en los procesos de toma de decisiones, la llamada a establecer una gobernanza que permita una IA ética, segura y en regla se vuelve urgente. Sin embargo, es importante destacar que la gobernanza no comienza con modelos; comienza con los datos.

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

Seguridad: las “transformaciones” del DPK identifican y eliminan contenido tóxico o dañino gracias a su sistema de detección de HAP (odio, abuso y blasfemias).

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

Cumplimiento: las “transformaciones” del DPK deducen y ocultan PII de conformidad con las regulaciones relacionadas con la 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” del DPK agregan hashes de documentos y puntuaciones de calidad para aumentar la trazabilidad y la auditabilidad.

Ya sea que trabaje en atención médica, finanzas, gobierno o cualquier dominio donde la confianza sea significativa, el DPK ayuda a crear sistemas de IA sobre una base de 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 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 gobernanza:

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

  • El conjunto de datos incluye varios idiomas. 

  • El lenguaje es posiblemente tóxico o inflamatorio.

  • Debe eliminarse PII, como nombres y direcciones.

  • Las presentaciones duplicadas y el texto repetido son comunes.

  • La calidad de los documentos varía enormemente. 

Solución: al desplegar una receta de gobernanza que aprovecha el DPK, la agencia puede garantizar que el conjunto de datos:

  • Sea de origen ético

  • Cumpla con la privacidad

  • Sea de alta calidad y diversidad 

  • Esté preparado para un entrenamiento responsable con LLM

Receta para un pipeline de gobernanza

Si necesita corregir los desafíos presentados en el caso de uso anterior, o cualquier escenario establecido para mitigar el riesgo para la calidad, la seguridad y el cumplimiento de los datos, necesita un pipeline que aplique fundamentalmente las políticas de gobernanza. El DPK hace posible este pipeline al proporcionar una serie de transformaciones modulares que se pueden encadenar para limpiar, filtrar y enriquecer el conjunto de datos.

Esta tabla destaca una sencilla cadena de gobernanza de 6 pasos que cumple con los principales requisitos para la gobernanza de la IA. Cada paso tiene un riesgo asociado o un problema de calidad para garantizar que el conjunto de datos final sea de origen ético, cumpla con privacidad y esté preparado para el desarrollo de IA responsable.

Pipeline de gobernanza de la IA

Para crear su propio pipeline de gobernanza:

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

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

  3. Configure su pipeline mediante KFP o Python con dpk_transform_chain.

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

Transformaciones disponibles del DPK

El DPK contiene una matriz de transformaciones predefinidas, categorizadas para diferentes requisitos de preparación de 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 usar 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 cambiar el tamaño de los archivos de manera adecuada.

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 anotación de lenguaje de programación, anotación de calidad de código y limpiador de encabezados para orientar la información de licencia y derechos de autor. El marco también contiene transformaciones para aplicaciones RAG, como la segmentación de documentos y un codificador de texto que crea vectores de incorporación para el texto. Estas transformaciones son un aspecto clave para preparar datos que se utilizarán en una base de datos vectorial. 

El DPK es crucial para cualquiera que cree IA, especialmente aplicaciones de LLM. Este kit de herramientas es un marco escalable y estandarizado que simplifica el complejo y a veces laborioso proceso de preparación de datos. Con un conjunto completo de “transformaciones” para apoyar a los desarrolladores y científicos de datos, pueden limpiar y estructurar los datos sin procesar e incorporar facetas significativas de la gobernanza de la IA en sus flujos de trabajo de datos. Les permite estar seguros de la calidad y confiabilidad de los datos fundamentales utilizados para el entrenamiento y la responsabilidad en torno a las estrategias de ética y privacidad. En última instancia, el DPK mejora los sistemas de IA al garantizar la responsabilidad y la confiabilidad de los desarrolladores, lo que permite la innovación de modelos, al tiempo que está firmemente anclado en una base de datos sólida.