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

Last reviewed 2024-09-09 UTC

En este documento se presentan las prácticas recomendadas para implementar el aprendizaje automático (ML) en Google Cloud, con especial atención a los modelos entrenados de forma personalizada a partir de tus datos y tu código. Ofrece recomendaciones sobre cómo desarrollar un modelo entrenado de forma personalizada a lo largo del flujo de trabajo de aprendizaje automático, incluidas las acciones clave y los enlaces para obtener más información.

En el siguiente diagrama se ofrece una descripción general de las fases del flujo de trabajo de aprendizaje automático que se abordan en este documento, incluidos los productos relacionados:

  1. Desarrollo de aprendizaje automático
  2. Preparación de datos
  3. Entrenamiento de aprendizaje automático
  4. Despliegue y servicio de modelos
  5. Orquestación de flujos de trabajo de aprendizaje automático
  6. Organización de artefactos
  7. Monitorización de modelos

Flujo de trabajo de aprendizaje automático en Google Cloud.

Este documento no es una lista exhaustiva de recomendaciones, sino que tiene como objetivo ayudar a los científicos de datos y a los arquitectos de aprendizaje automático a comprender el alcance de las actividades que implica el uso del aprendizaje automático en Google Cloud y planificar en consecuencia. Aunque en Usar herramientas y productos recomendados se mencionan alternativas de desarrollo de aprendizaje automático, como AutoML, este documento se centra principalmente en los modelos entrenados personalizados.

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:

  • Utilizas principalmente los servicios de Google Cloud . En este documento no se abordan los enfoques híbridos ni locales.
  • Tienes previsto recoger datos de entrenamiento y almacenarlos en Google Cloud.
  • Tienes conocimientos de nivel intermedio sobre aprendizaje automático, herramientas de Big Data y preprocesamiento de datos, así como sobre los conceptos básicos de Cloud Storage, BigQuery y Google Cloud.

Si no tienes experiencia en aprendizaje automático, consulta el curso intensivo sobre aprendizaje automático de Google.

En la siguiente tabla se enumeran las herramientas y los productos recomendados para cada fase del flujo de trabajo de aprendizaje automático que se describe en este documento:

Paso del flujo de trabajo de aprendizaje automático Herramientas y productos recomendados
Configuración del entorno de aprendizaje automático
Desarrollo de aprendizaje automático
Preparación de datos
Entrenamiento de aprendizaje automático
Despliegue y servicio de modelos
Orquestación de flujos de trabajo de aprendizaje automático
Organización de artefactos
Monitorización de modelos
Plataformas de código abierto gestionadas

Google ofrece AutoML, previsiones con Vertex AI y BigQuery ML como alternativas de rutina de entrenamiento precompiladas a las soluciones de modelos entrenados de forma personalizada de Vertex AI. En la siguiente tabla se ofrecen recomendaciones sobre cuándo usar estas opciones en Vertex AI.

Entorno de aprendizaje automático Descripción Elige este entorno si...
BigQuery ML BigQuery ML reúne datos, infraestructura y tipos de modelos predefinidos en un único sistema.
AutoML (en el contexto de Vertex AI) AutoML proporciona rutinas de entrenamiento para problemas habituales, como la clasificación de imágenes y la regresión tabular. Se gestionan casi todos los aspectos del entrenamiento y la publicación de un modelo, como la elección de una arquitectura, el ajuste de hiperparámetros y el aprovisionamiento de máquinas.
Modelos entrenados personalizados de Vertex AI Vertex te permite ejecutar tus propias rutinas de entrenamiento personalizadas y desplegar modelos de cualquier tipo en una arquitectura sin servidor. Vertex AI ofrece servicios adicionales, como la optimización y la monitorización de hiperparámetros, para facilitar el desarrollo de un modelo. Consulte Elegir un método de entrenamiento personalizado.
  • Tu problema no cumple los criterios que se indican en esta tabla para BigQuery ML o AutoML.
  • Ya estás realizando entrenamientos on-premise o en otra plataforma en la nube y necesitas que haya coherencia entre las plataformas.

