Saltar al contenido principal

Tutorial de IA de vértices: Guía completa para principiantes

Domina los fundamentos de la configuración de Vertex AI y la realización de flujos de trabajo de aprendizaje automático.
Actualizado 30 jul 2024  · 14 min de lectura

Aunque la mayoría de la gente asocia Google con los motores de búsqueda, la empresa también tiene profundas raíces en el sector de la ciencia de datos. Ofrece sistemáticamente productos y soluciones de vanguardia destinados a obtener el máximo beneficio de los datos. Uno de sus productos, Vertex AI, se lanzó en 2021 para simplificar el proceso de aprendizaje automático a escala empresarial.

En este tutorial, aprenderemos a iniciarnos en la plataforma Vertex AI de Google y a utilizarla para cubrir una amplia gama de tareas del ciclo de vida del ML. Nos iremos con un modelo desplegado que podemos utilizar para enviar peticiones que generen predicciones para una tarea de clasificación.

¿Qué es la IA de Vértice?

Un ciclo de vida típico del aprendizaje automático consta de muchas etapas:

  • Preparación, ingesta y exploración de datos
  • Ingeniería de rasgos, selección
  • Entrenamiento y ajuste del modelo
  • Despliegue y seguimiento del modelo

Todas estas etapas y subetapas requieren un conjunto diferente de herramientas y un equipo diverso de expertos para coordinarlas.

Vertex AI de Google Cloud agiliza y unifica todo este proceso en una única plataforma.

Mientras que las aplicaciones ML a gran escala requieren especialistas experimentados, Vertex AI capacita a usuarios de cualquier nivel de habilidad:

  • AutoML para principiantes: No requiere experiencia en codificación. Sólo tienes que introducir tus datos y, con unos pocos clics, AutoML genera un modelo de alta calidad para ti. Todo el trabajo pesado de preparación de datos, construcción de modelos, incluida la selección de algoritmos y el ajuste de hiperparámetros, se realiza bajo el capó.
  • Formación de modelos personalizados para expertos: Tu experiencia es el límite. Para los científicos de datos e ingenieros de ML experimentados, Vertex AI ofrece la flexibilidad de entrenar modelos utilizando sus marcos preferidos, como PyTorch, TensorFlow o XGBoost.
  • Despliegue para todos: Una vez que tengas un modelo entrenado por AutoML o uno personalizado, Vertex AI hace que desplegarlos sea pan comido. Puedes publicar modelos como API en tiempo real para integrarlos en tus productos o utilizar la predicción por lotes para tareas a gran escala.

Hay muchas cosas que no mencionaremos en esta sección, ya que podrás trabajar en la mayoría de ellas tú mismo en este tutorial.

¿Qué son los Servicios en la Nube de Google?

Página de inicio de Google Cloud Services

Antes de empezar a explorar la plataforma, tenemos que mencionar su matriz: los servicios en la nube de Google. Los Servicios en la Nube de Google incluyen una amplia gama de soluciones de computación en la nube que proporcionan capacidades de almacenamiento, redes, bases de datos, análisis y aprendizaje automático.

Estos servicios trabajan juntos en sincronía con Vertex AI para unificar tu flujo de trabajo de aprendizaje automático. Aquí tienes un desglose de los servicios que se utilizan a menudo con Vertex AI:

Almacenamiento y gestión de datos

  • Almacenamiento en la nube: Actúa como repositorio central de tus datos brutos, accesible por Vertex AI para su entrenamiento y análisis.
  • BigQuery: Un potente almacén de datos para almacenar y consultar grandes conjuntos de datos, que permite a Vertex AI utilizar BigQuery ML para la formación in situ.

Recursos informáticos

  • Motor de cálculo: Proporciona máquinas virtuales con diversas configuraciones para tus necesidades de formación de modelos personalizados. Vertex AI puede conectarse a estas máquinas para tareas de entrenamiento que requieran muchos recursos.
  • Canalizaciones de IA de vértices: Coordina flujos de trabajo de ML complejos en varios recursos informáticos para conseguir eficiencia.

Los servicios de Google Cloud siempre están disponibles desde tu cuenta de Google si visitas cloud.google.com. Si nunca los has utilizado, haz clic en "Empezar gratis" para obtener tu prueba gratuita.

Si no, puedes ir directamente a console.cloud.google. com para que podamos empezar.

Configuración de la consola de Google Cloud para Vertex AI

