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
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
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:
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:
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
Si actualizamos la página de Google Cloud, veremos que ahora, en vez de uno, tenemos dos jobs ejecutándose:
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
#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 \
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!