Configuración del entorno de aprendizaje automático

Te recomendamos que sigas estas prácticas recomendadas al configurar tu entorno de aprendizaje automático:

Usar instancias de Vertex AI Workbench para experimentar y desarrollar

Independientemente de las herramientas que uses, te recomendamos que utilices instancias de Vertex AI Workbench para experimentar y desarrollar, lo que incluye escribir código, iniciar trabajos, ejecutar consultas y comprobar el estado. Las instancias de Vertex AI Workbench te permiten acceder a todos los datos y servicios de IA de Google Cloudde una forma sencilla y reproducible.

Las instancias de Vertex AI Workbench también te ofrecen un conjunto seguro de software y patrones de acceso listos para usar. Es una práctica habitual personalizar las propiedades, como la red, la gestión de identidades y accesos, y el software (a través de un contenedor) asociado a una instancia de Vertex AI Workbench.Google Cloud Para obtener más información, consulta la introducción a Vertex AI y la introducción a las instancias de Vertex AI Workbench.

También puedes usar Colab Enterprise, un entorno de cuadernos gestionado y colaborativo que utiliza las funciones de seguridad y cumplimiento de Google Cloud.

Crear 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, sobre todo si tienen dependencias diferentes, te recomendamos que uses varias instancias y que trates cada instancia como un espacio de trabajo virtual. Ten en cuenta que puedes detener las instancias de Vertex AI Workbench cuando no las estés usando.

Almacena tus recursos y artefactos de aprendizaje automático según la política de tu empresa

El control de acceso más sencillo consiste en almacenar tanto los recursos como los artefactos sin procesar de Vertex AI, como los conjuntos de datos y los modelos, en el mismo Google Cloud proyecto. Lo más habitual es que tu empresa tenga políticas que controlen el acceso. En los casos en los que tus recursos y artefactos se almacenan en varios proyectos, puedes configurar el control de acceso entre proyectos de tu empresa con Gestión de Identidades y Accesos (IAM).

Usar el SDK de Vertex AI para Python

Usa el SDK de Vertex AI para Python, una forma de usar Vertex AI con Python para tus flujos de trabajo de creación de modelos integrales, que funciona a la perfección con tus frameworks de aprendizaje automático favoritos, como PyTorch, TensorFlow, XGBoost y scikit-learn.

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

Desarrollo de aprendizaje automático

Te recomendamos que sigas estas prácticas recomendadas para el desarrollo de aprendizaje automático:

El desarrollo de aprendizaje automático se centra en preparar los datos, experimentar y evaluar el modelo. Cuando se resuelve un problema de aprendizaje automático, normalmente es necesario crear y comparar muchos modelos diferentes para determinar cuál funciona mejor.

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

Preparar los datos de entrenamiento

Los datos utilizados para entrenar un modelo pueden proceder de cualquier número de sistemas. Por ejemplo, registros de un sistema de servicios online, imágenes de un dispositivo local o documentos extraídos de la Web.

Independientemente del origen de los datos, extrae los datos de los sistemas de origen y conviértelos al formato y al almacenamiento (independiente de la fuente operativa) optimizados para el entrenamiento de aprendizaje automático. Para obtener más información sobre cómo preparar datos de entrenamiento para usarlos con Vertex AI, consulta el artículo Entrenar y usar tus propios modelos.

Almacenar datos estructurados y semiestructurados en BigQuery

Si trabajas con datos estructurados o semiestructurados, te recomendamos que almacenes todos los datos en BigQuery siguiendo las recomendaciones de BigQuery sobre la estructura de los proyectos. En la mayoría de los casos, también puede almacenar datos intermedios procesados en BigQuery. Para conseguir la máxima velocidad, es mejor almacenar datos materializados en lugar de usar vistas o subconsultas para los datos de entrenamiento.