Descargo de responsabilidad: Si quieres seguir el tutorial, prepárate para gastarte 25-30 $ en Vertex AI. Utilizaremos las configuraciones más baratas.

Cuando visites tu Consola de Google Cloud, lo más probable es que acabes en la siguiente página de bienvenida:

Consola en la nube de Google para Vertex AI

Enumera el nombre de tu espacio de trabajo; el mío es ibexprogramming.com.

Lo primero que haremos será crear un proyecto. Los proyectos de Google Cloud son unidades de organización de alto nivel para gestionar recursos para una tarea específica. Aquí tienes un GIF sobre cómo crear uno:

Un GIF que muestra cómo crear un nuevo proyecto en Google Cloud Console

Una vez creado el proyecto, selecciónalo para que en la barra superior de la página aparezca esto:

La barra superior de Google Cloud Console

Ahora, tienes que crear una cuenta de facturación porque Vertex AI necesita información de facturación para habilitar sus servicios. No te preocupes: no se te cobrará hasta que utilices recursos de pago. Así que dirígete a https://console.cloud.google.com/billing:

Una captura de pantalla de una cuenta de facturación en Google Cloud Console

Si aún no tienes una cuenta como la mía, haz clic en "Crear cuenta" y sigue las instrucciones que se muestran. Vincularemos esta cuenta de facturación a la nuestra en la siguiente sección.

Después, vuelve a https://console.cloud.google.com/ y haz clic en el botón "Ver todos los productos" situado en la parte inferior de la página:

Otra captura de pantalla de Google Cloud Console

En la página siguiente aparecerá una lista de todos los servicios que ofrece Google Cloud para tu proyecto. Busca "Vértice AI" (Ctrl + F) y fíjalo a tu menú para acceder fácilmente. Después, haz clic en el propio servicio:

Una lista de todos los productos de Google Cloud

Esto te dirigirá a tu panel de Vertex AI. Puede que aparezca una ventana pidiéndote que actives la API Vertex AI: elige "Activar". Si la ventana no aparece, puedes hacer clic en el botón "Habilitar todos los permisos de la API" para hacer lo mismo.

Ahora estamos preparados para cargar un conjunto de datos en Vertex AI.

Cargar un conjunto de datos en Vertex AI

Hay varias formas de añadir un conjunto de datos a Vertex AI. En esta sección, utilizaremos un archivo CSV local por simplicidad.

Descargar un conjunto de datos de muestra

Para el artículo, utilizaremos el conjunto de datos Dry Bean del repositorio de Aprendizaje Automático de la UCI. Contiene 13.000 instancias de judías y sus 15 medidas numéricas.

La tarea consiste en clasificarlas en siete tipos de judías: Seker, Barbunya, Bombay, Cali, Dermosan, Horoz y Sira.

Tras la descarga, guarda el archivo Excel dentro del ZIP descargado en tu directorio local:

from pathlib import Path

cwd = Path.cwd()
data_path = cwd / "data" / "Dry_Bean_Dataset.xlsx"

A continuación, podemos leer este archivo con pandas y guardarlo de nuevo como CSV:

import pandas as pd

beans = pd.read_excel(data_path)

beans.shape
(13611, 17)

Ten en cuenta que la función read_excel requiere que instales la biblioteca openpyxl con PIP.

Genial, ya tenemos el conjunto de datos como un DataFrame. Volvamos a guardarlo como CSV:

beans.to_csv(cwd / "data" / "dry_bean.csv", index=False)

Crear un cubo de almacenamiento en la nube

Como hemos mencionado antes, necesitamos un Google Storage Bucket para almacenar nuestros datos brutos. Sigue el GIF que aparece a continuación para navegar hasta el panel de control del producto:

Un GIF que muestra cómo vincular una cuenta de facturación a un proyecto de Google Cloud

El GIF muestra que, para empezar a utilizar los servicios de almacenamiento, necesitamos vincular una cuenta de facturación, lo que hacemos utilizando la que creamos anteriormente. A continuación, podrás crear un cubo con un nombre único global:

Un GIF que muestra cómo crear un cubo de almacenamiento en Google Cloud

Una vez que encuentres un nombre único, haz clic en "Continuar" hasta que se cree el cubo - puedes elegir opciones por defecto para todos los campos.

Ahora, estamos listos para ingerir el archivo CSV que hemos guardado en la sección anterior.

Ingesta de un CSV local en Vertex AI

