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

Last reviewed 2024-09-09 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. Proporciona recomendaciones sobre cómo desarrollar un modelo con entrenamiento personalizado a lo largo del flujo de trabajo de AA, 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, incluidos los productos relacionados:

  1. Desarrollo del AA
  2. Preparación de datos
  3. Entrenamiento del AA
  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 de AA 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 AA 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 principalmente 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 AI.

En este documento, se da por sentado 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 los aspectos básicos de Google Cloud.

Si es la primera vez que usas el AA, consulta el Curso intensivo de AA 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 AA Herramientas y productos recomendados
Configuración del entorno del AA
Desarrollo de AA
Preparación de datos
Entrenamiento del AA
Implementación y entrega de modelos
Organización del flujo de trabajo del AA
Organización de artefactos
Supervisión de modelos
Plataformas de código abierto administradas

Google ofrece AutoML, previsión con 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 en los siguientes casos:
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 AA

Te recomendamos que apliques las siguientes prácticas recomendadas cuando configures tu entorno de ML:

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

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

Las instancias de Vertex AI Workbench 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 deGoogle Cloud , como la red y la administración de identidades y accesos, y el software (a través de un contenedor) asociado con una instancia de Vertex AI Workbench. Para obtener más información, consulta Introducción a Vertex AI y Introducción a las instancias de Vertex AI Workbench.

Como alternativa, puedes usar Colab Enterprise, que es un entorno de notebook colaborativo y administrado que usa las capacidades de seguridad y cumplimiento de Google Cloud.

Crea una instancia de Vertex AI Workbench para cada miembro del equipo

Crea una instancia de Vertex AI Workbench para cada miembro de tu equipo de ciencia de datos. Si un miembro del equipo participa en varios proyectos, en especial en algunos que tengan dependencias diferentes, recomendamos usar varias instancias y tratar a cada una como un lugar de trabajo virtual. Ten en cuenta que puedes detener las instancias de Vertex AI Workbench 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 AI para tus flujos 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 AA

Recomendamos las siguientes prácticas recomendadas para el desarrollo del AA:

El desarrollo de AA aborda la preparación de datos, la experimentación y la evaluación del modelo. Cuando se resuelve un problema de AA, 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 Entrena y usa tus propios modelos.

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 Google Cloud herramientas que facilitan el uso de la API:

Si usas… Usa esta Google Cloud herramienta
TensorFlow para Keras Lector de tf.data.dataset para BigQuery
TFX Cliente de BigQuery
Dataflow Conector de E/S de Google BigQuery
Cualquier otro framework (como PyTorch, XGBoost o scilearn-kit) Cómo importar modelos en 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 la descripción general del producto Cloud Storage.

Usa servicios de etiquetado de datos con la consola de Google Cloud

Puedes crear e importar datos de entrenamiento a través de la página de Vertex AI en la consola de Google Cloud. Cuando usas las funciones de instrucción y ajuste de Gemini, puedes administrar datos de texto con clasificación, extracción de entidades y análisis de opiniones personalizados. También hay soluciones de etiquetado de datos en el mercado de la consola de Google Cloud, como Labelbox y Snorkel Flow.

Usa Vertex AI Feature Store con datos estructurados

Puedes usar Vertex AI Feature Store para crear, mantener, compartir y entregar atributos de AA en una ubicación central. Está optimizado para entregar cargas de trabajo que necesitan baja latencia y te permite almacenar datos de atributos en una tabla o vista de BigQuery. Para usar Vertex AI Feature Store, debes crear una instancia de tienda en línea y definir tus vistas de atributos. BigQuery almacena todos los datos de las funciones, incluidos los datos históricos de las funciones, para que puedas trabajar sin conexión.

Usa Vertex AI TensorBoard y Vertex AI Experiments para analizar experimentos

Cuando desarrolles modelos, usa Vertex AI TensorBoard para visualizar y comparar experimentos específicos, por ejemplo, basados en hiperparámetros. Vertex AI TensorBoard es un servicio administrado listo para empresas con una solución segura y rentable 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 la exactitud con el paso del tiempo, visualizar el gráfico 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 Vertex AI Workbench para conjuntos de datos pequeños

Entrenar un modelo dentro de la instancia de Vertex AI Workbench puede ser suficiente para conjuntos de datos pequeños o 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 el servicio de entrenamiento de Vertex AI, que aprovecha la infraestructura de procesamiento de Google Cloud y Vertex AI Vizier para probar diferentes configuraciones de hiperparámetros cuando entrenas tu modelo. El ajuste de hiperparámetros quita la necesidad de ajustarlos manualmente a lo largo de varias ejecuciones de entrenamiento para alcanzar los valores óptimos.

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

Usa una instancia de Vertex AI Workbench para comprender tus modelos