Lee datos de BigQuery mediante la API Storage de BigQuery. Para el seguimiento de artefactos, considera la posibilidad de usar un conjunto de datos tabulares gestionado. En la siguiente tabla se indican las herramientas de Google Cloud que facilitan el uso de la API:

Si usas... Usa esta Google Cloud herramienta
TensorFlow para Keras Lector tf.data.dataset para BigQuery
TFX Cliente de BigQuery
Dataflow Conector de entrada/salida de Google BigQuery
Cualquier otro framework (como PyTorch, XGBoost o scikit-learn) Importar modelos en BigQuery

Almacenar imágenes, vídeos, audio y datos sin estructurar en Cloud Storage

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

Combina muchas imágenes, vídeos o clips de audio individuales en archivos grandes, ya que esto mejorará el rendimiento de lectura y escritura en Cloud Storage. Intenta que los archivos tengan al menos 100 MB y entre 100 y 10.000 fragmentos.

Para habilitar la gestión de datos, usa segmentos y directorios de Cloud Storage para agrupar los fragmentos. Para obtener más información, consulta la descripción general del producto Cloud Storage.

Usar servicios de etiquetado de datos con la Google Cloud consola

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

Usar Vertex AI Feature Store con datos estructurados

Puedes usar Vertex AI Feature Store para crear, mantener, compartir y publicar características de aprendizaje automático en una ubicación central. Está optimizada para dar servicio a cargas de trabajo que necesitan una latencia baja y te permite almacenar datos de características en una tabla o vista de BigQuery. Para usar Vertex AI Feature Store, debes crear una instancia de almacén online y definir tus vistas de características. BigQuery almacena todos los datos de las funciones, incluidos los datos históricos, para que puedas trabajar sin conexión.

Usar 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, en función de los hiperparámetros. Vertex AI TensorBoard es un servicio gestionado preparado para el ámbito empresarial que ofrece una solución segura y rentable que permite a los científicos de datos y a los investigadores de aprendizaje automático colaborar al facilitar el seguimiento, la comparación y el uso compartido de sus experimentos. Vertex AI TensorBoard permite monitorizar métricas de experimentos, como la pérdida y la precisión a lo largo del tiempo, visualizar el gráfico del modelo, proyectar las inserciones en un espacio de menor dimensión y mucho más.

Usa Vertex AI Experiments para integrar Vertex ML Metadata y registrar y crear enlaces entre parámetros, métricas, conjuntos de datos y artefactos de modelos.

Entrenar un modelo en una instancia de Vertex AI Workbench para conjuntos de datos pequeños

Entrenar un modelo en la instancia de Vertex AI Workbench puede ser suficiente para conjuntos de datos pequeños o subconjuntos de un conjunto de datos más grande. Puede ser útil usar el servicio de entrenamiento para conjuntos de datos más grandes o para el entrenamiento distribuido. También se recomienda usar el servicio de entrenamiento de Vertex AI para poner en producción el entrenamiento, incluso en conjuntos de datos pequeños, si el entrenamiento se lleva a cabo de forma programada o en respuesta a la llegada de datos adicionales.

Maximizar la precisión predictiva de un 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 automático que proporciona 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 al entrenar tu modelo. El ajuste de hiperparámetros elimina la necesidad de ajustar manualmente los hiperparámetros a lo largo de numerosas ejecuciones de entrenamiento para llegar a los valores óptimos.

Para obtener más información sobre el ajuste de hiperparámetros, consulta Información general sobre el ajuste de hiperparámetros y Crear una tarea de ajuste de hiperparámetros.

Usar 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 de hipótesis (WIT) y la herramienta de interpretabilidad de lenguaje (LIT). WIT te permite analizar de forma interactiva tus modelos para detectar sesgos mediante varias técnicas, mientras que LIT te ayuda a comprender el comportamiento de los modelos de procesamiento del lenguaje natural a través de una herramienta visual, interactiva y extensible.

