Perspectiva de la IA y el AA: Optimización del rendimiento

Last reviewed 2026-02-13 UTC

En este documento del Google Cloud Framework de Well-Architected: perspectiva de la IA y el AA, se proporcionan principios y 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 Marco de trabajo de Well-Architected.

Los sistemas de IA y AA permiten capacidades avanzadas de automatización y toma de decisiones para tu organización. El rendimiento de estos sistemas puede afectar directamente factores importantes del negocio, como los ingresos, los costos y la satisfacción del cliente. Para aprovechar todo el potencial de los 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 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.

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 LLMs muy grandes pueden tener un rendimiento alto en una infraestructura de entrenamiento masiva, pero es posible que no funcionen bien en entornos con limitaciones de capacidad, como los dispositivos móviles.

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

Establece objetivos de rendimiento y métodos de evaluación

Tu estrategia y tus objetivos comerciales son la base para aprovechar las tecnologías de IA y AA. Convierte tus objetivos comerciales en indicadores clave de rendimiento (KPI) medibles. Algunos ejemplos de KPI son los ingresos totales, los costos, el porcentaje de conversiones, el porcentaje de retención o de abandono, la satisfacción del cliente y la satisfacción del empleado.

Define objetivos realistas

Según las prácticas recomendadas de ingeniería de confiabilidad de sitios (SRE), los objetivos de un servicio deben reflejar un nivel de rendimiento que satisfaga los requisitos de los clientes típicos. Esto significa que los objetivos del servicio deben ser realistas en términos de escala y rendimiento de las funciones.

Los objetivos poco realistas pueden generar un desperdicio de recursos con ganancias de rendimiento mínimas. Los modelos que proporcionan el mayor rendimiento podrían no generar resultados comerciales óptimos. Es posible que estos modelos requieran más tiempo y dinero para entrenarse y ejecutarse.

Cuando definas objetivos, distingue y prioriza los objetivos de calidad y rendimiento:

  • La calidad se refiere a las características inherentes que determinan el valor de una entidad. Te ayuda a evaluar si la entidad cumple con tus expectativas y estándares.
  • El rendimiento se refiere a la eficiencia y eficacia con las que funciona una entidad o cumple su propósito previsto.

Los ingenieros de AA pueden mejorar las métricas de rendimiento de un modelo durante el proceso de entrenamiento. Vertex AI proporciona un servicio de evaluación que los ingenieros de AA pueden usar para implementar un seguimiento estandarizado y repetible de las métricas de calidad. La eficiencia de predicción de un modelo indica qué tan bien se desempeña un modelo en producción o durante el tiempo de inferencia. Para supervisar el rendimiento, usa Cloud Monitoring y Vertex AI Model Monitoring. Para seleccionar los modelos adecuados y decidir cómo entrenarlos, debes traducir los objetivos comerciales en requisitos técnicos que determinen las métricas de calidad y rendimiento.

Para comprender cómo establecer objetivos realistas y determinar las métricas de rendimiento adecuadas, considera el siguiente ejemplo de un sistema de detección de fraude potenciado por IA:

  • Objetivo comercial: Para un sistema de detección de fraudes, un objetivo comercial poco realista es detectar el 100% de las transacciones fraudulentas con precisión en un nanosegundo en un tráfico máximo de 100,000 millones de transacciones por segundo. Un objetivo más realista es detectar transacciones fraudulentas con una precisión del 95% en 100 milisegundos para el 90% de las predicciones en línea durante el horario laboral de EE.UU. con un volumen máximo de un millón de transacciones por segundo.
  • Métricas de rendimiento: La detección de fraude es un problema de clasificación. Puedes medir la calidad de un sistema de detección de fraude con métricas como la recuperación, la puntuación F1 y la precisión. Para hacer un seguimiento del rendimiento o la velocidad del sistema, puedes medir la latencia de inferencia. Detectar transacciones potencialmente fraudulentas puede ser más valioso que la precisión. Por lo tanto, un objetivo realista podría ser una recuperación alta con una latencia del percentil 90 inferior a 100 milisegundos.

Supervisa el rendimiento en todas las etapas del ciclo de vida del modelo

Durante la experimentación y el entrenamiento, y después de la implementación del modelo, supervisa tus KPI y observa cualquier desviación de los objetivos comerciales. Una estrategia de supervisión integral te ayuda a tomar decisiones importantes sobre la calidad del modelo y el uso de recursos, como las siguientes:

  • Decidir cuándo detener un trabajo de entrenamiento
  • Determinar si el rendimiento de un modelo se está degradando en producción
  • Mejorar el costo y el tiempo de lanzamiento al mercado de los modelos nuevos

Supervisión durante la experimentación y el entrenamiento

El objetivo de la etapa de experimentación es encontrar el enfoque general, la arquitectura del modelo y los hiperparámetros óptimos para una tarea específica. La experimentación te ayuda a determinar de forma iterativa la configuración que proporciona un rendimiento óptimo y cómo entrenar el modelo. La supervisión te ayuda a identificar de manera eficiente las posibles áreas de mejora.

Para supervisar la calidad y la eficiencia del entrenamiento de un modelo, los ingenieros de AA deben hacer lo siguiente:

  • Visualiza las métricas de calidad y rendimiento del modelo para cada prueba.
  • Visualizar grafos y métricas del modelo, como histogramas de pesos y sesgos
  • Representar visualmente los datos de entrenamiento
  • Generar perfiles de algoritmos de entrenamiento en diferentes tipos de hardware

Para supervisar la experimentación y el entrenamiento, ten en cuenta las siguientes recomendaciones:

Aspecto de supervisión Recomendación
Calidad del modelo

Para visualizar y hacer un seguimiento de las métricas del experimento, como la precisión, y visualizar la arquitectura del modelo o los datos de entrenamiento, usa TensorBoard. TensorBoard es un conjunto de herramientas de código abierto que es compatible con los frameworks de AA, como los siguientes:

Seguimiento del experimento Vertex AI Experiments se integra con instancias administradas de Vertex AI TensorBoard de nivel empresarial para admitir el seguimiento de experimentos. Esta integración permite el almacenamiento y el uso compartido confiables de registros y métricas. Para permitir que varios equipos y personas hagan un seguimiento de los experimentos, te recomendamos que uses el principio de privilegio mínimo.
Eficiencia en el entrenamiento y la experimentación Vertex AI exporta métricas a Monitoring y recopila datos de telemetría y registros con un agente de observabilidad. Puedes visualizar las métricas en la consola de Google Cloud . También puedes crear paneles o alertas basados en estas métricas con Monitoring. Para obtener más información, consulta Métricas de supervisión de Vertex AI.
GPU de NVIDIA

El Agente de operaciones habilita la supervisión de GPU para Compute Engine y para otros productos compatibles con el Agente de operaciones.

También puedes usar el administrador de GPU del centro de datos de NVIDIA (DCGM), que es un conjunto de herramientas para administrar y supervisar las GPU de NVIDIA en entornos de clústeres. La supervisión de las GPU de NVIDIA es especialmente útil para entrenar y entregar modelos de aprendizaje profundo.

Depuración profunda Para depurar problemas con el código de entrenamiento o la configuración de un trabajo de Vertex AI Training, puedes inspeccionar el contenedor de entrenamiento con una sesión de shell interactiva.

Supervisión durante la entrega: Predicción de transmisión