Ahora, volvamos a nuestro panel Vertex AI y echemos un vistazo a la pestaña Conjuntos de datos:

Un GIF que muestra cómo cambiar a la pestaña de conjuntos de datos del panel Vertex AI

Lo encontrarás vacío, así que haz clic en el botón "+Crear":

Una captura de pantalla de la pestaña Conjuntos de datos de IA de vértices

Dale un nombre único al conjunto de datos y elige la opción tabular:

Un GIF que muestra cómo crear un nuevo conjunto de datos en Vertex AI

A continuación, la plataforma te muestra las opciones de origen. Elige subir un archivo CSV local, y para la ruta de Almacenamiento en la Nube, elige el cubo que acabas de crear:

Un GIF que muestra cómo insertar un CSV local en un cubo de almacenamiento en la nube existente

Una vez que el conjunto de datos se haya cargado correctamente, se te mostrará la pestaña "Analizar", que muestra metadatos básicos sobre el archivo CSV. También verás un botón "ENTRENAR NUEVO MODELO", que iniciará un trabajo de entrenamiento AutoML.

Sin embargo, no utilizaremos ese botón, ya que es para principiantes completos en ML. En su lugar, utilizaremos Vertex AI Workbench para configurar un entorno de codificación Jupyterlab y recursos informáticos para ejecutar tanto AutoML como bibliotecas personalizadas.

Configuración de Jupyterlab y recursos informáticos en Vertex AI Workbench

Como Vertex AI es una plataforma unificada, también ofrece entornos de desarrollo llamados bancos de trabajo. Para crear un banco de trabajo, ve a su propia pestaña y sigue las instrucciones del GIF que aparece a continuación:

Un GIF que muestra cómo crear un Vertex AI Workbench

Cada banco de trabajo viene con Jupyterlab 3 preinstalado. Así, sólo tienes que configurar las opciones de hardware en función de tu presupuesto y necesidades. Como tenemos un conjunto de datos bastante pequeño, elegí la instancia más débil para la ilustración, que sólo cuesta ~0,12 $ la hora (recomiendo elegir una máquina con más núcleos de CPU para que los cálculos sean más rápidos).

También he cambiado la duración del apagado en reposo a 10 minutos para que el entorno se detenga automáticamente si me olvido de apagarlo.

El banco de trabajo tardará algún tiempo en inicializarse. Cuando lo haga, aparecerá el botón "ABRIR JUPYTERLAB", y podremos hacer clic en él:

Una captura de pantalla de la interfaz jupyterlab dentro de un banco de trabajo Vertex AI

Nos dirigiremos a la conocida interfaz de Jupyterlab. Desde ahí, crea un nuevo cuaderno Python 3 y renómbralo como quieras. En la primera celda, instala/actualiza Google Cloud services SDK google-cloud-aiplatform:

!pip3 install --upgrade --quiet google-cloud-aiplatform

A continuación, puedes listar los proyectos disponibles en tu cuenta con gcloud config list:

!gcloud config list
[compute]
region = us-central1
[core]
account = # HIDDEN #
disable_usage_reporting = True
project = vertexai-tutorial-423010
[dataproc]
region = us-central1

Your active configuration is: [default]

gcloud y gsutil son utilidades de terminal disponibles en todos los bancos de trabajo. Te permiten gestionar eficazmente tus servicios de Google Cloud.

A partir de la salida impresa, guarda la siguiente información como variables Python:

PROJECT_ID = 'vertexai-tutorial-423010'
BUCKET_URI = 'gs://vetex-tutorial-bucket-bex'
REGION = 'us-central1'

No olvides cambiar BUCKET_URI por tu propio nombre de cubo. A continuación, importa el submódulo aiplatform e inicialízalo:

from google.cloud import aiplatform as ai

ai.init(project=PROJECT_ID, location=REGION, staging_bucket=BUCKET_URI)

aiplatform servirá como SDK para interactuar con las funciones de la IA de Vértice.

Una imagen que muestra una lista de los bancos de trabajo AI de Vértices disponibles.

Cuando termines de seguir el tutorial o hagas una pausa, no olvides PARAR la instancia para evitar costes no deseados.

Entrenamiento y despliegue de modelos AutoML en Vertex AI

Ahora vamos a entrenar un modelo con AutoML, que, como hemos dicho antes, se encarga de todo el trabajo pesado por nosotros y nos devuelve el mejor modelo que pudo entrenar para el conjunto de datos dado. Esto significa que, para aprovechar al máximo AutoML, debes asegurarte de que el conjunto de datos al que alimentas es de la mayor calidad posible. Por lo tanto, merece la pena tomarse un tiempo para diseñar nuevas funciones y realizar previamente cualquier paso de preprocesamiento.

AutoML preprocesa internamente el conjunto de datos, pero no puede solucionar todos los problemas de tu conjunto de datos.

Sin embargo, en esta sección sólo entrenaremos un modelo AutoML de referencia sin preprocesamiento ni ingeniería de rasgos, por simplicidad.

Cargar datos desde un bucket de Google Storage

Lo primero que queremos hacer es cargar el conjunto de datos CSV de nuestro cubo y pasar algún tiempo explorándolo. Recuerda, EDA es un paso importante, ¡y puedes aprender más en nuestro curso de Análisis Exploratorio de Datos en Python!

import pandas as pd

# Path to your CSV file in GCS bucket
gcs_path = "gs://vertex-tutorial-bucket-bex/dry_bean.csv"

beans = pd.read_csv(gcs_path)

beans.head()

Las cinco primeras filas del conjunto de datos de Judías Secas de la UCI.

La buena noticia es que los pandas pueden descargar archivos de las rutas GCS. La única pega es que el código anterior sólo funciona en los bancos de trabajo de Vertex AI, puesto que ya están autenticados con tus credenciales de Google Cloud.

Explorar datos con pandas en Vertex AI

No realizaremos un análisis profundo del conjunto de datos, ya que nos distraería del punto principal del artículo. Así que nos contentaremos con imprimir algunas estadísticas y gráficos resumidos:

beans.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 13611 entries, 0 to 13610
Data columns (total 17 columns):
#   Column           Non-Null Count  Dtype 
---  ------           --------------  ----- 
0   Area             13611 non-null  int64 
1   Perimeter        13611 non-null  float64
2   MajorAxisLength  13611 non-null  float64
3   MinorAxisLength  13611 non-null  float64
4   AspectRation     13611 non-null  float64
5   Eccentricity     13611 non-null  float64
6   ConvexArea       13611 non-null  int64 
7   EquivDiameter    13611 non-null  float64
8   Extent           13611 non-null  float64
9   Solidity         13611 non-null  float64
10  roundness        13611 non-null  float64
11  Compactness      13611 non-null  float64
12  ShapeFactor1     13611 non-null  float64
13  ShapeFactor2     13611 non-null  float64
14  ShapeFactor3     13611 non-null  float64
15  ShapeFactor4     13611 non-null  float64
16  Class            13611 non-null  object
dtypes: float64(14), int64(2), object(1)
memory usage: 1.8+ MB

Así pues, hay 15 características numéricas y una única columna de destino -Class. Sólo hay ~13k registros y no faltan valores. Esto simplificará mucho el entrenamiento.

Guardemos los nombres de las características en una lista aparte, ya que podríamos necesitarlos más adelante:

feature_names = beans.columns.tolist()

Ahora, vamos a crear un diagrama de pares de algunas características que parecen importantes:

import seaborn as sns

sns.pairplot(
   beans,
   vars=["Area", "MajorAxisLength", "MinorAxisLength", "Eccentricity", "roundness"],
   hue="Class",
);

Un gráfico de pares de algunas características del conjunto de datos Alubias secas.

Vemos algunas tendencias interesantes: principalmente, parece que las judías Bombay (verdes) se separan claramente de las demás en cuanto a sus medidas físicas.

Vamos a trazar también una matriz de correlaciones:

import matplotlib.pyplot as plt

correlation = beans.corr(numeric_only=True)

# Create a square heatmap with center at 0
sns.heatmap(correlation, center=0, square=True, cmap="coolwarm", vmin=-1, vmax=1)

plt.show()

Una matrxi de correlación para las características numéricas del conjunto de datos Alubias Secas

Tenemos unas cuantas características casi perfectamente correlacionadas y eso tiene sentido, ya que están relacionadas con mediciones físicas. Sin embargo, también tenemos unos cuantos pares de rasgos que no muestran ninguna correlación o muy poca.

Llegados a este punto, te dejo que continúes esta exploración e intentes encontrar algunas preguntas que responder sobre el conjunto de datos.

Ejecutar un trabajo de entrenamiento AutoML