Usar atribuciones de funciones para obtener información valiosa sobre las predicciones de los modelos

Vertex Explainable AI forma parte integral del proceso de implementación del aprendizaje automático y ofrece atribuciones de funciones para proporcionar información valiosa sobre por qué los modelos generan predicciones. Al detallar la importancia de cada característica que usa un modelo como entrada para hacer una predicción, Vertex Explainable AI te ayuda a comprender mejor el comportamiento de tu modelo y a generar confianza en él.

Vertex Explainable AI admite modelos entrenados de forma personalizada basados en datos tabulares e imágenes.

Para obtener más información sobre Vertex Explainable AI, consulta los siguientes recursos:

Preparación de datos

Te recomendamos que sigas estas prácticas recomendadas para preparar los datos:

El enfoque recomendado para procesar tus datos depende del framework y de los tipos de datos que utilices. En esta sección se ofrecen recomendaciones generales para situaciones habituales.

Usar BigQuery para procesar datos estructurados y semiestructurados

Usa BigQuery para almacenar datos estructurados o semiestructurados sin procesar. Si vas a crear tu modelo con BigQuery ML, usa las transformaciones integradas en BigQuery para preprocesar los datos. Si usas AutoML, utiliza las transformaciones integradas en AutoML para preprocesar los datos. Si vas a crear un modelo personalizado, usar las transformaciones de BigQuery puede ser el método más rentable.

En el caso de los conjuntos de datos grandes, te recomendamos que uses el particionado en BigQuery. Esta práctica puede mejorar el rendimiento de las consultas y la eficiencia de los costes.

Usar Dataflow para procesar datos

Si tienes grandes volúmenes de datos, te recomendamos que uses Dataflow, que utiliza el modelo de programación de Apache Beam. Puedes usar Dataflow para convertir los datos no estructurados en formatos de datos binarios, como TFRecord, lo que puede mejorar el rendimiento de la ingesta de datos durante el proceso de entrenamiento.

Usar Dataproc para procesar datos de Spark sin servidor

Si tu organización ha invertido en una base de código y en habilidades de Apache Spark, puedes usar Dataproc. Usa secuencias de comandos de Python puntuales para conjuntos de datos más pequeños que quepan en la memoria.

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

Usar conjuntos de datos gestionados con metadatos de aprendizaje automático

Una vez que tus datos se hayan preprocesado para el aprendizaje automático, puedes usar un conjunto de datos gestionado en Vertex AI. Los conjuntos de datos gestionados te permiten crear un vínculo claro entre tus datos y los modelos entrenados de forma personalizada, así como proporcionar estadísticas descriptivas y dividir los datos de forma automática o manual en conjuntos de entrenamiento, prueba y validación.

No es obligatorio usar conjuntos de datos gestionados. Puedes decidir no usarlos si quieres tener más control sobre la división de tus datos en el código de entrenamiento o si la procedencia de tus datos y tu modelo no es fundamental para tu aplicación.

Para obtener más información, consulta los artículos Conjuntos de datos y Usar un conjunto de datos gestionado en una aplicación de entrenamiento personalizada.

Entrenamiento de aprendizaje automático

Te recomendamos que sigas estas prácticas recomendadas para el entrenamiento de modelos de aprendizaje automático:

En el entrenamiento de aprendizaje automático, el entrenamiento operativizado se refiere al proceso de hacer que el entrenamiento de modelos sea repetible mediante el seguimiento de las repeticiones y la gestión del rendimiento. Aunque las instancias de Vertex AI Workbench son útiles para el desarrollo iterativo en conjuntos de datos pequeños, te recomendamos que pongas en funcionamiento tu código para que se pueda reproducir y se pueda escalar a conjuntos de datos grandes. En esta sección, hablaremos de las herramientas y las prácticas recomendadas para poner en práctica tus rutinas de entrenamiento.

