Prácticas recomendadas para implementar el aprendizaje automático en Google Cloud

Last reviewed 2022-12-15 UTC

En este documento, se presentan prácticas recomendadas para implementar el aprendizaje automático (AA) en Google Cloud, con un enfoque en modelos de entrenamiento personalizado basados en tus datos y código. Proporcionamos recomendaciones sobre cómo desarrollar un modelo con entrenamiento personalizado a lo largo del flujo de trabajo de aprendizaje automático, incluidas acciones clave y vínculos para lecturas adicionales.

En el siguiente diagrama, se proporciona una descripción general de alto nivel de las etapas del flujo de trabajo del AA que se aborda en este documento, en las que se incluye lo siguiente:

  1. Desarrollo de AA
  2. Procesamiento de datos
  3. Entrenamiento para poner en funcionamiento
  4. Implementación y entrega de modelos
  5. Organización del flujo de trabajo del AA
  6. Organización de artefactos
  7. Supervisión de modelos

Flujo de trabajo del aprendizaje automático en Google Cloud

Este documento no es una lista exhaustiva de recomendaciones; su objetivo es ayudar a los científicos de datos y a los arquitectos de aprendizaje automático a comprender el alcance de las actividades que involucran el uso del AA en Google Cloud y a planificar en función de estas. Si bien las alternativas de desarrollo de AA, como AutoML, se mencionan en Usa herramientas y productos recomendados, en este documento, nos enfocamos en los modelos de entrenamiento personalizado.

Antes de seguir las prácticas recomendadas de este documento, te recomendamos que leas la Introducción a Vertex IA.

Para los fines de este documento, se supone lo siguiente:

  • Usas principalmente servicios de Google Cloud. Los enfoques híbridos y locales no se abordan en este documento.

  • Planeas recopilar datos de entrenamiento y almacenarlos en Google Cloud.

  • Tienes un conocimiento intermedio de aprendizaje automático, herramientas de macrodatos y procesamiento previo de datos, además de estar familiarizado con Cloud Storage, BigQuery y Google Cloud.

Si eres nuevo en el aprendizaje automático, consulta el Curso intensivo de aprendizaje automático de Google.

En la siguiente tabla, se enumeran las herramientas y los productos recomendados para cada fase del flujo de trabajo del AA, como se describe en este documento:

Paso del flujo de trabajo de aprendizaje automático Herramientas y productos recomendados
Configuración del entorno del AA
Desarrollo del AA
Procesamiento de datos
Entrenamiento para poner en funcionamiento
Implementación y entrega de modelos
Organización del flujo de trabajo del AA
Organización de artefactos
Supervisión de modelos

Google ofrece AutoML, Previsión de Vertex AI y BigQuery ML como alternativas de rutina de entrenamiento compiladas previamente a las soluciones de modelos de entrenamiento personalizado de Vertex AI. En la siguiente tabla, se proporcionan recomendaciones sobre cuándo usar estas opciones para Vertex AI.

Entorno de AA Descripción Elige este entorno si...
BigQuery ML BigQuery ML reúne datos, infraestructura y tipos de modelos predefinidos en un solo sistema.
AutoML (en el contexto de Vertex AI) AutoML proporciona rutinas de entrenamiento para problemas comunes, como la clasificación de imágenes y la regresión tabular. Tú manejas casi todos los aspectos del entrenamiento y la entrega de un modelo, como la elección de una arquitectura, el ajuste de hiperparámetros y el aprovisionamiento de máquinas.
Modelos de entrenamiento personalizado de Vertex AI Vertex te permite ejecutar tus propias rutinas de entrenamiento personalizadas y, además, implementar modelos de cualquier tipo en una arquitectura sin servidores. Vertex AI ofrece servicios adicionales, como ajuste y supervisión de hiperparámetros, para facilitar el desarrollo de un modelo. Consulta Elige un método de entrenamiento personalizado.
  • Tu problema no coincide con los criterios enumerados en esta tabla para BigQuery ML o AutoML.
  • Ya ejecutas el entrenamiento a nivel local o en otra plataforma en la nube y necesitas coherencia en las plataformas.

