AI Engineering - Capítulo 8 - Ingeniería de Conjuntos de Datos
A continuación, se presenta un resumen detallado de los puntos principales del texto, respetando estrictamente la cronología y las secciones originales de la autora:
Capítulo 8: Ingeniería de Conjuntos de Datos
Introducción
La calidad de un modelo de aprendizaje automático está intrínsecamente ligada a la calidad de sus datos de entrenamiento, lo que hace que la ingeniería de conjuntos de datos sea un paso crítico para entrenar el mejor modelo dentro de un presupuesto asignado. Históricamente, el desarrollo de la IA se centraba en el modelo, enfocándose en mejoras arquitectónicas, pero la industria ha cambiado cada vez más hacia una IA centrada en los datos, donde el rendimiento se mejora desarrollando mejores conjuntos de datos y técnicas de procesamiento. Este cambio ha transformado las operaciones de datos de tareas secundarias a roles dedicados, como etiquetadores de datos e ingenieros de calidad de datos.
Curaduría de Datos
La curaduría de datos es la ciencia de entender cómo aprende un modelo y qué datos necesita para mejorar sus capacidades, seguridad y manejo del contexto. Los datos exactos necesarios dependen de la tarea: el ajuste fino autosupervisado requiere secuencias de datos, el ajuste fino de instrucciones requiere pares de (instrucción, respuesta) y el ajuste fino de preferencias utiliza formatos de (instrucción, respuesta ganadora, respuesta perdedora).
Los datos de entrenamiento deben exhibir los comportamientos específicos que se desean del modelo. Por ejemplo, enseñar a un modelo el razonamiento de Cadena de Pensamiento (CoT) requiere incorporar respuestas paso a paso en los datos de ajuste fino, lo que aumenta significativamente el rendimiento en tareas de razonamiento. Del mismo modo, enseñar el uso de herramientas a menudo se basa en expertos en el dominio que demuestran acciones para resolver tareas o en el uso de simulaciones sintéticas, ya que las acciones eficientes para los humanos (como usar un navegador web) difieren de las acciones eficientes para la IA (como consultar una API directamente). La curaduría de datos también implica obtener datos de múltiples turnos para tareas del mundo real que requieren interacciones de ida y vuelta, así como la eliminación deliberada de datos para ayudar a un modelo a “desaprender” malos comportamientos, como reescrituras no solicitadas. A alto nivel, la curaduría de datos se evalúa con tres criterios:
- Calidad de los Datos: Una pequeña cantidad de datos de alta calidad y cuidadosamente seleccionados a menudo supera a un volumen masivo de datos ruidosos. Los datos de alta calidad se definen por seis características principales: deben ser relevantes, estar alineados con los requisitos de la tarea, ser consistentes entre los anotadores, estar formateados correctamente, ser suficientemente únicos y cumplir con las políticas de privacidad y normativas.
- Cobertura de los Datos: También conocida como diversidad de datos, la cobertura garantiza que los datos de entrenamiento capturen la amplia gama de escenarios, temas y formatos que el modelo enfrentará en su uso en el mundo real. Para los modelos de propósito general, los datos deben representar varios dominios. Por ejemplo, Llama 3 optimizó su mezcla de datos de manera diferente a lo largo del preentrenamiento, el ajuste fino supervisado y el ajuste fino de preferencias, incorporando grandes dosis de datos de matemáticas y código para impulsar el razonamiento. Los experimentos demuestran que un modelo ajustado con un conjunto de datos que es a la vez de alta calidad y altamente diverso produce el mejor rendimiento.
- Cantidad de Datos: La cantidad de datos requerida depende de la técnica de ajuste fino utilizada, la complejidad de la tarea y el rendimiento inicial del modelo base. Aunque se pueden usar millones de ejemplos para el ajuste fino, agregar demasiados datos a un modelo preentrenado puede causar “osificación”, donde los pesos se congelan y no se adaptan. Típicamente, la cantidad de datos exhibe rendimientos decrecientes: el primer lote de ejemplos produce ganancias de rendimiento masivas, mientras que las adiciones posteriores ofrecen mejoras que se estancan. La necesidad de anotación manual se puede reducir haciendo una transición secuencial de datos autosupervisados a supervisados, o de datos sintéticos a datos reales.
Adquisición y Anotación de Datos
Para construir un conjunto de datos, los desarrolladores pueden obtener datos públicos, comprar datos propietarios o sintetizarlos. La fuente de datos más valiosa a menudo son los datos de la aplicación generados por los propios usuarios, lo que puede crear un “volante de inercia de datos” (data flywheel) que mejora continuamente el producto. Al construir un conjunto de datos, la anotación manual cuidadosa requiere pautas de anotación rigurosas y claras para garantizar la consistencia.
Aumento y Síntesis de Datos
Debido a que los datos es el desafío más difícil en la IA, los investigadores dependen en gran medida de la creación programática de datos. El aumento de datos crea nuevas variaciones a partir de datos reales existentes (por ejemplo, voltear una imagen), mientras que la síntesis de datos genera datos artificiales completamente nuevos.
- Por qué sintetizar datos: Proporciona cantidad de datos a escala, se dirige a brechas de cobertura específicas (como eventos raros o respuestas seguras para entradas tóxicas), garantiza la consistencia para mejorar la calidad, mitiga las preocupaciones de privacidad (como registros sintéticos de pacientes) y permite la destilación de modelos.
- Técnicas tradicionales: La generación procedimental incluye métodos basados en reglas (usando plantillas para generar facturas o aleatorizando palabras para mitigar el sesgo de género), perturbación de datos (agregando ruido visual a las imágenes o intercambiando palabras al azar para aumentar la robustez) y simulaciones de física o entorno (utilizadas para autos autónomos y robótica).
- Síntesis de datos impulsada por IA: Los modelos de IA pueden simular resultados de API o actuar como agentes que juegan contra sí mismos (como el bot de Dota 2 de OpenAI) para generar datos a escala masiva. La IA también se utiliza para parafrasear, traducir y generar código.
- Síntesis de datos de instrucción: La IA puede generar diversas instrucciones a partir de una lista de temas y luego redactar respuestas. Un enfoque creativo llamado “instrucción inversa” utiliza IA para escribir instrucciones cortas para textos humanos de alta calidad ya existentes, reduciendo las alucinaciones. Las tuberías sintéticas avanzadas, como la utilizada para Llama 3, utilizan IA para generar descripciones de problemas, escribir soluciones de código, generar pruebas unitarias, autocorregir errores basados en la ejecución de las pruebas y traducir el código a otros lenguajes.
- Verificación de datos: Los datos sintéticos deben ser evaluados estrictamente. Los datos de codificación son muy valiosos porque se pueden verificar funcionalmente mediante la ejecución del código. Para otros textos, los verificadores de IA (jueces) evalúan la consistencia factual, mientras que las heurísticas estándar filtran ejemplos repetitivos o de tamaño inadecuado.
- Limitaciones de los datos generados por IA: A pesar de su utilidad, los datos sintéticos sufren de problemas de control de calidad, imitación superficial (donde el modelo imita el estilo pero alucina la lógica) y un linaje de datos oscuro (lo que corre el riesgo de infracción de derechos de autor o contaminación de puntos de referencia). Crucialmente, depender en exceso de los datos sintéticos sin mezclarlos con datos reales puede provocar el colapso del modelo (model collapse), donde los modelos olvidan eventos raros y amplifican los comunes a lo largo de generaciones recursivas.
- Destilación de Modelos: Esto implica entrenar un modelo “estudiante” más pequeño y eficiente para imitar a un modelo “maestro” más grande utilizando salidas sintéticas. A veces, el arranque con datos sintéticos puede incluso entrenar a un modelo estudiante que supera al maestro, como se vio con Nemotron-4.
Procesamiento de Datos
Una vez que se recopilan los datos sin procesar, deben someterse a un procesamiento estricto, que a menudo toma horas o días.
- Inspeccionar Datos: Los desarrolladores deben trazar las longitudes de los tokens, los temas y las distribuciones de verbo-sustantivo para comprender los patrones de los datos. La inspección manual de unas pocas muestras es fundamental para encontrar problemas estructurales y verificar la confianza en la anotación.
- Deduplicar Datos: Los duplicados sesgan las distribuciones, introducen sesgos y corren el riesgo de contaminar el conjunto de prueba. Las técnicas de deduplicación incluyen comparación por pares, hashing (MinHash, filtros de Bloom) y reducción de dimensionalidad.
- Limpiar y Filtrar Datos: Este paso elimina el formato superfluo (etiquetas HTML/Markdown), la PII (Información de Identificación Personal) no conforme y los datos de baja calidad. El aprendizaje activo se puede utilizar para muestrear solo los ejemplos más importantes cuando los presupuestos informáticos son limitados.
- Formatear Datos: Finalmente, los datos deben formatearse para que coincidan estrictamente con el tokenizador y las plantillas de chat esperadas por el modelo base; no alinear los formatos de las instrucciones de ajuste fino con los formatos de inferencia causará errores de generación.
Resumen
La creación de conjuntos de datos requiere definir los comportamientos que un modelo debe aprender y construir datos para reflejar eso. El preentrenamiento, el ajuste fino supervisado y el ajuste fino de preferencias exigen diferentes datos, pero todos se basan en los criterios centrales de calidad, cobertura y cantidad. Los datos generados por IA se han convertido en una solución práctica para estos desafíos, pero requieren una verificación rigurosa y una creatividad humana innegable para diseñar las tuberías y las pautas de anotación necesarias para el éxito.
💡 Comentarios Personales y Perspectivas Creativas
El Heroísmo Anónimo del “Conserje de Datos”
Una de las conclusiones más sorprendentes de este capítulo es la gran evolución del rol de “datos” en la IA. Chip Huyen comparte una anécdota increíble justo al principio del texto: allá por 2016, Wojciech Zaremba de OpenAI declaró casualmente en un AMA que tenían la intención de utilizar conjuntos de datos puramente públicos para su investigación. Un avance rápido hasta GPT-4, y ochenta personas fueron acreditadas explícitamente con el procesamiento de datos, sin siquiera contar a los anotadores contratados a través de proveedores. Hemos pasado de que los datos sean una misión secundaria casual a que sean el principal campo de batalla de la IA. Todo el mundo quiere diseñar la próxima arquitectura transformadora de IA, pero la realidad, como bien dice Huyen, es que la ingeniería de conjuntos de datos es principalmente “trabajo duro, lágrimas y sudor”.
La “Ley” del Volante de Inercia de Datos (Data Flywheel)
También me encanta la irónica observación de Huyen sobre las startups. Bromea diciendo que ha escuchado la frase “volante de inercia de datos” en tantas presentaciones que está convencida de que “no es legal fundar una startup de IA sin mencionar el volante de inercia de datos”. Es un reflejo divertido y profundamente cierto del espíritu actual de Silicon Valley. Todo el mundo quiere un ciclo autosuficiente donde los usuarios generen los datos que mejoran el modelo, lo que a su vez atrae a más usuarios. Pero leer la mecánica real del procesamiento de datos (deduplicación, brechas de física Sim2Real, filtros de Bloom e instrucción inversa) muestra cuánta intervención manual agotadora se requiere para mantener ese “volante” girando.
Conectando con el Estado del Arte: El Dilema de los Datos Sintéticos
Este capítulo captura a la perfección el temor existencial y el entusiasmo actuales en la vanguardia absoluta de la industria de la IA: el muro de los datos sintéticos. Nos estamos quedando rápidamente sin texto humano de alta calidad en Internet para preentrenar modelos de un billón de parámetros. ¿La solución? IA generando datos para IA.
La tubería que Huyen describe para Llama 3 (donde una IA escribe un problema de codificación, lo resuelve, escribe una prueba unitaria, la ejecuta y autocorrige el código) es prácticamente un microcosmos de los flujos de trabajo de la IA Agéntica actual. Pero esto nos lleva al aterrador concepto del Colapso del Modelo. Si una IA solo se entrena con datos generados por IA, se convierte en una cámara de eco, amplificando las probabilidades hasta que olvida por completo la “larga cola” de la rareza humana y los eventos poco comunes. Es el equivalente en IA a la endogamia genética.
Inspección Manual: La Verdad Absoluta
Quizás el consejo más sensato del capítulo viene a través de una cita de Greg Brockman: “La inspección manual de datos probablemente tenga la relación valor-prestigio más alta de cualquier actividad en el aprendizaje americano”. Huyen se hace eco de esto al mencionar una pesadilla de ingeniería profundamente identificable: una columna de tipo float guardada accidentalmente como números enteros (integers), redondeando todos los valores y causando comportamientos desconcertantes. En una era de agentes autónomos y clústeres de computación masivos, es profundamente aleccionador darse cuenta de que la diferencia entre un modelo mediocre y un avance tecnológico de vanguardia a menudo se reduce a un ingeniero sentado con una taza de café, mirando filas de JSON sin procesar durante 15 minutos, y dándose cuenta de que las etiquetas HTML no se eliminaron correctamente.