Ejecutar el código en un servicio gestionado

Te recomendamos que ejecutes el código en el servicio de entrenamiento de Vertex AI o que lo orquestes con Vertex AI Pipelines. También puedes ejecutar el código directamente en imágenes de máquina virtual de aprendizaje profundo, contenedores de aprendizaje profundo o Compute Engine. Sin embargo, no recomendamos este enfoque si usas funciones de Vertex AI, como el escalado automático y la capacidad de ráfaga.

Operacionalizar la ejecución de tareas con flujos de procesamiento de entrenamiento

Para poner en marcha la ejecución de tareas de entrenamiento en Vertex AI, puedes crear flujos de procesamiento de entrenamiento. Un flujo de procesamiento de entrenamiento, que es diferente de un flujo de procesamiento de aprendizaje automático general, encapsula las tareas de entrenamiento. Para obtener más información sobre los flujos de procesamiento de entrenamiento, consulte Crear flujos de procesamiento de entrenamiento y Recurso REST: projects.locations.trainingPipelines.

Usar puntos de control de entrenamiento para guardar el estado actual de un experimento

El flujo de trabajo de aprendizaje automático de este documento presupone que no estás entrenando de forma interactiva. Si tu modelo falla y no se crea un punto de control, el trabajo de entrenamiento o la pipeline finalizará y los datos se perderán porque el modelo no está en memoria. Para evitar que esto ocurra, acostúmbrate a usar siempre puntos de control de entrenamiento para no perder el estado.

Te recomendamos que guardes los puntos de control de entrenamiento en Cloud Storage. Crea una carpeta diferente para cada experimento o entrenamiento.

Para obtener más información sobre los puntos de control, consulta Puntos de control de entrenamiento en TensorFlow Core, Guardar y cargar un punto de control general en PyTorch y Patrones de diseño de aprendizaje automático.

Preparar artefactos de modelos para el servicio en Cloud Storage

En el caso de los modelos con entrenamiento personalizado o los contenedores personalizados, almacena los artefactos del modelo en un segmento de Cloud Storage, donde la región del segmento coincida con el endpoint regional que estés usando en producción. Para obtener más información, consulta Regiones de los segmentos.

Cloud Storage admite la gestión de versiones de objetos. Para evitar la pérdida o el daño de datos por accidente, habilita la gestión de versiones de objetos en Cloud Storage.

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

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

  • SavedModel de TensorFlow: saved_model.pb
  • Scikit-learn: model.joblib
  • XGBoost: model.bst
  • PyTorch: model.pth

Para saber cómo guardar tu modelo en forma de uno o varios artefactos de modelo, consulta Exportar artefactos de modelos para predicciones.

Calcular periódicamente los nuevos valores de las funciones

A menudo, un modelo usará un subconjunto de características procedentes de Vertex AI Feature Store. Las características de Vertex AI Feature Store ya estarán listas para el servicio online. En el caso de las nuevas funciones creadas por el científico de datos a partir de los datos del lago de datos, recomendamos programar los trabajos de procesamiento de datos y de ingeniería de funciones correspondientes (o, idealmente, Dataflow) para calcular periódicamente los nuevos valores de las funciones con la cadencia necesaria, en función de las necesidades de actualización de las funciones, e insertarlos en Vertex AI Feature Store para que se puedan usar online o por lotes.

Despliegue y servicio de modelos

Te recomendamos que sigas estas prácticas recomendadas para la implementación y el servicio de modelos:

Despliegue y servicio de modelos se refiere a la puesta en producción de un modelo. El resultado de la tarea de entrenamiento es uno o varios artefactos de modelo almacenados en Cloud Storage, que puedes subir a Model Registry para que el archivo se pueda usar en el servicio de predicción. Hay dos tipos de servicio de predicción: la predicción por lotes, que se usa para puntuar lotes de datos a intervalos regulares, y la predicción online, que se usa para puntuar datos casi en tiempo real en aplicaciones activas. Ambos enfoques te permiten obtener predicciones de modelos entrenados enviando datos de entrada a un modelo de aprendizaje automático alojado en la nube y obteniendo inferencias para cada instancia de datos.Para obtener más información, consulta Obtener predicciones por lotes y Obtener predicciones online a partir de modelos entrenados previamente.

