Ejecuciones de proyectos en Google Console

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este artículo veremos el modo de hacer ejecuciones de proyectos en Google Console a través de un proyecto de análisis de sentimientos con un dataset de Twitter.

Recordemos que Google Search Console es una herramienta gratuita de Google que ayuda a los dueños de sitios web a monitorear, hacer mantenimiento y optimizar sus páginas en los resultados de Google.

Ejecuciones de proyectos en Google Console

Ejecutar un workflow usando DataFlow y AI Platform

Lo primero que tenemos que hacer en este caso es configurar el directorio de trabajo. En otros ejercicios hemos trabajado con el directorio de la propia máquina; en esta ocasión, lo que haremos es modificar esto para poder trabajar dentro de un bucket:

#Ejecuciones de proyectos en Google Console
WORK_DIR = 'gs://' + BUCKET_NAME + '/twitter - sentiment - batch'
#Ejecuciones de proyectos en Google Console
! ls
Ejecuciones de proyectos en Google Console

Train

Ahora nos aseguramos de haber ejecutado la celda de credenciales y procedemos con el siguiente paso, que es ejecutarlo en Google Console. Para ello escribimos el script de preprocess y añadimos unos parámetros adicionales; en nuestro caso, añadimos aspectos como cuál es el identificador del proyecto donde vamos a ejecutar nuestro job, nuestro trabajo de preprocesamiento y la región. También especificamos vamos a ejecutar en Dataflow.

Ejecutamos:

#Ejecuciones de proyectos en Google Console
! python3 preprocess.py \
  --project $PROJECT_ID \
  --region $REGION \
  --runner $DataflowRunner \
  --temp_location $WORK_DIR/ beam - temp \
  --setup_file .setup.py \
  --work-dir $WORK_DIR \
  --input $WORK_DIR/ data/ training*.csv \
  --output $WORK_DIR/data/transformed_data \
  --mode train
Ejecuciones de proyectos en Google Console

Visualización del job

Una vez ejecutado este job, podemos verificar que aparezca de la siguiente manera:

  • Vamos a Google Cloud.
  • En la barra de navegación azul superior media vamos a hacer clic en el cuadro de búsqueda y buscamos la palabra «Dataflow«.
  • Nos va a aparecer una pantalla como esta, donde se muestran todos los dataflow que ya se han ejecutado:
Ejecuciones de proyectos en Google Console

Algo muy interesante de esta plataforma es que podemos ver de forma muy sencilla qué está pasando en el job.

Si hacemos clic en el job, nos mostrará una pantalla como esta:

Ejecuciones de proyectos en Google Console

Aquí lo que tenemos es una visualización del grafo de todo lo que hemos implementado en nuestro pipeline. Si recordamos tenemos el paso de lectura de datos de Twitter, la extracción de las columnas, el preprocesamiento y la división en particiones (entrenamiento y evaluación).

Esto se ejecuta en paralelo y escala hasta el infinito, así que ya no nos tenemos que preocupar por el escalado cuando ejecutamos en el dataflow.

Test

Ahora vamos a ejecutar el testing:

#Ejecuciones de proyectos en Google Console
! python3 preprocess.py \
  --project $PROJECT_ID \
  --region $REGION \
  --runner $DataflowRunner \
  --temp_location $WORK_DIR/ beam - temp \
  --setup_file .setup.py \
  --work-dir $WORK_DIR \
  --input $WORK_DIR/ data/ test*.csv \
  --output $WORK_DIR/data/transformed_data \
  --mode test
Ejecuciones de proyectos en Google Console
Ejecuciones de proyectos en Google Console

Si actualizamos la página de Google Cloud, veremos que ahora, en vez de uno, tenemos dos jobs ejecutándose:

Ejecuciones de proyectos en Google Console

Cada uno de ellos tiene una labor distinta: uno se ocupa de la parte de train y otro de la parte de test.

Lo siguiente que podemos hacer es ejecutar el entrenamiento. Para ello, le diremos al algoritmo que ejecute lo que está en /trainer.

#Ejecuciones de proyectos en Google Console
JOB = "twitter_sentiment _analysis_batch_$ (DATE + % Y % m % d_ % H % M % S)"
JOB_DIR = WORK_DIR + "/trainer"
#Ejecuciones de proyectos en Google Console
! gcloud ai - platform jobs submit training $JOB \
  --module - name trainer.task \
  --package - path trainer \
  --scale - tier basic_gpu \
  --python - version 3.7 \
  --runtime - version 2.1 \
  --region $REGION \
  --job - dir $JOB_DIR \
  --stream - logs \
  -- \
  --work - dir $WORK_DIR \
  --epochs 3
Ejecuciones de proyectos en Google Console
#Ejecuciones de proyectos en Google Console
#Sample tokenizer pkl...
! wget https://transfer.sh/s-CMHh/tokenizer.pkl  -O - | gsutil cp - gs:// $BUCKET_NAME/models/tokenizer.pkl
#Ejecuciones de proyectos en Google Console
#Sample model.h5...
! wget https://transfer.sh/HIE1QW/model.h5  -O - | gsutil cp - gs:// $BUCKET_NAME/models/model.h5
#Ejecuciones de proyectos en Google Console
from datetime import datetime

#Current date and time
TIMESTAMP = datetime.now ().strftime ('% Y - % m - % d_ % H - % M - % S')
#Ejecuciones de proyectos en Google Console
#For using sample models: --model - dir gs:// $BUCKET_NAME/models/
! python3 predict.py \
  --work - dir $WORK_DIR \
  --model - dir gs://$BUCKET_NAME/models/ \
  batch \
  --project $PROJECT_ID \
  --region $REGION \
  --runner DataflowRunner \
  --temp_location $WORK_DIR/beam - temp \
  --setup_file ./setup.py \
  --inputs - dir $WORK_DIR/data/transformed_data/test/part* \
  --outputs - dir $WORK_DIR/predictions/$TIMESTAMP \
Ejecuciones de proyectos en Google Console

¿Qué sigue?

Ahora que has entendido cómo hacer ejecuciones de proyectos en Google Cloud, es la hora de seguir formándote en alguna de las numerosas temáticas del extenso mundo del Big Data. En KeepCoding, grandes expertos te guiarán a través de la teoría y la práctica para que, en unos pocos meses, te conviertas en un profesional IT. Revisa al temario de nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp y descubre esta formación intensiva e íntegra. ¡Solicita ahora mismo más información y da el salto que cambiará tu futuro!

Artículos ms leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

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