Usa una instancia de Vertex AI Workbench para evaluar y comprender tus modelos. Además de las bibliotecas comunes integradas, como scikit-learn, las instancias de Vertex AI Workbench incluyen la Herramienta What-if (WIT) y la Herramienta de interpretabilidad de lenguaje (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. Cuando 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 tus modelos y a generar confianza en ellos.

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:

Preparación de datos

Recomendamos las siguientes prácticas recomendadas para la preparación 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

Usa 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.

Para conjuntos de datos grandes, considera usar la partición en BigQuery. Esta práctica puede mejorar el rendimiento de las consultas y la rentabilidad.

Usa Dataflow para procesar datos

Con grandes volúmenes de datos, 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 del AA

Te recomendamos que sigas las siguientes prácticas recomendadas para el entrenamiento de IA:

En el entrenamiento de AA, 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 las instancias 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 entrenamiento de Vertex AI o que lo organices con Vertex AI Pipelines. De forma opcional, puedes ejecutar tu código directamente en Deep Learning VM Images, Deep Learning Containers o Compute Engine. Sin embargo, no recomendamos este enfoque si usas funciones de Vertex AI, como el escalamiento automático y la capacidad de aumento.

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

Para poner en funcionamiento la ejecución de trabajos de entrenamiento en Vertex AI, puedes crear canalizaciones de entrenamiento. 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 bucket coincida con el extremo regional que estás usando para la producción. Consulta Regiones de buckets para obtener más información.

Cloud Storage admite el control de versiones de objetos. Para mitigar la pérdida o el daño accidental de datos, habilita el control de versiones de objetos en Cloud Storage.

Almacena tu bucket de Cloud Storage en el mismo Google Cloud proyecto. Si tu bucket de Cloud Storage está en un proyecto 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

Recomendamos las siguientes prácticas recomendadas para la 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 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. Los extremos privados 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.

Especifica la cantidad y los tipos de máquinas que necesitas.

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. Puedes publicar varios modelos en el mismo extremo, por ejemplo, para reemplazar el modelo de forma gradual. Como alternativa, puedes implementar modelos en varios extremos,por ejemplo, en pruebas y producción, si compartes recursos entre implementaciones.

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, la transferencia de transmisión de Vertex AI Feature 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 Cómo escalar las predicciones de aprendizaje automático.

Organización del flujo de trabajo del AA

Te recomendamos que sigas las siguientes prácticas recomendadas para la organización del flujo de trabajo del AA:

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

Recomendamos el SDK de Kubeflow Pipelines para la mayoría de los usuarios que desean crear canalizaciones administradas. Kubeflow Pipelines es flexible y te permite usar código para construir canalizaciones. También proporciona Google Cloud componentes de canalización, que te permiten 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.

Usa Ray en Vertex AI para flujos de trabajo de AA distribuidos

Ray proporciona un framework distribuido general y unificado para escalar flujos de trabajo de aprendizaje automático a través de un framework de procesamiento distribuido, escalable y de código abierto de Python. Este framework puede ayudar a resolver los desafíos que surgen cuando se tiene una variedad de frameworks distribuidos en tu ecosistema de AA, como tener que lidiar con varios modos de paralelismo de tareas, programación y administración de recursos. Puedes usar Ray en Vertex AI para desarrollar aplicaciones en Vertex AI.

Organización de artefactos

Te recomendamos que uses las siguientes prácticas recomendadas para organizar tus artefactos:

Los artefactos son resultados de cada paso del flujo de trabajo del AA. Una práctica recomendada consiste en organizarlos de forma estandarizada.

Organice los artefactos de su modelo de AA.

Almacena los artefactos en las siguientes ubicaciones:

Ubicación del almacenamiento Artefactos
Repositorio de control de código fuente
  • Instancias 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
Model Registry
  • 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 útil, sobre todo, para tipos de atributos complejos, como incorporaciones y series temporales, que son difíciles de comparar con métodos de sesgo y desvío tradicionales. Con Vertex Explainable AI, las atribuciones de atributos pueden indicar cuándo se está deteriorando el rendimiento de un modelo.

Usa BigQuery para admitir la supervisión de modelos

La supervisión de modelos de BigQuery ML es un conjunto de herramientas y funciones que te ayudan a hacer un seguimiento y evaluar el rendimiento de tus modelos de AA a lo largo del tiempo. La supervisión de modelos es esencial para mantener la precisión y la confiabilidad de los modelos en aplicaciones del mundo real. Te recomendamos que supervises los siguientes problemas:

  • Sesgo de datos: Este problema ocurre cuando las distribuciones de valores de atributos difieren entre los datos de entrenamiento y los de entrega. Las estadísticas de entrenamiento, que se guardan durante el entrenamiento del modelo, habilitan la detección de sesgos sin necesidad de los datos originales.
  • Desvío de datos: Los datos del mundo real suelen cambiar con el tiempo. La supervisión de modelos te ayuda a identificar cuándo los datos de entrada que ve tu modelo en producción (datos de entrega) comienzan a diferir significativamente de los datos con los que se entrenó (datos de entrenamiento). Esta deriva puede provocar un rendimiento degradado.
  • Desvío o sesgo de datos avanzados: Cuando desees estadísticas de sesgo o desvío detalladas, supervisa el sesgo o desvío de datos avanzados.

¿Qué sigue?