Inferencias de preprocesado en Batch: despliegue de modelo

Autor: | Última modificación: 12 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes cómo hacer el despliegue de un modelo en la parte de preprocesado en Batch? En esta primera etapa vamos a aprender cómo desplegar un modelo para realizar inferencias de preprocesado en Batch. Para ello, utilizaremos Google Cloud Platform (GCP).

El objetivo de esto es, dado un conjunto de datos, generar un modelo que, posteriormente, pondremos a inferir de manera productiva sobre nuevos datos a gran escala.

Para almacenar los datos usaremos Google Cloud Storage y, después, generaremos un entrenamiento automatizado y predicciones usando Google Cloud Dataflow. Todo el procesamiento relacionado con el modelo se programará en Python y se usará Apache Beam.

Al acabar esta etapa, seremos capaces de generar entrenamientos automáticos sobre un conjunto de datos y realizar predicciones en Batch.

Inferencias de preprocesado en Batch

preprocesado en Batch

Preprocesing/Clean data

En esta parte de preprocesado en Batch vamos a implementar tres fases, una relacionada con el automatismo para hacer el preprocesamiento de forma automática. Es decir, en lugar de hacer el pipeline de preprocesado, en este caso introduciremos ese preprocesamiento en Google Cloud, en un service denominado Dataflow, que permite ejecutar trabajos en paralelo con un rendimiento muy óptimo. Entonces, en esta sección utilizaremos toda la parte de preprocesamiento para poder gestar datos de forma muy rápida.

Training/Models

Este paso nos permitirá hacer un entrenamiento del modelo de preprocesado en Batch en el que podamos emplear el servicio de machine learning de Google Cloud. Con esto hacemos el entrenamiento y dejamos el modelo en un bucket del Cloud Storage.

Batch prediction/Predictions

Después, haremos otro pipeline de predicción para el preprocesado en Batch, en el que tomaremos preprocesado de test y después el modelo; con esto generaremos predicciones.

Las predicciones las haremos con el servicio de Google Cloud denominado Dataflow y con un framework que se llama Apache Beam. Posteriormente, dejaremos las predicciones finales en otro bucket del Cloud Storage.

Introducción a Apache Beam

Para la parte de preprocesado en Batch e inferencias debemos utilizar la parte de Dataflow. Asimismo, para usar el servicio de Dataflow, es necesario que empleemos Apache Beam.

Digamos que Apache Beam es un framework hecho por Google con el que podemos trabajar con diferentes backends, es decir, partes core sobre las que se ejecutan las cosas. Estas partes pueden tener Dataflow o Spark, entre otros, pero el código no cambia. Entonces, podemos tener el mismo código y diferentes backends y podemos ejecutarlos por detrás como runtimes de la forma que queramos.

Beam es un modelo unificado open source de definición de pipelines de procesamiento en Batch y streaming. Beam es muy útil en tareas de procesamiento muy paralelas con alto volumen de datos.

La utilidad de Beam reside en la capacidad de definir un único pipeline para realizar procesamientos tanto en Batch como en streaming, además de su capacidad de ejecutar en cualquier runtime actual como Spark, Flink o Dataflow. Debido a su flexibilidad, ejecuta las cosas en paralelo, independientemente del framework, por lo que es muy óptimo para ejecutar en descargas.

Spotify es una de las tantas plataformas que se beneficia de Apache Beam al implementarlo de forma interna.

Inferencias de preprocesado en Batch: despliegue de modelo

Conceptos clave de Apache Beam

Tres entidades principales con las que se trabaja en Apache Beam y, por tanto, en el preprocesado en Batch son:

  • Pipeline: entidad que encapsula la tarea de procesamiento. Esto incluye leer datos de entrada, transformaciones y escribir datos de salida
  • PCollection: representa un set de datos distribuido con el que la pipeline trabaja.
  • PTransform: representa una operación de procesamiento dentro de un pipeline.

Un flujo de ejecución de Beam funcionaría de la siguiente forma.

  1. Creamos un objeto pipeline con su configuración (incluyendo el runner donde se va a ejecutar).
  2. Leemos un PCollection de una fuente de datos o generamos una propia.
  3. Aplicamos un PTransform definido en el pipeline a cada PCollection que tengamos.
  4. Ejecutamos el pipeline en el runner especificado.

¿Qué sigue?

Ahora que sabes más acerca de las inferencias de preprocesado en Batch, es el momento de seguir formándote en el ámbito del Big Data. Puedes aprender con los mejores profesionales, que te guiarán a nivel de teoría y práctica, en nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. En esta formación intensiva de alta calidad, en unos pocos meses, te transformarás en un gran profesional IT. ¡Solicita ya mismo más información e impulsa tu futuro!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado