Vertex AI ofrece un servicio de entrenamiento gestionado que te permite poner en marcha el entrenamiento de modelos a gran escala. Puedes habilitar el seguimiento de experimentos con el SDK de Vertex AI para Python para registrar parámetros y métricas de rendimiento al enviar la tarea de entrenamiento personalizada.
Esta función no está disponible cuando:
- enviar un trabajo de entrenamiento a través de la Google Cloud consola o de la CLI de Google Cloud,
- usar TPUs en el trabajo de entrenamiento.
- usar el entrenamiento distribuido en la tarea de entrenamiento.
Se admiten tanto los contenedores de entrenamiento prediseñados como los contenedores personalizados. Requisito: Tener instalada una versión del SDK de Vertex AI para Python superior a la 1.24.1 para google-cloud-aiplatform. Si vas a entrenar con TensorFlow, asegúrate de que esté instalada una versión de protobuf anterior a la 4.0 para evitar conflictos.
Hay dos opciones para registrar datos en Vertex AI Experiments: el registro automático y el registro manual.
Se recomienda el registro automático si usas uno de estos frameworks compatibles: Fastai, Gluon, Keras, LightGBM, Pytorch Lightning, Scikit-learn, Spark, Statsmodels o XGBoost. Si tu framework no es compatible o hay métricas personalizadas que quieres registrar en la ejecución de tu experimento, puedes adaptar manualmente tu secuencia de comandos de entrenamiento para registrar parámetros, métricas y artefactos.
Datos de AutoLog
Para habilitar el registro automático, solo tienes que definir enable_autolog=True
.
Consulta from_local_script
.
Puedes crear un experimento o no. Si no se especifica ningún nombre de experimento, se creará uno.
El SDK de Vertex AI para Python se encarga de crear recursos ExperimentRun por ti.
Python
project
: . Puedes encontrar estos IDs de proyecto en la página de Google Cloud bienvenida de la consola.location
: consulta la lista de ubicaciones disponibles.staging_bucket
: el nombre que le has dado al segmento; por ejemplo,my_bucket
.display_name
: nombre definido por el usuario del CustomJob.script_path
: la ruta, relativa al directorio de trabajo de tu sistema de archivos local, de la secuencia de comandos que es el punto de entrada de tu código de entrenamiento.container_uri
: El URI de la imagen del contenedor de entrenamiento puede ser un Vertex AI contenedor de entrenamiento precompilado o un contenedor personalizado.service_account
: Consulta Crear una cuenta de servicio con los permisos necesarios.experiment
: ponle un nombre al experimento. El experimento debe tener una instancia de TensorBoard. Puedes consultar la lista de experimentos en la consola. Para ello, selecciona Experimentos en la barra de navegación de la sección. Google Cloudexperiment_run
: (Opcional) Especifica un nombre de ejecución. Si no se especifica, se crea una ejecución automáticamente.
Registrar datos manualmente
Usa la opción de registrar datos manualmente para incorporar tu secuencia de comandos de entrenamiento.
Para cambiar el guion de formación, sigue estos pasos:
import os
import pickle
import pandas as pd
from sklearn.linear_model import LinearRegression
# To use manual logging APIs, import aiplatform
from google.cloud import aiplatform
# Create Dataset
data = {'A': [1.1,2.2,4.1,5.2],
'B': [200, 212.12, 22, 123],
'Y': [1,0,1,0]}
df = pd.DataFrame(data)
X = df[['A', 'B']]
Y = df['Y']
# Train model
model = LinearRegression().fit(X, Y)
# Save the model to gcs
model_dir = os.getenv('AIP_MODEL_DIR')
model_gcs = model_dir.replace('gs://', '/gcs/')
model_name = 'model.joblib'
os.mkdir(model_gcs)
f = open(os.path.join(model_gcs, model_name), 'wb')
pickle.dump(model, f)
f = open(os.path.join(model_gcs, model_name), 'wb')
pickle.dump(model, f)
# Call aiplatform's logging APIs to save data to Vertex AI Experiments.
params = model.get_params()
aiplatform.log_params(params)
metrics = {"training_accuracy": model.score(X,Y)}
aiplatform.log_metrics(metrics)
Puedes crear un experimento o no. Si no se especifica ningún nombre de experimento, se creará uno automáticamente.
Para obtener más información, consulta el artículo Registrar datos manualmente en una ejecución de un experimento.
Python
project
: . Puedes encontrar estos IDs de proyecto en la página de Google Cloud bienvenida de la consola.location
: consulta la lista de ubicaciones disponibles.staging_bucket
: el nombre que le has dado al segmento; por ejemplo,my_bucket
.display_name
: nombre definido por el usuario del CustomJob.script_path
: la ruta, relativa al directorio de trabajo de tu sistema de archivos local, de la secuencia de comandos que es el punto de entrada de tu código de entrenamiento.container_uri
: El URI de la imagen del contenedor de entrenamiento puede ser un contenedor de entrenamiento precompilado de Vertex AI o un contenedor personalizado. Si utilizas un contenedor personalizado, asegúrate de quegoogle-cloud-aiplatform>=1.24.0
esté instalado.service_account
: Consulta Crear una cuenta de servicio con los permisos necesarios.experiment
: ponle un nombre al experimento. Puedes consultar tu lista de experimentos en la consola. Para ello, selecciona Experimentos en la barra de navegación de la sección. Google Cloudexperiment_run
: especifica un nombre de ejecución. Si no se especifica, se creará automáticamente.
Ver parámetros y métricas registrados automáticamente
Usa el SDK de Vertex AI para Python para comparar ejecuciones y obtener datos de ejecuciones. La Google Cloud consola ofrece una forma sencilla de comparar estas ejecuciones.