Para reducir la latencia de las solicitudes peer-to-peer entre el cliente y el servidor del modelo, usa endpoints privados de Vertex AI. Los endpoints privados son especialmente útiles si la aplicación que hace las solicitudes de predicción y el archivo binario de servicio están en la misma red local. Puedes evitar la sobrecarga del enrutamiento de Internet y establecer una conexión peer-to-peer mediante nube privada virtual.

Especifica el número y los tipos de máquinas que necesitas

Para implementar tu modelo con fines predictivos, elige el hardware adecuado para tu modelo, como diferentes tipos de máquina virtual (VM) de unidad central de procesamiento (CPU) o tipos de unidad de procesamiento gráfico (GPU). Para obtener más información, consulta Especificar tipos de máquina o niveles de escalabilidad.

Planificar las entradas del modelo

Además de implementar el modelo, tendrás que determinar cómo vas a transferir las entradas al modelo. Si usas la predicción por lotes, puedes obtener datos del lago de datos o de la API de servicio por lotes de Vertex AI Feature Store. Si usas la predicción online, puedes enviar instancias de entrada al servicio y este te devolverá las predicciones en la respuesta. Para obtener más información, consulta Detalles del cuerpo de la respuesta.

Si vas a desplegar tu modelo para hacer predicciones online, necesitas una forma escalable y de baja latencia para proporcionar las entradas o las características que se deben enviar al endpoint del modelo. Puedes hacerlo usando uno de los muchos servicios de bases de datos de Google Cloud o la API de servicio online de Vertex AI Feature Store. Los clientes que llamen al endpoint de predicción online pueden llamar primero a la solución de servicio de funciones para obtener las entradas de las funciones y, a continuación, llamar al endpoint de predicción con esas entradas. Puedes servir varios modelos en el mismo endpoint, por ejemplo, para sustituir el modelo de forma gradual. También puedes desplegar modelos en varios endpoints, por ejemplo, en pruebas y producción, compartiendo recursos entre los despliegues.

La ingesta de streaming te permite actualizar los valores de las características en tiempo real. Este método es útil cuando se da prioridad a tener los datos disponibles más recientes para el servicio online. Por ejemplo, puedes ingerir datos de eventos de streaming y, en cuestión de segundos, la ingestión de streaming de Vertex AI Feature Store hace que esos datos estén disponibles para escenarios de servicio online.

Además, puedes personalizar la gestión y el formato de las entradas (solicitudes) y las salidas (respuestas) hacia y desde tu servidor de modelos mediante las rutinas de predicción personalizadas.

Activar el escalado automático

Si usas el servicio de predicción online, en la mayoría de los casos te recomendamos que actives el escalado automático configurando nodos mínimos y máximos. Para obtener más información, consulta el artículo Obtener predicciones de un modelo entrenado personalizado. Para asegurar un acuerdo de nivel de servicio (SLA) de alta disponibilidad, configura el escalado automático con un mínimo de dos nodos.

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

Orquestación de flujos de trabajo de aprendizaje automático

Te recomendamos que sigas estas prácticas recomendadas para la orquestación de flujos de trabajo de aprendizaje automático:

Vertex AI ofrece la orquestación de flujos de trabajo de aprendizaje automático para automatizar el flujo de trabajo de aprendizaje automático con Vertex AI Pipelines, un servicio totalmente gestionado que te permite volver a entrenar tus modelos con la frecuencia que necesites. Aunque el reentrenamiento permite que tus modelos se adapten a los cambios y mantengan el rendimiento a lo largo del tiempo, ten en cuenta cuánto cambiarán tus datos al elegir la cadencia de reentrenamiento óptima.