Configuración del entorno de aprendizaje automático

Usa los notebooks de Vertex AI Workbench para la experimentación y el desarrollo

Sin importar las herramientas, te recomendamos usar notebooks de Vertex AI para la experimentación y el desarrollo, incluida la escritura del código, iniciar trabajos, ejecutar consultas y verificar el estado. Las instancias de notebook te permiten acceder a todos los servicios de inteligencia artificial (IA) y datos de Google Cloud de una manera simple y reproducible.

Las instancias de notebook también te ofrecen un conjunto seguro de patrones de software y acceso listos para usar. Es una práctica común personalizar las propiedades de Google Cloud, como Herramientas de redes y Cloud Identity and Access Management, y el software (a través de un contenedor) asociado a una instancia de notebook. Consulta Componentes de Vertex AI y la Introducción a los notebooks administrados por el usuario para obtener más información.

Crea una instancia de notebook para cada miembro del equipo

Crea una instancia de notebook administrada por el usuario para cada miembro de tu equipo de ciencia de datos. Si un miembro de su equipo participa en varios proyectos, en especial en algunos que tengan dependencias diferentes, recomendamos usar varias instancias de notebook y tratar a cada una como un lugar de trabajo virtual. Ten en cuenta que puedes detener las instancias de notebook cuando no se usan.

Almacena tus recursos y artefactos del AA según tu política corporativa

El control de acceso más simple es almacenar los artefactos y los recursos de Vertex AI y sin procesar, como conjuntos de datos y modelos, en el mismo proyecto de Google Cloud. Por lo general, tu corporación tiene políticas que controlan el acceso. En los casos en que tus recursos y artefactos se almacenan en proyectos, puedes configurar tu control de acceso corporativo entre proyectos con la administración de identidades y accesos (IAM).

Usa el SDK de Vertex AI para Python

Usa el SDK de Vertex AI para Python, una forma de Python de utilizar Vertex IA para tu flujo de trabajo de compilación de modelos de extremo a extremo, que funciona sin problemas con tus frameworks de AA favoritos, incluido PyTorch, TensorFlow, XGBoost y scikit-learn.

Como alternativa, puedes usar la consola de Google Cloud, que admite la funcionalidad de Vertex AI como interfaz de usuario a través del navegador.

Desarrollo del aprendizaje automático

El desarrollo de aprendizaje automático aborda la preparación de datos, la experimentación y la evaluación del modelo. Cuando se resuelve un problema de aprendizaje automático, por lo general, se necesita compilar y comparar muchos modelos diferentes para descubrir lo que funciona mejor.

Por lo general, los científicos de datos entrenan modelos mediante diferentes arquitecturas, conjuntos de datos de entrada, hiperparámetros y hardware. Los científicos de datos evalúan los modelos resultantes mediante las métricas de rendimiento agregadas, como la exactitud, la precisión y la recuperación en conjuntos de datos de prueba. Por último, los científicos de datos evalúan el rendimiento de los modelos con respecto a subconjuntos particulares de sus datos, diferentes versiones de modelos y diferentes arquitecturas de modelos.

Prepara los datos de entrenamiento

Los datos que se usan para entrenar un modelo pueden provenir de cualquier cantidad de sistemas, por ejemplo, registros de un sistema de servicio en línea, imágenes de un dispositivo local o documentos que se extraen de la Web.

Sin importar el origen de los datos, extrae datos de los sistemas de origen y conviértelos al formato y almacenamiento (independientemente de la fuente operativa) optimizados para el entrenamiento del AA. Si deseas obtener más información sobre cómo preparar los datos de entrenamiento para su uso con Vertex AI, consulta Prepara los datos de entrenamiento a fin de usarlos con Vertex AI.

Almacena datos estructurados y semiestructurados en BigQuery

Si trabajas con datos estructurados o semiestructurados, te recomendamos que almacenes todos los datos en BigQuery, de acuerdo con la recomendación de BigQuery para la estructura del proyecto. En la mayoría de los casos, también puedes almacenar datos procesados intermedios en BigQuery. Para obtener la máxima velocidad, es mejor almacenar datos materializados en lugar de usar vistas o subconsultas en los datos de entrenamiento.

