Well-Architected Framework: perspectiva de IA y AA

Last reviewed 2025-02-14 UTC

En este documento del Google Cloud framework de Well-Architected, se describen principios y recomendaciones para ayudarte a diseñar, compilar y administrar cargas de trabajo de IA y AA en Google Cloud que cumplan con tus objetivos operativos, de seguridad, confiabilidad, costo y rendimiento.

El público objetivo de este documento incluye a las personas responsables de tomar decisiones, los arquitectos, los administradores, los desarrolladores y los operadores que diseñan, compilan, implementan y mantienen cargas de trabajo de IA y AA en Google Cloud.

En las siguientes páginas, se describen los principios y las recomendaciones específicos para la IA y el AA, para cada pilar del marco de Well-Architected:

Colaboradores

Autores:

Otros colaboradores:

Perspectiva de IA y AA: excelencia operativa

En este documento del Well-Architected Framework: perspectiva de IA y AA, se proporciona una descripción general de los principios y las recomendaciones para compilar y operar sistemas sólidos de IA y AA en Google Cloud. Estas recomendaciones te ayudan a configurar elementos fundamentales, como la observabilidad, la automatización y la escalabilidad. Las recomendaciones de este documento se alinean con el pilar de excelencia operativa del Google Cloud Framework de Well-Architected.

La excelencia operativa en el dominio de la IA y el AA es la capacidad de implementar, administrar y controlar sin problemas los sistemas y las canalizaciones de IA y AA que ayudan a impulsar los objetivos estratégicos de tu organización. La excelencia operativa te permite responder de manera eficiente a los cambios, reducir la complejidad operativa y garantizar que tus operaciones sigan alineadas con los objetivos comerciales.

Las recomendaciones de este documento se correlacionan con los siguientes principios fundamentales:

Crea una base sólida para el desarrollo de modelos

Para desarrollar e implementar sistemas de IA confiables y escalables que te ayuden a alcanzar tus objetivos comerciales, es fundamental contar con una base sólida para el desarrollo de modelos. Esta base permite flujos de trabajo coherentes, automatiza pasos críticos para reducir errores y garantiza que los modelos puedan escalar según la demanda. Una base sólida para el desarrollo de modelos garantiza que tus sistemas de AA se puedan actualizar, mejorar y volver a entrenar sin problemas. La base también te ayuda a alinear el rendimiento de tus modelos con las necesidades comerciales, implementar soluciones de IA eficaces rápidamente y adaptarte a los requisitos cambiantes.

Para crear una base sólida que te permita desarrollar tus modelos de IA, ten en cuenta las siguientes recomendaciones.

Definir los problemas y los resultados requeridos

Antes de comenzar cualquier proyecto de IA o AA, debes comprender claramente los problemas comerciales que se deben resolver y los resultados requeridos. Comienza con un esquema de los objetivos comerciales y desglósalos en indicadores clave de rendimiento (KPI) medibles. Para organizar y documentar las definiciones y las hipótesis de tu problema en un entorno de notebook de Jupyter, usa herramientas como Vertex AI Workbench. Para implementar el control de versiones de código y documentos, y para documentar tus proyectos, objetivos y suposiciones, usa herramientas como Git. Para desarrollar y administrar instrucciones para aplicaciones de IA generativa, puedes usar Vertex AI Studio.

Recopila y procesa previamente los datos necesarios

Para implementar el preprocesamiento y la transformación de datos, puedes usar Dataflow (para Apache Beam), Dataproc (para Apache Spark) o BigQuery si un proceso basado en SQL es adecuado. Para validar esquemas y detectar anomalías, usa la Validación de datos de TensorFlow (TFDV) y aprovecha los análisis de calidad de los datos automatizados en BigQuery cuando corresponda.

En el caso de la IA generativa, la calidad de los datos incluye la precisión, la relevancia, la diversidad y la alineación con las características de salida requeridas. En los casos en que los datos del mundo real son insuficientes o están desequilibrados, puedes generar datos sintéticos para mejorar la solidez y la generalización del modelo. Para crear conjuntos de datos sintéticos basados en patrones existentes o aumentar los datos de entrenamiento para mejorar el rendimiento del modelo, usa BigQuery DataFrames y Gemini. Los datos sintéticos son especialmente valiosos para la IA generativa porque pueden ayudar a mejorar la diversidad de las instrucciones y la solidez general del modelo. Cuando compiles conjuntos de datos para ajustar modelos de IA generativa, considera usar las capacidades de generación de datos sintéticos en Vertex AI.

Para las tareas de IA generativa, como el ajuste o el aprendizaje por refuerzo con retroalimentación humana (RLHF), asegúrate de que las etiquetas reflejen con precisión la calidad, la relevancia y la seguridad de los resultados generados.

Selecciona un enfoque de AA adecuado

Cuando diseñes tu modelo y sus parámetros, ten en cuenta la complejidad del modelo y sus necesidades computacionales. Según la tarea (como clasificación, regresión o generación), considera usar el entrenamiento personalizado de Vertex AI para la creación de modelos personalizados o AutoML para tareas de AA más sencillas. Para aplicaciones comunes, también puedes acceder a modelos previamente entrenados a través de Vertex AI Model Garden. Puedes experimentar con una variedad de modelos de base de vanguardia para diversos casos de uso, como generar texto, imágenes y código.

Es posible que desees ajustar un modelo de base entrenado previamente para lograr un rendimiento óptimo en tu caso de uso específico. Para cumplir con los requisitos de alto rendimiento en el entrenamiento personalizado, configura unidades de procesamiento tensorial (TPU) de Cloud o recursos de GPU para acelerar el entrenamiento y la inferencia de modelos de aprendizaje profundo, como los modelos de lenguaje extenso (LLM) y los modelos de difusión.

Configura el control de versión para el código, los modelos y los datos

Para administrar y, luego, implementar versiones de código de manera eficaz, usa herramientas como GitHub o GitLab. Estas herramientas proporcionan funciones de colaboración sólidas, estrategias de ramificación y la integración con canalizaciones de CI/CD para garantizar un proceso de desarrollo optimizado.

Usa soluciones adecuadas para administrar cada artefacto de tu sistema de AA, como los siguientes ejemplos:

  • Para los artefactos de código, como las imágenes de contenedores y los componentes de canalización, Artifact Registry proporciona una solución de almacenamiento escalable que puede ayudar a mejorar la seguridad. Artifact Registry también incluye el control de versiones y se puede integrar con Cloud Build y Cloud Deploy.
  • Para administrar artefactos de datos, como los conjuntos de datos que se usan para el entrenamiento y la evaluación, usa soluciones como BigQuery o Cloud Storage para el almacenamiento y el control de versiones.
  • Para almacenar metadatos y punteros a ubicaciones de datos, usa tu sistema de control de versión o un catálogo de datos independiente.

Para mantener la coherencia y el control de versiones de tus datos de atributos, usa Vertex AI Feature Store. Para hacer un seguimiento de los artefactos del modelo y administrarlos, incluidos los archivos binarios y los metadatos, usa Vertex AI Model Registry, que te permite almacenar, organizar y, luego, implementar versiones del modelo sin problemas.

Para garantizar la confiabilidad del modelo, implementa Vertex AI Model Monitoring. Detecta la desviación de los datos, realiza un seguimiento del rendimiento y, luego, identifica anomalías en la producción. En el caso de los sistemas de IA generativa, supervisa los cambios en la calidad de los resultados y el cumplimiento de la seguridad.

Automatiza el ciclo de vida del desarrollo de modelos

La automatización te ayuda a optimizar cada etapa del ciclo de vida de la IA y el AA. La automatización reduce el esfuerzo manual y estandariza los procesos, lo que mejora la eficiencia operativa y disminuye el riesgo de errores. Los flujos de trabajo automatizados permiten una iteración más rápida, una implementación coherente en todos los entornos y resultados más confiables, de modo que tus sistemas puedan adaptarse y escalar sin problemas.

Para automatizar el ciclo de vida de desarrollo de tus sistemas de IA y AA, ten en cuenta las siguientes recomendaciones.

Usa un sistema de organización de canalizaciones administrado

Usa Vertex AI Pipelines para automatizar cada paso del ciclo de vida del AA, desde la preparación de los datos hasta el entrenamiento, la evaluación y la implementación del modelo. Para acelerar la implementación y promover la coherencia en todos los proyectos, automatiza las tareas recurrentes con ejecuciones programadas de canalizaciones, supervisa los flujos de trabajo con métricas de ejecución y desarrolla plantillas de canalizaciones reutilizables para flujos de trabajo estandarizados. Estas capacidades se extienden a los modelos de IA generativa, que a menudo requieren pasos especializados, como la ingeniería de instrucciones, el filtrado de respuestas y la evaluación human-in-the-loop. En el caso de la IA generativa, Vertex AI Pipelines puede automatizar estos pasos, incluida la evaluación de los resultados generados en función de las métricas de calidad y los lineamientos de seguridad. Para mejorar la diversidad de las instrucciones y la solidez del modelo, los flujos de trabajo automatizados también pueden incluir técnicas de aumento de datos.

Implementa canalizaciones de CI/CD

Para automatizar la compilación, las pruebas y la implementación de modelos de AA, usa Cloud Build. Este servicio es particularmente eficaz cuando ejecutas paquetes de pruebas para el código de la aplicación, lo que garantiza que la infraestructura, las dependencias y el empaquetado del modelo cumplan con tus requisitos de implementación.

Los sistemas de AA a menudo necesitan pasos adicionales más allá de las pruebas de código. Por ejemplo, debes realizar pruebas de estrés en los modelos con diferentes cargas, realizar evaluaciones masivas para evaluar el rendimiento del modelo en diversos conjuntos de datos y validar la integridad de los datos antes de volver a entrenar el modelo. Para simular cargas de trabajo realistas para las pruebas de estrés, puedes usar herramientas como Locust, Grafana k6 o Apache JMeter. Para identificar los cuellos de botella, supervisa las métricas clave, como la latencia, la tasa de errores y el uso de recursos a través de Cloud Monitoring. En el caso de la IA generativa, las pruebas también deben incluir evaluaciones específicas para el tipo de contenido generado, como la calidad del texto, la fidelidad de la imagen o la funcionalidad del código. Estas evaluaciones pueden incluir métricas automatizadas, como la perplejidad para los modelos de lenguaje, o la evaluación con humanos en el circuito para aspectos más matizados, como la creatividad y la seguridad.

Para implementar tareas de prueba y evaluación, puedes integrar Cloud Build con otros Google Cloud servicios. Por ejemplo, puedes usar Vertex AI Pipelines para la evaluación automatizada de modelos, BigQuery para el análisis de datos a gran escala y la validación de canalizaciones de Dataflow para la validación de funciones.

Puedes mejorar aún más tu canalización de CI/CD con Vertex AI para el entrenamiento continuo y habilitar el reentrenamiento automático de modelos con datos nuevos. En el caso específico de la IA generativa, para mantener la relevancia y la diversidad de los resultados generados, el reentrenamiento puede implicar la actualización automática de los modelos con nuevos datos de entrenamiento o instrucciones. Puedes usar Vertex AI Model Garden para seleccionar los modelos básicos más recientes que están disponibles para el ajuste. Esta práctica garantiza que los modelos sigan siendo actuales y estén optimizados para las necesidades cambiantes de tu empresa.

Implementa lanzamientos de modelos seguros y controlados

Para minimizar los riesgos y garantizar implementaciones confiables, implementa un enfoque de lanzamiento de modelos que te permita detectar problemas de forma anticipada, validar el rendimiento y revertir rápidamente los cambios cuando sea necesario.

Para empaquetar tus modelos y aplicaciones de AA en imágenes de contenedor y, luego, implementarlos, usa Cloud Deploy. Puedes implementar tus modelos en extremos de Vertex AI.

Implementa versiones controladas para tus aplicaciones y sistemas de IA con estrategias como las versiones canary. En el caso de las aplicaciones que usan modelos administrados, como Gemini, te recomendamos que lances gradualmente las nuevas versiones de la aplicación a un subconjunto de usuarios antes de la implementación completa. Este enfoque te permite detectar posibles problemas con anticipación, en especial cuando usas modelos de IA generativa en los que los resultados pueden variar.

Para lanzar modelos ajustados, puedes usar Cloud Deploy para administrar la implementación de las versiones del modelo y usar la estrategia de lanzamiento Canary para minimizar el riesgo. Con los modelos administrados y los modelos ajustados, el objetivo de los lanzamientos controlados es probar los cambios con un público limitado antes de lanzar las aplicaciones y los modelos para todos los usuarios.

Para una validación sólida, usa Vertex AI Experiments para comparar modelos nuevos con los existentes y Vertex AI Model Evaluation para evaluar el rendimiento del modelo. En el caso específico de la IA generativa, define métricas de evaluación que se alineen con el caso de uso previsto y los riesgos potenciales. Puedes usar el servicio de evaluación de IA generativa en Vertex AI para evaluar métricas como toxicidad, coherencia, precisión fáctica y cumplimiento de los lineamientos de seguridad.

Para garantizar la confiabilidad de la implementación, necesitas un plan de reversión sólido. En el caso de los sistemas de AA tradicionales, usa Vertex AI Model Monitoring para detectar la desviación de datos y la degradación del rendimiento. En el caso de los modelos de IA generativa, puedes hacer un seguimiento de las métricas pertinentes y configurar alertas para detectar cambios en la calidad del resultado o la aparición de contenido perjudicial con la evaluación de modelos de Vertex AI, junto con Cloud Logging y Cloud Monitoring. Configura alertas basadas en métricas específicas de la IA generativa para activar los procedimientos de reversión cuando sea necesario. Para hacer un seguimiento del linaje del modelo y revertir a la versión estable más reciente, usa las estadísticas de Vertex AI Model Registry.

Implementa la observabilidad

El comportamiento de los sistemas de IA y AA puede cambiar con el tiempo debido a cambios en los datos o el entorno, y a actualizaciones de los modelos. Esta naturaleza dinámica hace que la observabilidad sea fundamental para detectar problemas de rendimiento, sesgos o comportamientos inesperados. Esto es especialmente cierto para los modelos de IA generativa, ya que los resultados pueden ser muy variables y subjetivos. La observabilidad te permite abordar de forma proactiva los comportamientos inesperados y garantizar que tus sistemas de IA y AA sigan siendo confiables, precisos y justos.

Para implementar la observabilidad en tus sistemas de IA y AA, ten en cuenta las siguientes recomendaciones.

Supervisa el rendimiento de forma continua

Usa métricas y criterios de éxito para la evaluación continua de los modelos después de la implementación.

Puedes usar Vertex AI Model Monitoring para hacer un seguimiento proactivo del rendimiento del modelo, identificar el sesgo entre el entrenamiento y la entrega, y la desviación de la predicción, y recibir alertas para activar el reentrenamiento necesario del modelo o realizar otras intervenciones. Para supervisar de manera eficaz el sesgo entre el entrenamiento y la entrega, crea un conjunto de datos de referencia que represente la distribución de datos ideal y usa TFDV para analizar tus datos de entrenamiento y establecer un esquema de referencia.

Configura Model Monitoring para comparar la distribución de los datos de entrada con el conjunto de datos de referencia para la detección automática de sesgos. En el caso de los modelos de AA tradicionales, enfócate en las métricas como la exactitud, la precisión, la recuperación, la puntuación F1, el AUC-ROC y la pérdida de registro. Define umbrales personalizados para las alertas en Model Monitoring. En el caso de la IA generativa, usa el servicio de evaluación de IA generativa para supervisar continuamente el resultado del modelo en producción. También puedes habilitar métricas de evaluación automáticas para la calidad, la seguridad, el cumplimiento de instrucciones, la fundamentación, el estilo de escritura y la verbosidad de las respuestas. Para evaluar la calidad, la relevancia, la seguridad y el cumplimiento de los lineamientos de los resultados generados, puedes incorporar la evaluación human-in-the-loop.

Crea bucles de retroalimentación para volver a entrenar automáticamente los modelos con Vertex AI Pipelines cuando la Supervisión de modelos active una alerta. Usa estas estadísticas para mejorar tus modelos de forma continua.

Evalúa modelos durante el desarrollo

Antes de implementar tus LLM y otros modelos de IA generativa, evalúalos a fondo durante la fase de desarrollo. Usa la evaluación de modelos de Vertex AI para lograr un rendimiento óptimo y mitigar los riesgos. Usa la evaluación rápida de Vertex AI para permitir que Google Cloud ejecute automáticamente evaluaciones basadas en el conjunto de datos y las instrucciones que proporciones.

También puedes definir e integrar métricas personalizadas específicas para tu caso de uso. Para obtener comentarios sobre el contenido generado, integra flujos de trabajo con participación humana usando Vertex AI Model Evaluation.

Usa pruebas adversarias para identificar vulnerabilidades y posibles modos de falla. Para identificar y mitigar los posibles sesgos, usa técnicas como el análisis de subgrupos y la generación contrafáctica. Usa las estadísticas recopiladas de las evaluaciones que se completaron durante la fase de desarrollo para definir tu estrategia de supervisión del modelo en producción. Prepara tu solución para la supervisión continua como se describe en la sección Supervisa el rendimiento de forma continua de este documento.

Supervisa la disponibilidad

Para obtener visibilidad del estado y el rendimiento de los extremos y la infraestructura implementados, usa Cloud Monitoring. Para tus extremos de Vertex AI, haz un seguimiento de métricas clave, como la tasa de solicitudes, la tasa de errores, la latencia y el uso de recursos, y configura alertas para detectar anomalías. Para obtener más información, consulta Métricas de Cloud Monitoring para Vertex AI.

Supervisar el estado de la infraestructura subyacente, que puede incluir instancias de Compute Engine, clústeres de Google Kubernetes Engine (GKE), y TPU y GPU Obtén recomendaciones de optimización automatizadas de Active Assist. Si usas el ajuste de escala automático, supervisa su comportamiento para asegurarte de que responda de manera adecuada a los cambios en los patrones de tráfico.

Realiza un seguimiento del estado de las implementaciones de modelos, incluidos los lanzamientos de versiones canary y las reversiones, integrando Cloud Deploy con Cloud Monitoring. Además, supervisa las posibles amenazas y vulnerabilidades de seguridad con Security Command Center.

Configura alertas personalizadas para umbrales específicos de la empresa

Para identificar y rectificar anomalías y problemas de manera oportuna, configura alertas personalizadas basadas en umbrales específicos para tus objetivos comerciales. Estos son algunos ejemplos de productos de Google Cloud que puedes usar para implementar un sistema de alertas personalizado:

  • Cloud Logging: Recopila, almacena y analiza registros de todos los componentes de tu sistema de AA y AA.
  • Cloud Monitoring: Crea paneles personalizados para visualizar las métricas y las tendencias clave, y define métricas personalizadas según tus necesidades. Configura alertas para recibir notificaciones sobre problemas críticos y, luego, integra las alertas con tus herramientas de administración de incidentes, como PagerDuty o Slack.
  • Error Reporting: Captura y analiza automáticamente los errores y las excepciones.
  • Cloud Trace: Analiza el rendimiento de los sistemas distribuidos y detecta cuellos de botella. El registro de seguimiento es especialmente útil para comprender la latencia entre los diferentes componentes de tu canalización de IA y AA.
  • Cloud Profiler: Analiza de forma continua el rendimiento de tu código en producción y detecta los cuellos de botella en el rendimiento en el uso de la CPU o la memoria.

Crea una cultura de excelencia operativa

Cambia el enfoque de solo crear modelos a crear soluciones de IA sustentables, confiables y eficaces. Permite que los equipos aprendan, innoven y mejoren de forma continua, lo que genera ciclos de desarrollo más rápidos, menos errores y mayor eficiencia. Si priorizas la automatización, la estandarización y las consideraciones éticas, puedes garantizar que tus iniciativas de IA y AA aporten valor de forma constante, mitiguen los riesgos y promuevan el desarrollo IA responsable.

Para crear una cultura de excelencia operativa en tus sistemas de IA y AA, ten en cuenta las siguientes recomendaciones.

Promueve la automatización y la estandarización

Para enfatizar la eficiencia y la coherencia, incorpora la automatización y las prácticas estandarizadas en cada etapa del ciclo de vida de la IA y el AA. La automatización reduce los errores manuales y permite que los equipos se enfoquen en la innovación. La estandarización garantiza que los procesos sean repetibles y escalables en todos los equipos y proyectos.

Prioriza el aprendizaje y la mejora continuos

Fomenta un entorno en el que la educación y la experimentación continuas sean principios fundamentales. Alienta a los equipos a mantenerse al día con los avances de la IA y el AA, y brinda oportunidades para aprender de proyectos anteriores. Una cultura de curiosidad y adaptación impulsa la innovación y garantiza que los equipos estén equipados para enfrentar nuevos desafíos.

Cultiva la responsabilidad y la propiedad

Genera confianza y alineación con roles, responsabilidades y métricas de éxito claramente definidos. Capacita a los equipos para que tomen decisiones fundamentadas dentro de estos límites y establece formas transparentes de medir el progreso. El sentido de propiedad motiva a los equipos y garantiza la responsabilidad colectiva por los resultados.

Incorpora consideraciones éticas y de seguridad de la IA

Prioriza las consideraciones éticas en cada etapa del desarrollo. Alienta a los equipos a pensar de forma crítica sobre el impacto de sus soluciones de IA y fomenta debates sobre la equidad, el sesgo y el impacto social. Los principios claros y los mecanismos de responsabilidad garantizan que tus sistemas de IA se alineen con los valores de la organización y promuevan la confianza.

Diseña para la escalabilidad

Para satisfacer las crecientes demandas de datos y de los usuarios, y maximizar el valor de las inversiones en IA, tus sistemas de IA y AA deben ser escalables. Los sistemas deben adaptarse y funcionar de manera óptima para evitar cuellos de botella en el rendimiento que obstaculicen la eficacia. Cuando diseñas para la escalabilidad, te aseguras de que la infraestructura de IA pueda manejar el crecimiento y mantener la capacidad de respuesta. Usa infraestructura escalable, planifica la capacidad y emplea estrategias como el ajuste horizontal y los servicios administrados.

Para diseñar tus sistemas de IA y AA de modo que sean escalables, ten en cuenta las siguientes recomendaciones.

Planifica la capacidad y las cuotas

Evalúa el crecimiento futuro y planifica la capacidad de infraestructura y las cuotas de recursos en consecuencia. Trabaja con los interesados de la empresa para comprender el crecimiento proyectado y, luego, define los requisitos de infraestructura en consecuencia.

Usa Cloud Monitoring para analizar el uso histórico de los recursos, identificar tendencias y proyectar las necesidades futuras. Realiza pruebas de carga periódicas para simular cargas de trabajo y detectar cuellos de botella.

Familiarízate con las cuotas de los servicios que usas, como Compute Engine, Vertex AI y Cloud Storage.Google Cloud Solicita de forma proactiva aumentos de cuota a través de la Google Cloud consola y justifica los aumentos con datos de las pruebas de previsión y carga. Supervisa el uso de la cuota y configura alertas para recibir notificaciones cuando el uso se acerque a los límites de la cuota.

Para optimizar el uso de recursos según la demanda, redimensiona tus recursos, usa VMs Spot para cargas de trabajo por lotes tolerantes a errores y, luego, implementa el ajuste de escala automático.

Prepárate para los eventos de tráfico máximo

Asegúrate de que tu sistema pueda controlar los aumentos repentinos en el tráfico o la carga de trabajo durante los eventos pico. Documenta tu estrategia para eventos de alta demanda y realiza simulacros periódicos para probar la capacidad de tu sistema de manejar una mayor carga.

Para aumentar de forma agresiva los recursos cuando la demanda se dispara, configura políticas de ajuste de escala automático en Compute Engine y GKE. Para patrones de picos predecibles, considera usar el ajuste de escala automático predictivo. Para activar el ajuste de escala automático en función de indicadores específicos de la aplicación, usa métricas personalizadas en Cloud Monitoring.

Distribuye el tráfico entre varias instancias de la aplicación con Cloud Load Balancing. Elige un tipo de balanceador de cargas adecuado según las necesidades de tu aplicación. Para los usuarios distribuidos geográficamente, puedes usar el balanceo de cargas global para enrutar el tráfico a la instancia disponible más cercana. Para arquitecturas complejas basadas en microservicios, considera usar Cloud Service Mesh.

Almacena contenido estático en caché en el perímetro de la red de Google con Cloud CDN. Para almacenar en caché los datos a los que se accede con frecuencia, puedes usar Memorystore, que ofrece un servicio en memoria completamente administrado para Redis, Valkey o Memcached.

Desacopla los componentes de tu sistema con Pub/Sub para la mensajería en tiempo real y Cloud Tasks para la ejecución de tareas asíncronas.

Escala las aplicaciones para la producción

Para garantizar la publicación escalable en producción, puedes usar servicios administrados como el entrenamiento distribuido de Vertex AI y la inferencia de Vertex AI. Vertex AI Inference te permite configurar los tipos de máquinas para tus nodos de predicción cuando implementas un modelo en un extremo o solicitas predicciones por lotes. En algunas configuraciones, puedes agregar GPUs. Elige el tipo de máquina y los aceleradores adecuados para optimizar la latencia, el rendimiento y el costo.

Para escalar aplicaciones complejas de IA y Python, y cargas de trabajo personalizadas en recursos de procesamiento distribuidos, puedes usar Ray en Vertex AI. Esta función puede ayudar a optimizar el rendimiento y permite una integración perfecta con los servicios deGoogle Cloud . Ray en Vertex AI simplifica la computación distribuida, ya que se encarga de la administración de clústeres, la programación de tareas y la transferencia de datos. Se integra con otros servicios de Vertex AI, como entrenamiento, predicción y canalizaciones. Ray proporciona tolerancia a errores y ajuste de escala automático, y te ayuda a adaptar la infraestructura a las cargas de trabajo cambiantes. Ofrece un marco de trabajo unificado para el entrenamiento distribuido, el ajuste de hiperparámetros, el aprendizaje por refuerzo y la entrega de modelos. Usa Ray para el procesamiento previo de datos distribuidos con Dataflow o Dataproc, el entrenamiento de modelos acelerado, el ajuste de hiperparámetros escalable, el aprendizaje por refuerzo y la predicción por lotes paralelizada.

Colaboradores

Autores:

Otros colaboradores:

Perspectiva de IA y AA: seguridad

En este documento del Well-Architected Framework: perspectiva de IA y AA, se proporciona una descripción general de los principios y las recomendaciones para garantizar que tus implementaciones de IA y AA cumplan con los requisitos de seguridad y cumplimiento de tu organización. Las recomendaciones de este documento se alinean con el pilar de seguridad del Google Cloud Framework de Well-Architected.

La implementación segura de cargas de trabajo de IA y AA es un requisito fundamental, en especial en entornos empresariales. Para cumplir con este requisito, debes adoptar un enfoque de seguridad integral que comience con la conceptualización inicial de tus soluciones de IA y AA, y se extienda al desarrollo, la implementación y las operaciones en curso. Google Cloud ofrece herramientas y servicios sólidos diseñados para ayudarte a proteger tus cargas de trabajo de IA y AA.

Define objetivos y requisitos claros

Es más fácil integrar los controles de seguridad y cumplimiento necesarios al principio del proceso de diseño y desarrollo que agregarlos después del desarrollo. Desde el inicio de tu proceso de diseño y desarrollo, toma decisiones adecuadas para tu entorno de riesgo y tus prioridades comerciales específicos.

Ten en cuenta las siguientes recomendaciones:

  • Identifica posibles vectores de ataque y adopta una perspectiva de seguridad y cumplimiento desde el principio. A medida que diseñes y desarrolles tus sistemas de IA, haz un seguimiento de la superficie de ataque, los riesgos potenciales y las obligaciones que podrías enfrentar.
  • Alinea tus esfuerzos de seguridad de la IA y el AA con tus objetivos comerciales, y asegúrate de que la seguridad sea una parte integral de tu estrategia general. Comprende los efectos de tus elecciones de seguridad en tus principales objetivos comerciales.

Mantener la seguridad de los datos y evitar su pérdida o manipulación

Los datos son un recurso valioso y sensible que debe mantenerse seguro. La seguridad de los datos te ayuda a mantener la confianza de los usuarios, respaldar tus objetivos comerciales y cumplir con tus requisitos de cumplimiento.

Ten en cuenta las siguientes recomendaciones:

  • No recopiles, conserves ni uses datos que no sean estrictamente necesarios para tus objetivos comerciales. Si es posible, usa datos sintéticos o completamente anonimizados.
  • Supervisar la recopilación, el almacenamiento y la transformación de datos Mantén registros de todas las actividades de acceso y manipulación de datos. Los registros te ayudan a auditar el acceso a los datos, detectar intentos de acceso no autorizados y evitar el acceso no deseado.
  • Implementa diferentes niveles de acceso (por ejemplo, sin acceso, solo lectura o escritura) según los roles de usuario. Asegúrate de que los permisos se asignen según el principio de privilegio mínimo. Los usuarios deben tener solo los permisos mínimos necesarios para realizar las actividades de su rol.
  • Implementa medidas como la encriptación, los perímetros seguros y las restricciones sobre el movimiento de datos. Estas medidas te ayudan a evitar el robo de datos y la pérdida de datos.
  • Protege tus sistemas de entrenamiento de AA contra el envenenamiento de datos.

Mantén las canalizaciones de IA seguras y protegidas contra la manipulación

Tu código de IA y AA, y las canalizaciones definidas por código son recursos fundamentales. El código no protegido puede manipularse, lo que puede provocar filtraciones de datos, incumplimiento de la normativa y la interrupción de actividades comerciales críticas. Mantener seguro tu código de IA y AA ayuda a garantizar la integridad y el valor de tus modelos y sus resultados.

Ten en cuenta las siguientes recomendaciones:

  • Usa prácticas de programación segura, como la administración de dependencias o la validación y limpieza de entradas, durante el desarrollo del modelo para evitar vulnerabilidades.
  • Protege el código de tu canalización y los artefactos de tu modelo, como archivos, pesos del modelo y especificaciones de implementación, del acceso no autorizado. Implementa diferentes niveles de acceso para cada artefacto según los roles y las necesidades de los usuarios.
  • Aplica el linaje y el seguimiento de tus recursos y ejecuciones de canalizaciones. Esta aplicación de políticas te ayuda a cumplir con los requisitos de cumplimiento y a evitar comprometer los sistemas de producción.

Implementa en sistemas seguros con herramientas y artefactos seguros

Asegúrate de que tu código y tus modelos se ejecuten en un entorno seguro que tenga un sistema de control de acceso sólido con garantías de seguridad para las herramientas y los artefactos que se implementan en el entorno.

Ten en cuenta las siguientes recomendaciones:

  • Entrena y, luego, implementa tus modelos en un entorno seguro que tenga los controles de acceso y la protección adecuados contra el uso o la manipulación no autorizados.
  • Sigue los lineamientos estándar de los niveles de cadena de suministro para artefactos de software (SLSA) para tus artefactos específicos de IA, como modelos y paquetes de software.
  • Prefiere usar imágenes de contenedor compiladas previamente validadas y diseñadas específicamente para cargas de trabajo de IA.

Protege y supervisa las entradas

Los sistemas de IA necesitan entradas para hacer predicciones, generar contenido o automatizar acciones. Algunas entradas pueden representar riesgos o usarse como vectores de ataque que deben detectarse y corregirse. Detectar posibles entradas maliciosas de forma anticipada te ayuda a mantener tus sistemas de IA seguros y a que funcionen según lo previsto.

Ten en cuenta las siguientes recomendaciones:

  • Implementa prácticas seguras para desarrollar y administrar instrucciones para los sistemas de IA generativa, y asegúrate de que se analicen las instrucciones para detectar intenciones dañinas.
  • Supervisa las entradas de los sistemas predictivos o generativos para evitar problemas como los extremos sobrecargados o las instrucciones que los sistemas no están diseñados para controlar.
  • Asegúrate de que solo los usuarios previstos de un sistema implementado puedan usarlo.

Supervisa, evalúa y prepárate para responder a los resultados

Los sistemas de IA aportan valor porque producen resultados que aumentan, optimizan o automatizan la toma de decisiones humanas. Para mantener la integridad y la confiabilidad de tus sistemas y aplicaciones de IA, debes asegurarte de que los resultados sean seguros y estén dentro de los parámetros esperados. También necesitas un plan para responder a los incidentes.

Ten en cuenta las siguientes recomendaciones:

  • Supervisa los resultados de tus modelos de IA y AA en producción, y detecta cualquier problema de rendimiento, seguridad y cumplimiento.
  • Evalúa el rendimiento del modelo implementando métricas sólidas y medidas de seguridad, como la identificación de respuestas generativas fuera del alcance o resultados extremos en los modelos predictivos. Recopila comentarios de los usuarios sobre el rendimiento del modelo.
  • Implementar procedimientos sólidos de alerta y respuesta ante incidentes para abordar cualquier problema potencial

Colaboradores

Autores:

  • Kamilla Kurta | Ingeniera de atención al cliente especializada en IA generativa y AA
  • Filipe Gracio, PhD | Ingeniero de Atención al Cliente y especialista en IA/AA
  • Mohamed Fawzi | Líder de Seguridad y Cumplimiento para Benelux

Otros colaboradores:

Perspectiva de IA y AA: Confiabilidad

En este documento del Google Cloud Well-Architected Framework: perspectiva de IA y AA, se proporciona una descripción general de los principios y las recomendaciones para diseñar y operar sistemas confiables de IA y AA en Google Cloud. Explora cómo integrar prácticas avanzadas de confiabilidad y observabilidad en tus planos arquitectónicos. Las recomendaciones de este documento se alinean con el pilar de confiabilidad del Google Cloud Framework de Well-Architected.

En el panorama de la IA y el AA en rápida evolución, los sistemas confiables son esenciales para garantizar la satisfacción del cliente y alcanzar los objetivos comerciales. Para satisfacer las demandas únicas del AA predictivo y la IA generativa, necesitas sistemas de IA y AA que sean sólidos, confiables y adaptables. Para manejar las complejidades de MLOps, desde el desarrollo hasta la implementación y la mejora continua, debes usar un enfoque que priorice la confiabilidad. Google Cloud ofrece una infraestructura de IA creada específicamente que se alinea con los principios de la ingeniería de confiabilidad de sitios (SRE) y que proporciona una base sólida para los sistemas confiables de IA y AA.

Las recomendaciones de este documento se correlacionan con los siguientes principios fundamentales:

Garantizar que la infraestructura de AA sea escalable y tenga alta disponibilidad

Los sistemas confiables de IA y AA en la nube requieren una infraestructura escalable y con alta disponibilidad. Estos sistemas tienen demandas dinámicas, diversas necesidades de recursos y dependencias críticas de la disponibilidad del modelo. Las arquitecturas escalables se adaptan a las cargas fluctuantes y a las variaciones en el volumen de datos o las solicitudes de inferencia. La alta disponibilidad (HA) ayuda a garantizar la resiliencia ante fallas a nivel del componente, la zona o la región.

Para crear una infraestructura de AA escalable y con alta disponibilidad, ten en cuenta las siguientes recomendaciones.

Implementa capacidades de escalamiento automático y dinámico

Las cargas de trabajo de AA y de AA son dinámicas, con una demanda que fluctúa según las tasas de llegada de datos, la frecuencia de entrenamiento y el volumen de tráfico de inferencia. El ajuste de escala automático y dinámico adapta los recursos de infraestructura sin problemas a las fluctuaciones de la demanda. Escalar tus cargas de trabajo de manera eficaz ayuda a evitar el tiempo de inactividad, mantener el rendimiento y optimizar los costos.

Para ajustar automáticamente la escala de tus cargas de trabajo de IA y AA, usa los siguientes productos y funciones en Google Cloud:

  • Canalizaciones de procesamiento de datos: Crea canalizaciones de datos en Dataflow. Configura las canalizaciones para que usen la función de ajuste de escala automático horizontal de Dataflow, que ajusta de forma dinámica la cantidad de instancias de trabajador según el uso de CPU, el paralelismo de la canalización y los datos pendientes. Puedes configurar los parámetros de ajuste automático a través de las opciones de canalización cuando inicias trabajos.
  • Trabajos de entrenamiento: Automatiza el ajuste de escala de los trabajos de entrenamiento con el entrenamiento personalizado de Vertex AI. Puedes definir especificaciones de grupos de trabajadores, como el tipo de máquina, el tipo y la cantidad de aceleradores, y la cantidad de grupos de trabajadores. Para los trabajos que pueden tolerar interrupciones y para los trabajos en los que el código de entrenamiento implementa el checkpointing, puedes reducir los costos con las VMs Spot.
  • Inferencia en línea: Para la inferencia en línea, usa los extremos de Vertex AI. Para habilitar el ajuste de escala automático, configura el recuento mínimo y máximo de réplicas. Especifica un mínimo de dos réplicas para la HA. Vertex AI ajusta automáticamente la cantidad de réplicas según el tráfico y las métricas de ajuste de escala automático configuradas, como el uso de CPU y el uso de réplicas.
  • Cargas de trabajo en contenedores en Google Kubernetes Engine: Configura el ajuste de escala automático a nivel del nodo y del Pod. Configura el ajuste de escala automático de clústeres y el aprovisionamiento automático de nodos para ajustar la cantidad de nodos según las solicitudes de recursos de Pods pendientes, como CPU, memoria, GPU y TPU. Usa el escalador automático horizontal de Pods (HPA) para las implementaciones y define políticas de ajuste de escala basadas en métricas como el uso de CPU y memoria. También puedes escalar en función de métricas personalizadas de IA y AA, como el uso de GPU o TPU y las solicitudes de predicción por segundo.
  • Servicios alojados en contenedores sin servidores: Implementa los servicios en Cloud Run y configura el ajuste de escala automático especificando la cantidad mínima y máxima de instancias de contenedor. Usa las prácticas recomendadas para ajustar automáticamente la escala de las instancias habilitadas para GPU especificando el tipo de acelerador. Cloud Run ajusta automáticamente la escala de las instancias entre los límites mínimo y máximo configurados según las solicitudes entrantes. Cuando no hay solicitudes, se ajusta de manera eficiente a cero instancias. Puedes aprovechar el ajuste de escala automático basado en solicitudes de Cloud Run para implementar agentes de Vertex AI y cargas de trabajo de terceros, como modelos cuantificados con Ollama, inferencia de modelos LLM con vLLM y Hugging Face Text Generation Inference (TGI).

Diseño para la alta disponibilidad y la tolerancia a errores

Para las cargas de trabajo de IA y AA de nivel de producción, es fundamental que garantices el funcionamiento continuo y la resiliencia ante fallas. Para implementar la alta disponibilidad y la tolerancia a errores, debes incorporar redundancia y replicación en tu arquitectura en Google Cloud. Este enfoque ayuda a garantizar que la falla de un componente individual no cause la falla de todo el sistema.

Implementar redundancia para los componentes críticos de la IA y el AA en Google Cloud A continuación, se incluyen ejemplos de productos y funciones que te permiten implementar la redundancia de recursos:

  • Implementa clústeres regionales de GKE en varias zonas.
  • Asegúrate de que haya redundancia de datos para los conjuntos de datos y los puntos de control usando buckets multirregionales o birregionales de Cloud Storage.
  • Usa Spanner para el almacenamiento de metadatos con coherencia global y alta disponibilidad.
  • Configura réplicas de lectura de Cloud SQL para bases de datos operativas.
  • Asegúrate de que las bases de datos vectoriales para la generación aumentada por recuperación (RAG) tengan alta disponibilidad y sean multizonales o multirregionales.

Administrar los recursos de forma proactiva y anticipar los requisitos

La administración eficaz de los recursos es importante para ayudarte a optimizar los costos, el rendimiento y la confiabilidad. Las cargas de trabajo de IA y AA son dinámicas, y existe una gran demanda de hardware especializado, como las GPU y las TPU. Por lo tanto, es fundamental que apliques una administración de recursos proactiva y garantices la disponibilidad de los recursos.

Planifica la capacidad en función de los datos históricos de supervisión, como las tasas de utilización y de procesamiento de GPU o TPU, de Cloud Monitoring y los registros de Cloud Logging. Analiza estos datos de telemetría con BigQuery o Looker Studio y prevé la demanda futura de GPU en función del crecimiento o los modelos nuevos. El análisis de los patrones y las tendencias de uso de recursos te ayuda a predecir cuándo y dónde necesitas aceleradores especializados críticos.

  • Valida las estimaciones de capacidad a través de pruebas de carga rigurosas. Simula el tráfico en los servicios de IA y AA, como la entrega y las canalizaciones, con herramientas como Apache JMeter o LoadView.
  • Analizar el comportamiento del sistema en condiciones de estrés
    • Para anticipar y satisfacer las mayores demandas de carga de trabajo en producción, identifica de forma proactiva los requisitos de recursos. Supervisa la latencia, la capacidad de procesamiento, los errores y el uso de recursos, en especial el uso de la GPU y la TPU. Aumenta las cuotas de recursos según sea necesario.
    • Para la entrega de IA generativa, realiza pruebas con cargas simultáneas altas y determina el nivel en el que la disponibilidad del acelerador limita el rendimiento.
  • Realiza una supervisión continua de las búsquedas del modelo y configura alertas proactivas para los agentes.
    • Usa el panel de observabilidad del modelo para ver las métricas que recopila Cloud Monitoring, como las consultas por segundo (QPS) del modelo, el rendimiento de tokens y las latencias del primer token.

Optimiza la disponibilidad y la obtención de recursos

Optimiza los costos y garantiza la disponibilidad de recursos seleccionando estratégicamente los recursos de procesamiento adecuados según los requisitos de la carga de trabajo.

  • Para la inferencia estable las 24 horas, todos los días, o para las cargas de trabajo de entrenamiento con requisitos de capacidad fijos o predecibles, usa los descuentos por compromiso de uso (CUD) para las VMs y los aceleradores.
  • Para los nodos de GKE y las VMs de Compute Engine, usa las capacidades de las VMs Spot y Dynamic Workload Scheduler (DWS):

    • Para las tareas tolerantes a errores, como las cargas de trabajo de evaluación y experimentación, usa VMs Spot. Las VMs Spot se pueden interrumpir, pero pueden ayudarte a reducir tus costos generales.
    • Para administrar el riesgo de interrupción de los aceleradores de alta demanda, puedes garantizar una mejor obtención con DWS.
      • Para el entrenamiento por lotes complejo que necesita GPUs de alta gama para ejecutarse hasta siete días, usa el modo de inicio flexible de DWS.
      • Para las cargas de trabajo de mayor duración, de hasta tres meses, usa el modo Calendar para reservar GPUs específicas (H100 y H200) y TPUs (Trillium).
  • Para optimizar la inferencia de IA en GKE, puedes ejecutar un motor de vLLM que use de forma dinámica las TPU y las GPU para abordar las necesidades fluctuantes de capacidad y rendimiento. Para obtener más información, consulta Intercambiabilidad de GPU/TPU de vLLM.

  • Para situaciones avanzadas con necesidades complejas de recursos y topología que involucran aceleradores, usa herramientas para abstraer la administración de recursos.

    • Cluster Director te permite implementar y administrar grupos de aceleradores con ubicación conjunta y programación para el entrenamiento con varias GPUs (A3 Ultra H200 y A4 B200). Cluster Director admite clústeres de GKE y Slurm.
    • Ray en Vertex AI abstrae la infraestructura de procesamiento distribuido. Permite que las aplicaciones soliciten recursos para el entrenamiento y la entrega sin necesidad de administrar directamente las VMs y los contenedores.

Distribuir el tráfico entrante entre varias instancias

El balanceo de cargas eficaz es fundamental para las aplicaciones de IA que tienen demandas fluctuantes. El balanceo de cargas distribuye el tráfico, optimiza el uso de los recursos, proporciona alta disponibilidad y baja latencia, y ayuda a garantizar una experiencia del usuario sin problemas.

  • Inferencia con necesidades de recursos variables: Implementa el balanceo de cargas según las métricas del modelo. La puerta de enlace de inferencia de GKE te permite implementar modelos detrás de un balanceador de cargas con enrutamiento que reconoce el modelo. La puerta de enlace prioriza las instancias con aceleradores de GPU y TPU para tareas de procesamiento intensivo, como la inferencia de IA generativa y LLM. Configura verificaciones de estado detalladas para evaluar el estado del modelo. Usa frameworks de entrega, como vLLM o Triton, para las métricas de LLM y, luego, integra las métricas en Cloud Monitoring con Google Cloud Managed Service para Prometheus.
  • Cargas de trabajo de inferencia que necesitan GPUs o TPUs: Para garantizar que las cargas de trabajo de inferencia críticas de IA y AA se ejecuten de forma coherente en máquinas adecuadas para los requisitos de las cargas de trabajo, en especial cuando la disponibilidad de GPU y TPU es limitada, usa las clases de procesamiento personalizadas de GKE. Puedes definir perfiles de procesamiento específicos con políticas de resguardo para el ajuste de escala automático. Por ejemplo, puedes definir un perfil que especifique una prioridad más alta para las instancias de GPU o TPU reservadas. El perfil puede incluir una alternativa para usar VMs Spot rentables si los recursos reservados no están disponibles temporalmente.
  • IA generativa en diversas plataformas de orquestación: Usa un balanceador de cargas centralizado. Por ejemplo, para lograr eficiencia en la administración y los costos, puedes enrutar las solicitudes que tienen bajas necesidades de GPU a Cloud Run y las tareas más complejas y que requieren más GPU a GKE. Para la comunicación entre servicios y la administración de políticas, implementa una malla de servicios con Cloud Service Mesh. Garantiza el registro y la supervisión coherentes con Cloud Logging y Cloud Monitoring.
  • Distribución de carga global: Para balancear la carga del tráfico de usuarios globales que necesitan baja latencia, usa un balanceador de cargas de aplicaciones externo global. Configura el enrutamiento por ubicación geográfica a la región más cercana y, luego, implementa la conmutación por error. Establece la replicación regional de extremos en Vertex AI o GKE. Configura Cloud CDN para los recursos estáticos. Supervisa la latencia y el tráfico globales con Cloud Monitoring.
  • Administración de tráfico detallada: Para las solicitudes que tienen diversos tipos de datos o complejidad y las solicitudes de larga duración, implementa la administración de tráfico detallada.
    • Configura el enrutamiento basado en el contenido para dirigir las solicitudes a backends especializados según atributos como las rutas de acceso y los encabezados de la URL. Por ejemplo, dirige las solicitudes a backends habilitados para GPU para modelos de imágenes o videos, y a backends optimizados para CPU para modelos basados en texto.
    • Para las solicitudes de IA generativa de larga duración o las cargas de trabajo por lotes, usa WebSockets o gRPC. Implementa la administración del tráfico para controlar los tiempos de espera y el almacenamiento en búfer. Configura los tiempos de espera y los reintentos de las solicitudes, y aplica límites de frecuencia y cuotas con API Gateway o Apigee.

Usa una arquitectura modular y con acoplamiento bajo

En una arquitectura de IA y AA modular y con acoplamiento bajo, los sistemas complejos se dividen en componentes más pequeños y autónomos que interactúan a través de interfaces bien definidas. Esta arquitectura minimiza las dependencias de los módulos, simplifica el desarrollo y las pruebas, mejora la reproducibilidad y aumenta la tolerancia a fallas, ya que contiene los errores. El enfoque modular es fundamental para administrar la complejidad, acelerar la innovación y garantizar el mantenimiento a largo plazo.

Para diseñar una arquitectura modular y con acoplamiento bajo para las cargas de trabajo de IA y AA, ten en cuenta las siguientes recomendaciones.

Implementa módulos o componentes pequeños y autónomos

Separa tu sistema de IA y AA de extremo a extremo en módulos o componentes pequeños y autónomos. Cada módulo o componente es responsable de una función específica, como la transferencia de datos, la transformación de atributos, el entrenamiento de modelos, la entrega de inferencias o la evaluación. Un diseño modular proporciona varios beneficios clave para los sistemas de IA y AA: mejor mantenimiento, mayor escalabilidad, reutilización y mayor flexibilidad y agilidad.

En las siguientes secciones, se describen los Google Cloud productos, las funciones y las herramientas que puedes usar para diseñar una arquitectura modular para tus sistemas de IA y AA.

Microservicios alojados en contenedores en GKE

Para los sistemas complejos de IA y AA, o las canalizaciones intrincadas de IA generativa que necesitan una organización detallada, implementa módulos como microservicios que se organizan con GKE. Empaqueta cada etapa distinta como un microservicio individual dentro de contenedores de Docker. Estas etapas distintas incluyen la transferencia de datos adaptada a diversos formatos, el preprocesamiento de datos o la ingeniería de atributos especializados, el entrenamiento de modelos distribuidos o el ajuste de modelos básicos grandes, la evaluación o la entrega.

Implementa los microservicios en contenedores en GKE y aprovecha el ajuste de escala automático basado en el uso de CPU y memoria, o bien métricas personalizadas, como el uso de GPU, las actualizaciones continuas y las configuraciones reproducibles en manifiestos YAML. Garantiza una comunicación eficiente entre los microservicios con el descubrimiento de servicios de GKE. Para patrones asíncronos, usa colas de mensajes como Pub/Sub.

El enfoque de microservicios en GKE te ayuda a compilar plataformas resilientes y escalables para tareas como aplicaciones complejas de RAG en las que las etapas se pueden diseñar como servicios distintos.

Servicios sin servidores controlados por eventos

Para las tareas controladas por eventos que pueden beneficiarse del ajuste de escala automático sin servidores, usa Cloud Run o Cloud Run functions. Estos servicios son ideales para tareas asíncronas, como el preprocesamiento, o para trabajos de inferencia más pequeños. Activa funciones de Cloud Run en eventos, como un archivo de datos nuevo que se crea en Cloud Storage o actualizaciones de modelos en Artifact Registry. Para las tareas o los servicios de webhook que necesitan un entorno de contenedor, usa Cloud Run.

Los servicios y las funciones de Cloud Run pueden aumentar su escala verticalmente con rapidez y reducirla a cero, lo que ayuda a garantizar la eficiencia en los costos para las cargas de trabajo fluctuantes. Estos servicios son adecuados para los componentes modulares en los flujos de trabajo de los agentes de Vertex AI. Puedes organizar secuencias de componentes con flujos de trabajo o Application Integration.

Servicios administrados de Vertex AI

Los servicios de Vertex AI admiten la modularidad y te ayudan a simplificar el desarrollo y la implementación de tus sistemas de IA y AA. Los servicios abstraen las complejidades de la infraestructura para que puedas enfocarte en la lógica de la aplicación.

  • Para organizar flujos de trabajo creados a partir de pasos modulares, usa Vertex AI Pipelines.
  • Para ejecutar código personalizado de AA y AA, empaqueta el código en contenedores de Docker que se puedan ejecutar en servicios administrados, como el entrenamiento personalizado de Vertex AI y la predicción de Vertex AI.
  • Para las canalizaciones de ingeniería de atributos modulares, usa Vertex AI Feature Store.
  • Para la exploración y la creación de prototipos modulares, usa entornos de notebook como Vertex AI Workbench o Colab Enterprise. Organiza tu código en funciones, clases y secuencias de comandos reutilizables.

Aplicaciones con agentes

En el caso de los agentes de IA, el Kit de desarrollo de agentes (ADK) proporciona capacidades modulares, como Herramientas y Estado. Para habilitar la interoperabilidad entre frameworks como LangChain, LangGraph, LlamaIndex y Vertex AI, puedes combinar el ADK con el protocolo Agent2Agent (A2A) y el protocolo de contexto del modelo (MCP). Esta interoperabilidad te permite componer flujos de trabajo basados en agentes con diversos componentes.

Puedes implementar agentes en Vertex AI Agent Engine, que es un entorno de ejecución administrado optimizado para la implementación de agentes escalables. Para ejecutar agentes en contenedores, puedes aprovechar las capacidades de ajuste de escala automático de Cloud Run.

Diseña interfaces bien definidas

Para crear sistemas de software sólidos y fáciles de mantener, es fundamental garantizar que los componentes de un sistema estén con acoplamiento bajo y modularizados. Este enfoque ofrece ventajas significativas, ya que minimiza las dependencias entre las diferentes partes del sistema. Cuando los módulos están con acoplamiento bajo, los cambios en un módulo tienen un impacto mínimo en otros módulos. Este aislamiento permite actualizaciones y flujos de trabajo de desarrollo independientes para módulos individuales.

En las siguientes secciones, se proporciona orientación para garantizar una comunicación y una integración fluidas entre los módulos de tus sistemas de IA y AA.

Elección del protocolo

  • Para el acceso universal, usa APIs de HTTP, respeta los principios de RESTful y usa JSON para el intercambio de datos independiente del lenguaje. Diseña los extremos de la API para representar acciones en los recursos.
  • Para la comunicación interna de alto rendimiento entre microservicios, usa gRPC con búferes de protocolo (ProtoBuf) para una serialización eficiente y una escritura estricta. Define estructuras de datos, como ModelInput, PredictionResult o datos de herramientas del ADK, con archivos .proto y, luego, genera vinculaciones de lenguaje.
  • Para los casos de uso en los que el rendimiento es fundamental, aprovecha la transmisión de gRPC para conjuntos de datos grandes o para flujos continuos, como aplicaciones de texto a voz o video en vivo. Implementa los servicios de gRPC en GKE.

Documentación estandarizada y completa

Independientemente del protocolo de interfaz que elijas, la documentación estandarizada es fundamental. La Especificación de OpenAPI describe las APIs de RESTful. Usa OpenAPI para documentar tus APIs de IA y AA: rutas, métodos, parámetros, formatos de solicitud y respuesta vinculados a esquemas JSON, y seguridad. La documentación integral de la API ayuda a mejorar la detección y la integración del cliente. Para la creación y visualización de APIs, usa herramientas de IU como Swagger Editor. Para acelerar el desarrollo y garantizar la coherencia, puedes generar SDKs de cliente y stubs de servidor con herramientas de programación asistida por IA, como Gemini Code Assist. Integra la documentación de OpenAPI en tu flujo de CI/CD.

Interacción con Google Cloud servicios administrados, como Vertex AI

Elige entre la mayor abstracción del SDK de Vertex AI, que se prefiere para la productividad del desarrollo, y el control detallado que proporciona la API de REST.

  • El SDK de Vertex AI simplifica las tareas y la autenticación. Usa el SDK cuando necesites interactuar con Vertex AI.
  • La API de REST es una alternativa potente, en especial cuando se requiere interoperabilidad entre las capas de tu sistema. Es útil para las herramientas en idiomas que no tienen un SDK o cuando necesitas un control detallado.

Usa APIs para aislar módulos y abstraer detalles de implementación

Para garantizar la seguridad, la escalabilidad y la visibilidad, es fundamental que implementes una administración de APIs sólida para tus servicios de IA y AA. Para implementar la administración de APIs en las interfaces definidas, usa los siguientes productos:

  • API Gateway: Para las APIs que se exponen y administran de forma externa, API Gateway proporciona un punto de entrada centralizado y seguro. Simplifica el acceso a los servicios de backend sin servidores, como las APIs de predicción, entrenamiento y datos. API Gateway ayuda a consolidar los puntos de acceso, aplicar contratos de API y administrar capacidades de seguridad, como claves de API y OAuth 2.0. Para proteger los backends de la sobrecarga y garantizar la confiabilidad, implementa límite de frecuencia y cuotas de uso en API Gateway.
  • Cloud Endpoints: Para optimizar el desarrollo y la implementación de APIs en GKE y Cloud Run, usa Cloud Endpoints, que ofrece una solución fácil de usar para los desarrolladores para generar claves de API. También proporciona supervisión y seguimiento integrados para las llamadas a la API, y automatiza la generación de especificaciones de OpenAPI, lo que simplifica la documentación y la integración del cliente. Puedes usar Cloud Endpoints para administrar el acceso a las APIs internas o controladas de IA y AA, por ejemplo, para activar el entrenamiento y administrar los almacenes de funciones.
  • Apigee: Para la IA y el AA a escala empresarial, en especial las sofisticadas APIs de IA generativa, Apigee proporciona una administración de APIs avanzada y completa. Usa Apigee para obtener seguridad avanzada, como protección contra amenazas y OAuth 2.0, para la administración de tráfico, como almacenamiento en caché, cuotas y mediación, y para las estadísticas. Apigee puede ayudarte a obtener estadísticas detalladas sobre los patrones de uso, el rendimiento y la participación de las APIs, que son fundamentales para comprender el uso de las APIs de IA generativa.

Planifica la degradación elegante

En los sistemas de producción de IA y AA, las fallas de los componentes son inevitables, al igual que en otros sistemas. La degradación gradual garantiza que las funciones esenciales sigan operando, aunque posiblemente con un rendimiento reducido. Este enfoque evita las interrupciones completas y mejora la disponibilidad general. La degradación gradual es fundamental para la inferencia sensible a la latencia, el entrenamiento distribuido y la IA generativa.

En las siguientes secciones, se describen las técnicas que usas para planificar y aplicar la degradación gradual.

Aislamiento de fallas

  • Para aislar los componentes defectuosos en arquitecturas distribuidas, implementa el patrón de circuito abierto con bibliotecas de resiliencia, como Resilience4j en Java y CircuitBreaker en Python.
  • Para evitar fallas en cascada, configura umbrales basados en métricas de cargas de trabajo de IA y AA, como tasas de errores y latencia, y define alternativas, como modelos más simples y datos almacenados en caché.

Redundancia de componentes

Para los componentes críticos, implementa la redundancia y la conmutación por error automática. Por ejemplo, usa clústeres multizona o regionales de GKE, y, luego, implementa servicios de Cloud Run de forma redundante en diferentes regiones. Para enrutar el tráfico a instancias en buen estado cuando se detectan instancias en mal estado, usa Cloud Load Balancing.

Garantiza la redundancia de los datos con buckets multiregionales de Cloud Storage. Para el entrenamiento distribuido, implementa la creación de puntos de control asíncronos para reanudar el entrenamiento después de las fallas. Para un entrenamiento elástico y resistente, usa Pathways.

Supervisión proactiva

La degradación gradual ayuda a garantizar la disponibilidad del sistema durante las fallas, pero también debes implementar medidas proactivas para las verificaciones de estado continuas y la supervisión integral. Recopila métricas específicas de la IA y el AA, como la latencia, la capacidad de procesamiento y el uso de la GPU. Además, recopila métricas de degradación del rendimiento del modelo, como la desviación del modelo y los datos, con Cloud Monitoring y Vertex AI Model Monitoring.

Las verificaciones de estado pueden activar la necesidad de reemplazar nodos defectuosos, implementar más capacidad o activar automáticamente el reentrenamiento o el ajuste continuo de las canalizaciones que usan datos actualizados. Este enfoque proactivo ayuda a evitar la degradación basada en la precisión y la degradación gradual a nivel del sistema, y contribuye a mejorar la confiabilidad general.

Prácticas de SRE

Para supervisar el estado de tus sistemas, considera adoptar prácticas de SRE para implementar objetivos de nivel de servicio (SLO). Las alertas sobre la pérdida del porcentaje de error aceptable y la tasa de consumo pueden ser indicadores tempranos de problemas de confiabilidad con el sistema. Para obtener más información sobre las prácticas de SRE, consulta el libro de SRE de Google.

Crea una plataforma de MLOps automatizada de extremo a extremo

Un sistema de IA y AA sólido, escalable y confiable en Google Cloudrequiere una plataforma de MLOps automatizada de extremo a extremo para el ciclo de vida del desarrollo del modelo. El ciclo de vida del desarrollo incluye el manejo inicial de los datos, el entrenamiento continuo del modelo, la implementación y la supervisión en producción. Si automatizas estas etapas en Google Cloud, establecerás procesos repetibles, reducirás el trabajo manual, minimizarás los errores y acelerarás el ritmo de la innovación.

Una plataforma de MLOps automatizada es esencial para establecer una confiabilidad de nivel de producción para tus aplicaciones. La automatización ayuda a garantizar la calidad del modelo, garantizar la reproducibilidad y permitir la integración y la entrega continuas de artefactos de IA y AA.

Para crear una plataforma de MLOps automatizada de extremo a extremo, ten en cuenta las siguientes recomendaciones.

Automatiza el ciclo de vida del desarrollo del modelo

Un elemento central de una plataforma de MLOps automatizada es la organización de todo el flujo de trabajo de AA y de IA como una serie de pasos automatizados y conectados: desde la preparación y la validación de los datos hasta el entrenamiento, la evaluación, la implementación y la supervisión de los modelos.

  • Usa Vertex AI Pipelines como tu organizador central:
    • Define flujos de trabajo de extremo a extremo con componentes modulares para el procesamiento, el entrenamiento, la evaluación y la implementación de datos.
    • Automatiza las ejecuciones de canalizaciones con programaciones o activadores, como datos nuevos o cambios de código.
    • Implementa la parametrización y el control de versiones automatizados para cada ejecución de la canalización, y crea un historial de versiones.
    • Supervisa el progreso de la canalización y el uso de recursos con el registro y el seguimiento integrados, y realiza la integración con las alertas de Cloud Monitoring.
  • Define tus canalizaciones de AA de forma programática con el SDK de Kubeflow Pipelines (KFP) o el SDK de TensorFlow Extended. Para obtener más información, consulta Interfaces de Vertex AI Pipelines.
  • Organiza las operaciones con servicios como Google Cloud Dataflow, entrenamiento personalizado de Vertex AI, Vertex AI Model Registry y extremos de Vertex AI.
  • Para los flujos de trabajo de IA generativa, coordina los pasos para la administración de instrucciones, la inferencia por lotes, la evaluación con interacción humana (HITL) y la coordinación de los componentes del ADK.

Administra la infraestructura como código

La infraestructura como código (IaC) es fundamental para administrar la infraestructura de los sistemas de IA y AA, y para permitir implementaciones reproducibles, escalables y fáciles de mantener. Las necesidades de infraestructura de los sistemas de IA y AA son dinámicas y complejas. A menudo, los sistemas requieren hardware especializado, como GPUs y TPUs. La IaC ayuda a mitigar los riesgos de la administración manual de la infraestructura, ya que garantiza la coherencia, permite revertir cambios y hace que las implementaciones sean repetibles.

Para administrar de manera eficaz los recursos de infraestructura como código, usa las siguientes técnicas.

Automatizar el aprovisionamiento de recursos

Para administrar de manera eficaz la IaC en Google Cloud, define y aprovisiona tus recursos de infraestructura de AA y AA con Terraform. La infraestructura puede incluir recursos como los siguientes:

  • Clústeres de GKE configurados con grupos de nodos Los grupos de nodos se pueden optimizar según los requisitos de la carga de trabajo. Por ejemplo, puedes usar GPUs A100, H100, H200 o B200 para el entrenamiento, y GPUs L4 para la inferencia.
  • Extremos de Vertex AI configurados para la entrega de modelos, con tipos de máquinas y políticas de ajuste de escala definidos
  • Buckets de Cloud Storage para datos y artefactos

Usa plantillas de configuración

Organiza tus configuraciones de Terraform como plantillas modulares. Para acelerar el aprovisionamiento de recursos de IA y AA, puedes usar Cluster Toolkit. El kit de herramientas proporciona ejemplos de planos, que son plantillas de Terraform seleccionadas por Google que puedes usar para implementar clústeres de HPC, AA y AA/ML listos para usar en Slurm o GKE. Puedes personalizar el código de Terraform y administrarlo en tu sistema de control de versión. Para automatizar el flujo de trabajo de actualización y aprovisionamiento de recursos, puedes integrar el código en tus canalizaciones de CI/CD con Cloud Build.

Automatiza los cambios de configuración

Después de aprovisionar tu infraestructura, administra los cambios de configuración continuos de forma declarativa:

  • En los entornos centrados en Kubernetes, administra tus recursos de Google Cloudcomo objetos de Kubernetes con Config Connector.
  • Define y administra recursos de Vertex AI, como conjuntos de datos, modelos y extremos, instancias de Cloud SQL, temas de Pub/Sub y buckets de Cloud Storage con manifiestos en YAML.
  • Implementa los manifiestos en tu clúster de GKE para integrar la configuración de la aplicación y la infraestructura.
  • Automatiza las actualizaciones de configuración con canalizaciones de CI/CD y usa plantillas para controlar las diferencias entre los entornos.
  • Implementa configuraciones para las políticas y las cuentas de servicio de Identity and Access Management (IAM) con IaC.

Integración en CI/CD

  • Automatiza el ciclo de vida de los recursos de infraestructura Google Cloud integrando IaC en las canalizaciones de CI/CD con herramientas como Cloud Build y Infrastructure Manager.
  • Define activadores para las actualizaciones automáticas en las confirmaciones de código.
  • Implementa pruebas y validaciones automatizadas en la canalización. Por ejemplo, puedes crear una secuencia de comandos para ejecutar automáticamente los comandos validate y plan de Terraform.
  • Almacena las configuraciones como artefactos y habilita el control de versiones.
  • Define entornos separados, como dev, staging y prod, con configuraciones distintas en el control de versión y automatiza la promoción de entornos.

Valida el comportamiento del modelo

Para mantener la exactitud y la relevancia del modelo a lo largo del tiempo, automatiza el proceso de entrenamiento y evaluación en tu plataforma de MLOps. Esta automatización, junto con una validación rigurosa, ayuda a garantizar que los modelos se comporten según lo esperado con los datos pertinentes antes de implementarse en producción.

  • Configura canalizaciones de entrenamiento continuo, que se activan con datos nuevos y señales de supervisión, como la desviación de datos, o que se ejecutan según un programa.
    • Para administrar trabajos de entrenamiento automatizados, como pruebas de ajuste de hiperparámetros y configuraciones de entrenamiento distribuido para modelos más grandes, usa el entrenamiento personalizado de Vertex AI.
    • Para ajustar modelos básicos, automatiza el proceso de ajuste y, luego, integra los trabajos en tus canalizaciones.
  • Implementa el control de versiones automatizado del modelo y almacena de forma segura los artefactos del modelo entrenado después de cada ejecución de entrenamiento exitosa. Puedes almacenar los artefactos en Cloud Storage o registrarlos en Model Registry.
  • Define métricas de evaluación y establece umbrales claros, como la exactitud mínima, la tasa de error máxima y la puntuación F1 mínima.
    • Asegurarse de que un modelo cumpla con los umbrales para aprobar automáticamente la evaluación y considerarse para la implementación
    • Automatiza la evaluación con servicios como la evaluación de modelos en Vertex AI.
    • Asegúrate de que la evaluación incluya métricas específicas para la calidad del resultado generado, la exactitud fáctica, los atributos de seguridad y el cumplimiento del formato o estilo especificados.
  • Para registrar y hacer un seguimiento automáticos de los parámetros, las versiones de código, las versiones de conjuntos de datos y los resultados de cada ejecución de entrenamiento y evaluación, usa Vertex AI Experiments. Este enfoque proporciona un historial útil para la comparación, la depuración y la reproducibilidad.
  • Para optimizar el ajuste de hiperparámetros y automatizar la búsqueda de configuraciones óptimas del modelo según el objetivo que definas, usa Vertex AI Vizier.
  • Para visualizar las métricas de entrenamiento y depurar durante el desarrollo, usa Vertex AI TensorBoard.

Validar las entradas y salidas de las canalizaciones de IA y AA

Para garantizar la confiabilidad y la integridad de tus sistemas de IA y AA, debes validar los datos cuando ingresan a los sistemas y se mueven a través de las canalizaciones. También debes verificar las entradas y salidas en los límites de los componentes. La validación sólida de todas las entradas y salidas (datos sin procesar, datos procesados, configuraciones, argumentos y archivos) ayuda a prevenir comportamientos inesperados y a mantener la calidad del modelo durante todo el ciclo de vida de MLOps. Cuando integras este enfoque proactivo en tu plataforma de MLOps, se detectan los errores antes de que se propaguen por todo el sistema, lo que ahorra tiempo y recursos.

Para validar de manera eficaz las entradas y salidas de tus canalizaciones de IA y AA, usa las siguientes técnicas.

Automatiza la validación de datos

  • Implementa la validación de datos automatizada en tus canalizaciones de procesamiento previo y de transferencia de datos con TensorFlow Data Validation (TFDV).
    • Para las verificaciones de calidad de los datos a gran escala basadas en SQL, aprovecha los servicios de procesamiento escalables, como BigQuery.
    • Para la validación programática compleja de datos por lotes o de transmisión, usa Dataflow.
  • Supervisa las distribuciones de datos a lo largo del tiempo con las capacidades de TFDV.
    • Visualiza las tendencias con herramientas integradas en Cloud Monitoring para detectar la desviación de los datos. Puedes activar automáticamente las canalizaciones de reentrenamiento del modelo cuando los patrones de datos cambian de forma significativa.
  • Almacena los resultados y las métricas de la validación en BigQuery para el análisis y el seguimiento histórico, y archiva los artefactos de la validación en Cloud Storage.

Valida la configuración de la canalización y los datos de entrada

Para evitar fallas en la canalización o comportamientos inesperados causados por parámetros de configuración incorrectos, implementa una validación estricta para todos los parámetros de configuración de la canalización y los argumentos de la línea de comandos:

  • Define esquemas claros para tus archivos de configuración, como YAML o JSON, con bibliotecas de validación de esquemas, como jsonschema para Python. Validar objetos de configuración en función de estos esquemas antes de que comience una ejecución de canalización y antes de que se ejecute un componente
  • Implementa la validación de entrada para todos los argumentos de la línea de comandos y los parámetros de la canalización con bibliotecas de análisis de argumentos como argparse. La validación debe verificar los tipos de datos correctos, los valores válidos y los argumentos obligatorios.
  • En Vertex AI Pipelines, define los tipos y las propiedades esperados de los parámetros de los componentes con las funciones integradas de validación de entrada de componentes.
  • Para garantizar la reproducibilidad de las ejecuciones de la canalización y mantener un registro de auditoría, almacena los archivos de configuración validados y con versiones en Cloud Storage o Artifact Registry.

Valida los archivos de entrada y salida

Valida los archivos de entrada y salida, como conjuntos de datos, artefactos del modelo y registros de evaluación, para verificar su integridad y el formato correcto:

  • Valida formatos de archivo como CSV, Parquet y tipos de imágenes con bibliotecas.
  • En el caso de los archivos grandes o los artefactos críticos, valida los tamaños de los archivos y las sumas de verificación para detectar corrupción o transferencias incompletas con la validación de datos y la detección de cambios de Cloud Storage.
  • Realiza la validación de archivos con Cloud Run Functions (por ejemplo, en función de los eventos de carga de archivos) o dentro de las canalizaciones de Dataflow.
  • Almacena los resultados de la validación en BigQuery para facilitar la recuperación y el análisis.

Automatiza la implementación y aplica la supervisión continua

La implementación automatizada y la supervisión continua de los modelos en producción ayudan a garantizar la confiabilidad, realizar actualizaciones rápidas y detectar problemas de inmediato. Esto implica administrar versiones del modelo, controlar la implementación, automatizar la implementación con CI/CD y realizar una supervisión integral, como se describe en las siguientes secciones.

Administra versiones del modelo

Administra las iteraciones del modelo y los artefactos asociados con herramientas de control de versiones:

  • Para hacer un seguimiento de las versiones y los metadatos del modelo, y vincularlos a los artefactos subyacentes del modelo, usa el Registro de modelos.
  • Implementa un esquema de control de versiones claro (por ejemplo, control de versiones semántico). Para cada versión del modelo, adjunta metadatos integrales, como parámetros de entrenamiento, métricas de evaluación de las canalizaciones de validación y la versión del conjunto de datos.
  • Almacena los artefactos del modelo, como los archivos del modelo, los pesos previamente entrenados y las imágenes de contenedor de entrega en Artifact Registry y usa sus funciones de control de versiones y etiquetado.
  • Para cumplir con los requisitos de seguridad y gobernanza, define políticas de control de acceso estrictas para Model Registry y Artifact Registry.
  • Para registrar y administrar versiones de forma programática, y para integrar versiones en canalizaciones de CI/CD automatizadas, usa el SDK o la API de Vertex AI.

Realiza una implementación controlada

Controla la implementación de versiones del modelo en los extremos con las capacidades de administración de tráfico de tu plataforma de servicio.

  • Implementa una implementación continua con la función de división del tráfico de los extremos de Vertex AI.
  • Si implementas tu modelo en GKE, usa técnicas avanzadas de administración del tráfico, como la implementación canary:
    1. Enruta un pequeño subconjunto del tráfico de producción a una nueva versión del modelo.
    2. Supervisa continuamente el rendimiento y las tasas de errores a través de las métricas.
    3. Establece que el modelo es confiable.
    4. Implementa la versión para todo el tráfico.
  • Realiza pruebas A/B de agentes de IA:
    1. Implementa dos versiones diferentes del modelo-agente o modelos completamente diferentes en el mismo extremo.
    2. Divide el tráfico entre las implementaciones.
    3. Analiza los resultados en función de los objetivos comerciales.
  • Implementa mecanismos de reversión automatizados que puedan revertir rápidamente el tráfico de extremos a una versión anterior estable del modelo si se activan alertas de supervisión o no se alcanzan los umbrales de rendimiento.
  • Configura la división del tráfico y los parámetros de configuración de la implementación de forma programática con el SDK o la API de Vertex AI.
  • Usa Cloud Monitoring para hacer un seguimiento del rendimiento y el tráfico en las diferentes versiones.
  • Automatizar la implementación con canalizaciones de CI/CD Puedes usar Cloud Build para compilar contenedores, artefactos de versiones y activar la implementación en extremos de Vertex AI.
  • Asegúrate de que las canalizaciones de CI/CD administren versiones y extraigan datos de Artifact Registry.
  • Antes de desviar el tráfico, realiza pruebas automatizadas de los extremos para verificar la precisión de las predicciones, la latencia, el rendimiento y la función de la API.
  • Almacena todos los parámetros de configuración en el control de versión.

Supervisión continua

  • Usa Model Monitoring para detectar automáticamente la degradación del rendimiento, el desvío de datos (cambios en la distribución de entrada en comparación con el entrenamiento) y el desvío de predicción (cambios en los resultados del modelo).
    • Configura trabajos de detección de desvío con umbrales y alertas.
    • Supervisa el rendimiento en tiempo real: latencia de predicción, capacidad de procesamiento y tasas de errores.
  • Define métricas personalizadas en Cloud Monitoring para los KPIs comerciales.
  • Integra los resultados del Monitoreo de modelos y las métricas personalizadas con Cloud Monitoring para generar alertas y paneles.
  • Configura canales de notificación, como correo electrónico, Slack o PagerDuty, y la corrección automatizada.
  • Para depurar los registros de predicción, usa Cloud Logging.
  • Integra la supervisión con la administración de incidentes.

En el caso de los endpoints de IA generativa, supervisa las características de los resultados, como la toxicidad y la coherencia:

  • Supervisa la publicación de atributos para detectar desvíos.
  • Implementa la validación de predicciones detallada: Valida los resultados en función de los rangos y formatos esperados con lógica personalizada.
  • Supervisa los cambios en las distribuciones de predicción.
  • Valida el esquema de salida.
  • Configura alertas para los cambios y los resultados inesperados.
  • Haz un seguimiento de los eventos de validación en tiempo real y responde a ellos con Pub/Sub.

Asegúrate de que el resultado de la supervisión integral se incorpore al entrenamiento continuo.

Mantén la confianza y el control a través de la administración de datos y modelos

La confiabilidad de la IA y el AA va más allá del tiempo de actividad técnico. Incluye la confianza y la administración sólida de los datos y los modelos. Los resultados de la IA pueden ser imprecisos, estar sesgados o estar desactualizados. Estos problemas erosionan la confianza y pueden causar daños. La trazabilidad integral, el control de acceso sólido, la validación automatizada y las prácticas transparentes ayudan a garantizar que los resultados de la IA sean confiables, seguros y cumplan con los estándares éticos.

Para mantener la confianza y el control a través de la administración de datos y modelos, considera las siguientes recomendaciones.

Establece catálogos de datos y modelos para la trazabilidad

Para facilitar el seguimiento, la auditoría y la comprensión integrales del linaje de tus recursos de IA y AA, mantén un registro sólido y centralizado de las versiones de los datos y los modelos a lo largo de su ciclo de vida. Un catálogo confiable de datos y modelos sirve como fuente única de información para todos los artefactos que utilizan y producen tus canalizaciones de IA y AA, desde fuentes de datos sin procesar y conjuntos de datos procesados hasta versiones de modelos entrenados y endpoints implementados.

Usa los siguientes productos, herramientas y técnicas para crear y mantener catálogos de tus activos de datos:

  • Crea un catálogo empresarial de tus recursos de datos con Dataplex Universal Catalog. Para descubrir y compilar automáticamente inventarios de los activos de datos, integra Dataplex Universal Catalog en tus sistemas de almacenamiento, como BigQuery, Cloud Storage y Pub/Sub.
  • Almacena tus datos en buckets birregionales o multirregionales de Cloud Storage para garantizar que tengan alta disponibilidad y durabilidad. Los datos que subes a estos buckets se almacenan de forma redundante en al menos dos ubicaciones geográficas separadas. Esta redundancia proporciona resistencia integrada contra las interrupciones regionales y ayuda a garantizar la integridad de los datos.
  • Etiqueta y anota tus conjuntos de datos con metadatos empresariales relevantes, información de propiedad, niveles de sensibilidad y detalles de linaje. Por ejemplo, vincula un conjunto de datos procesado a su fuente sin procesar y a la canalización que creó el conjunto de datos.
  • Crea un repositorio central para las versiones del modelo con Model Registry. Registra cada versión del modelo entrenado y vincúlala a los metadatos asociados. Los metadatos pueden incluir lo siguiente:
    • Son los parámetros de entrenamiento.
    • Son las métricas de evaluación de las canalizaciones de validación.
    • Es la versión del conjunto de datos que se usó para el entrenamiento, con el linaje rastreado hasta la entrada pertinente de Dataplex Universal Catalog.
    • Es la versión del código que produjo el conjunto de datos.
    • Son los detalles sobre el framework o el modelo fundamental que se usó.
  • Antes de importar un modelo en Model Registry, almacena los artefactos del modelo, como los archivos del modelo y los pesos previamente entrenados, en un servicio como Cloud Storage. Almacena imágenes de contenedor personalizadas para la entrega o trabajos de entrenamiento personalizados en un repositorio seguro, como Artifact Registry.
  • Para garantizar que los recursos de datos y modelos se registren y actualicen automáticamente en los catálogos respectivos cuando se creen o modifiquen, implementa procesos automatizados en tus canalizaciones de MLOps. Este catalogado integral proporciona trazabilidad de extremo a extremo desde los datos sin procesar hasta la predicción, lo que te permite auditar las entradas y los procesos que llevaron a una versión o predicción específica del modelo. La capacidad de auditoría es fundamental para depurar comportamientos inesperados, garantizar el cumplimiento de las políticas de uso de datos y comprender el impacto de los cambios en los datos o los modelos a lo largo del tiempo.
  • En el caso de los modelos de base y la IA generativa, tu catálogo también debe hacer un seguimiento de los detalles sobre el modelo de base específico que se usó, los parámetros de ajuste y los resultados de la evaluación que son específicos de la calidad y la seguridad del resultado generado.

Implementa controles de acceso y registros de auditoría sólidos

Para mantener la confianza y el control en tus sistemas de IA y AA, es fundamental que protejas los datos y modelos sensibles del acceso no autorizado, y que garantices la responsabilidad de todos los cambios.

  • Implementa controles de acceso estrictos y mantén registros de auditoría detallados en todos los componentes de tus sistemas de IA y AA en Google Cloud.
  • Define permisos detallados en IAM para los usuarios, los grupos y las cuentas de servicio que interactúan con tus recursos de IA y AA.
  • Sigue el principio de privilegio mínimo de forma rigurosa.
  • Otorga solo los permisos mínimos necesarios para tareas específicas. Por ejemplo, una cuenta de servicio de entrenamiento necesita acceso de lectura a los datos de entrenamiento y acceso de escritura para los artefactos del modelo, pero es posible que el servicio no necesite acceso de escritura a los endpoints de servicio de producción.

Aplica políticas de IAM de manera coherente en todos los recursos y activos pertinentes de tus sistemas de IA y AA, incluidos los siguientes:

  • Son los buckets de Cloud Storage que contienen datos sensibles o artefactos del modelo.
  • Son conjuntos de datos de BigQuery.
  • Recursos de Vertex AI, como repositorios de modelos, extremos, canalizaciones y recursos de Feature Store
  • Recursos de procesamiento, como clústeres de GKE y servicios de Cloud Run

Usa la auditoría y los registros para capturar, supervisar y analizar la actividad de acceso:

  • Habilita los registros de auditoría de Cloud para todos los servicios de Google Cloud que utiliza tu sistema de IA y AA.
  • Configura los registros de auditoría para capturar información detallada sobre las llamadas a la API, los eventos de acceso a los datos y los cambios de configuración realizados en tus recursos. Supervisa los registros en busca de actividad sospechosa, intentos de acceso no autorizados o modificaciones inesperadas en los datos críticos o los recursos del modelo.
  • Para obtener análisis, alertas y visualizaciones en tiempo real, transmite los registros de auditoría a Cloud Logging.
  • Para el almacenamiento a largo plazo rentable y el análisis de seguridad retrospectivo o las auditorías de cumplimiento, exporta los registros a BigQuery.
  • Para la supervisión de seguridad centralizada, integra los registros de auditoría en tus sistemas de administración de información y eventos de seguridad (SIEM). Revisa periódicamente las políticas de acceso y los registros de auditoría para asegurarte de que se alineen con tus requisitos de gobernanza y detectar posibles incumplimientos de políticas.
  • En el caso de las aplicaciones que manejan datos sensibles, como la información de identificación personal (PII) para el entrenamiento o la inferencia, usa las verificaciones de Sensitive Data Protection en las canalizaciones o en el almacenamiento de datos.
  • En el caso de las soluciones de IA generativa y basadas en agentes, usa registros de auditoría para hacer un seguimiento de quién accedió a modelos o herramientas específicos, qué datos se usaron para el ajuste o las instrucciones, y qué consultas se enviaron a los extremos de producción. Los registros de auditoría te ayudan a garantizar la responsabilidad y proporcionan datos cruciales para que investigues el uso inadecuado de los datos o los incumplimientos de políticas.

Aborda el sesgo, la transparencia y la explicabilidad

Para crear sistemas de IA y AA confiables, debes abordar los posibles sesgos inherentes a los datos y los modelos, esforzarte por lograr la transparencia en el comportamiento del sistema y proporcionar explicaciones para los resultados del modelo. Es especialmente importante crear sistemas confiables en dominios sensibles o cuando usas modelos complejos, como los que se suelen usar para las aplicaciones de IA generativa.

  • Implementar prácticas proactivas para identificar y mitigar los sesgos durante todo el ciclo de vida de MLOps
  • Analiza los datos de entrenamiento para detectar sesgos con herramientas que detectan la asimetría en las distribuciones de atributos en diferentes grupos demográficos o atributos sensibles.
  • Evalúa el rendimiento general del modelo y el rendimiento en las porciones de datos predefinidas. Esta evaluación te ayuda a identificar el rendimiento dispar o el sesgo que afecta a subgrupos específicos.

Para la transparencia y la interpretabilidad del modelo, usa herramientas que ayuden a los usuarios y desarrolladores a comprender por qué un modelo realizó una predicción en particular o produjo un resultado específico.

  • Para los modelos tabulares implementados en extremos de Vertex AI, genera atribuciones de atributos con Vertex Explainable AI. Las atribuciones de atributos indican los atributos de entrada que más contribuyeron a la predicción.
  • Explora de forma interactiva el comportamiento del modelo y los posibles sesgos en un conjunto de datos con herramientas independientes del modelo, como la Herramienta What-If, que se integra con TensorBoard.
  • Integra la interpretabilidad en tus paneles de supervisión. En situaciones en las que comprender el razonamiento del modelo es importante para generar confianza o tomar decisiones, proporciona datos de explicabilidad directamente a los usuarios finales a través de las interfaces de tu aplicación.
  • En el caso de los modelos complejos, como los LLM que se usan para los modelos de IA generativa, explica el proceso que siguió un agente, por ejemplo, con registros de seguimiento. La explicabilidad es relativamente difícil para este tipo de modelos, pero sigue siendo fundamental.
  • En las aplicaciones de RAG, proporciona citas para la información recuperada. También puedes usar técnicas como la ingeniería de instrucciones para guiar al modelo y que proporcione explicaciones o muestre sus pasos de razonamiento.
  • Implementa la supervisión continua en producción para detectar cambios en el comportamiento o los resultados del modelo que puedan indicar sesgos o injusticias emergentes. Documenta las limitaciones del modelo, los casos de uso previstos y los posibles sesgos conocidos como parte de los metadatos del modelo en el Registro de modelos.

Implementar prácticas integrales de observabilidad y confiabilidad de la IA y el AA

La observabilidad integral es esencial para administrar sistemas complejos de IA y AA en producción. También es fundamental para medir la confiabilidad de los sistemas complejos de IA y AA, en especial para la IA generativa, debido a su complejidad, la intensidad de recursos y el potencial de generar resultados impredecibles. La observabilidad integral implica observar la infraestructura, el código de la aplicación, los datos y el comportamiento del modelo para obtener estadísticas que permitan detectar, diagnosticar y responder a los problemas de forma proactiva. Esta observabilidad, en última instancia, conduce a sistemas confiables y de alto rendimiento. Para lograr una observabilidad integral, debes hacer lo siguiente:

  • Adopta los principios de SRE.
  • Define objetivos de confiabilidad claros.
  • Realiza un seguimiento de las métricas en todas las capas del sistema.
  • Usa las estadísticas de observabilidad para mejorar continuamente y administrar de forma proactiva.

Para implementar prácticas integrales de observabilidad y confiabilidad para las cargas de trabajo de IA y AA en Google Cloud, considera las siguientes recomendaciones.

Establece objetivos de confiabilidad y métricas comerciales

Identifica los indicadores clave de rendimiento (KPI) que tu sistema de IA y AA afecta directamente. Los KPI pueden incluir los ingresos influenciados por las recomendaciones de la IA, la deserción de clientes que los sistemas de IA predijeron o mitigaron, y las tasas de participación y conversión de los usuarios que impulsan las funciones de IA generativa.

Para cada KPI, define las métricas de confiabilidad técnicas correspondientes que lo afectan. Por ejemplo, si el KPI es "satisfacción del cliente con un asistente de IA conversacional", las métricas de confiabilidad correspondientes pueden incluir las siguientes:

  • Es la tasa de éxito de las solicitudes de los usuarios.
  • La latencia de las respuestas: tiempo hasta el primer token (TTFT) y transmisión de tokens para los LLM
  • Es la proporción de respuestas irrelevantes o dañinas.
  • Es la tasa de finalización exitosa de tareas por parte del agente.

En el caso del entrenamiento de IA y AA, las métricas de confiabilidad pueden incluir la utilización de FLOPS del modelo (MFU), las iteraciones por segundo, los tokens por segundo y los tokens por dispositivo.

Para medir y mejorar de manera eficaz la confiabilidad de la IA y el AA, primero establece objetivos de confiabilidad claros que se alineen con los objetivos comerciales generales. Adopta el enfoque de SRE definiendo SLO que cuantifiquen los niveles aceptables de confiabilidad y rendimiento para tus servicios de IA y AA desde la perspectiva de los usuarios. Cuantifica estas métricas de confiabilidad técnica con objetivos de SLO específicos.

A continuación, se muestran ejemplos de objetivos de SLO:

  • El 99.9% de las llamadas a la API deben devolver una respuesta exitosa.
  • La latencia de inferencia del percentil 95 debe ser inferior a 300 ms.
  • El TTFT debe ser inferior a 500 ms para el 99% de las solicitudes.
  • El porcentaje de resultados dañinos debe ser inferior al 0.1%.

Alinear los SLO directamente con las necesidades comerciales garantiza que los esfuerzos de confiabilidad se centren en el comportamiento del sistema más crítico que afecta a los usuarios y a la empresa. Este enfoque ayuda a transformar la confiabilidad en una propiedad de ingeniería medible y práctica.

Supervisa el rendimiento de la infraestructura y las aplicaciones

Realiza un seguimiento de las métricas de infraestructura en todos los recursos que usan tus sistemas de AA y de AA. Las métricas incluyen el uso del procesador (CPU, GPU y TPU), el uso de memoria, la capacidad de procesamiento y la latencia de la red, y las operaciones de E/S de disco. Realiza un seguimiento de las métricas de los entornos administrados, como el entrenamiento y la entrega de Vertex AI, y de los recursos autoadministrados, como los nodos de GKE y las instancias de Cloud Run.

Supervisa los cuatro indicadores clave de tus aplicaciones de IA y AA:

  • Latencia: Tiempo de respuesta a las solicitudes.
  • Tráfico: Es el volumen de solicitudes o la carga de trabajo.
  • Tasa de errores: Es la tasa de solicitudes o operaciones fallidas.
  • Saturación: Utilización de recursos críticos, como CPU, memoria y aceleradores de GPU o TPU, que indica qué tan cerca está tu sistema de los límites de capacidad.

Realiza la supervisión con las siguientes técnicas:

  • Recopila, almacena y visualiza las métricas de infraestructura y aplicaciones con Cloud Monitoring. Puedes usar paneles prediseñados para los servicios de Google Cloud y crear paneles personalizados que se adapten a los indicadores de rendimiento específicos y al estado de la infraestructura de tu carga de trabajo.
  • Recopila registros detallados de tus aplicaciones de IA y AA, y de la infraestructura subyacente con Cloud Logging. Estos registros son esenciales para solucionar problemas y analizar el rendimiento. Proporcionan contexto sobre eventos y errores.
  • Usa Cloud Trace para identificar problemas de latencia y comprender los flujos de solicitudes en microservicios distribuidos de IA y AA. Esta capacidad es fundamental para depurar interacciones complejas de agentes de Vertex AI o canalizaciones de inferencia de varios componentes.
  • Identifica los cuellos de botella de rendimiento dentro de los bloques de funciones en el código de la aplicación con Cloud Profiler. Identificar los cuellos de botella en el rendimiento puede ayudarte a optimizar el uso de recursos y el tiempo de ejecución.
  • Recopila métricas específicas relacionadas con el acelerador, como el uso detallado de la GPU por proceso, el uso de memoria por proceso y la temperatura, con herramientas como NVIDIA Data Center GPU Manager (DCGM).

Implementa la observabilidad de los datos y los modelos

Los sistemas de IA generativa confiables requieren una sólida observabilidad de los datos y los modelos, que comienza con la supervisión de la canalización de extremo a extremo.

  • Haz un seguimiento de las tasas de transferencia de datos, los volúmenes procesados y las latencias de transformación con servicios como Dataflow.
  • Supervisa las tasas de éxito y error de los trabajos en tus canalizaciones de MLOps, incluidas las canalizaciones que administra Vertex AI Pipelines.

Es fundamental evaluar la calidad de los datos de forma continua.

  • Administra y controla los datos con Dataplex Universal Catalog:
    • Evalúa la precisión validando los datos de verdad fundamental o haciendo un seguimiento de las tasas de detección de valores atípicos.
    • Supervisar la actualidad según la antigüedad de los datos y la frecuencia de las actualizaciones en comparación con los ANS
    • Evalúa la integridad haciendo un seguimiento de los porcentajes de valores nulos y los porcentajes de campos obligatorios completados.
    • Garantizar la validez y la coherencia a través de verificaciones de cumplimiento del esquema y duplicación
  • Detecta anomalías de forma proactiva con las alertas de Cloud Monitoring y a través de un linaje de datos claro para la trazabilidad.
  • En el caso de los sistemas de RAG, examina la relevancia del contexto recuperado y la fundamentación (atribución a la fuente) de las respuestas.
  • Supervisa la capacidad de procesamiento de las consultas de la base de datos de vectores.

Las métricas clave de observabilidad del modelo incluyen los recuentos de tokens de entrada y salida, y las tasas de error específicas del modelo, como las alucinaciones o las fallas en la resolución de consultas. Para hacer un seguimiento de estas métricas, usa Model Monitoring.

  • Supervisa continuamente las puntuaciones de toxicidad del resultado y las calificaciones de comentarios de los usuarios.
  • Automatiza la evaluación de los resultados del modelo en función de criterios definidos con el servicio de evaluación de IA generativa.
  • Garantiza un rendimiento sostenido supervisando sistemáticamente la desviación de datos y conceptos con métricas integrales de la tasa de error.

Para hacer un seguimiento de las métricas del modelo, puedes usar TensorBoard o MLflow. Para realizar un análisis y una generación de perfiles detallados para solucionar problemas de rendimiento, puedes usar PyTorch XLA profiling o NVIDIA Nsight.

Colaboradores

Autores:

Otros colaboradores:

  • Filipe Gracio, PhD | Ingeniero de Atención al Cliente y especialista en IA/AA
  • Hossein Sarshar | Arquitecto de soluciones de campo de infraestructura de IA
  • José Andrade | Ingeniero de Atención al cliente, especialista en SRE
  • Autor: Kumar Dhanagopal | Desarrollador de soluciones entre productos
  • Laura Hyatt | Ingeniero de Atención al cliente, FSI
  • Olivier Martin | Arquitecto de soluciones de campo de infraestructura de IA
  • Radhika Kanakam | Líder del programa, Google Cloud Well-Architected Framework

Perspectiva de IA y AA: Optimización de costos

En este documento del Framework de Well-Architected: perspectiva de IA y AA, se proporciona una descripción general de los principios y las recomendaciones para optimizar el costo de tus sistemas de IA a lo largo del ciclo de vida del AA. Si tu organización adopta un enfoque proactivo y fundamentado para la administración de costos, podrá aprovechar todo el potencial de los sistemas de IA y AA, y mantener la disciplina financiera. Las recomendaciones de este documento se alinean con el pilar de optimización de costos del Google Cloud framework de Well-Architected.

Los sistemas de IA y AA pueden ayudarte a obtener estadísticas valiosas y capacidades predictivas a partir de los datos. Por ejemplo, puedes reducir la fricción en los procesos internos, mejorar las experiencias del usuario y obtener estadísticas más detalladas de los clientes. La nube ofrece grandes cantidades de recursos y un rápido tiempo de obtención de valor sin grandes inversiones iniciales para las cargas de trabajo de IA y AA. Para maximizar el valor comercial y alinear la inversión con tus objetivos comerciales, debes comprender los factores que determinan los costos, optimizar los costos de forma proactiva, configurar controles de inversión y adoptar prácticas de FinOps.

Las recomendaciones de este documento se correlacionan con los siguientes principios fundamentales:

Cómo definir y medir los costos y los retornos

Para administrar de manera eficaz los costos de la IA y el AA en Google Cloud, debes definir y medir los costos de los recursos de la nube y el valor comercial de tus iniciativas de IA y AA. Para ayudarte a hacer un seguimiento detallado de los gastos, Google Cloud proporciona herramientas integrales de facturación y administración de costos, como las siguientes:

  • Informes y tablas de Facturación de Cloud
  • Paneles, presupuestos y alertas de Looker Studio
  • Cloud Monitoring
  • Cloud Logging

Para tomar decisiones fundamentadas sobre la asignación y optimización de recursos, ten en cuenta las siguientes recomendaciones.

Establece objetivos comerciales y KPIs

Alinea las decisiones técnicas de tus proyectos de IA y AA con los objetivos comerciales y los indicadores clave de rendimiento (KPI).

Define objetivos estratégicos y KPIs enfocados en el ROI

Asegúrate de que los proyectos de IA y AA se alineen con los objetivos estratégicos, como el crecimiento de los ingresos, la reducción de costos, la satisfacción del cliente y la eficiencia. Interactúa con las partes interesadas para comprender las prioridades de la empresa. Define objetivos de IA y AA que sean específicos, medibles, alcanzables, relevantes y con plazos determinados (SMART). Por ejemplo, un objetivo SMART es: "Reducir el tiempo de atención por chat para el equipo de asistencia al cliente en un 15% en 6 meses con un chatbot de IA".

Para avanzar hacia tus objetivos comerciales y medir el retorno de la inversión (ROI), define KPIs para las siguientes categorías de métricas:

  • Costos de entrenamiento, inferencia, almacenamiento y recursos de red, incluidos los costos unitarios específicos (como el costo por inferencia, punto de datos o tarea) Estas métricas te ayudan a obtener estadísticas sobre las oportunidades de optimización de la eficiencia y los costos. Puedes hacer un seguimiento de estos costos con los informes de Facturación de Cloud y los paneles de Cloud Monitoring.
  • Métricas de valor comercial, como el crecimiento de los ingresos, el ahorro de costos, la satisfacción del cliente, la eficiencia, la precisión y la adopción. Puedes hacer un seguimiento de estas métricas con las estadísticas de BigQuery y los paneles de Looker.
  • Métricas específicas de la industria, como las siguientes:

    • Sector de venta minorista: Mide el incremento de ingresos y la deserción
    • Sector de la atención médica: Medir el tiempo de los pacientes y los resultados de los pacientes
    • Sector financiero: Medir la reducción del fraude
  • Son métricas específicas del proyecto. Puedes hacer un seguimiento de estas métricas con Vertex AI Experiments y la evaluación.

    • IA predictiva: mide la exactitud y la precisión
    • IA generativa: mide la adopción, la satisfacción y la calidad del contenido
    • IA de visión artificial: mide la precisión

Fomenta una cultura de conciencia de los costos y optimización continua

Adopta los principios de FinOps para garantizar que cada proyecto de IA y AA tenga costos estimados y formas de medir y hacer un seguimiento de los costos reales a lo largo de su ciclo de vida. Asegúrate de que los costos y los beneficios comerciales de tus proyectos tengan propietarios asignados y una responsabilidad clara.

Para obtener más información, consulta Fomenta una cultura de conciencia de los costos en el pilar de optimización de costos del Google Cloud framework de Well-Architected.

Genera valor y optimización continua a través de la iteración y los comentarios

Asigna tus aplicaciones de IA y AA directamente a tus objetivos comerciales y mide el ROI.

Para validar tus hipótesis sobre el ROI, comienza con proyectos piloto y usa el siguiente ciclo de optimización iterativo:

  1. Supervisa continuamente y analiza los datos: Supervisa los KPI y los costos para identificar desviaciones y oportunidades de optimización.
  2. Realiza ajustes basados en datos: Optimiza las estrategias, los modelos, la infraestructura y la asignación de recursos en función de las estadísticas de datos.
  3. Refina de forma iterativa: Adapta los objetivos comerciales y los KPIs en función de lo que aprendiste y las necesidades comerciales cambiantes. Esta iteración te ayuda a mantener la relevancia y la alineación estratégica.
  4. Establece un circuito de retroalimentación: Revisa el rendimiento, los costos y el valor con las partes interesadas para informar la optimización continua y la planificación de proyectos futuros.

Administra los datos de facturación con Facturación de Cloud y etiquetas

La optimización de costos eficaz requiere visibilidad en la fuente de cada elemento de costo. Las recomendaciones de esta sección pueden ayudarte a usar herramientas de Google Cloudpara obtener estadísticas detalladas sobre tus costos de IA y AA. También puedes atribuir costos a proyectos, equipos y actividades específicos de IA y AA. Estas estadísticas sientan las bases para la optimización de costos.

Organizar y etiquetar Google Cloud recursos

  • Estructura tus proyectos y recursos en una jerarquía que refleje tu estructura organizativa y tus flujos de trabajo de IA y AA. Para hacer un seguimiento y analizar los costos en diferentes niveles, organiza tus recursos Google Cloud con organizaciones, carpetas y proyectos. Para obtener más información, consulta Elige una jerarquía de recursos para tu Google Cloud zona de destino.
  • Aplica etiquetas significativas a tus recursos. Puedes usar etiquetas que indiquen el proyecto, el equipo, el entorno, el nombre del modelo, el conjunto de datos, el caso de uso y los requisitos de rendimiento. Las etiquetas proporcionan un contexto valioso para tus datos de facturación y permiten un análisis de costos detallado.
  • Mantén la coherencia en tus convenciones de etiquetado en todos tus proyectos de IA y AA. Las convenciones de etiquetado coherentes garantizan que tus datos de facturación estén organizados y se puedan analizar fácilmente.
  • Para facilitar el análisis y la generación de informes detallados, exporta los datos de facturación a BigQuery. BigQuery tiene potentes capacidades de consulta que te permiten analizar los datos de facturación para comprender tus costos.
  • Para agregar los costos por etiquetas, proyectos o períodos específicos, puedes escribir consultas en SQL personalizadas en BigQuery. Estas búsquedas te permiten atribuir costos a actividades específicas de IA y AA, como el entrenamiento de modelos, el ajuste de hiperparámetros o la inferencia.
  • Para identificar anomalías en los costos o aumentos repentinos inesperados en el gasto, usa las capacidades de análisis de BigQuery. Este enfoque puede ayudarte a detectar posibles problemas o ineficiencias en tus cargas de trabajo de IA y AA.
  • Para identificar y administrar los costos inesperados, usa el panel de detección de anomalías en la Facturación de Cloud.
  • Para distribuir los costos entre diferentes equipos o departamentos según el uso de recursos, usa la función de asignación de costos de Google Cloud. La asignación de costos promueve la responsabilidad y la transparencia.
  • Para obtener estadísticas sobre los patrones de inversión, explora los informes de Facturación de Cloud prediseñados. Puedes filtrar y personalizar estos informes para enfocarte en proyectos o servicios específicos de IA y AA.

Supervisa los recursos de forma continua con paneles, alertas e informes

Para crear una forma escalable y resistente de hacer un seguimiento de los costos, necesitas supervisión y generación de informes continuos. Los paneles, las alertas y los informes constituyen la base para un seguimiento de costos eficaz. Esta base te permite mantener un acceso constante a la información de costos, identificar áreas de optimización y garantizar la alineación entre los objetivos comerciales y los costos.

Crea un sistema de informes

Crear informes programados y compartirlos con las partes interesadas correspondientes

Usa Cloud Monitoring para recopilar métricas de varias fuentes, incluidas tus aplicaciones, infraestructura y servicios de Google Cloud como Compute Engine, Google Kubernetes Engine (GKE) y funciones de Cloud Run. Para visualizar métricas y registros en tiempo real, puedes usar el panel prediseñado de Cloud Monitoring o crear paneles personalizados. Los paneles personalizados te permiten definir y agregar métricas para hacer un seguimiento de aspectos específicos de tus sistemas, como el rendimiento del modelo, las llamadas a la API o los KPI a nivel de la empresa.

Usa Cloud Logging para la recopilación y el almacenamiento centralizados de registros de tus aplicaciones, sistemas y Google Cloud servicios. Usa los registros para los siguientes fines:

  • Realiza un seguimiento de los costos y la utilización de recursos como CPU, memoria, almacenamiento y red.
  • Identificar casos de aprovisionamiento excesivo (en los que los recursos no se utilizan por completo) y de aprovisionamiento insuficiente (en los que no hay recursos suficientes) El aprovisionamiento excesivo genera costos innecesarios. El aprovisionamiento insuficiente ralentiza los tiempos de entrenamiento y puede causar problemas de rendimiento.
  • Identifica los recursos inactivos o infrautilizados, como las VMs y las GPUs, y toma medidas para apagarlos o redimensionarlos y, así, optimizar los costos.
  • Identifica los aumentos repentinos de costos para detectar incrementos repentinos e inesperados en el uso de recursos o los costos.

Usa Looker o Looker Studio para crear informes y paneles interactivos. Conectar los paneles y los informes a varias fuentes de datos, incluidos BigQuery y Cloud Monitoring

Establece umbrales de alerta según los KPIs clave

Para tus KPI, determina los umbrales que deberían activar las alertas. Los umbrales de alerta significativos pueden ayudarte a evitar la fatiga por alertas. Crea políticas de alertas en Cloud Monitoring para recibir notificaciones relacionadas con tus KPI. Por ejemplo, puedes recibir notificaciones cuando la precisión cae por debajo de un umbral determinado o cuando la latencia supera un límite definido. Las alertas basadas en datos de registros pueden notificarte sobre posibles problemas de costos en tiempo real. Estas alertas te permiten tomar medidas correctivas de inmediato y evitar más pérdidas financieras.

Optimiza la asignación de recursos

Para lograr la eficiencia en los costos de tus cargas de trabajo de IA y AA en Google Cloud, debes optimizar la asignación de recursos. Para ayudarte a evitar gastos innecesarios y garantizar que tus cargas de trabajo tengan los recursos que necesitan para funcionar de manera óptima, alinea la asignación de recursos con las necesidades de tus cargas de trabajo.

Para optimizar la asignación de recursos de la nube a las cargas de trabajo de IA y AA, ten en cuenta las siguientes recomendaciones.

Utiliza el ajuste de escala automático para ajustar los recursos de forma dinámica

Usa servicios de Google Cloud que admitan el ajuste de escala automático, que ajusta automáticamente la asignación de recursos para satisfacer la demanda actual. El ajuste de escala automático proporciona los siguientes beneficios:

  • Optimización del rendimiento y los costos: Evitas pagar por recursos inactivos. Al mismo tiempo, el ajuste de escala automático garantiza que tus sistemas tengan los recursos necesarios para funcionar de manera óptima, incluso en los momentos de mayor carga.
  • Mayor eficiencia: Libera a tu equipo para que se enfoque en otras tareas.
  • Mayor agilidad: Puedes responder rápidamente a las demandas cambiantes y mantener una alta disponibilidad para tus aplicaciones.

En la siguiente tabla, se resumen las técnicas que puedes usar para implementar el ajuste de escala automático en las diferentes etapas de tus proyectos de IA.

Etapa Técnicas de ajuste de escala automático
Capacitación
  • Usa servicios administrados como Vertex AI o GKE, que ofrecen capacidades de ajuste de escala automático integradas para los trabajos de entrenamiento.
  • Configura políticas de ajuste de escala automático para ajustar la cantidad de instancias de entrenamiento según métricas como el uso de CPU, el uso de memoria y la longitud de la cola de trabajos.
  • Usa métricas de ajuste de escala personalizadas para ajustar el comportamiento del ajuste de escala automático para tus cargas de trabajo específicas.
Inferencia
  • Implementa tus modelos en plataformas escalables, como Vertex AI Inference, GPU en GKE o TPU en GKE.
  • Usa las funciones de ajuste de escala automático para ajustar la cantidad de réplicas según métricas como el porcentaje de solicitudes, la latencia y el uso de recursos.
  • Implementa el balanceo de cargas para distribuir el tráfico de manera uniforme entre las réplicas y garantizar una alta disponibilidad.

Comienza con modelos y conjuntos de datos pequeños

Para ayudar a reducir los costos, prueba las hipótesis de AA a pequeña escala cuando sea posible y usa un enfoque iterativo. Este enfoque, con modelos y conjuntos de datos más pequeños, proporciona los siguientes beneficios:

  • Reducción de costos desde el inicio: Menos potencia de procesamiento, almacenamiento y tiempo de procesamiento pueden generar costos más bajos durante las fases iniciales de experimentación y desarrollo.
  • Iteración más rápida: Se requiere menos tiempo de entrenamiento, lo que te permite iterar más rápido, explorar enfoques alternativos y detectar direcciones prometedoras de manera más eficiente.
  • Menor complejidad: Depuración, análisis e interpretación de resultados más sencillos, lo que genera ciclos de desarrollo más rápidos.
  • Uso eficiente de los recursos: Se reduce la posibilidad de aprovisionar recursos en exceso. Solo aprovisionas los recursos necesarios para la carga de trabajo actual.

Ten en cuenta las siguientes recomendaciones:

  • Primero usa datos de muestra: Entrena tus modelos con un subconjunto representativo de tus datos. Este enfoque te permite evaluar el rendimiento del modelo y detectar posibles problemas sin procesar todo el conjunto de datos.
  • Experimenta con notebooks: Comienza con instancias más pequeñas y escálalas según sea necesario. Puedes usar Vertex AI Workbench, un entorno de notebooks de Jupyter administrado que es adecuado para experimentar con diferentes arquitecturas de modelos y conjuntos de datos.
  • Comienza con modelos más simples o previamente entrenados: Usa Vertex AI Model Garden para descubrir y explorar los modelos previamente entrenados. Estos modelos requieren menos recursos de procesamiento. Aumenta la complejidad de forma gradual según sea necesario en función de los requisitos de rendimiento.

    • Utiliza modelos previamente entrenados para tareas como la clasificación de imágenes y el procesamiento de lenguaje natural. Para ahorrar en costos de entrenamiento, puedes ajustar los modelos en conjuntos de datos más pequeños al principio.
    • Usa BigQuery ML para datos estructurados. BigQuery ML te permite crear y, luego, implementar modelos directamente en BigQuery. Este enfoque puede ser rentable para la experimentación inicial, ya que puedes aprovechar el modelo de precios de pago por consulta de BigQuery.
  • Escala para optimizar los recursos: Usa la infraestructura flexible de Google Cloudpara escalar los recursos según sea necesario. Comienza con instancias más pequeñas y ajusta su tamaño o cantidad cuando sea necesario.

Descubre los requisitos de recursos a través de la experimentación

Los requisitos de recursos para las cargas de trabajo de IA y AA pueden variar significativamente. Para optimizar la asignación de recursos y los costos, debes comprender las necesidades específicas de tus cargas de trabajo a través de la experimentación sistemática. Para identificar la configuración más eficiente para tus modelos, prueba diferentes configuraciones y analiza su rendimiento. Luego, según los requisitos, ajusta el tamaño de los recursos que usaste para el entrenamiento y la entrega.

Te recomendamos el siguiente enfoque para la experimentación:

  1. Comienza con un valor de referencia: Comienza con una configuración de referencia basada en tus estimaciones iniciales de los requisitos de la carga de trabajo. Para crear un valor de referencia, puedes usar el estimador de costos para cargas de trabajo nuevas o un informe de facturación existente. Para obtener más información, consulta Unlock the true cost of enterprise AI on Google Cloud.
  2. Comprende tus cuotas: Antes de lanzar experimentos extensos, familiarízate con las cuotas de tu Google Cloud proyecto Google Cloud para los recursos y las APIs que planeas usar. Las cuotas determinan el rango de configuraciones que puedes probar de forma realista. Si te familiarizas con las cuotas, podrás trabajar dentro de los límites de recursos disponibles durante la fase de experimentación.
  3. Experimenta de forma sistemática: Ajusta parámetros como la cantidad de CPU, la cantidad de memoria, la cantidad y el tipo de GPU y TPU, y la capacidad de almacenamiento. Vertex AI Training y Vertex AI Predictions te permiten experimentar con diferentes tipos y configuraciones de máquinas.
  4. Supervisa el uso, el costo y el rendimiento: Haz un seguimiento del uso de recursos, el costo y las métricas clave de rendimiento, como el tiempo de entrenamiento, la latencia de inferencia y la exactitud del modelo, para cada configuración con la que experimentes.

    • Para hacer un seguimiento de las métricas de rendimiento y utilización de recursos, puedes usar la consola de Vertex AI.
    • Para recopilar y analizar métricas de rendimiento detalladas, usa Cloud Monitoring.
    • Para ver los costos, usa los informes de Facturación de Cloud y los paneles de Cloud Monitoring.
    • Para identificar los cuellos de botella de rendimiento en tus modelos y optimizar el uso de recursos, usa herramientas de generación de perfiles como Vertex AI TensorBoard.
  5. Analiza los costos: Compara el costo y el rendimiento de cada configuración para identificar la opción más rentable.

  6. Establece umbrales de recursos y objetivos de mejora en función de las cuotas: Define umbrales para cuando el ajuste de escala comience a generar retornos decrecientes en el rendimiento, como una reducción mínima en el tiempo de entrenamiento o la latencia para un aumento significativo del costo. Ten en cuenta las cuotas del proyecto cuando establezcas estos umbrales. Determina el punto en el que los costos y las posibles implicaciones de cuota de un mayor escalamiento ya no se justifican por las ganancias de rendimiento.

  7. Refina de forma iterativa: Repite el proceso de experimentación con configuraciones refinadas en función de tus hallazgos. Asegúrate siempre de que el uso de recursos se mantenga dentro de las cuotas asignadas y se alinee con los umbrales de costo-beneficio establecidos.

Usa MLOps para reducir las ineficiencias

A medida que las organizaciones usan cada vez más el AA para impulsar la innovación y la eficiencia, se vuelve fundamental administrar el ciclo de vida del AA de manera eficaz. Las operaciones de AA (MLOps) son un conjunto de prácticas que automatizan y optimizan el ciclo de vida del AA, desde el desarrollo del modelo hasta la implementación y la supervisión.

Alinea las MLOps con los factores de costos

Para aprovechar MLOps y lograr eficiencia en los costos, identifica los principales factores que los determinan en el ciclo de vida del AA. Luego, puedes adoptar e implementar prácticas de MLOps que se alineen con los factores de costos. Prioriza y adopta las funciones de MLOps que aborden los factores de costos más importantes. Este enfoque ayuda a garantizar un camino manejable y exitoso hacia ahorros de costos significativos.

Implementa MLOps para la optimización de costos

Las siguientes son prácticas comunes de MLOps que ayudan a reducir los costos:

  • Control de versiones: Las herramientas como Git pueden ayudarte a hacer un seguimiento de las versiones del código, los datos y los modelos. El control de versiones garantiza la reproducibilidad, facilita la colaboración y evita el costoso trabajo adicional que pueden causar los problemas de versiones.
  • Integración continua y entrega continua (CI/CD): Cloud Build y Artifact Registry te permiten implementar canalizaciones de CI/CD para automatizar la compilación, las pruebas y la implementación de tus modelos de AA. Las canalizaciones de CI/CD garantizan el uso eficiente de los recursos y minimizan los costos asociados con las intervenciones manuales.
  • Observabilidad: Cloud Monitoring y Cloud Logging te permiten hacer un seguimiento del rendimiento del modelo en producción, identificar problemas y activar alertas para una intervención proactiva. La observabilidad te permite mantener la precisión del modelo, optimizar la asignación de recursos y evitar el costoso tiempo de inactividad o la degradación del rendimiento.
  • Reentrenamiento de modelos: Vertex AI Pipelines simplifica los procesos para reentrenar modelos de forma periódica o cuando el rendimiento disminuye. Cuando usas Vertex AI Pipelines para el reentrenamiento, se garantiza que tus modelos sigan siendo precisos y eficientes, lo que puede evitar el consumo innecesario de recursos y mantener un rendimiento óptimo.
  • Pruebas y evaluación automatizadas: Vertex AI te ayuda a acelerar y estandarizar la evaluación de modelos. Implementa pruebas automatizadas durante todo el ciclo de vida del AA para garantizar la calidad y la confiabilidad de tus modelos. Estas pruebas pueden ayudarte a detectar errores de forma anticipada, evitar problemas costosos en la producción y reducir la necesidad de realizar pruebas manuales exhaustivas.

Para obtener más información, consulta MLOps: canalizaciones de automatización y entrega continua en el aprendizaje automático.

Aplicar prácticas de administración y control de datos

Las prácticas eficaces de administración y control de datos son fundamentales para la optimización de costos. Los datos bien organizados pueden alentar a los equipos a reutilizar conjuntos de datos, evitar duplicaciones innecesarias y reducir el esfuerzo necesario para obtener datos de alta calidad. Si administras los datos de forma proactiva, puedes reducir los costos de almacenamiento, mejorar la calidad de los datos y asegurarte de que tus modelos de AA se entrenen con los datos más pertinentes y valiosos.

Para implementar prácticas de administración y control de datos, ten en cuenta las siguientes recomendaciones.

Establece y adopta un marco de trabajo de administración de datos

La creciente importancia de la IA y el AA ha convertido a los datos en el activo más valioso para las organizaciones que están en proceso de transformación digital. Un marco de trabajo sólido para la administración de datos es un requisito fundamental para administrar las cargas de trabajo de AA y AA de forma rentable a gran escala. Un marco de administración de datos con políticas, procedimientos y roles claramente definidos proporciona un enfoque estructurado para administrar los datos durante todo su ciclo de vida. Este marco ayuda a mejorar la calidad de los datos, aumentar la seguridad, mejorar la utilización y reducir la redundancia.

Establece un marco de trabajo de administración de datos

Existen muchos marcos de trabajo preexistentes para la organización de datos, como los que publica el EDM Council, con opciones disponibles para diferentes industrias y tamaños de organizaciones. Elige y adapta un marco que se alinee con tus necesidades y prioridades específicas.

Implementa el marco de trabajo de administración de datos

Google Cloud proporciona los siguientes servicios y herramientas para ayudarte a implementar un marco de trabajo de administración de datos sólido:

  • Dataplex Universal Catalog es un tejido de datos inteligente que te ayuda a unificar datos distribuidos y automatizar el control de datos sin necesidad de consolidar conjuntos de datos en un solo lugar. Esto ayuda a reducir el costo de distribuir y mantener los datos, facilita el descubrimiento de datos y promueve su reutilización.

  • Dataplex Universal Catalog también es un servicio de administración de metadatos escalable y completamente administrado. El catálogo proporciona una base que garantiza que los recursos de datos sean accesibles y reutilizables.

    • Los metadatos de las fuentes Google Cloud compatibles se transfieren automáticamente al catálogo universal. Para las fuentes de datos fuera de Google Cloud, crea entradas personalizadas.
    • Para mejorar la capacidad de descubrimiento y la administración de los recursos de datos, enriquece los metadatos técnicos con metadatos comerciales usando aspectos.
    • Asegúrate de que los científicos de datos y los profesionales del AA tengan permisos suficientes para acceder a Dataplex Universal Catalog y usar la función de búsqueda.
  • El uso compartido de BigQuery te permite intercambiar recursos de datos de forma eficiente y segura entre tus organizaciones para abordar los desafíos de confiabilidad y costo de los datos.

    • Configura los intercambios de datos y asegúrate de que los activos de datos seleccionados se puedan ver como fichas.
    • Utiliza salas limpias de datos para administrar de forma segura el acceso a datos sensibles y asociarte de manera eficiente con equipos y organizaciones externos en proyectos de AA y AA.
    • Asegúrate de que los científicos de datos y los profesionales de ML tengan suficientes permisos para ver y publicar conjuntos de datos en el uso compartido de BigQuery.

Haz que los conjuntos de datos y los atributos sean reutilizables durante todo el ciclo de vida del AA

Para obtener beneficios significativos en cuanto a eficiencia y costos, reutiliza los conjuntos de datos y los atributos en varios proyectos de AA. Cuando evitas esfuerzos redundantes en la ingeniería de datos y el desarrollo de funciones, tu organización puede acelerar el desarrollo de modelos, reducir los costos de infraestructura y liberar recursos valiosos para otras tareas críticas.

Google Cloud proporciona los siguientes servicios y herramientas para ayudarte a reutilizar conjuntos de datos y funciones:

  • Los profesionales de datos y AA pueden publicar productos de datos para maximizar la reutilización en los distintos equipos. Luego, los productos de datos se pueden descubrir y usar a través de Dataplex Universal Catalog y el uso compartido de BigQuery.
  • Para los conjuntos de datos tabulares y estructurados, puedes usar Vertex AI Feature Store para promover la reutilización y optimizar la administración de atributos a través de BigQuery.
  • Puedes almacenar datos no estructurados en Cloud Storage y gobernarlos con tablas de objetos de BigQuery y URLs firmadas.
  • Puedes administrar los embeddings de vectores incluyendo metadatos en tus índices de Vector Search.

Automatiza y agiliza los procesos con MLOps

Uno de los principales beneficios de adoptar las prácticas de MLOps es la reducción de los costos de tecnología y personal. La automatización te ayuda a evitar la duplicación de actividades de AA y a reducir la carga de trabajo de los científicos de datos y los ingenieros de AA.

Para automatizar y optimizar el desarrollo de AA con MLOps, ten en cuenta las siguientes recomendaciones.

Automatiza y estandariza la recopilación y el procesamiento de datos

Para reducir el tiempo y el esfuerzo de desarrollo del AA, automatiza y estandariza tus tecnologías de recopilación y procesamiento de datos.

Automatiza la recopilación y el procesamiento de datos

En esta sección, se resumen los productos, las herramientas y las técnicas que puedes usar para automatizar la recopilación y el procesamiento de datos.

Identifica y elige las fuentes de datos pertinentes para tus tareas de IA y AA:

Para cada una de tus fuentes de datos, elige una herramienta de transferencia:

  • Dataflow: Para el procesamiento por lotes y de transmisión de datos de diversas fuentes, con integración de componentes de AA Para una arquitectura basada en eventos, puedes combinar Dataflow con Eventarc para procesar datos de AA de manera eficiente. Para mejorar la eficiencia de los trabajos de MLOps y AA, usa las capacidades de GPU y ajuste adecuado.
  • Funciones de Cloud Run: Para la transferencia de datos controlada por eventos que se activa con cambios en las fuentes de datos para aplicaciones en tiempo real.
  • BigQuery: Para la transferencia de datos tabulares clásicos con acceso frecuente.

Elige herramientas para la transformación y carga de datos:

  • Usa herramientas como Dataflow o Dataform para automatizar las transformaciones de datos, como el ajuste de escala de las funciones, la codificación de variables categóricas y la creación de funciones nuevas en lotes, transmisiones o en tiempo real. Las herramientas que selecciones dependerán de tus requisitos y los servicios que elijas.
  • Usa Vertex AI Feature Store para automatizar la creación y administración de atributos. Puedes centralizar funciones para reutilizarlas en diferentes modelos y proyectos.

Estandarizar la recopilación y el procesamiento de datos

Para descubrir, comprender y administrar los recursos de datos, usa servicios de administración de metadatos, como Dataplex Universal Catalog. Te ayuda a estandarizar las definiciones de datos y garantizar la coherencia en toda tu organización.

Para aplicar la estandarización y evitar el costo de mantener varias implementaciones personalizadas, usa canalizaciones de entrenamiento y organización automatizadas. Para obtener más información, consulta la siguiente sección.

Automatiza las canalizaciones de entrenamiento y reutiliza los recursos existentes

Para aumentar la eficiencia y la productividad en MLOps, las canalizaciones de entrenamiento automatizadas son fundamentales. Google Cloud ofrece un conjunto sólido de herramientas y servicios para compilar e implementar canalizaciones de entrenamiento, con un gran énfasis en la reutilización de recursos existentes. Las canalizaciones de entrenamiento automatizadas ayudan a acelerar el desarrollo de modelos, garantizar la coherencia y reducir el esfuerzo redundante.

Automatiza las canalizaciones de entrenamiento

En la siguiente tabla, se describen los servicios y las funciones de Google Cloud que puedes usar para automatizar las diferentes funciones de una canalización de entrenamiento.

Función Google Cloud servicios y funciones
Organización: Define flujos de trabajo de AA complejos que constan de varios pasos y dependencias. Puedes definir cada paso como una tarea independiente en un contenedor, lo que te ayuda a administrar y escalar tareas individuales con facilidad.
  • Para crear y organizar canalizaciones, usa Vertex AI Pipelines o Kubeflow Pipelines. Estas herramientas admiten la transformación de datos simple, el entrenamiento de modelos, la implementación de modelos y el control de versiones de canalizaciones. Te permiten definir dependencias entre los pasos, administrar el flujo de datos y automatizar la ejecución de todo el flujo de trabajo.
  • Para tareas operativas complejas con requisitos exigentes de CI/CD y extracción, transformación y carga (ETL), usa Cloud Composer. Si prefieres Airflow para la organización de datos, Cloud Composer es un servicio administrado compatible que se basa en Airflow.
  • Para las canalizaciones que se administran fuera de Vertex AI Pipelines, usa Workflows para tareas enfocadas en la infraestructura, como iniciar y detener VMs, o bien integrarse con sistemas externos.
  • Para automatizar tu proceso de CI/CD, usa Cloud Build con Pub/Sub. Puedes configurar notificaciones y activadores automáticos para cuando se envíe código nuevo o cuando se necesite entrenar un modelo nuevo.
  • Para obtener una solución escalable y completamente administrada para la administración de canalizaciones, usa Cloud Data Fusion.
Control de versiones: Haz un seguimiento y controla las diferentes versiones de las canalizaciones y los componentes para garantizar la reproducibilidad y la auditabilidad. Almacena plantillas de canalizaciones de Kubeflow Pipelines en un repositorio de Kubeflow Pipelines en Artifact Registry.
Reutilización: Reutiliza los componentes y artefactos existentes de la canalización, como los conjuntos de datos preparados y los modelos entrenados, para acelerar el desarrollo. Almacena tus plantillas de canalización en Cloud Storage y compártelas en toda tu organización.
Supervisión: Supervisa la ejecución de la canalización para identificar y abordar cualquier problema. Usa Cloud Logging y Cloud Monitoring. Para obtener más información, consulta Supervisa los recursos de forma continua con paneles, alertas y registros.

Expande la reutilización más allá de las canalizaciones

Busca oportunidades para expandir la reutilización más allá de las canalizaciones de entrenamiento. A continuación, se muestran ejemplos de capacidades de Google Cloud que te permiten reutilizar funciones, conjuntos de datos, modelos y código de AA.

  • Vertex AI Feature Store proporciona un repositorio centralizado para organizar, almacenar y entregar atributos del AA. Te permite reutilizar atributos en diferentes proyectos y modelos, lo que puede mejorar la coherencia y reducir el esfuerzo de ingeniería de atributos. Puedes almacenar, compartir y acceder a funciones para casos de uso en línea y sin conexión.
  • Los conjuntos de datos de Vertex AI permiten que los equipos creen y administren conjuntos de datos de forma centralizada, de modo que tu organización pueda maximizar la reutilización y reducir la duplicación de datos. Tus equipos pueden buscar y descubrir los conjuntos de datos con Dataplex Universal Catalog.
  • Vertex AI Model Registry te permite almacenar, administrar e implementar tus modelos entrenados. Model Registry te permite reutilizar los modelos en canalizaciones posteriores o para la predicción en línea, lo que te ayuda a aprovechar los esfuerzos de entrenamiento anteriores.
  • Los contenedores personalizados te permiten empaquetar tu código de entrenamiento y tus dependencias en contenedores, y almacenarlos en Artifact Registry. Los contenedores personalizados te permiten proporcionar entornos de entrenamiento coherentes y reproducibles en diferentes canalizaciones y proyectos.

Usa los servicios de Google Cloud para la evaluación y el ajuste de modelos

Google Cloud ofrece un potente conjunto de herramientas y servicios para optimizar y automatizar la evaluación y el ajuste de modelos. Estas herramientas y servicios pueden ayudarte a reducir el tiempo de producción y los recursos necesarios para la supervisión y el entrenamiento continuos. Con estos servicios, tus equipos de IA y AA pueden mejorar el rendimiento de los modelos con menos iteraciones costosas, obtener resultados más rápido y minimizar el desperdicio de recursos de procesamiento.

Usa la evaluación y la experimentación de modelos eficientes en el uso de recursos

Comienza un proyecto de IA con experimentos antes de ampliar tu solución. En tus experimentos, haz un seguimiento de varios metadatos, como la versión del conjunto de datos, los parámetros del modelo y el tipo de modelo. Para una mayor reproducibilidad y comparación de los resultados, usa el seguimiento de metadatos además del control de versiones del código, de forma similar a las capacidades de Git. Para evitar la falta de información o la implementación de la versión incorrecta en producción, usa Vertex AI Experiments antes de implementar trabajos de entrenamiento o implementación a gran escala.

Vertex AI Experiments te permite hacer lo siguiente:

  • Optimiza y automatiza el seguimiento y el descubrimiento de metadatos a través de una IU y una API fáciles de usar para cargas de trabajo listas para la producción.
  • Analiza las métricas de rendimiento del modelo y compáralas con las de otros modelos.

Después de entrenar el modelo, supervisa continuamente el rendimiento y la desviación de los datos a lo largo del tiempo para los datos entrantes. Para optimizar este proceso, usa Vertex AI Model Monitoring para acceder directamente a los modelos creados en Model Registry. La Supervisión de modelos también automatiza la supervisión de los datos y los resultados a través de predicciones en línea y por lotes. Puedes exportar los resultados a BigQuery para realizar un análisis y un seguimiento más detallados.

Elige estrategias óptimas para automatizar el entrenamiento

