Flujo de trabajo de aprendizaje automático

AI Platform habilita muchas partes del flujo de trabajo del aprendizaje automático (AA). En este documento, se proporciona una descripción introductoria del proceso de AA general y se explica cómo se aplica cada servicio de AI Platform al proceso.

Para obtener una introducción a los servicios, consulta la Descripción general técnica de AI Platform.

Una descripción breve del aprendizaje automático

El aprendizaje automático (AA) es un subcampo de la inteligencia artificial (IA). El objetivo del AA es hacer que las computadoras aprendan de los datos que les proporcionas. En lugar de escribir código que describa la acción que debe realizar la computadora, tu código proporciona un algoritmo que se adapta en función de ejemplos de comportamiento esperado. El programa resultante, compuesto por el algoritmo y los parámetros aprendidos asociados, se llama un modelo entrenado.

El flujo de trabajo del AA

El siguiente diagrama proporciona una descripción general de alto nivel de las etapas en un flujo de trabajo del AA. Los cuadros rellenos de azul indican dónde AI Platform proporciona API y servicios administrados:

Flujo de trabajo del AA
Flujo de trabajo del AA

A fin de desarrollar y administrar un modelo listo para la producción, debes completar las siguientes etapas:

  • Consigue y prepara tus datos.

  • Desarrolla tu modelo.

  • Entrena un modelo del AA con tus datos:

    • Entrena el modelo
    • Evalúa la exactitud del modelo
    • Ajusta los hiperparámetros
  • Implementa tu modelo entrenado.

  • Envía solicitudes de predicción a tu modelo:

    • Predicción en línea
    • Predicción por lotes
  • Supervisa las predicciones de forma continua.

  • Administra tus modelos y sus versiones.

Estas etapas son iterativas. Es posible que debas volver a evaluar y regresar a un paso anterior en cualquier punto del proceso.

En el resto de esta página, se analizan las etapas en detalle.

Antes de comenzar, evalúa el problema

Antes de comenzar a pensar en cómo resolver un problema con el AA, tómate un tiempo para analizar el problema que estás tratando de resolver. Pregúntate a ti mismo las siguientes preguntas:

¿Tienes un problema bien definido para resolver?

Muchos enfoques diferentes son posibles cuando se usa el AA para reconocer patrones en los datos. Es importante definir la información que intentas obtener del modelo y por qué necesitas esa información.

¿El AA es la mejor solución para el problema?

El AA supervisado (el estilo del AA descrito en esta documentación) se adapta bien a ciertos tipos de problemas.

Solo debes considerar usar el AA a fin de solucionar tu problema si tienes acceso a un conjunto considerable de datos para entrenar tu modelo. No hay absolutos sobre cuánta información es suficiente. Cada característica (atributo de datos) que incluyes en tu modelo aumenta la cantidad de instancias (registros de datos) que necesitas para entrenar adecuadamente el modelo. Consulta las recomendaciones del AA para obtener orientación sobre la ingeniería de atributos.

También debes tener en cuenta la división del conjunto de datos en tres subconjuntos: Uno para el entrenamiento, otro para la evaluación (o validación) y otro para la prueba.

Investiga alternativas que puedan proporcionar una manera más fácil y concreta de resolver el problema.

¿Cómo puedes medir si el modelo se completó correctamente?

Uno de los mayores desafíos de crear un modelo del AA es saber cuándo se completa la fase de desarrollo del modelo. Es tentador continuar definiendo mejor el modelo por más tiempo, lo que extrae mejoras cada vez más pequeñas en la precisión. Debes saber lo que significa que se complete correctamente antes de comenzar el proceso. Considera el nivel de precisión suficiente para tus necesidades. Considera las consecuencias del nivel de error correspondiente.

Consigue y prepara tus datos

Debes tener acceso a un gran conjunto de datos de entrenamiento que incluye el atributo (denominado característica en el AA) que deseas poder inferir (predecir) según las otras funciones.