Lee datos de BigQuery con la API de almacenamiento de BigQuery Para el seguimiento de artefactos, considera usar un conjunto de datos tabular administrado. En la siguiente tabla, se enumeran las herramientas de Google Cloud que facilitan el uso de la API:

Si usas uno de los siguientes… Usa esta herramienta de Google Cloud
TensorFlow o Keras Lector de tf.data.dataset de BigQuery
TFX Cliente de BigQuery
Dataflow Conector de E/S de BigQuery
Cualquier otro framework (como PyTorch, XGBoost o scilearn-kit) Biblioteca cliente de Python de BigQuery

Almacena imágenes, videos, audio y datos no estructurados en Cloud Storage

Almacena estos datos en formatos de contenedores grandes en Cloud Storage. Esto se aplica a archivos TFRecord fragmentados si usas TensorFlow o a archivos Avro si usas cualquier otro framework.

Combina muchas imágenes, videos o clips de audio individuales en archivos grandes, ya que esto mejorará la capacidad de procesamiento de lectura y escritura en Cloud Storage. Intenta subir archivos de al menos 100 MB y entre 100 y 10,000 fragmentos.

Si quieres habilitar la administración de datos, usa los buckets y directorios de Cloud Storage para agrupar los fragmentos. Para obtener más información, consulta ¿Qué es Cloud Storage?

Usa Vertex AI Data Labeling para datos no estructurados

Es posible que necesites seres personas para proporcionar etiquetas a tus datos, en especial cuando se trata de datos no estructurados. Usa Vertex AI Data Labeling para este trabajo. Puedes contratar a tus propios etiquetadores y usar el software de Google Cloud para administrar su trabajo, o puedes usar los etiquetadores internos de Google para la tarea. Para obtener más información, consulta Solicita el etiquetado de datos.

Usa Vertex AI Feature Store con datos estructurados

Cuando entrenes un modelo con datos estructurados, sin importar dónde lo hagas, sigue estos pasos:

  1. Busca en Vertex AI Feature Store para determinar si los atributos existentes satisfacen tus requisitos.

    1. Abre Vertex AI Feature Store y realiza una búsqueda para ver si ya existe un atributo que se relacione con tu caso de uso o que abarque la señal que te interesa pasar al modelo.

    2. Si hay atributos en Vertex AI Feature Store que deseas usar, recupéralas con la capacidad de entrega por lotes de Vertex Feature Store.

  2. Crea un atributo nuevo. Si Vertex AI Feature Store no tiene los atributos que necesitas, crea un atributo nuevo con los datos de tu data lake.

    1. Recupera datos sin procesar de tu data lake y escribe tus secuencias de comandos para realizar el procesamiento de atributos y la ingeniería necesarios.

    2. Une los valores de atributos que recuperaste de Vertex AI Feature Store y los valores de atributos nuevos que creaste a partir del data lake. La combinación de esos valores de atributos produce el conjunto de datos de entrenamiento.

    3. Configura un trabajo periódico para calcular los valores actualizados del nuevo atributo. Cuando determines que un atributo es útil y quieras ponerla en producción, configura un trabajo programado con regularidad con la cadencia necesaria para calcular los valores actualizados de ese atributo y transferirla a Vertex AI Feature Store. Si agregas tu atributo nueva a Vertex AI Feature Store, tendrás una solución automática para realizar entregas en línea de los atributos (para casos de uso de predicción en línea), y puedes compartir tu atributo con otras personas en la organización que pueda obtener valor de sus propios modelos de AA.

Para obtener más información, consulta Vertex AI Feature Store.

Evita almacenar datos en el almacenamiento en bloque

Evita almacenar datos en el almacenamiento en bloque, como sistemas de archivos de red o en discos duros de máquina virtual (VM). Esas herramientas son más difíciles de administrar que Cloud Storage o BigQuery y, a menudo, presentan desafíos en el ajuste del rendimiento. Del mismo modo, evita leer datos directamente desde bases de datos como Cloud SQL. En su lugar, almacena datos en BigQuery y Cloud Storage. Para obtener más información, consulta la documentación de Cloud Storage y la Introducción a la carga de datos para BigQuery.

