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

Organízate con las colecciones Guarda y clasifica el contenido según tus preferencias.

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 de 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 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 o 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.
  • Todos tus datos se encuentran en BigQuery. BigQuery ML requiere datos tabulares.
  • Te sientes cómodo con SQL.
  • El conjunto de modelos disponibles en BigQuery ML coincide con el problema que intentas resolver.
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.
  • (Opcional) estás utilizando TensorFlow Extended. Los pasos de TensorFlow Extended Trainer and Pusher son compatibles con la ejecución del paso en Vertex AI (Entrenar, Implementar).

Configuración del entorno de aprendizaje automático

Usa notebooks administrados por el usuario de Vertex AI Workbench para la experimentación y el desarrollo

Sin importar las herramientas, te recomendamos usar notebooks administrados por el usuario 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 notebooks administrados por el usuario te permiten acceder a todos los servicios de inteligencia artificial (IA) de datos de Google Cloud de manera simple y reproducible.

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

Para obtener más información sobre cómo administrar una instancia de notebook administrada por el usuario, consulta Experimentación con los notebooks administrados por usuario de Vertex AI Workbench.

Crea una instancia de notebook administrada por el usuario 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 del equipo participa en varios proyectos, en especial en proyectos que tienen diferentes dependencias, recomendamos usar varias instancias de notebooks administradas por el usuario y tratar cada una de ellas como un lugar de trabajo virtual. Ten en cuenta que puedes detener las instancias de notebooks administradas por el usuario cuando no se estén usando.

Protege la PII en una instancia de notebook administrada por el usuario.

Para ayudar a proteger tu instancia de notebook administrada por el usuario, consulta Protege los datos confidenciales en los notebooks administrados por el usuario de Vertex AI Workbench, que proporciona una guía bien definida sobre cómo aplicar las políticas de seguridad y administración de datos para ayudar a proteger las instancias de notebooks administradas por el usuario que contienen datos de identificación personal (PII). Consulta también el plano implementable adjunto en GitHub.

Almacena datos preparados y el modelo en el mismo proyecto

Puedes almacenar datos preparados en tu proyecto de Google Cloud en el que se almacena tu modelo a fin de que pueda acceder a todos los conjuntos de datos necesarios para el modelado. Esto ayudará a garantizar que existan pausas en la reproducibilidad. Sin embargo, es posible que diferentes partes de la organización almacenen sus datos en proyectos diferentes, y puede que sea necesario que los modelos de AA se basen en datos sin procesar de diferentes proyectos.

Optimiza el rendimiento y los costos

Mejorar el rendimiento y reducir el costo de las cargas de trabajo de aprendizaje automático es un tema completo y está fuera del alcance de este documento. Consulta Prácticas recomendadas para el rendimiento y la optimización de costos en el aprendizaje automático.

Usa el SDK de Vertex para Python

Usa el SDK de Vertex 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 y scikit-learn.

Desarrollo de 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 frente a subconjuntos específicos de sus datos.

Los investigadores que tienen éxito en este proceso suelen ser metódicos en su enfoque, establecer hipótesis claras, cambiar de un elemento a la vez y recopilar un conjunto completo de métricas sobre los resultados.

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

Almacene datos tabulares en BigQuery

Si trabajas con datos tabulares, te recomendamos almacenar todos los datos en BigQuery, según 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 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 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 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 el Vertex 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 para visualizar experimentos

Cuando desarrolles modelos, usa Vertex AI TensorBoard para encontrar y comparar experimentos específicos, por ejemplo, basado 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.

Entrena un modelo en una instancia de notebook administrada por el usuario para conjuntos de datos pequeños

Entrenar un modelo dentro de la instancia de notebook administrada por el usuario 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 capacitación para conjuntos de datos más grandes o para el entrenamiento distribuido. Se recomienda usar el servicio de Vertex Training para producir el entrenamiento, incluso en conjuntos de datos pequeños, si el entrenamiento se realiza según un programa 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 Training, que aprovecha la infraestructura de procesamiento de Google Cloud para probar diferentes configuraciones de hiperparámetros cuando entrenar 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 administrada por el usuario para evaluar y comprender tus modelos

Usa una instancia de notebook administrada por el usuario para evaluar y comprender tus modelos. Además de las bibliotecas comunes integradas, como scikit-learn, las instancias de notebooks administradas por el usuario incluyen lo siguiente:Herramienta What-if (WIT) y 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. 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.

Si deseas obtener recomendaciones generales sobre la ingeniería de datos y la ingeniería de atributos para el AA, consultaPreprocesamiento de datos para el aprendizaje automático: opciones y recomendaciones y Preprocesamiento de datos para el aprendizaje automático con TensorFlow Transform.

Usa TensorFlow Extended cuando aproveches el ecosistema de TensorFlow

