Registra modelos en una ejecución de experimento

Para que un modelo se pueda seguir, compartir y analizar con facilidad, el SDK de Vertex AI para Python proporciona una API que serializa un modelo de aprendizaje automático en una clase ExperimentModel y registra el modelo en Vertex AI Experiments.

Después de elegir el mejor modelo para usar, puedes registrarlo desde Vertex AI Experiments en Vertex AI Model Registry.

Los frameworks compatibles son scikit-learn, XGBoost y Tensorflow.

Guardar y registrar el modelo de AA

Guardar modelos

El SDK de Vertex AI proporciona el método save_model para serializar un modelo de AA, subir el modelo a Cloud Storage y representarlo como un artefacto de Vertex ML Metadata.

Python

def save_model_sample(
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(project=project, location=location)

    aiplatform.save_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
    )

  • project: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles
  • model: (Obligatorio). Un modelo de aprendizaje automático. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • artifact_id: Opcional Es el ID de recurso del artefacto. Este ID debe ser único a nivel global en metadataStore. Puede tener hasta 63 caracteres y los caracteres válidos son [a-z0-9_-]. El primer carácter no puede ser un número ni un guion.
  • uri: Opcional Un directorio de GCS en el que se guarda el archivo del modelo. Si no se proporciona un URI, se usa gs://default-bucket/timestamp-uuid-frameworkName-model. Si no se configura un bucket de etapa de pruebas predeterminado, se crea un bucket nuevo.
  • input_example: Opcional Cada modelo toma datos de entrada y, luego, produce una predicción. Cada modelo acepta un formato de entrada en particular (por ejemplo, un número, una cadena o un array 2d) y se almacena como un archivo yaml en el URI de gcs. Acepta la lista, el diccionario, pd.DataFrame y np.ndarray. El valor dentro de una lista debe ser un escalar o una lista. El valor dentro de un diccionario debe ser un escalar, una lista o un np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: Es el nombre visible del artefacto.

Modelos de registro

El SDK de Vertex AI SDK proporciona un método log_model , que organiza save_model y un paso adicional para registrar el artefacto de Vertex ML Metadata en la ejecución del experimento local. El método log_model para administrar y analizar varios modelos de AA en Vertex AI Experiments.

Python

def log_model_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,  # noqa: F821
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
    )

  • experiment_name: Proporciona el nombre del experimento. Para encontrar tu lista de experimentos en la consola de Google Cloud, selecciona "Experimentos" en la barra de navegación de secciones.
  • run_name: Especifica un nombre de ejecución.
  • project: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.
  • model: Obligatorio. Un modelo de aprendizaje automático. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • uri: Opcional Un directorio de GCS en el que se guarda el archivo del modelo. Si no se proporciona un URI, se usa gs://default-bucket/timestamp-uuid-frameworkName-model. Si no se configura un bucket de etapa de pruebas predeterminado, se crea un bucket nuevo.
  • input_example: Opcional Cada modelo toma datos de entrada y, luego, produce una predicción. Cada modelo acepta un formato de entrada en particular (por ejemplo, un número, una cadena o un array 2d) y se almacena como un archivo yaml en el URI de gcs. Acepta la lista, el diccionario, pd.DataFrame y np.ndarray. El valor dentro de una lista debe ser un escalar o una lista. El valor dentro de un diccionario debe ser un escalar, una lista o un np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: Opcional El nombre visible del artefacto.

Realice un seguimiento de ExperimentModel

Obtén el modelo de experimento

Para usar get_experiment_model a fin de mostrar un modelo guardado, pásale el ID del artefacto del modelo guardado.

Python

def get_experiment_model_sample(
    project: str,
    location: str,
    artifact_id: str,
) -> "ExperimentModel":  # noqa: F821
    aiplatform.init(project=project, location=location)
    experiment_model = aiplatform.get_experiment_model(artifact_id=artifact_id)

    return experiment_model

Obtén modelos de experimentos

El método get_experiment_models obtiene una lista de todas los ExperimentModel que se registran en una ejecución de experimento en particular.

Python

def get_experiment_run_models_sample(
    run_name: str,
    experiment: Union[str, aiplatform.Experiment],
    project: str,
    location: str,
) -> List["ExperimentModel"]:  # noqa: F821
    experiment_run = aiplatform.ExperimentRun(
        run_name=run_name, experiment=experiment, project=project, location=location
    )

    return experiment_run.get_experiment_models()

  • run_name: Especifica un nombre de ejecución.
  • experiment: Proporciona el nombre del experimento. Para encontrar tu lista de experimentos en la consola de Google Cloud, selecciona "Experimentos" en la barra de navegación de secciones.
  • project: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.

Obtén información de modelos

El método get_model_info muestra los metadatos del modelo de una instancia de ExperimentModel determinada, por ejemplo, la clase de modelo, el tipo de framework.

Python

def get_model_info_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Dict[str, Any]:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.get_model_info()

Carga ExperimentModel

Carga el modelo

El método load_experiment_model te ayuda a deserializar una instancia ExperimentModel de nuevo al modelo de AA original.

Python

def load_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"]:  # noqa: F821:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.load_model()

  • artifact_id: (Obligatorio). El ID del recurso del ExperimentModel existente. Ejemplo: artifact_id="my-sklearn-model"
  • project: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.

Registra ExperimentModel

Registra el modelo guardado

La API register_experiment_model permite registrar el modelo que se consideró mejor en Vertex AI Model Registry con una cantidad mínima de configuración. La API elige automáticamente un contenedor de predicción compilado previamente en función del marco de trabajo y la versión del modelo.

Python

def register_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
    display_name: str,
) -> aiplatform.models.Model:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.register_model(display_name=display_name)

  • artifact_id: (Obligatorio). El ID del recurso del ExperimentModel existente.
  • project: El ID del proyecto. Puedes encontrar estos ID en la página de bienvenida de la consola de Google Cloud.
  • location: Consulta Lista de ubicaciones disponibles.
  • display_name: Opcional El nombre del modelo registrado definido por el usuario.

Visualiza la lista de ejecuciones de experimentos en la consola de Google Cloud

  1. En la consola de Google Cloud, ve a la página Experimentos.
    <a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="V3Ae1hvcBOij4KvUNiRrMltigmNHgUGOXn/QVSGplOhBlpxunv8WHL3F/z3VuS9rwbZOYpOQCXa+v4aZ0dt03w==" target="console" track-name="consoleLink" track-type="tasks" }="">Ir a Experimentos
    Aparece una lista de experimentos. </a{:>
  2. Selecciona el experimento que quieres verificar.
    Aparecerá una lista de ejecuciones.

Página de lista de experimentos de Vertex AI

¿Qué sigue?

Muestra de notebook relevante

Entrada de blog