Para iniciar un trabajo de entrenamiento AutoML, primero necesitamos un objeto conjunto de datos compatible con él:

ds = ai.TabularDataset.create(
   display_name="dry_bean_dataset", gcs_source=gcs_path
)
TabularDataset created. 
type(ds)
google.cloud.aiplatform.datasets.tabular_dataset.TabularDataset
ds.resource_name
'projects/10783853768/locations/us-central1/datasets/4978116960081412096'

Utilizamos el método TabularDataset.create para inicializarlo como ds. La IA de los vértices le asigna un nombre propio, accesible a través de su atributo resource_name.

Ahora, inicializamos el trabajo con la clase ai.AutoMLTabularTrainingJob. Requiere dos argumentos:

  • Un nombre para mostrar el trabajo
  • El objetivo de la tarea: la clasificación, en este caso.
job = ai.AutoMLTabularTrainingJob(
   display_name="dry-bean-classification",
   optimization_prediction_type="classification",
)

A continuación, ejecutamos el método run del trabajo:

model = job.run(
   dataset=ds,
   target_column="Class",
   training_fraction_split=0.8,
   validation_fraction_split=0.1,
   test_fraction_split=0.1,
   model_display_name="baseline-classification-model",
   disable_early_stopping=False,
)

Los parámetros del método se explican por sí mismos. El código tardará algún tiempo en terminar de ejecutarse (dependiendo de tu potencia de cálculo).

Si vas a la pestaña "DESARROLLO DE MODELOS > FORMACIÓN" de tu panel de control y haces clic en el nombre del trabajo, verás el progreso de la formación en directo. La imagen siguiente muestra que el entrenamiento está en la fase de preprocesamiento:

Un trabajo de entrenamiento en curso para Vertex AI

Observando los resultados

Una vez finalizado el entrenamiento, ve de nuevo a la pestaña de entrenamiento y haz clic en el nombre del modelo. Esta vez, habrá métricas de rendimiento enumeradas junto al modelo:

Un GIF que muestra las métricas de un modelo entrenado en Vertex AI

Como puedes ver, incluso para un modelo de referencia, tenemos métricas muy buenas, todas por encima de 0,90.

Desplegar un modelo AutoML y generar predicciones

Ahora podemos desplegar este model con una sola línea de código:

endpoint = model.deploy(machine_type="n1-standard-4")

El método deploy sólo requiere un único argumento: el tipo de máquina para ejecutar la inferencia. En realidad, no ejecutaré la línea anterior, ya que el despliegue conlleva costes adicionales mientras el modelo esté en línea.

Sin embargo, si lo ejecutas, el método deploy devuelve un objeto Endpoint al que podemos enviar peticiones:

prediction = endpoint.predict(
   [
       {
           "Area": "30099",
           "Perimeter": "638.8209999999999",
           "MajorAxisLength": "237.14191130827916",
           "MinorAxisLength": "162.3034300714102",
           "AspectRation": "1.4611022774068396",
           "Eccentricity": "0.7290928631259719",
           "ConvexArea": "30477",
           "EquivDiameter": "195.76321681302556",
           "Extent": "0.8036043251902283",
           "Solidity": "0.9875972044492568",
           "roundness": "0.9268374259664279",
           "Compactness": "0.8255108332939839",
           "ShapeFactor1": "0.007878730566074592",
           "ShapeFactor2": "0.002256976927384019",
           "ShapeFactor3": "0.6814681358857279",
           "ShapeFactor4": "0.9956946453228307",
       }
   ]
)

print(prediction)

Tiene un método predict que acepta una lista de muestras para predecir. Las muestras deben darse en formato JSON.

También puedes utilizar el panel de control para desplegar modelos. Si vas a la pestaña "REGISTRO DE MODELOS", verás que el modelo aparece allí. Haz clic en su nombre y elige la pestaña "DESPLIEGUE Y PRUEBA":

Pestaña DEPLOY y TEST del registro de modelos en Vertex AI

Si haces clic en el botón "DESPLIEGUE A ENDPOINT", accederás a otra página en la que podrás configurar la máquina para desplegar tu modelo. Pero antes de hacerlo, puedes probarlo en la zona situada debajo del botón de despliegue:

Un GIF que muestra cómo probar un modelo entrenado en Vertex AI utilizando la interfaz de usuario

Entrenamiento y despliegue de modelos personalizados en Vertex AI

El despliegue de modelos personalizados en Vertex AI es más difícil que el de los modelos AutoML y también cuesta más porque habrá algunos contenedores Docker implicados además de tu Workbench y los gastos de despliegue. Si te animas, ¡vamos!

Visión general de alto nivel del entrenamiento personalizado en Vertex AI

El entrenamiento personalizado implica empezar con un script de entrenamiento del modelo personalizado. En este guión, podemos hacer cualquier cosa siempre que

  • Carga datos del cubo GCS
  • Entrena un modelo con un marco ML (TF, PyTorch, Scikit-learn, XGBoost)
  • Opcionalmente, ajusta los hiperparámetros del modelo
  • Guárdalo en el cubo GCS para capturar el modelo entrenado o afinado.

A continuación, este script de formación debe convertirse en un contenedor Docker y luego enviarse al Registro de Contenedores de Google. A partir de ahí, podemos utilizar el SDK Python de Vertex AI o el panel de control para entrenar el modelo personalizado.

Crear una estructura de directorios para el código de entrenamiento

En primer lugar, vamos a crear la estructura de directorios tal y como recomienda este laboratorio de código de Google. En tu mesa de trabajo, cambia al terminal iniciando un nuevo lanzador:

Un GIF que muestra cómo cambiar al terminal en Jupyterlab en Workbench

A continuación, crea un nuevo directorio llamado "frijoles secos" y cámbiate en él:

$ mkdir dry-beans
$ cd dry-beans/

Dentro de dry-beans, crea otro directorio llamado trainer y dentro de él, el archivo Python train.py:

$ mkdir trainer
$ touch trainer/train.py

Crear un archivo Dockerfile

A continuación, crea un nuevo archivo Dockerfile:

$ touch Dockerfile

Abre el archivo y pega el siguiente contenido:

FROM gcr.io/deeplearning-platform-release/tf2-cpu.2-6
WORKDIR /

# Copies the trainer code to the docker image.
COPY trainer /trainer

# Install XGBoost
RUN pip install xgboost==1.6.2

# Sets up the entry point to invoke the trainer.
ENTRYPOINT ["python", "-m", "trainer.train"]

Este Dockerfile utiliza la imagen oficial de aprendizaje profundo proporcionada por Google Container Registry con TensorFlow instalado. El archivo copia nuestro directorio trainer y luego instala XGBoost. Al final, ejecutará nuestro script Python.

Escribir el guión de formación

El propio script debe cargar el conjunto de datos de judías secas de nuestro cubo GCP, entrenar un clasificador XGBoost en él y volver a guardar el modelo en el cubo. He escrito un sencillo script que realiza esas tareas en este gist de GitHub (no lo comparto aquí para ahorrar espacio).

Copia/pega el código del gist en train.py. Luego, de nuevo en el terminal, instala XGBoost, ya que no viene preinstalado en el Workbench que hayas elegido, y ejecuta el script:

$ pip install xgboost==1.6.2
$ python trainer/train.py

Construir una imagen Docker

Si el script se ejecuta sin errores, continúa introduciendo estas dos variables en el terminal:

$ PROJECT_ID='vertexai-tutorial-423010'  # Replace with your PROJECT_ID from earlier
$ IMAGE_URI="gcr.io/$PROJECT_ID/dry-beans:v1"  # This stays the same

Estas variables se utilizarán cuando construyamos el contenedor y así lo hacemos:

$ docker build ./ -t $IMAGE_URI

La construcción llevará algún tiempo. Cuando termine, ejecuta el contenedor para asegurarte de que todo funciona correctamente:

$ docker run $IMAGE_URI
Model trained successfully!
Model uploaded successfully!

Si recibes los mensajes de éxito anteriores, entonces el contenedor está listo para empujar:

$ docker push $IMAGE_URI

Crear un trabajo de formación personalizado

En este punto, la mayor parte de la batalla está hecha. Ahora podemos cambiar al panel de control y crear un trabajo de entrenamiento personalizado utilizando el contenedor que acabamos de empujar. Así que dirígete a la pestaña "REGISTRO DE MODELOS" y haz clic en "CREAR":

Crear un nuevo trabajo de entrenamiento personalizado en Vertex AI

Para el método de entrenamiento, elige las opciones "Conjunto de datos no gestionado" y "Entrenamiento personalizado". En el siguiente panel (Detalles del modelo), dale un nombre al modelo -dry-beans-classifier.

En el panel del contenedor de entrenamiento:

Elegir una imagen contenedora para un trabajo de entrenamiento personalizado en Vertex AI

Selecciona el contenedor que hemos empujado para la imagen personalizada y el cubo cloud-ai-platform para la salida del modelo. A continuación, haz clic en Continuar hasta que llegues al panel "Computación y precios":

Panel de cálculo y precios del formulario de trabajo de entrenamiento personalizado en Vertex AI

Elige una máquina n1 estándar con 4 CPUs y, por último, haz clic en "INICIAR ENTRENAMIENTO". A continuación, pasa a la pestaña "FORMACIÓN" de tu panel de control.

Una captura de pantalla de la pestaña de entrenamiento del panel de control de la IA de Vértice.

En este punto, verás una de dos cosas:

  1. El estado de entrenamiento fallido
  2. El estado de formación en curso

Yo tengo el primero, así que investiguemos por qué haciendo clic en el nombre del modelo:

Un mensaje de error de un trabajo de entrenamiento personalizado en Vertex AI

El error me dice que he superado el número de CPUs de entrenamiento personalizadas permitidas. He profundizado en el tema y lo que he encontrado es muy decepcionante.

Normalmente, GCP da al menos 20 cuotas de CPU para cualquier región de cálculo, pero tras comprobar mi perfil, descubrí que mi cuota era sólo 1. Esto significaba que no podía ejecutar ningún trabajo de entrenamiento personalizado, ya que todas las máquinas que ofrece Google tienen al menos dos CPU.

Intenté aumentar mi cuota utilizando las respuestas de este hilo de StackOverflow, pero no funcionaron. El mensaje que recibí fue que a los nuevos usuarios de Vertex AI sólo se les permitía una única CPU. Si quisiera aumentar mi cuota, tendría que enviar un ticket de soporte, que, como resulta, no es gratuito (necesitas un contrato de soporte de pago).

Así que, si tienes mala suerte como yo, prueba las respuestas del hilo SO. A algunas personas les han funcionado, pero si a ti no, tu única opción es ponerte en contacto con el servicio de asistencia.

Pero si tienes suerte y termina tu entrenamiento, entonces podrás desplegar el modelo siguiendo los mismos pasos que he descrito para los modelos AutoML.

Conclusión

Vertex AI es una plataforma masiva con muchas funciones. En este tutorial, apenas hemos arañado la superficie, pero hemos cubierto los bloques de construcción más importantes de la plataforma. Si dominas la creación de cubos de almacenamiento, bancos de trabajo y trabajos de formación, estarás bien equipado para explorar el resto de la plataforma.

Si quieres saber más sobre los servicios de Google Cloud, consulta estos recursos relacionados recomendados:

Temas

¡Continúa hoy tu viaje por la IA!

curso

Large Language Models (LLMs) Concepts

2 hr
29.3K
Discover the full potential of LLMs with our conceptual course covering LLM applications, training methodologies, ethical considerations, and latest research.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

7 proyectos de IA para todos los niveles

Desarrolla tu portafolio y mejora tus habilidades para crear soluciones innovadoras a problemas complejos trabajando en proyectos de IA.
Abid Ali Awan's photo

Abid Ali Awan

8 min

tutorial

Tutorial de la API de OpenAI Assistants

Una visión completa de la API Assistants con nuestro artículo, que ofrece una mirada en profundidad a sus características, usos en la industria, guía de configuración y las mejores prácticas para maximizar su potencial en diversas aplicaciones empresariales.
Zoumana Keita 's photo

Zoumana Keita

14 min

tutorial

Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas

Este tutorial te presenta la API de OpenAI, sus casos de uso, un enfoque práctico para utilizar la API y todas las prácticas recomendadas que debes seguir.
Arunn Thevapalan's photo

Arunn Thevapalan

13 min

tutorial

Cómo ejecutar Stable Diffusion:

Explora la IA generativa con nuestro tutorial introductorio sobre Stable Diffusion. Aprende a ejecutar el modelo de aprendizaje profundo en línea y localmente para generar imágenes detalladas.
Kurtis Pykes 's photo

Kurtis Pykes

7 min

tutorial

Visión GPT-4: Guía completa para principiantes

Este tutorial le presentará todo lo que necesita saber sobre GPT-4 Vision, desde cómo acceder a él hasta ejemplos prácticos del mundo real y sus limitaciones.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

Ver másVer más