Después de entrenar un modelo y exportarlo a Vertex AI Model Registry, puedes crear un extremo de Vertex AI. Este extremo proporciona un extremo HTTP para el modelo.

Model Monitoring te ayuda a identificar cambios importantes en la distribución de los atributos de entrada o salida. También puedes supervisar las atribuciones de atributos en producción en comparación con una distribución de referencia. La distribución de referencia puede ser el conjunto de entrenamiento o basarse en distribuciones anteriores del tráfico de producción. Un cambio en la distribución de la publicación puede implicar una reducción en el rendimiento predictivo en comparación con el entrenamiento.

  • Elige un objetivo de supervisión: Según la sensibilidad de un caso de uso a los cambios en los datos que se proporcionan al modelo, puedes supervisar diferentes tipos de objetivos: desviación de atributos de entrada, desviación de salida y atribución de atributos. Model Monitoring v2 te permite supervisar los modelos que implementas en una plataforma de servicio administrada, como Vertex AI, y también en servicios autoalojados, como Google Kubernetes Engine (GKE). Además, para realizar un seguimiento detallado del rendimiento, puedes supervisar los parámetros a nivel del modelo en lugar de hacerlo para un extremo.
  • Supervisa la entrega de modelos de IA generativa: Para garantizar la estabilidad y minimizar la latencia, en especial para los extremos de LLM, configura una pila de supervisión sólida. Los modelos de Gemini proporcionan métricas integradas, como el tiempo hasta el primer token (TTFT), a las que puedes acceder directamente en el Explorador de métricas. Para supervisar la capacidad de procesamiento, la latencia y las tasas de error en todos los modelos deGoogle Cloud , usa el panel de observabilidad del modelo.

Supervisión durante la entrega: Predicción por lotes

Para supervisar la predicción por lotes, puedes ejecutar trabajos de evaluación estándar en el servicio de evaluación de Vertex AI. La Supervisión de modelos admite la supervisión de inferencias por lotes. Si usas Batch para ejecutar tu carga de trabajo de procesamiento, puedes supervisar el consumo de recursos con las métricas del Explorador de métricas.

Automatiza la evaluación para la reproducibilidad y la estandarización

Para pasar de los prototipos a los sistemas de producción confiables, necesitas un proceso de evaluación estandarizado. Este proceso te ayuda a hacer un seguimiento del progreso en las diferentes iteraciones, comparar diferentes modelos, detectar y mitigar sesgos, y garantizar que cumplas con los requisitos reglamentarios. Para garantizar la reproducibilidad y la escalabilidad, debes automatizar el proceso de evaluación.

Para estandarizar y automatizar el proceso de evaluación del rendimiento del AA, completa los siguientes pasos:

  1. Define indicadores cuantitativos y cualitativos.
  2. Elegir las fuentes de datos y las técnicas adecuadas
  3. Estandariza la canalización de evaluación.

Estos pasos se describen en las siguientes secciones.

1. Cómo definir indicadores cuantitativos y cualitativos

Las métricas basadas en procesamiento se calculan con fórmulas numéricas. Recuerda que las métricas de pérdida del entrenamiento pueden diferir de las métricas de evaluación que son relevantes para los objetivos comerciales. Por ejemplo, un modelo que se usa para la detección supervisada de fraudes puede usar la pérdida de entropía cruzada para el entrenamiento. Sin embargo, para evaluar el rendimiento de la inferencia, una métrica más pertinente podría ser la recuperación, que indica la cobertura de las transacciones fraudulentas. Vertex AI proporciona un servicio de evaluación para métricas como la recuperación, la precisión y el área bajo la curva de precisión-recuperación (AuPRC). Para obtener más información, consulta Evaluación de modelos en Vertex AI.

Los indicadores cualitativos, como la fluidez o el valor de entretenimiento del contenido generado, no se pueden calcular de forma objetiva. Para evaluar estos indicadores, puedes usar la estrategia de LLM-as-a-judge o servicios de etiquetado humano, como Labelbox.

2. Elegir fuentes de datos y técnicas adecuadas

Una evaluación es estadísticamente significativa cuando se ejecuta en un volumen mínimo determinado de ejemplos variados. Elige los conjuntos de datos y las técnicas que usas para las evaluaciones con enfoques como los siguientes:

  • Conjunto de datos de referencia: Usa muestras de datos confiables, coherentes y precisas que reflejen la distribución de probabilidad de un modelo en producción.
  • LLM-as-a-judge: Evalúa el resultado de un modelo generativo con un LLM. Este enfoque solo es pertinente para las tareas en las que un LLM puede evaluar un modelo.
  • Comentarios de los usuarios: Para guiar las mejoras futuras, recopila comentarios directos de los usuarios como parte del tráfico de producción.

Según la técnica de evaluación, el tamaño y el tipo de datos de evaluación, y la frecuencia de la evaluación, puedes usar BigQuery o Cloud Storage como fuentes de datos, incluso para el servicio de evaluación de Vertex AI.

3. Estandariza la canalización de evaluación

Para automatizar el proceso de evaluación, considera los siguientes servicios y herramientas:

  • Servicio de evaluación de Vertex AI: Proporciona elementos básicos listos para usar para hacer un seguimiento del rendimiento del modelo como parte del ciclo de vida del AA en Vertex AI.
  • Servicio de evaluación de IA generativa: Te permite evaluar cualquier modelo o aplicación generativa y comparar los resultados de la evaluación con tu propio criterio y criterios de evaluación. Este servicio también te ayuda a realizar tareas especializadas, como la ingeniería de instrucciones, la generación mejorada por recuperación (RAG) y la optimización de agentes de IA.
  • Herramienta de evaluación automática en paralelo (AutoSxS) de Vertex AI: Admite la evaluación basada en modelos por pares.
  • Kubeflow: Proporciona componentes especiales para ejecutar evaluaciones de modelos.

Ejecuta y haz un seguimiento de experimentos frecuentes

Para optimizar de manera eficaz el rendimiento del AA, necesitas una plataforma interactiva, potente y exclusiva para la experimentación. La plataforma debe tener las siguientes capacidades:

  • Facilitar el desarrollo iterativo para que los equipos puedan pasar de la idea a los resultados validados con rapidez, confiabilidad y a gran escala
  • Permite que los equipos descubran de manera eficiente las configuraciones óptimas que pueden usar para activar trabajos de entrenamiento.
  • Proporcionar acceso controlado a datos, funciones y herramientas pertinentes para realizar y hacer un seguimiento de los experimentos
  • Admite la reproducibilidad y el seguimiento del linaje de datos.

Trata los datos como un servicio

Aísla las cargas de trabajo experimentales de los sistemas de producción y configura los controles de seguridad adecuados para tus activos de datos con las siguientes técnicas:

Técnica Descripción Beneficios
Aislamiento de recursos Aísla los recursos para diferentes entornos en Google Cloud proyectos separados. Por ejemplo, aprovisiona los recursos para los entornos de desarrollo, etapa de pruebas y producción en proyectos separados, como ml-dev, ml-staging y ml-prod. El aislamiento de recursos ayuda a evitar que las cargas de trabajo experimentales consuman recursos que necesitan los sistemas de producción. Por ejemplo, si usas un solo proyecto para experimentos y producción, un experimento podría consumir todas las GPUs NVIDIA A100 disponibles para Vertex AI Training. Esto podría causar interrupciones en el reentrenamiento de un modelo de producción crítico.
Identidad y control de acceso Aplica los principios de confianza cero y privilegio mínimo, y usa cuentas de servicio específicas para cada carga de trabajo. Otorga acceso con roles predefinidos de Identity and Access Management (IAM), como Usuario de Vertex AI (roles/aiplatform.user). Este enfoque ayuda a evitar acciones accidentales o maliciosas que podrían dañar los experimentos.
Seguridad de red Aísla el tráfico de red con redes de nube privada virtual (VPC) y aplica perímetros de seguridad con los Controles del servicio de VPC. Este enfoque ayuda a proteger los datos sensibles y evita que el tráfico experimental afecte los servicios de producción.
Aislamiento de datos Almacena los datos experimentales en buckets de Cloud Storage y conjuntos de datos de BigQuery separados. El aislamiento de datos evita la modificación accidental de los datos de producción. Por ejemplo, sin aislamiento de datos, un experimento podría alterar de forma involuntaria los valores de las funciones en una tabla compartida de BigQuery, lo que podría generar una degradación significativa en la precisión del modelo en el entorno de producción.

Proporciona a los equipos las herramientas adecuadas

Para establecer un conjunto seleccionado de herramientas que aceleren todo el ciclo de vida de la experimentación, desde la exploración de datos hasta el entrenamiento y el análisis de modelos, usa las siguientes técnicas:

  • Prototipado interactivo: Para la exploración rápida de datos, la prueba de hipótesis y el prototipado de código, usa Colab Enterprise o instancias administradas de JupyterLab en Vertex AI Workbench. Para obtener más información, consulta Elige una solución de notebook.
  • Entrenamiento de modelos escalable: Ejecuta trabajos de entrenamiento en un servicio administrado que admita el entrenamiento distribuido y recursos de procesamiento escalables, como GPUs y TPUs. Este enfoque ayuda a reducir el tiempo de entrenamiento de días a horas y permite una mayor experimentación paralela. Para obtener más información, consulta Usa componentes especializados para el entrenamiento.
  • AA en la base de datos: Entrena modelos directamente en BigQuery ML con SQL. Esta técnica ayuda a eliminar el movimiento de datos y acelera la experimentación para los analistas y los usuarios centrados en SQL.
  • Seguimiento de experimentos: Crea un historial de datos de experimentos que se pueda buscar y comparar registrando parámetros, métricas y artefactos para cada ejecución del experimento. Para obtener más información, consulta Cómo compilar un sistema de linaje de datos y modelos.
  • Optimización de la IA generativa: Para optimizar el rendimiento de las aplicaciones de IA generativa, debes experimentar con instrucciones, la selección de modelos y el ajuste. Para la ingeniería de instrucciones rápida, usa Vertex AI Studio. Para experimentar con modelos de base (como Gemini) y encontrar uno que sea adecuado para tu caso de uso y tus objetivos comerciales, usa Model Garden.

Estandariza para lograr reproducibilidad y eficiencia

Para garantizar que los experimentos consuman recursos de manera eficiente y produzcan resultados coherentes y confiables, estandariza y automatiza los experimentos con los siguientes enfoques:

  • Garantiza entornos coherentes con contenedores: Empaqueta tu código de entrenamiento y las dependencias como contenedores de Docker. Administra y entrega los contenedores con Artifact Registry. Este enfoque te permite reproducir problemas en diferentes máquinas repitiendo experimentos en entornos idénticos. Vertex AI proporciona contenedores compilados previamente para el entrenamiento sin servidores.
  • Automatiza los flujos de trabajo de AA como canalizaciones: Organiza el flujo de trabajo de AA de extremo a extremo como una canalización codificada con Vertex AI Pipelines. Este enfoque ayuda a aplicar la coherencia, garantizar la reproducibilidad y hacer un seguimiento automático de todos los artefactos y metadatos en Vertex ML Metadata.
  • Automatiza el aprovisionamiento con infraestructura como código (IaC): Define y, luego, implementa entornos de experimentación estandarizados con herramientas de IaC, como Terraform. Para garantizar que cada proyecto cumpla con un conjunto estandarizado de configuraciones de seguridad, redes y administración, usa módulos de Terraform.

Compila y automatiza la infraestructura de capacitación y entrega

Para entrenar y entregar modelos de IA, configura una plataforma sólida que admita el desarrollo, la implementación y la entrega eficientes y confiables. Esta plataforma permite que tus equipos mejoren de manera eficiente la calidad y el rendimiento del entrenamiento y la entrega a largo plazo.

Usa componentes especializados para el entrenamiento

Una plataforma de entrenamiento confiable ayuda a acelerar el rendimiento y proporciona un enfoque estandarizado para automatizar tareas repetitivas en el ciclo de vida del AA, desde la preparación de datos hasta la validación de modelos.

Usa infraestructura especializada para la predicción

Para reducir el trabajo repetitivo de la administración de la infraestructura y las implementaciones de modelos, automatiza los flujos de tareas repetitivas. Un enfoque orientado a los servicios te permite enfocarte en la velocidad y en un tiempo de generación de valor (TTV) más rápido. Ten en cuenta las siguientes recomendaciones:

Recomendación Técnicas
Implementa la implementación automática.
  • Después de entrenar un modelo, usa la automatización para implementarlo. Vertex AI Pipelines proporciona componentes especializados para implementar modelos en endpoints de Vertex AI. Puedes administrar la implementación automática con Kubeflow Control Flows.
  • Para decidir si implementar un modelo en función de una evaluación en un conjunto de validación, aprovecha los componentes de evaluación de la canalización. Puedes automatizar la implementación para la inferencia por lotes con componentes de predicción por lotes especializados en Vertex AI.
Aprovecha las funciones de escalamiento administrado.
Optimiza la latencia y el procesamiento en los extremos de Vertex AI.
Optimizar el uso de los recursos.
Optimizar la implementación del modelo
Supervisar el rendimiento
  • Para mejorar el rendimiento de la entrega en producción, observa los registros y las métricas de inferencia de los extremos de Vertex AI. Para comprender el comportamiento de los modelos en producción, necesitas herramientas para supervisar la calidad y el rendimiento. Model Monitoring v2 te permite supervisar varias versiones de un modelo y realizar iteraciones rápidamente.

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

Cuando tomes decisiones de diseño para mejorar el rendimiento, evalúa si estas decisiones satisfacen tus requisitos comerciales o si son ineficaces y contraproducentes. Para elegir la infraestructura, los modelos y las configuraciones adecuados, identifica los cuellos de botella del rendimiento y evalúa cómo se vinculan con las métricas de rendimiento. Por ejemplo, incluso en aceleradores de GPU muy potentes, las tareas de entrenamiento pueden experimentar cuellos de botella en el rendimiento. Estos cuellos de botella pueden deberse a problemas de E/S de datos en la capa de almacenamiento o a limitaciones de rendimiento del modelo.

Enfócate en el rendimiento integral del flujo de AA

A medida que los requisitos de entrenamiento aumentan en términos de tamaño del modelo y del clúster, es posible que aumenten la tasa de errores y los costos de infraestructura. Por lo tanto, el costo del fracaso podría aumentar de forma cuadrática. No puedes basarte solo en las métricas convencionales de eficiencia de recursos, como la utilización de FLOPs del modelo (MFU). Para comprender por qué el MFU podría no ser un indicador suficiente del rendimiento general del entrenamiento, examina el ciclo de vida de un trabajo de entrenamiento típico. El ciclo de vida consta del siguiente flujo cíclico:

  1. Creación del clúster: Se aprovisionan los nodos trabajadores.
  2. Inicialización: El entrenamiento se inicializa en los nodos trabajadores.
  3. Ejecución del entrenamiento: Los recursos se usan para la propagación hacia adelante o hacia atrás.
  4. Interrupción: El proceso de entrenamiento se interrumpe durante el control del modelo o debido a la expulsión de nodos de trabajadores.

Después de cada interrupción, se repite el flujo anterior.

El paso de ejecución del entrenamiento constituye una fracción del ciclo de vida de un trabajo de AA. Por lo tanto, el uso de los nodos trabajadores para el paso de ejecución del entrenamiento no indica la eficiencia general del trabajo. Por ejemplo, incluso si el paso de ejecución del entrenamiento se ejecuta con una eficiencia del 100%, la eficiencia general podría ser baja si las interrupciones ocurren con frecuencia o si se tarda mucho en reanudar el entrenamiento después de las interrupciones.

Adopta y haz un seguimiento de las métricas de procesamiento útil

Para garantizar una medición y optimización holísticas del rendimiento, cambia tu enfoque de las métricas convencionales de eficiencia de recursos, como la MFU, al rendimiento útil. El buen rendimiento considera la disponibilidad y la utilización de tus clústeres y recursos de procesamiento, y ayuda a medir la eficiencia de los recursos en varias capas.

El enfoque de las métricas de buen rendimiento es el progreso general de un trabajo, en lugar de si el trabajo parece estar ocupado. Las métricas de buen rendimiento te ayudan a optimizar los trabajos de entrenamiento para obtener ganancias generales tangibles en productividad y rendimiento.

El procesamiento útil te brinda una comprensión detallada de las posibles pérdidas de eficiencia a través de las siguientes métricas:

  • El procesamiento útil de la programación es la fracción de tiempo en la que todos los recursos necesarios para el entrenamiento o la entrega están disponibles para su uso.
  • El procesamiento útil del entorno de ejecución representa la proporción de pasos de entrenamiento útiles que se completan durante un período determinado.
  • El procesamiento útil del programa es el rendimiento máximo del hardware o el MFU que un trabajo de entrenamiento puede extraer del acelerador. Depende de la utilización eficiente de los recursos de procesamiento subyacentes durante el entrenamiento.

Optimiza el procesamiento útil de programación

Para optimizar el buen rendimiento de la programación de una carga de trabajo, debes identificar los requisitos de infraestructura específicos de la carga de trabajo. Por ejemplo, la inferencia por lotes, la inferencia de transmisión y el entrenamiento tienen requisitos diferentes:

  • Las cargas de trabajo de inferencia por lotes pueden tolerar algunas interrupciones y demoras en la disponibilidad de recursos.
  • Las cargas de trabajo de inferencia de transmisión requieren infraestructura sin estado.
  • Las cargas de trabajo de entrenamiento requieren compromisos de infraestructura a largo plazo.
Elige los modos de obtención adecuados

En la computación en la nube, la obtención es la capacidad de aprovisionar recursos cuando se requieren. Google Cloud proporciona los siguientes modos de obtención:

  • VMs a pedido: Aprovisionas VMs de Compute Engine cuando son necesarias y ejecutas tus cargas de trabajo en ellas. La solicitud de aprovisionamiento está sujeta a la disponibilidad de recursos, como las GPUs. Si no hay una cantidad suficiente de un tipo de recurso solicitado, la solicitud falla.
  • VMs Spot: Creas VMs con capacidad de procesamiento sin usar. Las VMs Spot se facturan a un precio con descuento en comparación con las VMs según demanda, peroGoogle Cloud pueden interrumpirse en cualquier momento. Te recomendamos que uses VM Spot para cargas de trabajo sin estado que puedan fallar correctamente cuando se interrumpan las VM host.
  • Reservas: Reservas capacidad como un grupo de VMs. Las reservas son ideales para las cargas de trabajo que necesitan garantía de capacidad. Usa las reservas para maximizar el procesamiento útil de programación y garantizar que los recursos estén disponibles cuando se requieran.
  • Programador dinámico de cargas de trabajo: Este mecanismo de aprovisionamiento pone en cola las solicitudes de VMs potenciadas por GPU en un grupo dedicado. El programador dinámico de cargas de trabajo te ayuda a evitar las limitaciones de los otros modos de obtención:

    • Situaciones de falta de stock en el modo a pedido.
    • Restricción de falta de estado y riesgo de interrupción de las VMs Spot
    • Implicaciones de costos y disponibilidad de las reservas.

En la siguiente tabla, se resumen los modos de obtención para los servicios de Google Cloudy se proporcionan vínculos a la documentación pertinente:

Producto VM según demanda VMs Spot Reservas Programador dinámico de cargas de trabajo
Compute Engine Crea e inicia una instancia de Compute Engine Acerca de las VMs Spot Acerca de las reservaciones Crea un MIG con VMs de GPU
GKE Agrega y administra grupos de nodos Acerca de las VMs Spot en GKE Consume recursos zonales reservados Consumo de GPU, TPU y H4D con el aprovisionamiento de inicio flexible
Cloud Batch Crea y ejecuta un trabajo Trabajo por lotes con VMs Spot Garantiza la disponibilidad de recursos con VM VMs Usa GPUs y VMs con inicio flexible
Vertex AI Training Crea un trabajo de entrenamiento sin servidores Usa VMs Spot para trabajos de entrenamiento Usa reservas para trabajos de entrenamiento Programa trabajos de entrenamiento según la disponibilidad de recursos
Vertex AI Obtén inferencias por lotes y en línea de modelos entrenados personalizados. Usa VMs Spot para la inferencia Usa reservas para la inferencia en línea Usa VMs de inicio flexible para la inferencia
Planifica eventos de mantenimiento

Puedes mejorar el rendimiento de la programación anticipando y planificando el mantenimiento y las actualizaciones de la infraestructura.

Optimiza el procesamiento útil del entorno de ejecución

El proceso de entrenamiento de modelos se interrumpe con frecuencia debido a eventos como la creación de puntos de control del modelo y la apropiación previa de recursos. Para optimizar el rendimiento de la ejecución, debes asegurarte de que el sistema reanude el entrenamiento y la inferencia de manera eficiente después de que la infraestructura requerida esté lista y después de cualquier interrupción.

Durante el entrenamiento de modelos, los investigadores de IA usan el checkpointing para hacer un seguimiento del progreso y minimizar la pérdida de aprendizaje debido a la interrupción de recursos. Los modelos más grandes hacen que las interrupciones de los puntos de control sean más largas, lo que afecta aún más la eficiencia general. Después de las interrupciones, la aplicación de entrenamiento debe reiniciarse en cada nodo del clúster. Estos reinicios pueden tardar un poco porque se deben volver a cargar los artefactos necesarios.

Para optimizar el rendimiento útil del tiempo de ejecución, usa las siguientes técnicas:

Técnica Descripción
Implementa la creación automática de puntos de control.

Los puntos de control frecuentes te permiten hacer un seguimiento del progreso del entrenamiento a un nivel detallado. Sin embargo, el proceso de entrenamiento se interrumpe en cada punto de control, lo que reduce el rendimiento útil del tiempo de ejecución. Para minimizar las interrupciones, puedes configurar la creación automática de puntos de control, en la que el host envía un signal SIGTERM que activa la creación de un punto de control. Este enfoque limita las interrupciones de los puntos de control a los momentos en que el host necesita mantenimiento. Recuerda que es posible que algunas fallas de hardware no activen señales SIGTERM. Por lo tanto, debes encontrar un equilibrio adecuado entre los puntos de control automáticos y los eventos SIGTERM.

Puedes configurar la creación automática de puntos de control con las siguientes técnicas:

Usa estrategias de carga de contenedores adecuadas.

En un clúster de GKE, antes de que los nodos puedan reanudar los trabajos de entrenamiento, es posible que se tarde un tiempo en completar la carga de los artefactos requeridos, como los datos o los puntos de control del modelo. Para reducir el tiempo necesario para volver a cargar los datos y reanudar el entrenamiento, usa las siguientes técnicas:

Para obtener más información sobre cómo reducir el tiempo de recarga de datos, consulta Sugerencias y trucos para reducir la latencia de inicio en frío en GKE.

Usa la caché de compilación. Si el entrenamiento requiere una pila basada en la compilación, verifica si puedes usar una caché de compilación. Cuando usas una caché de compilación, el gráfico de procesamiento no se vuelve a compilar después de cada interrupción del entrenamiento. Las reducciones resultantes en tiempo y costo son particularmente beneficiosas cuando usas TPU. JAX te permite almacenar la caché de compilación en un bucket de Cloud Storage y, luego, usar los datos almacenados en caché en caso de interrupciones.

Optimiza el procesamiento útil del programa

El goodput del programa representa el uso máximo de recursos durante el entrenamiento, que es la forma convencional de medir la eficiencia del entrenamiento y la entrega. Para mejorar el buen rendimiento del programa, necesitas una estrategia de distribución optimizada, una superposición eficiente de la comunicación y el procesamiento, un acceso optimizado a la memoria y canalizaciones eficientes.

Para optimizar el buen rendimiento del programa, usa las siguientes estrategias:

Estrategia Descripción
Usar opciones de personalización a nivel del framework Los frameworks o compiladores como Accelerated Linear Algebra (XLA) proporcionan muchos componentes clave del buen rendimiento de los programas. Para optimizar aún más el rendimiento, puedes personalizar los componentes fundamentales del gráfico de procesamiento. Por ejemplo, Pallas admite kernels personalizados para TPU y GPU.
Descarga la memoria en la DRAM del host. Para el entrenamiento a gran escala, que requiere una memoria significativamente alta de los aceleradores, puedes descargar parte del uso de memoria en la DRAM del host. Por ejemplo, XLA te permite descargar las activaciones del modelo del pase hacia adelante a la memoria del host en lugar de usar la memoria del acelerador. Con esta estrategia, puedes mejorar el rendimiento del entrenamiento aumentando la capacidad del modelo o el tamaño del lote.
Aprovecha la cuantización durante el entrenamiento.

Puedes mejorar la eficiencia del entrenamiento y el buen rendimiento del programa aprovechando la cuantificación del modelo durante el entrenamiento. Esta estrategia reduce la precisión de los gradientes o los pesos durante ciertos pasos del entrenamiento, por lo que mejora el procesamiento útil del programa. Sin embargo, esta estrategia podría requerir un esfuerzo de ingeniería adicional durante el desarrollo del modelo.

Para obtener más información, consulta los siguientes recursos:

Implementa el paralelismo.

Para aumentar el uso de los recursos de procesamiento disponibles, puedes usar estrategias de paralelismo a nivel del modelo durante el entrenamiento y cuando cargas datos.

Para obtener información sobre el paralelismo del modelo, consulta lo siguiente:

Para lograr el paralelismo de datos, puedes usar herramientas como las siguientes:

Enfócate en los requisitos específicos de la carga de trabajo

Para garantizar que tus esfuerzos de optimización del rendimiento sean eficaces y holísticos, debes adaptar las decisiones de optimización a los requisitos específicos de tus cargas de trabajo de entrenamiento y de inferencia. Elige modelos de IA adecuados y usa estrategias de optimización de instrucciones pertinentes. Selecciona los frameworks y las herramientas adecuados según los requisitos de tus cargas de trabajo.

Identifica los requisitos específicos de la carga de trabajo

Evalúa los requisitos y las restricciones de tus cargas de trabajo en las siguientes áreas:

Área Descripción
Requisitos de tareas y calidad

Define la tarea principal de la carga de trabajo y el valor de referencia del rendimiento. Responde preguntas como las siguientes:

  • ¿La tarea implica regresión, clasificación o generación?
  • ¿Cuál es la calidad mínima aceptable? Por ejemplo, ¿exactitud, precisión o recuperación?
Contexto de la publicación

Analiza el entorno operativo en el que planeas implementar el modelo. El contexto de publicación suele tener un impacto significativo en las decisiones de diseño. Ten en cuenta los siguientes factores:

  • Latencia: ¿El sistema necesita predicciones síncronas en tiempo real o es aceptable un proceso asíncrono por lotes?
  • Conectividad: ¿Necesitas ejecutar el modelo sin conexión o en un dispositivo perimetral?
  • Volumen: ¿Cuáles son los niveles promedio y máximo esperados para la carga de predicción? Los niveles de carga influyen en tus decisiones sobre las estrategias de escalamiento y la infraestructura.
Habilidades y economía del equipo Evalúa el valor comercial de comprar la solución en comparación con el costo y la complejidad de compilarla y mantenerla. Determina si tu equipo tiene las habilidades especializadas necesarias para el desarrollo de modelos personalizados o si un servicio administrado podría proporcionar un tiempo de obtención de valor más rápido.

Elige un modelo adecuado

Si una API o un modelo abierto pueden ofrecer el rendimiento y la calidad necesarios, usa esa API o ese modelo.

  • Para tareas específicas de la modalidad, como el reconocimiento óptico de caracteres (OCR), el etiquetado y la moderación de contenido, elige APIs de AA como las siguientes:

  • Para las aplicaciones de IA generativa, considera los modelos de Google, como Gemini, Imagen y Veo.

    Explora Model Garden y elige entre una colección seleccionada de modelos de base y específicos para tareas de Google. Model Garden también proporciona modelos abiertos, como Gemma, y modelos de terceros, que puedes ejecutar en Vertex AI o implementar en tiempos de ejecución como GKE.

  • Si una tarea se puede completar con una API de AA o un modelo de IA generativa, considera la complejidad de la tarea. Para tareas complejas, los modelos grandes, como Gemini, pueden proporcionar un mayor rendimiento que los modelos más pequeños.

Mejora la calidad con mejores instrucciones

Para mejorar la calidad de tus instrucciones a gran escala, usa el optimizador de instrucciones de Vertex AI. No es necesario que reescribas manualmente las instrucciones y las indicaciones del sistema. El optimizador de instrucciones admite los siguientes enfoques:

  • Optimización sin ejemplos: Es un enfoque de baja latencia que mejora una sola instrucción del sistema o instrucción de la instrucción en tiempo real.
  • Optimización basada en datos: Es un enfoque avanzado que mejora las instrucciones evaluando las respuestas de un modelo a instrucciones de muestra en función de métricas de evaluación específicas.

Para obtener más lineamientos sobre la optimización de instrucciones, consulta Descripción general de las estrategias de instrucciones.

Mejora el rendimiento de los extremos de AA y de IA generativa

Para mejorar la latencia o la capacidad de procesamiento (tokens por segundo) de los extremos de IA generativa y de AA, considera las siguientes recomendaciones:

Usa soluciones y ajustes con poco código

Si los modelos previamente entrenados no cumplen con tus requisitos, puedes mejorar su rendimiento para dominios específicos con las siguientes soluciones:

  • AutoML es una solución con poco código que permite mejorar los resultados de la inferencia con un esfuerzo técnico mínimo para una amplia variedad de tareas. AutoML te permite crear modelos optimizados en varias dimensiones: arquitectura, rendimiento y etapa de entrenamiento (a través de puntos de control).
  • La optimización te ayuda a lograr una generación de mayor calidad y más estable, y una menor latencia con instrucciones más cortas y sin muchos datos. Te recomendamos que comiences a ajustar los parámetros con los valores predeterminados para los hiperparámetros. Para obtener más información, consulta Supervised Fine Tuning for Gemini: A best practices guide (Ajuste fino supervisado para Gemini: Una guía de prácticas recomendadas).

Optimiza el entrenamiento autoadministrado

En algunos casos, es posible que decidas volver a entrenar un modelo o administrar por completo un trabajo de ajuste. Este enfoque requiere habilidades avanzadas y tiempo adicional, según el modelo, el framework y los recursos que utilices.

Aprovecha las opciones de frameworks optimizados para el rendimiento, como las siguientes:

  • Usa imágenes o contenedores de aprendizaje profundo, que incluyen las dependencias de software más recientes y las bibliotecas específicas deGoogle Cloud.

  • Ejecuta el entrenamiento de modelos con Ray en Google Cloud:

    • Ray en Vertex AI te permite llevar el framework de entrenamiento distribuido de Ray a Compute Engine o GKE, y simplifica la sobrecarga de administrar el framework.
    • Puedes administrar Ray por tu cuenta en GKE con KubeRay. Para ello, implementa el operador de Ray en un clúster existente.
  • Implementa cargas de trabajo de entrenamiento en un clúster de procesamiento que aprovisiones con el Cluster Toolkit de código abierto. Para aprovisionar de manera eficiente clústeres optimizados para el rendimiento, usa plantillas basadas en YAML. Administra los clústeres con programadores como Slurm y GKE.

  • Entrena arquitecturas de modelos estándar con recetas optimizadas para GPU.

Crea arquitecturas y estrategias de entrenamiento que optimicen el rendimiento con las siguientes técnicas:

  • Implementa el entrenamiento distribuido en Vertex AI o en los frameworks descritos anteriormente. El entrenamiento distribuido permite el paralelismo de modelos y el paralelismo de datos, lo que puede ayudar a aumentar el tamaño del conjunto de datos de entrenamiento y el tamaño del modelo, y a reducir el tiempo de entrenamiento.
  • Para entrenamiento de modelos de manera eficiente y explorar diferentes configuraciones de rendimiento, ejecuta la creación de puntos de control en intervalos adecuados. Para obtener más información, consulta Cómo optimizar el rendimiento útil del tiempo de ejecución.

Optimiza la entrega autoadministrada

Para la publicación autoadministrada, necesitas operaciones de inferencia eficientes y una capacidad de procesamiento alta (cantidad de inferencias por unidad de tiempo).

Para optimizar tu modelo para la inferencia, considera los siguientes enfoques:

  • Cuantización: Reduce el tamaño del modelo representando sus parámetros en un formato de menor precisión. Este enfoque ayuda a reducir el consumo de memoria y la latencia. Sin embargo, la cuantización después del entrenamiento podría cambiar la calidad del modelo. Por ejemplo, la cuantización posterior al entrenamiento podría causar una reducción en la exactitud.

    • La cuantización posterior al entrenamiento (PTQ) es una tarea repetible. Los principales frameworks de AA, como PyTorch y TensorFlow, admiten la PTQ.
    • Puedes organizar la PTQ con una canalización en Vertex AI Pipelines.
    • Para estabilizar el rendimiento del modelo y aprovechar las reducciones en el tamaño del modelo, puedes usar Qwix.
  • Paralelismo de tensor: Mejora la capacidad de procesamiento de la inferencia distribuyendo la carga computacional en varias GPUs.

  • Optimización de la memoria: Aumenta la capacidad de procesamiento y optimiza el almacenamiento en caché de la atención, los tamaños de los lotes y los tamaños de entrada.

Usa frameworks optimizados para la inferencia, como los siguientes:

Optimiza el consumo de recursos en función de los objetivos de rendimiento

La optimización de recursos ayuda a acelerar el entrenamiento, realizar iteraciones de manera eficiente, mejorar la calidad del modelo y aumentar la capacidad de entrega.

Elige los tipos de procesador adecuados

La plataforma de procesamiento que elijas puede tener un impacto significativo en la eficiencia del entrenamiento de un modelo.

  • Los modelos de aprendizaje profundo funcionan bien en las GPU y las TPU porque requieren grandes cantidades de memoria y procesamiento de matrices paralelo. Para obtener más información sobre las cargas de trabajo que son adecuadas para las CPU, las GPU y las TPU, consulta Cuándo usar las TPU.
  • Las VMs optimizadas para procesamiento son ideales para cargas de trabajo de HPC.

Optimiza el entrenamiento y la entrega en GPUs

Para optimizar el rendimiento de las cargas de trabajo de entrenamiento y de inferencia que se implementan en GPUs, considera las siguientes recomendaciones:

Recomendación Descripción
Selecciona las especificaciones de memoria adecuadas. Cuando elijas tipos de máquinas con GPU, selecciona las especificaciones de memoria según los siguientes factores:
  • Capacidad del modelo: Es el tamaño total de la memoria (huella de memoria) de los parámetros y gradientes entrenables del modelo.
  • Tipo de carga de trabajo: El entrenamiento requiere más memoria que la entrega.
  • Tamaño del lote de entrenamiento: Para lotes más grandes, se almacenan más activaciones y el requisito de memoria es mayor.
  • Tipo de datos: Las cargas de trabajo que procesan imágenes de alta calidad o que usan aritmética de alta precisión necesitan tipos de máquinas con especificaciones de memoria más grandes.
Evalúa los requisitos de ancho de banda de la memoria y el núcleo. Además del tamaño de la memoria, considera otros requisitos, como la cantidad de núcleos Tensor y el ancho de banda de la memoria. Estos factores influyen en la velocidad de acceso a los datos y los cálculos en el chip.
Elige los tipos de máquinas de GPU adecuados.

Es posible que el entrenamiento y la entrega requieran diferentes tipos de máquinas con GPU.

  • Los trabajos de entrenamiento necesitan una o más GPUs, o incluso varios nodos, con una memoria y un ancho de banda significativamente grandes.
  • Las cargas de trabajo de inferencia requieren relativamente menos memoria y menos GPUs de alto rendimiento.

Te recomendamos que uses tipos de máquinas grandes para el entrenamiento y tipos de máquinas más pequeños y rentables para la inferencia. Para detectar problemas de utilización de recursos, usa herramientas de supervisión, como el agente de NVIDIA DCGM, y ajusta los recursos de forma adecuada.

Aprovecha el uso compartido de la GPU en GKE.

En algunos casos, dedicar una GPU completa a un solo contenedor puede ser un enfoque ineficiente. Para ayudarte a superar esta ineficiencia, GKE admite las siguientes estrategias de uso compartido de GPU:

Para maximizar el uso de los recursos, te recomendamos que uses una combinación adecuada de estas estrategias. Por ejemplo, cuando virtualizas una GPU H100 grande con las estrategias de uso compartido de tiempo y GPU de varias instancias, la plataforma de servicio puede aumentar o disminuir la escala según el tráfico. Los recursos de GPU se reutilizan en tiempo real según la carga en los contenedores del modelo.

Optimiza el enrutamiento y el balanceo de cargas. Cuando implementas varios modelos en un clúster, puedes usar la puerta de enlace de inferencia de GKE para optimizar el enrutamiento y el balanceo de cargas. Inference Gateway extiende los mecanismos de enrutamiento de la API de Kubernetes Gateway con las siguientes capacidades:
Comparte recursos para los extremos de Vertex AI. Puedes configurar varios extremos de Vertex AI para que usen un grupo común de recursos. Para obtener más información sobre esta función y sus limitaciones, consulta Comparte recursos entre implementaciones.

Optimiza el entrenamiento y la inferencia en las TPU

Las TPU son chips de Google que ayudan a resolver desafíos de gran escala para los algoritmos de AA. Estos chips proporcionan un rendimiento óptimo para las cargas de trabajo de inferencia y entrenamiento de IA. En comparación con las GPU, las TPU proporcionan una mayor eficiencia para el entrenamiento y la entrega de aprendizaje profundo. Para obtener información sobre los casos de uso adecuados para las TPU, consulta Cuándo usar las TPU. Las TPU son compatibles con frameworks de AA como TensorFlow, PyTorch y JAX.

Para optimizar el rendimiento de la TPU, usa las siguientes técnicas, que se describen en la guía de rendimiento de Cloud TPU:

  • Maximiza el tamaño del lote para cada unidad de memoria de la TPU.
  • Asegúrate de que las TPU no estén inactivas. Por ejemplo, implementa lecturas de datos paralelas.
  • Optimizar el compilador XLA Ajusta las dimensiones del tensor según sea necesario y evita el padding. XLA se optimiza automáticamente para el rendimiento de la ejecución de gráficos con herramientas como la fusión y la transmisión.

Optimiza el entrenamiento en TPUs y la entrega en GPUs

Las TPU admiten un entrenamiento eficiente. Las GPU proporcionan versatilidad y una mayor disponibilidad para las cargas de trabajo de inferencia. Para combinar las ventajas de las TPU y las GPU, puedes entrenar modelos en las TPU y publicarlos en las GPU. Este enfoque puede ayudar a reducir los costos generales y acelerar el desarrollo, en especial para los modelos grandes. Para obtener información sobre las ubicaciones en las que están disponibles los tipos de máquinas con TPU y GPU, consulta Regiones y zonas de TPU y Ubicaciones de GPU.

Optimiza la capa de almacenamiento

La capa de almacenamiento de tu infraestructura de entrenamiento y de entrega es fundamental para el rendimiento. Los trabajos de entrenamiento y las cargas de trabajo de inferencia implican las siguientes actividades relacionadas con el almacenamiento:

  • Se están cargando y procesando los datos.
  • Creación de puntos de control del modelo durante el entrenamiento
  • Se vuelven a cargar los archivos binarios para reanudar el entrenamiento después de que se interrumpen los nodos.
  • Cargar el modelo de manera eficiente para controlar la inferencia a gran escala

Los siguientes factores determinan tus requisitos de capacidad de almacenamiento, ancho de banda y latencia:

  • Tamaño del modelo
  • Volumen del conjunto de datos de entrenamiento
  • Frecuencia de los puntos de control
  • Patrones de escalamiento

Si tus datos de entrenamiento se encuentran en Cloud Storage, puedes reducir la latencia de carga de datos con el almacenamiento en caché de archivos en Cloud Storage FUSE. Cloud Storage FUSE te permite activar un bucket de Cloud Storage en nodos de procesamiento que tienen discos SSD locales. Para obtener información sobre cómo mejorar el rendimiento de Cloud Storage FUSE, consulta Prácticas recomendadas para el ajuste del rendimiento.

Un conector de PyTorch a Cloud Storage proporciona un alto rendimiento para las lecturas y escrituras de datos. Este conector es particularmente beneficioso para el entrenamiento con grandes conjuntos de datos y para el almacenamiento de puntos de control de modelos grandes.

Compute Engine admite varios tipos de Persistent Disk. Con Google Cloud Hyperdisk ML, puedes aprovisionar la capacidad de procesamiento y las IOPS necesarias según las necesidades de entrenamiento. Para optimizar el rendimiento del disco, primero cambia el tamaño de los discos y, luego, considera cambiar el tipo de máquina. Para obtener más información, consulta Optimiza el rendimiento de los discos persistentes. Para realizar pruebas de carga del rendimiento y la latencia de lectura y escritura en la capa de almacenamiento, puedes usar herramientas como Flexible I/O tester (FIO).

Para obtener más información sobre cómo elegir y optimizar los servicios de almacenamiento para tus cargas de trabajo de IA y AA, consulta la siguiente documentación:

Optimiza la capa de red

Para optimizar el rendimiento de las cargas de trabajo de AA y AA, configura tus redes de VPC para que proporcionen un ancho de banda adecuado y una capacidad de procesamiento máxima con una latencia mínima. Ten en cuenta las siguientes recomendaciones:

Recomendación Técnicas sugeridas para la implementación
Optimiza las redes de VPC.
Coloca las VMs más cerca entre sí.
Configura las VMs para que admitan velocidades de red más altas.

Para innovar, solucionar problemas y analizar los problemas de rendimiento, debes establecer un vínculo claro entre las opciones de diseño y los resultados de rendimiento. Necesitas un registro confiable del linaje de los recursos de AA, las implementaciones, los resultados del modelo y las configuraciones y entradas correspondientes que produjeron los resultados.

Crea un sistema de linaje de datos y modelos

Para mejorar el rendimiento de forma confiable, debes poder rastrear cada versión del modelo hasta los datos, el código y las configuraciones exactos que se usaron para producirlo. A medida que escalas un modelo, este seguimiento se vuelve difícil. Necesitas un sistema de linaje que automatice el proceso de seguimiento y cree un registro claro que se pueda consultar para cada experimento. Este sistema permite que tus equipos identifiquen y reproduzcan de manera eficiente las elecciones que conducen a los modelos con el mejor rendimiento.

Para ver y analizar el linaje de los artefactos de canalización de las cargas de trabajo en Vertex AI, puedes usar Vertex ML Metadata o Dataplex Universal Catalog. Ambas opciones te permiten registrar eventos o artefactos para cumplir con los requisitos de gobernanza y consultar los metadatos y recuperar información cuando sea necesario. En esta sección, se proporciona una descripción general de las dos opciones. Para obtener información detallada sobre las diferencias entre Vertex ML Metadata y Dataplex Universal Catalog, consulta Realiza un seguimiento del linaje de artefactos de canalización.

Implementación predeterminada: Vertex AI ML Metadata

La primera ejecución de la canalización o el primer experimento en Vertex AI crea un servicio predeterminado de Vertex ML Metadata. Los parámetros y los metadatos de artefactos que la canalización consume y genera se registran automáticamente en un almacén de Vertex ML Metadata. El modelo de datos que se usa para organizar y conectar los metadatos almacenados contiene los siguientes elementos:

  • Contexto: Es un grupo de artefactos y ejecuciones que representa una ejecución de experimentación.
  • Ejecución: Es un paso en un flujo de trabajo, como la validación de datos o el entrenamiento de modelos.
  • Artefacto: Es una entidad, un objeto o un fragmento de datos de entrada o salida que un flujo de trabajo produce y consume.
  • Evento: Es una relación entre un artefacto y una ejecución.

De forma predeterminada, Vertex ML Metadata captura y realiza un seguimiento de todos los artefactos de entrada y salida de una ejecución de canalización. Integra estos artefactos con Vertex AI Experiments, Model Registry y conjuntos de datos administrados de Vertex AI.

El registro automático es una función integrada en Vertex AI Training para registrar automáticamente los datos en Vertex AI Experiments. Para hacer un seguimiento eficiente de los experimentos y optimizar el rendimiento, usa las integraciones integradas entre Vertex AI Experiments y el servicio asociado de Vertex ML Metadata.

Vertex ML Metadata proporciona una sintaxis y operadores de filtrado para ejecutar consultas sobre artefactos, ejecuciones y contextos. Cuando sea necesario, tus equipos podrán recuperar de manera eficiente información sobre el vínculo del registro de un modelo y su conjunto de datos o evaluación para una ejecución de experimento específica. Estos metadatos pueden ayudar a acelerar el descubrimiento de opciones que optimizan el rendimiento. Por ejemplo, puedes comparar ejecuciones de canalizaciones, comparar modelos y comparar ejecuciones de experimentos. Para obtener más información, incluidas consultas de ejemplo, consulta Analiza Vertex ML Metadata.

Implementación alternativa: Dataplex Universal Catalog

Dataplex Universal Catalog descubre metadatos de los recursos deGoogle Cloud , incluidos los artefactos de Vertex AI. También puedes integrar una fuente de datos personalizada.

Dataplex Universal Catalog puede leer metadatos en varias regiones y almacenes de toda la organización, mientras que Vertex ML Metadata es un recurso específico del proyecto. En comparación con Vertex ML Metadata, Dataplex Universal Catalog requiere más esfuerzo de configuración. Sin embargo, Dataplex Universal Catalog puede ser adecuado cuando necesitas integración con tu cartera de datos más amplia en Google Cloud y con tiendas en toda la organización.

Dataplex Universal Catalog descubre y recopila metadatos para los proyectos en los que está habilitada la API de Data Lineage. Los metadatos del catálogo se organizan con un modelo de datos que consta de proyectos, grupos de entradas, entradas y aspectos. Dataplex Universal Catalog proporciona una sintaxis específica que puedes usar para descubrir artefactos. Si es necesario, puedes asignar artefactos de Vertex ML Metadata a Dataplex Universal Catalog.

Usa herramientas de explicabilidad

El comportamiento de un modelo de IA se basa en los datos que se usaron para entrenarlo. Este comportamiento se codifica como parámetros en funciones matemáticas. Comprender exactamente por qué un modelo funciona de una manera determinada puede ser difícil. Sin embargo, este conocimiento es fundamental para la optimización del rendimiento.

Por ejemplo, considera un modelo de clasificación de imágenes en el que los datos de entrenamiento contienen imágenes solo de automóviles rojos. El modelo podría aprender a identificar la etiqueta "car" en función del color del objeto en lugar de sus atributos espaciales y de forma. Cuando se prueba el modelo con imágenes que muestran automóviles de diferentes colores, es posible que se degrade su rendimiento. En las siguientes secciones, se describen las herramientas que puedes usar para identificar y diagnosticar estos problemas.

Detecta sesgos en los datos

En la fase de análisis exploratorio de datos (EDA) de un proyecto de AA, identificas problemas con los datos, como conjuntos de datos con clases desbalanceadas y sesgos.

En los sistemas de producción, a menudo se reentrenan los modelos y se ejecutan experimentos con diferentes conjuntos de datos. Para estandarizar los datos y compararlos en diferentes experimentos, recomendamos un enfoque sistemático para el EDA que incluya las siguientes características:

  • Automatización: A medida que el conjunto de entrenamiento aumenta de tamaño, el proceso de EDA debe ejecutarse automáticamente en segundo plano.
  • Cobertura amplia: Cuando agregas funciones nuevas, el EDA debe revelar estadísticas sobre ellas.

Muchas tareas de EDA son específicas del tipo de datos y el contexto empresarial. Para automatizar el proceso de EDA, usa BigQuery o un servicio administrado de procesamiento de datos como Dataflow. Para obtener más información, consulta Clasificación en datos desbalanceados y Métricas de sesgo de datos para Vertex AI.

Comprende las características y el comportamiento del modelo

Además de comprender la distribución de los datos en los conjuntos de entrenamiento y validación, y sus sesgos, debes comprender las características y el comportamiento de un modelo en el momento de la predicción. Para comprender el comportamiento del modelo, usa las siguientes herramientas:

Herramienta Descripción Propósitos
Explicaciones basadas en ejemplos Puedes usar las explicaciones basadas en ejemplos en Vertex Explainable AI para comprender una predicción buscando los ejemplos más similares de los datos de entrenamiento. Este enfoque se basa en el principio de que las entradas similares producen resultados similares.
  • Identifica y corrige las brechas en los datos de entrenamiento buscando ejemplos similares para una predicción incorrecta.
  • Clasifica las entradas que el modelo no se entrenó originalmente para reconocer, usando vecinos de un conjunto de referencia.
  • Identificar anomalías buscando entradas que sean significativamente diferentes de todos los ejemplos de entrenamiento conocidos
  • Identifica casos ambiguos, como cuando los vecinos tienen etiquetas mixtas, para que la recopilación de datos sea más eficiente. Prioriza estos casos para la revisión manual.
Explicaciones basadas en atributos

En el caso de las predicciones basadas en datos tabulares o imágenes, las explicaciones basadas en atributos muestran cuánto afecta cada atributo a una predicción cuando se compara con un modelo de referencia.

Vertex AI proporciona diferentes métodos de atribución de atributos según el tipo de modelo y la tarea. Por lo general, los métodos se basan en el muestreo y el análisis de sensibilidad para medir cuánto cambia el resultado en respuesta a los cambios en un atributo de entrada.

  • Identificar los sesgos que podría omitir un paso de validación
  • Optimiza el rendimiento identificando las características más importantes para una predicción. Para aumentar la calidad y el rendimiento de un modelo, los ingenieros de AA pueden agregar, quitar o diseñar atributos de forma intencional.
Herramienta What-If La herramienta What-If fue desarrollada por la iniciativa People + AI Research (PAIR) de Google para ayudarte a comprender y visualizar el comportamiento de los modelos de imágenes y tabulares. Para ver ejemplos del uso de la herramienta, consulta las demos web de la Herramienta What-If.
  • Depurar y encontrar la causa raíz de las predicciones incorrectas
  • Investiga el rendimiento de un modelo en diferentes subconjuntos de datos identificando sesgos a través de un análisis de equidad.
  • Comprender el comportamiento de un modelo, en particular la relación entre las predicciones de un modelo y los atributos de entrada
  • Comparar las predicciones con una herramienta de comparación visual que requiere dos modelos o un modelo de referencia de verdad fundamental

Colaboradores

Autores:

Otros colaboradores: