Exportar artefactos de modelo para realizar predicciones

Google Distributed Cloud (GDC) con aislamiento de aire ofrece contenedores precompilados para entregar predicciones en línea de modelos entrenados con los siguientes frameworks de aprendizaje automático (AA):

  • TensorFlow
  • PyTorch

Para usar uno de estos contenedores precompilados, debes guardar el modelo como uno o más artefactos del modelo que cumplan con los requisitos del contenedor precompilado. Estos requisitos se aplican sin importar si los artefactos del modelo se crean en Distributed Cloud o no.

Antes de comenzar

Antes de exportar los artefactos del modelo, sigue estos pasos:

  1. Crea y entrena un modelo de predicción que se dirija a uno de los contenedores compatibles.
  2. Si no tienes un proyecto, configura uno para Vertex AI.
  3. Trabaja con tu operador de infraestructura (IO) para crear el clúster de predicción.

    La IO crea el clúster por ti, lo asocia con tu proyecto y asigna los grupos de nodos adecuados dentro del clúster, teniendo en cuenta los recursos que necesitas para las predicciones en línea.

  4. Crea un bucket de almacenamiento para tu proyecto.

  5. Crea la cuenta de servicio de Vertex AI Default Serving (vai-default-serving-sa) en tu proyecto. Para obtener más información sobre las cuentas de servicio, consulta Configura cuentas de servicio.

  6. Otorga el rol de visualizador de objetos del bucket del proyecto (project-bucket-object-viewer) a la cuenta de servicio de Vertex AI Default Serving (vai-default-serving-sa) para el bucket de almacenamiento que creaste. Para obtener información sobre cómo otorgar acceso bucket a cuentas de servicio, consulta Otorga bucket buckets.

  7. Para obtener los permisos que necesitas para acceder a la Predicción en línea, pídele al administrador de IAM del proyecto que te otorgue el rol de usuario de predicción de Vertex AI (vertex-ai-prediction-user). Para obtener información sobre este rol, consulta Cómo preparar permisos de IAM.

Requisitos específicos del framework para exportar a contenedores compilados previamente

Según el framework de AA que desees usar para la predicción, debes exportar artefactos de modelo en diferentes formatos. En las siguientes secciones, se describen los formatos de modelo aceptables para cada framework de AA.

TensorFlow

Si usas TensorFlow para entrenar un modelo, exporta el modelo como un directorio de modelos guardados de TensorFlow.

Hay varias maneras de exportar SavedModels desde el código de entrenamiento de TensorFlow. En la siguiente lista, se describen algunas opciones que funcionan para varias APIs de TensorFlow:

Si no usas Keras ni un Estimador, asegúrate de usar la etiqueta serve y la firma serving_default cuando exportes tu modelo guardado para asegurarte de que Vertex AI puede usar tus artefactos de modelo para entregar predicciones. Keras y Estimator controlan esta tarea automáticamente. Obtén más información para especificar firmas durante la exportación.

Para entregar predicciones con estos artefactos, crea un Model con el contenedor compilado previamente para la predicción que coincida con la versión de TensorFlow que usaste para el entrenamiento.

PyTorch

Si usas PyTorch para entrenar un modelo, debes empaquetar los artefactos del modelo, incluido un controlador predeterminado o personalizado, mediante la creación de un archivo de almacenamiento con Torch model archiver. Las imágenes de PyTorch compiladas con anterioridad esperan que el archivo se llame model.mar, así que asegúrate de establecer el nombre del modelo como model.

Para obtener información sobre cómo optimizar el uso de memoria, la latencia o la capacidad de procesamiento de un modelo de PyTorch entregado con TorchServe, consulta la Guía de rendimiento de PyTorch.

Sube tu modelo

Debes subir tu modelo al bucket de almacenamiento que creaste. Para obtener más información sobre cómo subir objetos a buckets de almacenamiento, consulta Sube y descarga objetos de almacenamiento en proyectos.

La ruta de acceso al bucket de almacenamiento de tu modelo debe tener la siguiente estructura:

s3://BUCKET_NAME/MODEL_ID/MODEL_VERSION_ID

Para obtener detalles sobre la exportación, consulta los requisitos específicos del framework para exportar a contenedores compilados previamente.