Usa Vertex AI TensorBoard y Vertex AI Experiments para analizar experimentos

Cuando desarrolles modelos, usa Vertex AI TensorBoard para ver y comparar experimentos específicos, por ejemplo, basados en hiperparámetros. Vertex AI TensorBoard es un servicio administrado de Vertex AI TensorBoard preparado para empresas con una solución rentable y segura que permite que los científicos de datos y los investigadores de AA colaboren con facilidad mediante el seguimiento, la comparación y el uso compartido de sus experimentos sin interrupciones. Vertex AI TensorBoard permite realizar un seguimiento de las métricas del experimento, como la pérdida y precisión, con el paso del tiempo, visualizar el grafo del modelo, proyectar incorporaciones en un espacio de menor dimensión y mucho más.

Usa Vertex AI Experiments para integrar los metadatos de Vertex ML y registrar y compilar vínculos en los parámetros, las métricas y los artefactos de los conjuntos de datos y modelos.

Entrena un modelo dentro de una instancia de notebook para conjuntos de datos pequeños

Entrenar un modelo dentro de la instancia de notebook puede ser suficiente para conjuntos de datos pequeños o para subconjuntos de un conjunto más grande de datos. Puede ser útil usar el servicio de capacitación para conjuntos de datos más grandes o para el entrenamiento distribuido. Se recomienda usar el servicio de entrenamiento de Vertex AI para producir el entrenamiento, incluso en conjuntos de datos pequeños, si el entrenamiento se realiza de forma programada o en respuesta a la llegada de datos adicionales.

Maximiza la exactitud predictiva de tu modelo con el ajuste de hiperparámetros

Para maximizar la precisión predictiva de tu modelo, usa el ajuste de hiperparámetros, el optimizador de modelos automatizado que ofrece Vertex AI Training, que aprovecha la infraestructura de procesamiento de Google Cloud y Vertex AI Vizier para probar diferentes configuraciones de hiperparámetros cuando se entrena tu modelo. El ajuste de hiperparámetros elimina la necesidad de ajustar de forma manual los hiperparámetros durante varias ejecuciones de entrenamiento para obtener los valores óptimos.

Para obtener más información sobre el ajuste de hiperparámetros, consulta la Descripción general del ajuste de hiperparámetros y Usa el ajuste de hiperparámetros.

Usa una instancia de notebook para comprender tus modelos

Usa una instancia de notebook para evaluar y comprender tus modelos. Además de las bibliotecas comunes integradas, como las instancias de scikit-learn, las instancias de notebook incluyen la Herramienta What-if (WIT) y la Herramienta de interpretación de idiomas (LIT). WIT te permite analizar de forma interactiva los modelos para detectar sesgos mediante múltiples técnicas, mientras que LIT te permite comprender el comportamiento del modelo de procesamiento de lenguaje natural a través de una herramienta visual, interactiva y extensible.

Usa atribuciones de atributos para obtener estadísticas sobre las predicciones de los modelos

Vertex Explainable AI es una parte integral del proceso de implementación del AA y ofrece atribuciones de atributos para proporcionar estadísticas sobre por qué los modelos generan predicciones. Si se detalla la importancia de cada atributo que usa un modelo como entrada para realizar una predicción, Vertex Explainable AI te ayuda a comprender mejor el comportamiento de tu modelo y generar confianza en tus modelos.

Vertex Explainable AI admite modelos personalizados con entrenamiento según los datos de imágenes y tabulares.

Para obtener más información sobre Vertex Explainable AI, consulta lo siguiente:

Procesamiento de datos

El enfoque recomendado para procesar tus datos depende del framework y los tipos de datos que uses. En esta sección, se proporcionan recomendaciones de alto nivel para situaciones comunes.

Usar BigQuery para procesar datos estructurados y semiestructurados

