Con los algoritmos integrados en AI Platform Training, puedes enviar los datos de entrenamiento, seleccionar un algoritmo y permitir que AI Platform Training se encargue del procesamiento previo y el entrenamiento, sin tener que escribir ningún código para una aplicación de entrenamiento.
Descripción general
En este instructivo, entrenas un modelo XGBoost sin escribir código. Deberás enviar el conjunto de datos de ingresos del censo a AI Platform Training para su procesamiento previo y entrenamiento y, luego, implementar el modelo en AI Platform Training a fin de obtener predicciones. El modelo resultante predice la probabilidad de que el ingreso anual de una persona sea mayor que $50,000.
Antes de comenzar
Para completar este instructivo en la línea de comandos, usa Cloud Shell o cualquier entorno en el que esté instalado Google Cloud CLI.
Completa los siguientes pasos para configurar una cuenta de GCP, habilitar las API necesarias y, también, instalar y activar Google Cloud CLI.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Configuración
Para usar algoritmos tabulares integrados, debes quitar la fila del encabezado de tu archivo CSV y mover los valores de destino a la primera columna. Modificamos el conjunto de datos del censo original a fin de usarlo en este instructivo y lo alojamos en un depósito público de Cloud Storage, gs://cloud-samples-data/ai-platform/census/algorithms/data/
.
Console
Antes de comenzar tu trabajo de entrenamiento, debes copiar los datos de nuestro bucket público de Cloud Storage en tu bucket.
Copia los datos de muestra en tu depósito de Cloud Storage
Primero, descarga los datos de entrenamiento y de prueba desde nuestro bucket público de Cloud Storage.
Navega a nuestro bucket público de Cloud Storage:
Descarga
test.csv
ytrain.csv
:Haz clic en el nombre del archivo.
En la página Detalles del objeto, haz clic en Descargar. Estos archivos se descargan en el entorno local como
ai-platform_census_algorithms_data_test.csv
yai-platform_census_algorithms_data_train.csv
, respectivamente.
A continuación, sube los datos de entrenamiento y de prueba a tu bucket de Cloud Storage.
Navega a la página del navegador de tu bucket de Cloud Storage. Selecciona tu proyecto desde la lista desplegable Selecciona un proyecto o ábrelo en una pestaña nueva:
Haz clic en el nombre del bucket que deseas usar o crea uno nuevo si todavía no tienes uno. Si creas un bucket nuevo, asegúrate de que sea un bucket regional y selecciona la misma región en la que ejecutas el trabajo de entrenamiento de AI Platform Training.
De manera opcional, haz clic en Crear carpeta a fin de crear una carpeta para los archivos que subas. Ingresa un nombre para la carpeta (por ejemplo, “datos”) y haz clic en Crear. A continuación, navega hasta la carpeta nueva; para ello, haz clic en el nombre de la carpeta.
Haz clic en Subir archivos para subir los archivos de entrenamiento y de prueba,
ai-platform_census_algorithms_data_train.csv
yai-platform_census_algorithms_data_test.csv
, a tu depósito.
Ahora que los datos están copiados en tu bucket, puedes comenzar un trabajo de entrenamiento; para ello, selecciona el tipo de algoritmo que deseas usar.
Selecciona tu algoritmo
Ve a la página Trabajos de AI Platform Training en la consola de Google Cloud:
Haz clic en el botón Trabajo de entrenamiento nuevo. En las opciones que se muestran a continuación, haz clic en Entrenamiento de algoritmos integrados. Aparecerá la página Crear un trabajo de entrenamiento nuevo.
La creación de un trabajo de entrenamiento se divide en cuatro pasos. El primero es Algoritmo de entrenamiento. Selecciona XGBoost y haz clic en Siguiente.
gcloud
Configura las variables de entorno para el ID de tu proyecto, tu bucket de Cloud Storage, la ruta de acceso de Cloud Storage a los datos de entrenamiento y la selección del algoritmo.
Los algoritmos integrados de AI Platform Training se encuentran en contenedores de Docker que se alojan en Container Registry.
PROJECT_ID=YOUR_PROJECT_ID
BUCKET_NAME=YOUR_BUCKET_NAME
REGION="us-central1"
gcloud config set project $PROJECT_ID
gcloud config set compute/region $REGION
# Copy the training data into your Cloud Storage bucket, and set the path
# to your copy of the training data.
TRAINING_DATA_SOURCE=gs://cloud-samples-data/ai-platform/census/algorithms/data/train.csv
TRAINING_DATA_PATH=gs://$BUCKET_NAME/algorithms-demo/data/train.csv
gcloud storage cp $TRAINING_DATA_SOURCE $TRAINING_DATA_PATH
# Specify the Docker container URI specific to the algorithm.
IMAGE_URI="gcr.io/cloud-ml-algos/boosted_trees:latest"
Envía un trabajo de entrenamiento
Para enviar un trabajo, debes especificar algunos argumentos de entrenamiento básicos y algunos argumentos básicos relacionados con el algoritmo XGBoost.
Argumentos generales para el trabajo de entrenamiento:
Argumentos del trabajo de entrenamiento | |
---|---|
Argumento | Descripción |
job-id |
ID único para el trabajo de entrenamiento. Puedes usarlo para buscar registros del estado de tu trabajo de entrenamiento una vez que lo hayas enviado. |
job-dir |
Es la ruta de acceso de Cloud Storage en la que AI Platform Training guarda los archivos de entrenamiento tras completar un trabajo de entrenamiento de forma correcta. |
scale-tier |
Especifica los tipos de máquinas para el entrenamiento. Usa BASIC para seleccionar una configuración de una sola máquina.
|
master-image-uri |
Es el URI de Container Registry usado para especificar qué contenedor de Docker se usará en el trabajo de entrenamiento. Usa el contenedor para el algoritmo integrado XGBoost definido anteriormente como IMAGE_URI .
|
region |
Especifica la región disponible en la que deseas ejecutar el trabajo de entrenamiento. Para este instructivo, puedes usar la región us-central1 .
|
Argumentos específicos del algoritmo integrado XGBoost:
Argumentos del algoritmo | |
---|---|
Argumento | Descripción |
preprocess |
Es un argumento booleano que indica si AI Platform Training debe realizar el procesamiento previo de los datos o no. |
objective |
Indica la tarea de aprendizaje y su objetivo de aprendizaje correspondiente. En este ejemplo, "binary:logistic". |
training_data_path |
Ubicación en Cloud Storage de los datos de entrenamiento, que debe ser un archivo CSV. |
Para obtener una lista detallada de todas las marcas de algoritmos XGBoost, consulta la referencia sobre el algoritmo integrado XGBoost.
Console
Deja Habilitar el procesamiento previo automático de los datos marcado.
Para Ruta de acceso a los datos de entrenamiento, haz clic en Explorar. En el panel derecho, haz clic en el nombre del depósito en el que subiste los datos de entrenamiento y navega hasta tu archivo
ai-platform_census_algorithms_data_train.csv
.Deja los campos Datos de validación y Datos de prueba con sus opciones de configuración predeterminadas.
En Directorio de resultados, ingresa la ruta de acceso a tu depósito de Cloud Storage en el que quieres que AI Platform Training almacene los resultados del trabajo de entrenamiento. Puedes completar la ruta a tu depósito de Cloud Storage directamente o hacer clic en el botón Explorar para seleccionar el depósito.
A fin de mantener el orden, crea un directorio nuevo dentro de tu bucket de Cloud Storage para este trabajo de entrenamiento. Puedes hacerlo desde el panel Explorar.
Haz clic en Siguiente.
Para Objetivo, selecciona “binary:logistic”, que indica una tarea de aprendizaje binario y un objetivo de regresión logística.
Para Tipo de modelo, selecciona Clasificación.
Deja todos los otros campos con su configuración predeterminada y, a continuación, haz clic en Siguiente.
En la página Configuración del trabajo, haz lo siguiente:
- Ingresa un ID de trabajo único (como "xgboost_example").
- Ingresa una región disponible (como "us-central1").
- Selecciona "BASIC" para el nivel de escala.
Haz clic en Listo a fin de enviar el trabajo de entrenamiento.
gcloud
Configura todos los argumentos para el trabajo de entrenamiento y el algoritmo antes de usar
gcloud
a fin de enviar el trabajo:DATASET_NAME="census" ALGORITHM="xgboost" MODEL_TYPE="classification" MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}" # Give a unique name to your training job. DATE="$(date '+%Y%m%d_%H%M%S')" JOB_ID="${MODEL_NAME}_${DATE}" # Make sure you have access to this Cloud Storage bucket. JOB_DIR="gs://${BUCKET_NAME}/algorithms_training/${MODEL_NAME}/${DATE}"
Envía el trabajo:
gcloud ai-platform jobs submit training $JOB_ID \ --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \ -- \ --preprocess --objective=binary:logistic \ --training_data_path=$TRAINING_DATA_PATH
Una vez que enviaste el trabajo de forma correcta, puedes ver los registros con la ejecución de los siguientes comandos de
gcloud
:gcloud ai-platform jobs describe $JOB_ID gcloud ai-platform jobs stream-logs $JOB_ID
Obtén información sobre tu directorio de trabajos
Después de completar con éxito un trabajo de entrenamiento, AI Platform Training crea un modelo entrenado en el bucket de Cloud Storage, junto con otros artefactos. Encontrarás la siguiente estructura de directorio dentro de tu JOB_DIR
:
- model/
- model.pkl
- deployment_config.yaml
- artifacts/
- instance_generator.py
- metadata.json
- processed_data/
- training.csv
- validation.csv
- test.csv
Confirma que la estructura de tu directorio en JOB_DIR
coincida con la siguiente:
gcloud storage ls $JOB_DIR/* --all-versions
Implementa el modelo entrenado
AI Platform Prediction organiza los modelos entrenados mediante recursos de modelo y versión. Un modelo de AI Platform Prediction es un contenedor para las versiones del modelo de aprendizaje automático.
Para implementar un modelo, crea un recurso de modelo en AI Platform Prediction, crea una versión de ese modelo y, luego, usa el modelo y la versión para solicitar predicciones en línea.
Obtén más información sobre cómo implementar modelos en AI Platform Prediction.
Console
En la página Trabajos, puedes encontrar una lista de todos tus trabajos de entrenamiento. Haz clic en el nombre del trabajo de entrenamiento que acabas de enviar ("xgboost_example" o el nombre del trabajo que usaste).
En la página Detalles del trabajo, puedes ver el progreso general de tu trabajo, o haz clic en Ver registros para obtener una vista más detallada de su progreso.
Cuando el trabajo se haya completado correctamente, aparecerá el botón Implementar modelo en la parte superior. Haz clic en Implementar modelo.
Selecciona "Implementar como modelo nuevo" y, luego, ingresa un nombre de modelo, como "xgboost_model". A continuación, haz clic en Confirmar.
En la página Crear versión, ingresa un nombre de versión, como "v1", y deja todos los otros campos con su configuración predeterminada. Haz clic en Guardar.
En la página Detalles del modelo, se muestra el nombre de tu versión. La versión lleva unos minutos en crearse. Cuando la versión esté lista, se mostrará un ícono de marca de verificación junto al nombre de la versión.
Haz clic en el nombre de la versión (“v1”) para ir a la página Detalles de la versión. En el siguiente paso de este instructivo, enviarás una solicitud de predicción.
gcloud
El proceso de entrenamiento con el algoritmo XGBoost integrado genera un archivo, deployment_config.yaml
, que facilita la implementación de tu modelo en AI Platform Prediction para realizar predicciones.
Copia el archivo a tu directorio local y visualiza su contenido:
gcloud storage cp $JOB_DIR/model/deployment_config.yaml . cat deployment_config.yaml
El archivo
deployment_config.yaml
debería ser similar al que se muestra a continuación:deploymentUri: gs://YOUR_BUCKET_NAME/algorithms_training/census_xgboost_classification/20190227060114/model framework: XGBOOST labels: job_id: census_xgboost_classification_20190227060114 error_percentage: '14' runtimeVersion: '0.81' pythonVersion: '2.7'
Crea el modelo y la versión en AI Platform Training:
MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}" gcloud ai-platform models create $MODEL_NAME --regions $REGION # Create a model and a version using the file above. VERSION_NAME="v_${DATE}" gcloud ai-platform versions create $VERSION_NAME \ --model $MODEL_NAME \ --config deployment_config.yaml
La versión tarda unos minutos en crearse.
Obtén predicciones en línea
Cuando solicitas predicciones, debes asegurarte de que tus datos de entrada tengan el mismo formato que los de entrenamiento. Antes del entrenamiento, AI Platform Training realiza el procesamiento previo de los datos, ya que los transforma en el corpus que se muestra en metadata.json
.
Puedes usar instance_generator.py
para aplicar en las instancias de entrada las mismas transformaciones de procesamiento previo que AI Platform Training aplica en tus datos de entrenamiento. Este archivo lee la información de asignación almacenada en el archivo metadata.json
. También puedes usar la función transform_string_instance
en el módulo para transformar tu string sin procesar en un formato que el modelo admita.
Descarga los archivos de artefactos de entrenamiento y revisa
metadata.json
:gcloud storage cp $JOB_DIR/artifacts/* . # Let's look at the metadata.json file head metadata.json
Usa
instance_generator.py
a fin de preparar la entrada de predicción para una instancia de datos:# ground truth is >50K RAW_DATA_POINT="44, Private, 160323, Some-college, 10, Married-civ-spouse, Machine-op-inspct, Husband, Black, Male, 7688, 0, 40, United-States" # Now let's create a JSON prediction request python instance_generator.py --raw_data_string="${RAW_DATA_POINT}" > sample_input.json # Let's look at the prediction request file. cat sample_input.json
Envía la solicitud de predicción:
gcloud ai-platform predict \ --model $MODEL_NAME \ --version $VERSION_NAME \ --json-instances sample_input.json
La predicción que surge como resultado debería ser un número mayor que 0.5, lo cual indica que es factible que la persona gane un salario superior a $50,000.
Acerca de los datos
UC Irvine Machine Learning Repository aloja el conjunto de datos de ingresos del censo que se usa en esta muestra para el entrenamiento.
Los datos del censo son cortesía de Lichman, M. (2013). UCI Machine Learning Repositoryhttp://archive.ics.uci.edu/ml. Irvine, CA: University of California, School of Information and Computer Science.
¿Qué sigue?
- Obtén más información sobre el uso del algoritmo integrado XGBoost.