Para el ajuste de hiperparámetros, recomendamos los siguientes enfoques:

  • Para automatizar el proceso de búsqueda de los hiperparámetros óptimos para tus modelos, usa el ajuste de hiperparámetros de Vertex AI. Vertex AI usa algoritmos avanzados para explorar el espacio de hiperparámetros y, así, identificar la mejor configuración.
  • Para un ajuste de hiperparámetros eficiente, considera usar técnicas de optimización bayesiana, en especial cuando trabajes con modelos complejos y grandes conjuntos de datos.

Para el entrenamiento distribuido, recomendamos los siguientes enfoques:

  • Para conjuntos de datos grandes y modelos complejos, usa la infraestructura de entrenamiento distribuido de Vertex AI. Este enfoque te permite entrenar tus modelos en varias máquinas, lo que ayuda a reducir significativamente el tiempo de entrenamiento y los costos asociados. Usa herramientas como las siguientes:

  • Elige frameworks de AA optimizados, como Keras y PyTorch, que admitan el entrenamiento distribuido y el uso eficiente de los recursos.

Usa la IA explicable

Es fundamental comprender por qué un modelo toma ciertas decisiones y, también, identificar posibles sesgos o áreas de mejora. Usa Vertex Explainable AI para obtener estadísticas sobre las predicciones de tu modelo. Vertex Explainable AI ofrece una forma de automatizar las explicaciones basadas en atributos y en ejemplos que se vinculan a tus experimentos de Vertex AI.

  • Basadas en atributos: Para comprender qué atributos son más influyentes en las predicciones de tu modelo, analiza las atribuciones de atributos. Esta comprensión puede guiar los esfuerzos de ingeniería de atributos y mejorar la interpretabilidad del modelo.
  • Basadas en ejemplos: Para devolver una lista de ejemplos (por lo general, del conjunto de entrenamiento) que sean más similares a la entrada, Vertex AI usa la búsqueda de vecino más cercano. Debido a que las entradas similares suelen generar predicciones similares, puedes usar estas explicaciones para explorar y explicar el comportamiento de un modelo.

Usa servicios administrados y modelos previamente entrenados

Adopta un enfoque incremental para la selección y el desarrollo de modelos. Este enfoque te ayuda a evitar los costos excesivos asociados con comenzar de nuevo cada vez. Para controlar los costos, usa frameworks de AA, servicios administrados y modelos previamente entrenados.

Para obtener el máximo valor de los servicios administrados y los modelos previamente entrenados, ten en cuenta las siguientes recomendaciones.

Usa notebooks para la exploración y los experimentos

Los entornos de notebooks son fundamentales para la experimentación rentable con AA. Un notebook proporciona un espacio interactivo y colaborativo para que los ingenieros y científicos de datos exploren los datos, desarrollen modelos, compartan conocimientos y realicen iteraciones de manera eficiente. La colaboración y el intercambio de conocimientos a través de notebooks aceleran significativamente el desarrollo, las revisiones de código y la transferencia de conocimientos. Los notebooks ayudan a optimizar los flujos de trabajo y reducir los esfuerzos duplicados.

En lugar de adquirir y administrar hardware costoso para tu entorno de desarrollo, puedes usar la infraestructura escalable y on demand de Vertex AI Workbench y Colab Enterprise.

  • Vertex AI Workbench es un entorno de desarrollo de notebooks de Jupyter para todo el flujo de trabajo de la ciencia de datos. Puedes interactuar con Vertex AI y otros servicios de Google Clouddesde el notebook de Jupyter de una instancia. Las integraciones y funciones de Vertex AI Workbench te ayudan a hacer lo siguiente:

    • Acceder y explorar datos desde un notebook de Jupyter con las integraciones de BigQuery y Cloud Storage
    • Automatizar las actualizaciones recurrentes de un modelo con ejecuciones programadas de código que se ejecuta en Vertex AI
    • Procesa datos rápidamente ejecutando un notebook en un clúster de Dataproc.
    • Ejecutar un notebook como un paso en una canalización con Vertex AI Pipelines
  • Colab Enterprise es un entorno de notebook colaborativo y administrado que tiene las capacidades de seguridad y cumplimiento de Google Cloud. Colab Enterprise es ideal si las prioridades de tu proyecto incluyen el desarrollo colaborativo y la reducción del esfuerzo necesario para administrar la infraestructura. Colab Enterprise se integra con losGoogle Cloud servicios y la asistencia potenciada por IA que usa Gemini. Colab Enterprise te permite hacer lo siguiente:

    • Trabaja en notebooks sin necesidad de administrar infraestructura.
    • Comparte un notebook con un solo usuario, un Grupo de Google o un dominio de Google Workspace. Puedes controlar el acceso a los notebooks a través de Identity and Access Management (IAM).
    • Interactuar con las funciones integradas en Vertex AI y BigQuery

Para hacer un seguimiento de los cambios y revertir a versiones anteriores cuando sea necesario, puedes integrar tus notebooks con herramientas de control de versión como Git.

Comienza con modelos existentes y previamente entrenados

Entrenar modelos complejos desde cero, en especial los modelos de aprendizaje profundo, requiere una gran cantidad de recursos de procesamiento y tiempo. Para acelerar el proceso de selección y desarrollo de modelos, comienza con modelos existentes y previamente entrenados. Estos modelos, que se entrenan con grandes conjuntos de datos, eliminan la necesidad de entrenar modelos desde cero y reducen significativamente el costo y el tiempo de desarrollo.

Reducción de los costos de capacitación y desarrollo

Seleccionar un modelo o una API adecuados para cada tarea de AA y combinarlos para crear un proceso de desarrollo de AA de extremo a extremo

Vertex AI Model Garden ofrece una vasta colección de modelos previamente entrenados para tareas como la clasificación de imágenes, la detección de objetos y el procesamiento de lenguaje natural. Los modelos se agrupan en las siguientes categorías:

Google Cloud proporciona APIs de IA y AA que permiten a los desarrolladores integrar potentes capacidades de IA en las aplicaciones sin necesidad de compilar modelos desde cero.

  • La API de Cloud Vision te permite obtener estadísticas a partir de imágenes. Esta API es valiosa para aplicaciones como el análisis de imágenes, la moderación de contenido y la entrada de datos automatizada.
  • La API de Cloud Natural Language te permite analizar texto para comprender su estructura y significado. Esta API es útil para tareas como el análisis de comentarios de clientes, la categorización de contenido y la comprensión de las tendencias en redes sociales.
  • La API de Speech-to-Text convierte audio en texto. Esta API admite una amplia variedad de idiomas y dialectos.
  • La API de Video Intelligence analiza el contenido de video para identificar objetos, escenas y acciones. Usa esta API para el análisis de contenido de video, la moderación de contenido y la búsqueda de videos.
  • La API de Document AI procesa documentos para extraer, clasificar y comprender datos. Esta API te ayuda a automatizar los flujos de trabajo de procesamiento de documentos.
  • La API de Dialogflow permite crear interfaces conversacionales, como chatbots y asistentes de voz. Puedes usar esta API para crear bots de atención al cliente y asistentes virtuales.
  • La API de Gemini en Vertex AI proporciona acceso al modelo de IA de propósito general más potente de Google.

Reduce los costos de ajuste

Para reducir la necesidad de una gran cantidad de datos y tiempo de procesamiento, ajusta tus modelos previamente entrenados en conjuntos de datos específicos. Te recomendamos que pruebes los siguientes enfoques:

  • Transferencia de aprendizaje: Usa el conocimiento de un modelo entrenado previamente para una tarea nueva, en lugar de comenzar desde cero. Este enfoque requiere menos datos y tiempo de procesamiento, lo que ayuda a reducir los costos.
  • Ajuste del adaptador (ajuste eficiente de parámetros): Adapta modelos a nuevas tareas o dominios sin un ajuste completo. Este enfoque requiere muchos menos recursos de procesamiento y un conjunto de datos más pequeño.
  • Ajuste fino supervisado: Adapta el comportamiento del modelo con un conjunto de datos etiquetado. Este enfoque simplifica la administración de la infraestructura subyacente y el esfuerzo de desarrollo que se requiere para un trabajo de entrenamiento personalizado.

Explora y experimenta con Vertex AI Studio

Vertex AI Studio te permite probar, crear prototipos y, luego, implementar aplicaciones de IA generativa con rapidez.

  • Integración con Model Garden: Proporciona acceso rápido a los modelos más recientes y te permite implementarlos de manera eficiente para ahorrar tiempo y costos.
  • Acceso unificado a modelos especializados: Consolida el acceso a una amplia variedad de modelos previamente entrenados y APIs, incluidos los de chat, texto, medios, traducción y voz. Este acceso unificado puede ayudarte a reducir el tiempo que dedicas a buscar e integrar servicios individuales.

Usa servicios administrados para entrenar o entregar modelos

Los servicios administrados pueden ayudar a reducir el costo del entrenamiento de modelos y simplificar la administración de la infraestructura, lo que te permite enfocarte en el desarrollo y la optimización del modelo. Este enfoque puede generar beneficios significativos en los costos y aumentar la eficiencia.

Reduce la sobrecarga operativa

Para reducir la complejidad y el costo de la administración de la infraestructura, usa servicios administrados, como los siguientes:

  • El entrenamiento de Vertex AI proporciona un entorno completamente administrado para entrenar tus modelos a gran escala. Puedes elegir entre varios contenedores prediseñados con frameworks de AA populares o usar tus propios contenedores personalizados. Google Cloud se encarga del aprovisionamiento, el escalamiento y el mantenimiento de la infraestructura, por lo que incurres en una menor sobrecarga operativa.
  • Las predicciones de Vertex AI controlan el ajuste de escala de la infraestructura, el balanceo de cargas y el enrutamiento de solicitudes. Obtienes alta disponibilidad y rendimiento sin intervención manual.
  • Ray en Vertex AI proporciona un clúster de Ray completamente administrado. Puedes usar el clúster para ejecutar cargas de trabajo de IA personalizadas complejas que realizan muchos cálculos (ajuste de hiperparámetros, ajuste de modelos, entrenamiento de modelos distribuidos y aprendizaje por refuerzo con retroalimentación humana) sin necesidad de administrar tu propia infraestructura.

Usa servicios administrados para optimizar el uso de recursos

Para obtener detalles sobre el uso eficiente de los recursos, consulta Optimiza el uso de los recursos.

Colaboradores

Autores:

  • Isaac Lo | Administrador de Desarrollo Empresarial de IA
  • Anastasia Prokaeva | Arquitecta de soluciones de campo, IA generativa
  • Amy Southwood | Consultora de soluciones técnicas, IA y estadísticas de datos

Otros colaboradores:

Perspectiva de IA y AA: Optimización del rendimiento

En este documento del Framework de Well-Architected: perspectiva de IA y AA, se proporciona una descripción general de los principios y las recomendaciones para ayudarte a optimizar el rendimiento de tus cargas de trabajo de IA y AA en Google Cloud. Las recomendaciones de este documento se alinean con el pilar de optimización del rendimiento del Google Cloud Framework de Well-Architected.

Los sistemas de IA y AA habilitan nuevas capacidades de automatización y toma de decisiones para tu organización. El rendimiento de estos sistemas puede afectar directamente los factores de tu empresa, como los ingresos, los costos y la satisfacción del cliente. Para aprovechar todo el potencial de tus sistemas de IA y AA, debes optimizar su rendimiento en función de tus objetivos comerciales y requisitos técnicos. El proceso de optimización del rendimiento a menudo implica ciertas compensaciones. Por ejemplo, una elección de diseño que proporcione el rendimiento requerido podría generar costos más altos. Las recomendaciones de este documento priorizan el rendimiento por sobre otras consideraciones, como los costos.

Para optimizar el rendimiento de la IA y el AA, debes tomar decisiones sobre factores como la arquitectura del modelo, los parámetros y la estrategia de entrenamiento. Cuando tomes estas decisiones, considera todo el ciclo de vida de los sistemas de IA y AA, y su entorno de implementación. Por ejemplo, los LLM muy grandes pueden tener un alto rendimiento en una infraestructura de entrenamiento masiva, pero es posible que los modelos muy grandes no funcionen bien en entornos con limitaciones de capacidad, como los dispositivos móviles.

Traduce los objetivos comerciales en objetivos de rendimiento

Para tomar decisiones de arquitectura que optimicen el rendimiento, comienza con un conjunto claro de objetivos comerciales. Diseña sistemas de IA y AA que proporcionen el rendimiento técnico necesario para respaldar tus objetivos y prioridades comerciales. Tus equipos técnicos deben comprender la correlación entre los objetivos de rendimiento y los objetivos comerciales.

Ten en cuenta las siguientes recomendaciones:

  • Traduce los objetivos comerciales en requisitos técnicos: Traduce los objetivos comerciales de tus sistemas de IA y AA en requisitos específicos de rendimiento técnico y evalúa los efectos de no cumplir con los requisitos. Por ejemplo, en el caso de una aplicación que predice la deserción de clientes, el modelo de AA debe tener un buen rendimiento en las métricas estándar, como la exactitud y la recuperación, y la aplicación debe cumplir con los requisitos operativos, como la baja latencia.
  • Supervisa el rendimiento en todas las etapas del ciclo de vida del modelo: Durante la experimentación y el entrenamiento después de la implementación del modelo, supervisa tus indicadores clave de rendimiento (KPI) y observa cualquier desviación de los objetivos comerciales.
  • Automatiza la evaluación para que sea reproducible y estandarizada: Con una plataforma y una metodología estandarizadas y comparables para la evaluación de experimentos, tus ingenieros pueden aumentar el ritmo de mejora del rendimiento.

Ejecuta y haz un seguimiento de experimentos frecuentes

Para transformar la innovación y la creatividad en mejoras de rendimiento, necesitas una cultura y una plataforma que respalden la experimentación. La mejora del rendimiento es un proceso continuo, ya que las tecnologías de IA y AA se desarrollan de forma constante y rápida. Para mantener un proceso iterativo y rápido, debes separar el espacio de experimentación de tus plataformas de entrenamiento y de publicación. Es importante contar con un proceso de experimentación sólido y estandarizado.

Ten en cuenta las siguientes recomendaciones:

  • Crea un entorno de experimentación: Las mejoras en el rendimiento requieren un entorno interactivo, potente y exclusivo que admita la experimentación y el desarrollo colaborativo de canalizaciones de AA.
  • Integra la experimentación como una cultura: Ejecuta experimentos antes de cualquier implementación de producción. Lanza versiones nuevas de forma iterativa y recopila siempre datos de rendimiento. Experimenta con diferentes tipos de datos, transformaciones de atributos, algoritmos y hiperparámetros.

Compila y automatiza los servicios de capacitación y entrega

El entrenamiento y la entrega de modelos de IA son componentes fundamentales de tus servicios de IA. Necesitas plataformas y prácticas sólidas que admitan la creación, la implementación y la entrega rápidas y confiables de modelos de IA. Invierte tiempo y esfuerzo en crear plataformas fundamentales para tus tareas principales de entrenamiento y entrega de IA. Estas plataformas fundamentales ayudan a reducir el tiempo y el esfuerzo de tus equipos, y mejoran la calidad de los resultados a mediano y largo plazo.

Ten en cuenta las siguientes recomendaciones:

  • Usa componentes especializados en IA de un servicio de entrenamiento: Estos componentes incluyen recursos de procesamiento de alto rendimiento y componentes de MLOps, como almacenes de atributos, registros de modelos, almacenes de metadatos y servicios de evaluación del rendimiento de modelos.
  • Usa componentes especializados en IA de un servicio de predicción: Estos componentes proporcionan recursos escalables y de alto rendimiento, admiten la supervisión de funciones y permiten la supervisión del rendimiento del modelo. Para evitar y administrar la degradación del rendimiento, implementa estrategias confiables de implementación y reversión.

Adapta las opciones de diseño a los requisitos de rendimiento

Cuando tomes decisiones de diseño para mejorar el rendimiento, evalúa cuidadosamente si estas decisiones respaldan los requisitos de tu empresa o si son inútiles y contraproducentes. Para elegir la infraestructura, los modelos o las configuraciones adecuados, identifica los cuellos de botella del rendimiento y evalúa cómo se vinculan con tus medidas de rendimiento. Por ejemplo, incluso en aceleradores de GPU muy potentes, tus tareas de entrenamiento pueden experimentar cuellos de botella de rendimiento debido a problemas de E/S de datos de la capa de almacenamiento o a limitaciones de rendimiento del propio modelo.

Ten en cuenta las siguientes recomendaciones:

  • Optimiza el consumo de hardware según los objetivos de rendimiento: Para entrenar y publicar modelos de AA que cumplan con tus requisitos de rendimiento, debes optimizar la infraestructura en las capas de procesamiento, almacenamiento y red. Debes medir y comprender las variables que afectan tus objetivos de rendimiento. Estas variables son diferentes para el entrenamiento y la inferencia.
  • Enfócate en los requisitos específicos de la carga de trabajo: Concentra tus esfuerzos de optimización del rendimiento en los requisitos únicos de tus cargas de trabajo de IA y AA. Depender de los servicios administrados para el rendimiento de la infraestructura subyacente
  • Elige estrategias de entrenamiento adecuadas: Hay varios modelos básicos y entrenados previamente disponibles, y se lanzan más modelos de este tipo con frecuencia. Elige una estrategia de entrenamiento que pueda ofrecer un rendimiento óptimo para tu tarea. Decide si debes compilar tu propio modelo, ajustar un modelo previamente entrenado con tus datos o usar una API de modelo previamente entrenado.
  • Reconoce que las estrategias de optimización del rendimiento pueden tener retornos decrecientes: Cuando una estrategia de optimización del rendimiento en particular no proporciona un valor comercial incremental que sea medible, deja de aplicarla.

Para innovar, solucionar problemas y analizar los problemas de rendimiento, establece un vínculo claro entre las opciones de diseño y los resultados de rendimiento. Además de la experimentación, debes registrar de manera confiable el linaje de tus recursos, implementaciones, resultados del modelo y las configuraciones y entradas que produjeron los resultados.

Ten en cuenta las siguientes recomendaciones:

  • Crea un sistema de linaje de datos y modelos: Todos tus recursos implementados y sus métricas de rendimiento deben estar vinculados a los datos, las configuraciones, el código y las decisiones que dieron como resultado los sistemas implementados. Además, las salidas del modelo deben vincularse a versiones específicas del modelo y a la forma en que se produjeron las salidas.
  • Usa herramientas de interpretabilidad para mejorar el rendimiento del modelo: Adopta y estandariza herramientas y comparativas para la exploración y la interpretabilidad del modelo. Estas herramientas ayudan a tus ingenieros de AA a comprender el comportamiento del modelo y a mejorar el rendimiento o eliminar sesgos.

Colaboradores

Autores:

Otros colaboradores: