Para lograr el éxito al crear modelos de aprendizaje automático con datos estructurados, suele ser necesario realizar muchas transformaciones de datos. Además, también es necesario aplicar dichas transformaciones al momento de las predicciones, y esta tarea suele estar a cargo de un equipo de ingeniería de datos que no es el mismo equipo de ciencia de datos que entrenó los modelos. Debido a las diferencias entre los conjuntos de herramientas que usan ambos equipos, puede resultar difícil mantener la uniformidad de las transformaciones entre la etapa de entrenamiento y la de inferencia. Hoy anunciaremos algunas funciones nuevas de
BigQuery ML que pueden servir de ayuda para el proceso previo y la transformación de los datos usando funciones sencillas de SQL. Además, dado que BigQuery aplica automáticamente estas transformaciones al momento de realizar las predicciones, se simplifica enormemente la capacidad de producción de los modelos de AA.
En
un libro publicado en 2003 sobre el análisis exploratorio de datos, Dasu y Johnson observaron que el 80% del tiempo que demora un análisis de datos se invierte en limpiar los datos. Esto sigue siendo igual con el aprendizaje automático. En Google Cloud, solemos ver que mucho del tiempo que se invierte en los proyectos de aprendizaje automático está dedicado a preparar los datos para dicho aprendizaje. Algunas de las tareas son:
- Escribir canalizaciones de ETL para recopilar datos de diversos sistemas fuente en un solo lugar (un data lake)
- Limpiar los datos para corregir errores en la colección o extracción de datos
- Convertir los datos sin procesar de los data lakes a un formato que permita unir conjuntos de datos de fuentes diferentes
- Procesar previamente los datos para eliminar valores atípicos, imputar valores faltantes, escalar columnas numéricas, insertar columnas dispersas, etc.
- Diseñar funciones nuevas a partir de los datos sin procesar mediante operaciones (como el cruce de funciones) para permitir que los modelos de AA sean más sencillos y converjan más rápido
- Convertir los datos unidos, procesados previamente y diseñados en un formato específico (por ejemplo, registros de TensorFlow) que sea eficiente para el aprendizaje automático
- Replicar este conjunto de tareas de procesamiento de datos en el sistema de inferencia, que podría estar escrito en otro lenguaje de programación
- Producir las canalizaciones de entrenamiento y predicción
Cómo aprovechar un almacén de datos con aprendizaje automático integrado
En gran parte, los proyectos de aprendizaje automático implican limpiar, transformar y mover datos. En lugar de escribir canalizaciones de ETL personalizadas para cada proyecto a fin de mover los datos a un data lake y pedir que cada proyecto de AA deba entender los datos y convertirlos en un formato que pueda unirse, recomendamos que las organizaciones creen un almacén de datos empresarial (EDW). Si el EDW está basado en la nube y permite separar el cálculo del almacenamiento (como lo hace BigQuery), cualquier unidad del negocio e incluso un socio externo pueden acceder a los datos sin tener que moverlos. Todo lo que hace falta para acceder a los datos es el rol adecuado de administración de identidades y accesos (IAM).
Con este tipo de EDW, los equipos de ingeniería de datos pueden escribir las canalizaciones de ETL una sola vez para capturar los cambios en el sistema fuente y enviarlos al almacén de datos, en lugar de hacer que los equipos de aprendizaje automático se ocupen de codificarlos paso a paso. Los científicos de datos pueden concentrarse en obtener estadísticas de los datos en lugar de convertirlos de un formato a otro. Además, si el EDW ofrece capacidades de aprendizaje automático y la integración con una infraestructura de AA eficaz (como AI Platform), evitas completamente el movimiento de los datos. En Google Cloud, cuando entrenas un modelo de red neuronal profunda en BigQuery ML, en realidad se realiza en
AI Platform, pero ni siquiera lo notas.
Por ejemplo, si quieres entrenar un modelo de aprendizaje automático con un conjunto de datos de trayectos en taxi en Nueva York para predecir la tarifa, todo lo que necesitas es una consulta de SQL (visita esta
entrada anterior del blog para obtener más información):