Utiliza BigQuery para almacenar datos estructurados o semiestructurados sin procesar. Si compilas tu modelo con BigQuery ML, usa las transformaciones integradas en BigQuery para los datos de procesamiento previo. Si usas AutoML, usa las transformaciones integradas en AutoML para los datos de procesamiento previo. Si compilas un modelo personalizado, el uso de las transformaciones de BigQuery puede ser el método más rentable.

Usa Dataflow para procesar datos

Con grandes volúmenes de datos no estructurados, considera usar Dataflow, que usa el modelo de programación de Apache Beam. Puedes usar Dataflow para convertir datos no estructurados en formatos de datos binarios, como TFRecord, lo que puede mejorar el rendimiento de la transferencia de datos durante el proceso de entrenamiento.

Usa Dataproc para el procesamiento de datos de Spark sin servidores

Como alternativa, si tu organización invierte en una base de código y habilidades de Apache Spark, considera usar Dataproc. Usa secuencias de comandos de Python únicas para conjuntos de datos más pequeños que se ajusten en la memoria.

Si necesitas realizar transformaciones que no se pueden expresar en Cloud SQL o que son para la transmisión, puedes usar una combinación de Dataflow y la biblioteca pandas.

Usa conjuntos de datos administrados con metadatos de AA

Una vez que tus datos se procesen con anterioridad para el AA, considera usar un conjunto de datos administrado en Vertex AI. Los conjuntos de datos administrados te permiten crear un vínculo claro entre tus datos y los modelos entrenados personalizados, y proporcionar estadísticas descriptivas y la división automática o manual en conjuntos de entrenamiento, prueba y validación.

Los conjuntos de datos administrados no son obligatorios. Puedes elegir no usarlos si deseas tener más control sobre la división de tus datos en tu código de entrenamiento o si el linaje entre tus datos y tu modelo no es fundamental para tu aplicación.

Para obtener más información, consulta Conjuntos de datos y Usa un conjunto de datos administrado en una aplicación de entrenamiento personalizada.

Entrenamiento para poner en funcionamiento

El entrenamiento para poner en funcionamiento hace referencia al proceso de hacer que el entrenamiento de modelos sea repetible, realizar un seguimiento de las repeticiones y administrar el rendimiento. Si bien los notebooks administrados de Vertex AI Workbench son convenientes para el desarrollo iterativo en conjuntos de datos pequeños, te recomendamos que ejecutes tu código a fin de que se pueda reproducir y escalar a conjuntos de datos grandes. En esta sección, analizamos las herramientas y prácticas recomendadas para poner en funcionamiento tus rutinas de entrenamiento.

Ejecuta tu código en un servicio administrado

Recomendamos que ejecutes tu código en el servicio de Vertex AI Training o las Vertex AI Pipelines.

De forma opcional, puedes ejecutar tu código directamente en un contenedor de máquina virtual de aprendizaje profundo o en Compute Engine. Sin embargo, no recomendamos este enfoque, ya que los servicios administrados de IA de Vertex proporcionan ajuste de escala automático y capacidad de pico de actividad que es más rentable.

Pon en funcionamiento la ejecución de trabajos con canalizaciones de entrenamiento

Crea canalizaciones de entrenamiento para poner en funcionamiento la ejecución de trabajos de entrenamiento en Vertex AI. Una canalización de entrenamiento, que es diferente de una canalización de AA general, encapsula los trabajos de entrenamiento. Para obtener más información sobre las canalizaciones de entrenamiento, consulta Crea canalizaciones de entrenamiento y Recurso de REST: projects.locations.trainingPipelines

Usa puntos de control de entrenamiento para guardar el estado actual de su experimento

En el flujo de trabajo del AA de este documento, suponemos que no entrenas de forma interactiva. Si el modelo falla y no se controla, el trabajo de entrenamiento o la canalización finalizará y los datos se perderán porque el modelo no está en la memoria. Para evitar esta situación, practica el uso de puntos de control de entrenamiento siempre a fin de asegurarte de no perder el estado.

Te recomendamos guardar los puntos de control del entrenamiento en Cloud Storage. Crea una carpeta diferente para cada experimento o ejecución de entrenamiento.

Si deseas obtener más información sobre los puntos de control, consulta los puntos de control de entrenamiento para TensorFlow Core, la sección sobre cómo guardar y cargar un punto de control general en PyTorch y los Patrones de diseño de aprendizaje automático..

Prepara los artefactos del modelo para entregarlos en Cloud Storage

Para los modelos personalizados y los contenedores personalizados, almacena los artefactos de tu modelo en un bucket de Cloud Storage, donde la región del depósito coincide con el extremo regional que estás usando para la producción. Consulta Regiones de buckets para obtener más información.

Almacena tu bucket de Cloud Storage en el mismo proyecto de Google Cloud. Si tu bucket de Cloud Storage está en un proyecto de Google Cloud diferente, debes otorgar acceso a Vertex AI para leer los artefactos de tu modelo.

Si usas un contenedor compilado previamente de Vertex AI, asegúrate de que los artefactos de tu modelo tengan nombres de archivo que coincidan con exactitud con estos ejemplos:

  • Modelo guardado de TensorFlow: saved_model.pb

  • scikit-learn: model.joblib o model.pkl

  • XGBoost: model.bst

  • PyTorch: model.pth

Si deseas obtener información sobre cómo guardar el modelo en forma de uno o más artefactos, consulta Exporta artefactos de modelo para la predicción.

Calcula con regularidad los valores de atributos nuevos

A menudo, un modelo usará un subconjunto de atributos procedentes de Vertex AI Feature Store. Los atributos en Vertex AI Feature Store ya estarán listas para la entrega en línea. Para atributos nuevos creados por el científico de datos mediante el aprovisionamiento de datos desde el data lake, te recomendamos programar los trabajos de procesamiento de datos y de ingeniería de atributos correspondientes (o, de manera ideal, Dataflow) para calcular con regularidad los nuevos valores de atributos en la cadencia necesaria, según las necesidades de actualización de los atributos y los se transfieren a Vertex AI Feature Store para la entrega en línea o por lotes.

Implementación y entrega de modelos

La implementación y entrega de modelos se refiere a la puesta en producción de un modelo. El resultado del trabajo de entrenamiento es uno o más artefactos de modelo almacenados en Cloud Storage, que puedes subir a Vertex AI Model Registry para que el archivo se pueda usar en la entrega de predicciones. Existen dos tipos de entrega de predicciones: la predicción por lotes, que se usa para dar una puntuación a los lotes de datos en una cadencia regular, y la predicción en línea, que se usa para la puntuación casi en tiempo real de datos para aplicaciones en vivo. Ambos enfoques te permiten obtener predicciones de modelos entrenados si pasas los datos de entrada a un modelo de AA alojado en la nube y obtienes inferencias para cada instancia de datos. Para obtener más información, consultaObtén predicciones por lotes y Obtén predicciones en línea de modelos entrenados personalizados.

Para reducir la latencia de las solicitudes entre pares entre el cliente y el servidor de modelos, usa los extremos privados de Vertex AI. Estos son muy útiles si la aplicación que realiza las solicitudes de predicción y el objeto binario de entrega se encuentran dentro de la misma red local. Puedes evitar la sobrecarga del enrutamiento de Internet y establecer una conexión entre pares con la nube privada virtual.

Especifique la cantidad y los tipos de máquinas que necesita.

A fin de implementar tu modelo para la predicción, elige el hardware adecuado para el modelo, como tipos de máquinas virtuales (VM) diferentes de unidades de procesamiento central (CPU) o de unidades de procesamiento de gráficos (GPU). Para obtener más información, consulta Especifica tipos de máquinas o niveles de escalamiento.

Planifica las entradas para el modelo

Además de implementar el modelo, deberás determinar cómo pasarás las entradas al modelo. Si usas la predicción por lotes, puedes recuperar datos del data lake o de la API de entrega por lotes de Vertex AI Feature Store. Si usas la predicción en línea, puedes enviar instancias de entrada al servicio y tus predicciones se mostrarán en la respuesta. Para obtener más información, consulta los detalles del cuerpo de la respuesta.