Si usas TensorFlow para el desarrollo de modelos, usa TensorFlow Extended a fin de preparar tus datos para el entrenamiento. TensorFlow Transform es el componente de TensorFlow que permite definir y ejecutar una función de procesamiento previo para transformar tus datos.

Usa BigQuery para procesar datos tabulares

Si usas datos tabulares, utiliza BigQuery para los pasos de procesamiento y transformación de datos.Cuando trabajes con el AA, usa BigQuery ML en BigQuery. Realiza la transformación como una consulta normal de BigQuery y, luego, guarda los resultados en una tabla permanente. Puedes usar vistas, en especial vistas materializadas, para contener los datos procesados. Sin embargo, el rendimiento será menor que con una tabla materializada por completo. Para obtener más información sobre BigQuery ML, consulta ¿Qué es BigQuery ML?

Usar Dataflow para procesar datos no estructurados

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.

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.

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 por el usuario 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 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 a una canalización de AA general, encapsula los trabajos de entrenamiento con pasos adicionales. 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 de producción 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. Consulta Regiones de buckets para obtener más información.

Almacena las ubicaciones de los buckets de Vertex AI y los buckets de Cloud Storage de Vertex 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 previamente compilado, asegúrate de que los artefactos de tu modelo tengan nombres de archivo que coincidan de manera exacta con estos ejemplos:

  • Modelo guardado de TensorFlow: saved_model.pb

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

  • XGBoost: model.bst

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, las canalizaciones de Vertex) 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 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 un archivo de modelo almacenado en Cloud Storage, que puedes subir a Vertex AI para 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.

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.

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 Implementa un modelo con Google Cloud Console. 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 canalizaciones de AA para organizar el flujo de trabajo del AA

Si bien puedes iniciar manualmente cada paso de implementación, entrenamiento o proceso de datos (o ajustar todas las operaciones en un paso grande), te recomendamos usar las canalizaciones del AA para organizar el flujo. Para obtener información detallada, consulta Nivel 1 de MLOps: Automatización de la canalización del AA.

Si usas TensorFlow, usa TensorFlow Extended para definir tu canalización y las operaciones de cada paso; luego, ejecútalas en el sistema de canalizaciones sin servidores de Vertex AI. Recuerda configurar los ejecutores de Google Cloud para que cada uno ejecute un servicio de Google específico.

Para todos los demás frameworks, usa Kubeflow Pipelines con Vertex AI Pipelines. Usa Vertex IA para interactuar con la plataforma y lanzarla. Ten en cuenta que los pasos de canalización pueden ser llamadas a un servicio de Google Cloud.

Esto tiene dos implicaciones:

  • Puedes usar las canalizaciones sin importar el entorno de AA que elijas
  • Necesitas una pequeña cantidad de nodos con CPU y RAM modestas, ya que la mayoría del trabajo se realizará dentro de un servicio administrado.

Para obtener más información sobre las canalizaciones, consulta Vertex AI Pipelines.

Si bien puedes considerar otros organizadores, como Cloud Composer (consulta Airflow), las canalizaciones son una mejor opción, ya que incluyen compatibilidad integrada para operaciones de AA habituales y realiza un seguimiento de los metadatos y linaje específicos de AA. El linaje es especialmente importante para validar que tus canalizaciones funcionen bien en producción.

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.

Si usas TensorFlow para procesar terabytes de datos estructurados o de texto, se recomienda que compiles las canalizaciones mediante TensorFlow Extended.

Usa el SDK de TensorFlow Extended para aprovechar los componentes compilados con anterioridad en pasos comunes

TensorFlow proporciona componentes previamente compilados para los pasos comunes del flujo de trabajo de Vertex AI, como la transferencia de datos, la validación de datos y el entrenamiento. Cada paso se define con claridad, tiene un conjunto claro de entradas y resultados, y puedes sacarlo de la caja y comenzar a ejecutarlo si aún no tienes un enfoque definido para administrar el flujo de trabajo de AA.

Se recomienda el SDK de TensorFlow Extended en los siguientes casos:

  • Ya usas TensorFlow
  • Usas datos estructurados y textuales
  • Trabajas con una gran cantidad de datos

Para obtener más información sobre el SDK de TensorFlow Extended, consulta Información sobre las canalizaciones de TFX.

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 administrados por el usuario de Vertex AI Workbench
  • Código fuente de la canalización
  • Funciones de procesamiento previo
  • Código fuente del modelo
Experimentos y metadatos del AA
  • Experimentos
  • Parámetros
  • Métricas
  • Conjuntos de datos (referencia)
  • Metadatos de la canalización
Vertex AI
  • Modelos entrenados
Artifact Registry
  • Contenedores de canalización
  • Entornos de entrenamiento personalizados
  • Entornos de predicción personalizados
Vertex Prediction
  • Modelos implementados

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

Puedes usar Git a fin de controlar la 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

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.

Ajusta 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?