Por ejemplo, imagina que deseas que tu modelo prediga el precio de oferta de una casa. Comienza con una gran cantidad de datos que describen las características de las casas en un área determinada, incluido el precio de oferta de cada casa.

Análisis de datos

Una vez que obtienes tus datos, debes analizarlos, comprenderlos y prepararlos para que sean la entrada al proceso de entrenamiento. Por ejemplo, es posible que debas realizar los siguientes pasos:

  • Une datos de múltiples fuentes y racionalízalos en un conjunto de datos.
  • Visualiza los datos para buscar tendencias.
  • Usa lenguajes y herramientas centrados en datos para encontrar patrones en los datos.
  • Identifica características en tus datos. Las características comprenden el subconjunto de atributos de datos que usas en tu modelo.
  • Limpia los datos para encontrar valores anómalos causados por errores en la entrada o medición de datos.

Procesamiento previo de los datos

En el paso de procesamiento previo, transforma datos válidos y limpios en el formato que mejor se adapte a las necesidades de tu modelo. A continuación, se muestran algunos ejemplos del procesamiento previo de los datos:

  • Normaliza los datos numéricos a una escala común.
  • Aplica reglas de formato a los datos. Por ejemplo, si quitas el etiquetado HTML de una característica de texto.
  • Reduce la redundancia de datos a través de la simplificación. Por ejemplo, convertir una característica de texto en una representación de bolsa de palabras.
  • Representa el texto numéricamente. Por ejemplo, cuando asignas valores a cada valor posible en una característica categórica.
  • Asigna valores clave a instancias de datos.

Asistencia de Google Cloud para la exploración y preparación de datos

TensorFlow tiene varias bibliotecas de procesamiento previo que puedes usar con AI Platform. Por ejemplo, tf.transform.

Puedes implementar y entregar canalizaciones de scikit-learn en AI Platform a fin de aplicar transformaciones integradas para el entrenamiento y la predicción en línea. La aplicación de transformaciones personalizadas se encuentra en versión Beta.

Puedes implementar una rutina de predicción personalizada (Beta) para asegurarte de que AI Platform procese con anterioridad la entrada en el momento de la predicción de la misma manera que tú procesaste previamente los datos durante el entrenamiento.

Además, ten en cuenta los siguientes servicios de Google Cloud:

  • Los notebooks administrados por el usuario de Vertex AI Workbench son instancias de Deep Learning VM Image empaquetadas previamente con notebooks de JupyterLab y optimizadas para realizar tareas de ciencias de datos de aprendizaje profundo, desde la preparación y exploración de datos hasta el desarrollo rápido de prototipos.

  • BigQuery es un servicio de almacenamiento de datos completamente administrado que permite el análisis ad hoc de datos en tiempo real con SQL estándar.

  • Dataproc es un servicio en la nube completamente administrado que permite ejecutar clústeres de Apache Spark y Apache Hadoop.

  • Dataflow es un servicio completamente administrado que permite transformar y enriquecer datos en modos de transmisión (en tiempo real) y por lotes (históricos) con igual confiabilidad y expresividad.

  • Dataprep es un servicio de datos inteligente y sin servidores que permite explorar de manera visual, limpiar y preparar datos estructurados y no estructurados.

Codifica el modelo

Desarrolla tu modelo con las técnicas del AA establecidas o con la definición de operaciones y enfoques nuevos.

Comienza a aprender mediante el trabajo con la guía de introducción de TensorFlow. También puedes seguir la documentación de scikit-learn o la documentación de XGBoost para crear el modelo. Luego, examina algunas muestras de código diseñadas para funcionar con AI Platform.

Entrena, evalúa y ajusta el modelo

AI Platform proporciona los servicios que necesitas para entrenar y evaluar tu modelo en la nube. Además, AI Platform ofrece una funcionalidad de ajuste de hiperparámetros para optimizar el proceso de entrenamiento.

Cuando entrenas tu modelo, lo alimentas con datos de los que ya conoces el valor para tu atributo de datos de destino (característica). Ejecutas el modelo a fin de predecir esos valores de destino de tus datos de entrenamiento, de modo que el modelo pueda ajustar su configuración para adaptarse mejor a los datos y así predecir el valor de destino con mayor precisión.

De manera similar, cuando evalúas tu modelo entrenado, lo alimentas con datos que incluyen los valores de destino. Comparas los resultados de las predicciones de tu modelo con los valores reales de los datos de evaluación y usas técnicas estadísticas adecuadas para tu modelo a fin de evaluar que no tenga vulnerabilidades.

También puedes ajustar el modelo si cambias las operaciones o la configuración que usas para controlar el proceso de entrenamiento, como la cantidad de pasos de capacitación que quieres ejecutar. Esta técnica se conoce como ajuste de hiperparámetros.

Prueba tu modelo

Durante el entrenamiento, aplica el modelo a los datos conocidos a fin de ajustar la configuración para mejorar los resultados. Cuando tus resultados sean lo suficientemente buenos para las necesidades de tu aplicación, debes implementar el modelo en cualquier sistema que use tu aplicación y probarlo.

Para probar tu modelo, ejecuta los datos en un contexto lo más cercano posible a tu aplicación final y tu infraestructura de producción.

Usa un conjunto de datos diferente de los que usas para el entrenamiento y la evaluación. Lo ideal sería que usaras un conjunto de datos separados cada vez que realices una prueba, de modo que tu modelo se evalúe con datos que nunca antes haya procesado.

También es posible que desees crear diferentes conjuntos de datos de prueba según la naturaleza de tu modelo. Por ejemplo, puedes usar diferentes conjuntos de datos para ubicaciones particulares o puntos en el tiempo o dividir las instancias a fin de imitar diferentes datos demográficos.

Durante el proceso de prueba, realiza ajustes a los hiperparámetros y parámetros del modelo según los resultados de las pruebas. Esto puede ayudarte a identificar problemas en el modelo o en su interacción con el resto de tu aplicación.

Aloja tu modelo en la nube

AI Platform proporciona herramientas para subir tu modelo del AA entrenado a la nube a fin de que puedas enviar solicitudes de predicción al modelo.

Para implementar tu modelo entrenado en AI Platform, debes guardarlo con las herramientas que proporcione tu marco de trabajo de aprendizaje automático. Esto implica serializar la información que representa tu modelo entrenado en un archivo que puedes implementar para la predicción en la nube.

Luego, subes el modelo guardado a un bucket de Cloud Storage y creas un recurso de modelo en AI Platform mediante la especificación de la ruta de Cloud Storage de tu modelo guardado.

Cuando implementes el modelo, también puedes proporcionar un código personalizado (Beta) a fin de personalizar la forma en que se controlan las solicitudes de predicción.

Envía solicitudes de predicción al modelo

AI Platform proporciona los servicios que necesitas para solicitar predicciones de tu modelo en la nube.

Hay dos formas de obtener predicciones a partir de modelos entrenados: predicción en línea (a veces llamada predicción HTTP) y predicción por lotes. En ambos casos, pasas los datos de entrada a un modelo de aprendizaje automático alojado en la nube y obtienes inferencias para cada instancia de datos.

Supervisa tu servicio de predicción

Supervisa las predicciones de forma continua. AI Platform proporciona API para examinar trabajos en ejecución. Además, varias herramientas de Google Cloud admiten el funcionamiento del modelo implementado, como Cloud Logging y Cloud Monitoring.

Administra tus modelos y versiones de modelos

AI Platform ofrece varias interfaces para administrar el modelo y las versiones, como una API de REST, la herramienta de línea de comandos de gcloud ai-platform y la consola de Google Cloud.

¿Qué sigue?