Si solo implementas un modelo para la predicción en línea, necesitas una forma escalable y de baja latencia a fin de entregar las entradas o funciones que se deben pasar al extremo del modelo. Puedes hacerlo mediante uno de los numerosos servicios de base de datos en Google Cloud o puedes usar la API de entrega en línea de Vertex AI Feature Store. Los clientes que llaman al extremo de predicción en línea primero pueden llamar a la solución de entrega de atributos para recuperar las entradas de atributos y, luego, llamar al extremo de predicción con esas entradas.

La transferencia de transmisión te permite realizar actualizaciones en tiempo real en los valores de atributos. Este método es útil cuando tienes una prioridad con los datos disponibles más recientes para la entrega en línea. Por ejemplo, puedes transferir datos de eventos de transmisión y, en unos segundos, transferencia de transmisión de Vertex AI Store Store hace que esos datos estén disponibles para situaciones de entrega en línea.

Además, puedes personalizar la administración (respuesta) y el formato de entrada (solicitud) y salida desde y hacia el servidor de modelos mediante rutinas de predicción personalizadas.

Activa el ajuste de escala automático

En la mayoría de los casos, si usas el servicio de predicción en línea, te recomendamos activar el ajuste de escala automático mediante la configuración de nodos mínimos y máximos. Para obtener más información, consulta Obtén predicciones sobre un modelo entrenado personalizado. Para garantizar un Acuerdo de Nivel de Servicio (ANS) de alta disponibilidad, configura el ajuste de escala automático con un mínimo de dos nodos.

Para obtener más información sobre las opciones de escalamiento, consulta Escala las predicciones de aprendizaje automático.

Organización del flujo de trabajo de aprendizaje automático

Vertex AI proporciona una organización de flujos de trabajo del AA para automatizar el flujo de trabajo del AA con Vertex AI Pipelines, un servicio completamente administrado que te permite volver a entrenar los modelos con la frecuencia que sea necesario. Si bien el reentrenamiento permite que tus modelos se adapten a los cambios y mantengan el rendimiento con el paso del tiempo, considera cuánto cambiarán tus datos cuando elijas la cadencia óptima de reentrenamiento del modelo.

Los flujos de trabajo de organización del AA funcionan mejor para los clientes que ya diseñaron y compilaron su modelo, lo pusieron en producción y desean determinar lo que funciona y lo que no en el modelo de AA. Es probable que el código que usas para la experimentación sea útil para el resto del flujo de trabajo del AA con algunas modificaciones. Para trabajar con flujos de trabajo de AA automatizados, debes ser experto en Python, comprender la infraestructura básica, como los contenedores, y tener conocimientos sobre el AA y la ciencia de datos.

Usa Vertex AI Pipelines para organizar el flujo de trabajo del AA

Si bien puedes iniciar de forma manual cada proceso de datos, entrenamiento, evaluación, implementación y prueba, te recomendamos usar Vertex AI Pipelines para organizar el flujo. Para obtener información detallada, consulta Nivel 1 de MLOps: Automatización de la canalización del AA.

Vertex AI Pipelines admite DAG en ejecución generados por KubeFlow, TensorFlow Extended (TFX) y Airflow.

Usa Kubeflow Pipelines para construir canalizaciones flexibles

Se recomienda el SDK de Kubeflow Pipelines para la mayoría de los usuarios que desean crear canalizaciones administradas. Kubeflow Pipelines te permite usar código simple para construir canalizaciones. y proporciona componentes de canalización de Google Cloud, lo que te permite incluir funciones de Vertex AI, como AutoML, en tu canalización. Para obtener más información sobre Kubeflow Pipelines, consulta Canalizaciones de Kubeflow y Vertex AI Pipelines.

Organización de artefactos

Los artefactos son resultados de cada paso del flujo de trabajo del AA. Recomendamos organizarlos de forma estandarizada.

Organiza los artefactos de tu modelo de AA

Almacena los artefactos en las siguientes ubicaciones:

Ubicación del almacenamiento Artefactos
Repositorio de control de fuente
  • Notebooks de Vertex AI Workbench
  • Código fuente de la canalización
  • Funciones de procesamiento previo
  • Código fuente del modelo
  • Paquetes de entrenamiento de modelos
  • Funciones de entrega
Experimentos y metadatos del AA
  • Experimentos
  • Parámetros
    • Hiperparámetros
    • Metaparámetros
  • Métricas
  • Artefactos del conjunto de datos
  • Artefactos del modelo
  • Metadatos de la canalización
Registro de modelos de Vertex AI
  • Modelos entrenados
Artifact Registry
  • Contenedores de canalización
  • Entornos de entrenamiento personalizados
  • Entornos de predicción personalizados
Vertex AI Prediction
  • Modelos implementados

Usa un repositorio de control de código fuente para las definiciones de canalización y el código de entrenamiento

Puedes usar el control de fuentes a fin de llevar un control de versión de tus canalizaciones de AA y los componentes personalizados que compilas para esas canalizaciones. Usa Artifact Registry para almacenar, administrar y proteger las imágenes de contenedor de Docker sin que sean visibles públicamente.

Supervisión de modelos

Una vez que implementes el modelo en producción, debes supervisar el rendimiento para asegurarte de que funcione como se espera. Vertex AI proporciona dos formas de supervisar los modelos de AA:

  • Detección de sesgo: este enfoque busca el grado de distorsión entre el entrenamiento de tu modelo y los datos de producción.

  • Detección de desvío: en este tipo de supervisión, buscas un desvío en los datos de producción. El desvío se produce cuando las propiedades estadísticas de las entradas y el objetivo, que el modelo intenta predecir, cambian de forma inesperada en el tiempo. Esto genera problemas porque las predicciones podrían volverse menos precisas a medida que pase el tiempo.

La supervisión de modelos funciona con datos estructurados, como atributos numéricos y categóricos, pero no con datos no estructurados, como imágenes. Para obtener más información, consulta Supervisa modelos para detectar desvíos o sesgos de atributos.

Usa la detección de sesgo y desvío

En la medida de lo posible, usa la detección de sesgo, ya que saber que tus datos de producción se desviaron de tus datos de entrenamiento es un indicador sólido de que tu modelo no tiene el rendimiento esperado en producción. A fin de realizar la detección de sesgo, configura el trabajo de supervisión del modelo. Para ello, proporciona un puntero a los datos de entrenamiento que usaste en el entrenamiento del modelo.

Si no tienes acceso a los datos de entrenamiento, activa la detección de desvío para que sepas cuándo cambian las entradas.

Usa la detección de desvío para supervisar si los datos de producción se desvían a lo largo del tiempo. Para la detección de desvío, habilita las funciones que deseas supervisar y los límites correspondientes para activar una alerta.

Ajuste los umbrales de alertas

Ajusta los umbrales usados para las alertas a fin de saber cuándo se producen desviaciones o sesgos en los datos. Los límites de alerta se determinan según el caso de uso, la experiencia del dominio del usuario y las métricas iniciales de supervisión del modelo. Si quieres obtener información sobre cómo usar Monitoring para crear paneles o configurar alertas basadas en métricas, consulta Métricas de Cloud Monitoring.

Usa atribuciones de atributos para detectar desvíos o sesgos de datos

Puedes usar atribuciones de atributos en Vertex Explainable AI para detectar el desvío o la distorsión de los datos como un indicador anticipado de que el rendimiento del modelo puede ser degradado. Por ejemplo, si tu modelo se basaba originalmente en cinco atributos para hacer predicciones en tus datos de entrenamiento y de prueba, pero el modelo comenzó a utilizar funciones completamente diferentes cuando se encontraba en producción, las atribuciones de atributos ayudarían a detectar esta degradación en el rendimiento del modelo.

Esto es particularmente útil para tipos de atributos complejos, como incorporaciones y series temporales, que son difíciles de comparar mediante métodos tradicionales de desviación y desvío. Con Vertex Explainable AI, las atribuciones de atributos pueden indicar cuándo se degrada el rendimiento del modelo.

¿Qué sigue?