Los flujos de trabajo de orquestación de aprendizaje automático son más adecuados para los clientes que ya han diseñado y creado su modelo, lo han puesto en producción y quieren determinar qué funciona y qué no en el modelo de aprendizaje automático. Es probable que el código que uses para los experimentos te sirva para el resto del flujo de trabajo de aprendizaje automático con algunas modificaciones. Para trabajar con flujos de trabajo de aprendizaje automático automatizados, debes tener un buen dominio de Python, conocer la infraestructura básica, como los contenedores, y tener conocimientos de aprendizaje automático y ciencia de datos.

Usar Vertex AI Pipelines para orquestar el flujo de trabajo de aprendizaje automático

Aunque puedes iniciar manualmente cada proceso de datos, entrenamiento, evaluación, prueba e implementación, te recomendamos que uses Vertex AI Pipelines para orquestar el flujo. Para obtener información detallada, consulta Nivel 1 de MLOps: automatización de flujos de procesamiento de aprendizaje automático.

Vertex AI Pipelines admite la ejecución de DAGs generados por Kubeflow, TensorFlow Extended (TFX) y Airflow.

Usar Kubeflow Pipelines para crear flujos de procesamiento flexibles

Recomendamos el SDK de Kubeflow Pipelines a la mayoría de los usuarios que quieran crear flujos de trabajo gestionados. Kubeflow Pipelines es flexible y te permite usar código para crear flujos de trabajo. También proporciona Google Cloud componentes de la 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 Kubeflow Pipelines y Vertex AI Pipelines.

Usar Ray en Vertex AI para flujos de trabajo de aprendizaje automático 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 computación distribuido, escalable y de código abierto de Python. Este framework puede ayudarte a resolver los problemas que surgen al tener varios frameworks distribuidos en tu ecosistema de aprendizaje automático, como tener que gestionar varios modos de paralelismo de tareas, programación y gestión de recursos. Puedes usar Ray en Vertex AI para desarrollar aplicaciones en Vertex AI.

Organización de artefactos

Te recomendamos que sigas estas prácticas recomendadas para organizar tus artefactos:

Los artefactos son los resultados de cada paso del flujo de trabajo de aprendizaje automático. Se recomienda organizarlos de forma estandarizada.

Organizar los artefactos de modelos de aprendizaje automático

Almacena tus artefactos en estas ubicaciones:

Ubicación de almacenamiento Artefactos
Repositorio de control de código fuente
  • Instancias de Vertex AI Workbench
  • Código fuente del flujo de procesamiento
  • Funciones de preprocesamiento
  • Código fuente del modelo
  • Paquetes de entrenamiento de modelos
  • Funciones de publicación
Experimentos y metadatos de aprendizaje automático
  • Experimentos
  • Parámetros
  • Hiperparámetros
  • Metaparámetros
  • Métricas
  • Artefactos de conjuntos de datos
  • Artefactos de modelos
  • Metadatos de la canalización
Registro de modelos
  • Modelos preparados
Artifact Registry
  • Contenedores de flujo de procesamiento
  • Entornos de entrenamiento personalizados
  • Entornos de predicción personalizados
Vertex AI Inference
  • Modelos desplegados

Usar un repositorio de control de versiones para las definiciones de la canalización y el código de entrenamiento

Puedes usar el control de versiones para controlar las versiones de tus pipelines de aprendizaje automático y de los componentes personalizados que crees para esos pipelines. Usa Artifact Registry para almacenar, gestionar y proteger tus imágenes de contenedor Docker sin que sean visibles públicamente.

Monitorización de modelos

