Perspectiva de la IA y el AA: confiabilidad

Last reviewed 2025-08-07 UTC

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