Flujo de trabajo del aprendizaje automático

Cloud Machine Learning Engine habilita varias partes del flujo de trabajo del aprendizaje automático (AA). En este documento, se describe el proceso general del AA a fin de proporcionar un contexto para los servicios de Cloud ML Engine.

El flujo de trabajo del AA

En el siguiente diagrama, se muestra una descripción general de alto nivel de las etapas en un flujo de trabajo del AA. Los cuadros azules indican los puntos en que Cloud ML Engine proporciona servicios administrados y las API:

Flujo de trabajo del AA
Flujo de trabajo del AA

A fin de desarrollar y administrar un modelo listo para la producción, debes trabajar a través de 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. Hazte 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.

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ántos datos son suficientes. Cada 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 genera 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 y 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 atributos en tus datos. Los atributos 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, transformas 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 datos numéricos a una escala común.
  • Aplica reglas de formato a los datos. Por ejemplo, si quitas el etiquetado HTML de un atributo de texto.
  • Reduce la redundancia de datos a través de la simplificación. Por ejemplo, convierte un atributo 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 un atributo categórico.
  • Asigna valores clave a instancias de datos.

Asistencia de GCP para explorar y preparar datos

TensorFlow dispone de varias bibliotecas de procesamiento previo que puedes usar con Cloud ML Engine. Por ejemplo, tf.transform.

Además, considera los siguientes servicios de GCP:

  • Cloud Datalab admite muchas de las tareas que conforman la exploración y preparación de datos. Por ejemplo, puedes analizar visualmente tus datos con grafos dinámicos incorporados en un notebook de Cloud Datalab.

  • 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.

  • Cloud Dataproc es un servicio de Cloud completamente administrado que permite ejecutar los clústeres de Apache Spark y Apache Hadoop.

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

  • Cloud Dataprep es un servicio inteligente de datos sin servidores que permite explorar, limpiar y preparar visualmente los datos estructurados y sin estructurar.

Codifica tu 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. Después, examina las muestras proporcionadas con la documentación de Cloud ML Engine. Estas muestras se desarrollaron específicamente para funcionar bien con Cloud ML Engine.

Entrena, evalúa y ajusta tu modelo

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

Cuando entrenas tu modelo, le proporcionas datos de los que ya conoces el valor para tu atributo de datos de destino (atributo). 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 a ejecutar. Esta técnica se conoce como ajuste de hiperparámetro.

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 pruebe 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 parámetros del modelo e hiperparámetros en función de los resultados de la prueba. Puedes descubrir problemas en el modelo o en su interacción con el resto de tu aplicación.

Aloja tu modelo en la nube

Cloud ML Engine 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 Cloud ML Engine, debes guardar tu modelo entrenado con las herramientas proporcionadas por 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 depósito de Cloud Storage y creas un recurso de modelo en Cloud ML Engine mediante la especificación de la ruta de Cloud Storage a tu modelo guardado.

Envía solicitudes de predicción a tu modelo

Cloud ML Engine 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. Cloud ML Engine proporciona las API para examinar trabajos en ejecución. Además, varias herramientas de GCP admiten la operación de tu modelo implementado, como las herramientas de Stackdriver.

Administra tus modelos y versiones de modelos

Cloud ML Engine proporciona varias interfaces para administrar tu modelo y sus versiones, incluida una API de REST, la herramienta de línea de comandos de gcloud ml-engine y GCP Console.

¿Qué sigue?

  • Experimenta un flujo de trabajo completo de Cloud ML Engine si trabajas con la guía de introducción.
  • Mira el conjunto completo de guías.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cloud ML Engine para TensorFlow