Una vez que hayas implementado tu modelo en producción, debes monitorizar su rendimiento para asegurarte de que funciona como esperabas. Vertex AI ofrece dos formas de monitorizar tus modelos de aprendizaje automático:

  • Detección de sesgos: este enfoque busca el grado de distorsión entre los datos de entrenamiento y de producción de tu modelo.
  • Detección de desviaciones: en este tipo de monitorización, se buscan desviaciones en los datos de producción. La deriva se produce cuando las propiedades estadísticas de las entradas y el objetivo, que el modelo intenta predecir, cambian con el tiempo de formas imprevistas. Esto provoca problemas porque las predicciones podrían ser menos precisas con el tiempo.

La monitorización de modelos funciona con datos estructurados, como las características numéricas y categóricas, pero no con datos no estructurados, como las imágenes. Para obtener más información, consulta Modelos de monitorización para la desviación o el desfase de las funciones.

Usar la detección de inclinación y deriva

Utiliza la detección de sesgos siempre que sea posible, ya que saber que los datos de producción se han desviado de los datos de entrenamiento es un indicador claro de que el modelo no está funcionando como se esperaba en producción. Para detectar sesgos, configura la tarea de monitorización de modelos proporcionando un puntero a los datos de entrenamiento que has usado para entrenar el modelo.

Si no tienes acceso a los datos de entrenamiento, activa la detección de deriva para saber cuándo cambian las entradas a lo largo del tiempo.

Usa la detección de desviaciones para monitorizar si tus datos de producción se desvían con el tiempo. Para detectar la deriva, habilita las funciones que quieras monitorizar y los umbrales correspondientes para activar una alerta.

Ajustar los umbrales de alerta

Ajusta los umbrales que se usan para enviar alertas y saber cuándo se produce una asimetría o una deriva en tus datos. Los umbrales de alerta se determinan en función del caso práctico, la experiencia del usuario en el dominio y las métricas de monitorización iniciales del modelo. Para saber cómo usar la monitorización para crear paneles de control o configurar alertas basadas en las métricas, consulta Métricas de Cloud Monitoring.

Usar atribuciones de funciones para detectar la deriva o el sesgo de los datos

Puedes usar las atribuciones de características en Vertex Explainable AI para detectar la deriva o el sesgo de los datos como indicador de que el rendimiento del modelo puede estar empeorando. Por ejemplo, si tu modelo se basaba originalmente en cinco funciones para hacer predicciones en tus datos de entrenamiento y de prueba, pero empezó a depender de funciones completamente diferentes cuando se puso en producción, las atribuciones de funciones te ayudarían a detectar esta degradación en el rendimiento del modelo.

Esto es especialmente útil para tipos de funciones complejos, como las inserciones y las series temporales, que son difíciles de comparar con los métodos tradicionales de sesgo y deriva. Con Vertex Explainable AI, las atribuciones de funciones pueden indicar cuándo se está deteriorando el rendimiento del modelo.

Usar BigQuery para monitorizar modelos

La monitorizació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 aprendizaje automático a lo largo del tiempo. La monitorización de modelos es esencial para mantener la precisión y la fiabilidad de los modelos en aplicaciones del mundo real. Te recomendamos que monitorices los siguientes problemas:

  • Sesgo de datos: este problema se produce cuando las distribuciones de valores de las características difieren entre los datos de entrenamiento y los de servicio. Las estadísticas de entrenamiento, que se guardan durante el entrenamiento del modelo, permiten detectar sesgos sin necesidad de usar los datos originales.
  • Deriva de datos: los datos del mundo real suelen cambiar con el tiempo. La monitorización de modelos le ayuda a identificar cuándo los datos de entrada que ve su modelo en producción (datos de servicio) empiezan a diferir significativamente de los datos con los que se ha entrenado (datos de entrenamiento). Esta deriva puede provocar un rendimiento deficiente.
  • Sesgo o deriva de datos avanzados: si quiere obtener estadísticas detalladas sobre el sesgo o la deriva, monitorice el sesgo o la deriva de datos avanzados.

Siguientes pasos