En este documento del Well-Architected Framework deGoogle Cloud : perspectiva de IA y 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 Well-Architected Framework.
Los sistemas de IA y AA habilitan capacidades avanzadas de automatización y toma de decisiones para tu organización. El rendimiento de estos sistemas puede afectar directamente los factores comerciales importantes, 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 suele implicar 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 LLM muy grandes pueden tener un alto rendimiento en una infraestructura de entrenamiento masiva, pero es posible que no funcionen bien en entornos con capacidad limitada, como los dispositivos móviles.
Las recomendaciones de este documento se asignan a los siguientes principios fundamentales:
- Establecer objetivos de rendimiento y métodos de evaluación
- Ejecuta experimentos frecuentes y haz un seguimiento de ellos
- Compila y automatiza la infraestructura de entrenamiento y entrega
- Hacer coincidir las opciones de diseño con los requisitos de rendimiento
- Vincula las métricas de rendimiento con las opciones de diseño y configuración
Establece objetivos de rendimiento y métodos de evaluación
Tu estrategia y objetivos comerciales son la base para aprovechar las tecnologías de IA y AA. Traduce tus objetivos comerciales en indicadores clave de rendimiento (KPI) medibles. Algunos ejemplos de KPIs son los ingresos totales, los costos, el porcentaje de conversiones, el porcentaje de retención o de deserción, la satisfacción del cliente y la satisfacción de los empleados.
Define objetivos realistas
Según las prácticas recomendadas de la 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 de servicio deben ser realistas en términos de escala y rendimiento de las funciones.
Los objetivos poco realistas pueden generar un desperdicio de recursos para obtener mejoras de rendimiento mínimas. Es posible que los modelos que proporcionan el mayor rendimiento no generen resultados comerciales óptimos. Es posible que estos modelos requieran más tiempo y costo para entrenarse y ejecutarse.
Cuando definas los objetivos, distingue entre los objetivos de calidad y los objetivos de rendimiento, y priorízalos:
- 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 la que una entidad funciona o lleva a cabo su propósito previsto.
Los ingenieros de AA pueden mejorar las métricas de rendimiento de un modelo durante el proceso de entrenamiento. Gemini Enterprise Agent Platform 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 en el momento de la inferencia. Para supervisar el rendimiento, usa Cloud Monitoring y Model Monitoring en Gemini Enterprise Agent Platform. 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, también, identificar las métricas de rendimiento adecuadas, considera el siguiente ejemplo de un sistema de detección de fraudes 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 con un tráfico máximo de 100,000 millones de transacciones por segundo. Un objetivo más realista es detectar transacciones fraudulentas con un 95% de exactitud 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 fraudes es un problema de clasificación. Puedes medir la calidad de un sistema de detección de fraudes con métricas como recuperación, puntuación F1 y exactitud. 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 exactitud. Por lo tanto, un objetivo realista podría ser una recuperación alta con una latencia de p90 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 fundamentales 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 salida 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 forma eficiente 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.
- Visualiza gráficos y métricas de modelos, 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:
Calidad del modelo: Para visualizar y hacer un seguimiento de las métricas de los experimentos, como la exactitud, y para visualizar la arquitectura del modelo o los datos de entrenamiento, usa TensorBoard. TensorBoard es un paquete de herramientas de código abierto que es compatible con frameworks de AA, como los siguientes:
- XGBoost
- JAX
- Flax
- PyTorch
- Frameworks basados en XLA en Cloud TPU para el entrenamiento de Cloud TPU
- TensorFlow
Seguimiento de experimentos: Experiments en Gemini Enterprise Agent Platform se integra en instancias administradas de nivel empresarial de TensorBoard de Agent Platform para admitir el seguimiento de experimentos. Esta integración permite almacenar y compartir registros y métricas de forma confiable. Para permitir que varios equipos y personas realicen un seguimiento de los experimentos, te recomendamos que uses el principio de privilegio mínimo.
Eficiencia del entrenamiento y la experimentación: Agent Platform 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 . Como alternativa, crea paneles o alertas basados en estas métricas con Monitoring. Para obtener más información, consulta Métricas de supervisión para Agent Platform.
GPU de NVIDIA: El Agente de operaciones habilita la supervisión de GPU para Compute Engine y para otros productos que admite 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 muy ú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 entrenamiento administrado de Gemini Enterprise Agent Platform, 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 Model Registry en Gemini Enterprise Agent Platform, puedes crear un extremo de Agent Platform. Este extremo proporciona un extremo HTTP para el modelo.
Model Monitoring en Agent Platform te ayuda a identificar cambios grandes en la distribución de los atributos de entrada o salida. También puedes supervisar las atribuciones de atributos en producción cuando se comparan con una distribución de referencia. La distribución de referencia puede ser el conjunto de entrenamiento o puede basarse en distribuciones anteriores del tráfico de producción. Un cambio en la distribución de entrega podría 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: desvío de atributos de entrada, desvío de salida y atribución de atributos. La supervisión de modelos en Agent Platform v2 te permite supervisar los modelos que implementas en una plataforma de entrega administrada, como Agent Platform, y también en servicios alojados de forma independiente, 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 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 de modelos.
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 Agent Platform. La supervisión de modelos en Agent Platform admite la supervisión de inferencias por lotes. Si usas Batch para ejecutar tu carga de trabajo de entrega, puedes supervisar el consumo de recursos con las métricas en el Explorador de métricas.
Automatiza la evaluación para la reproducibilidad y la estandarización
Para pasar los modelos de prototipos a sistemas de producción confiables, necesitas un proceso de evaluación estandarizado. Este proceso te ayuda a hacer un seguimiento del progreso en las 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:
- Define indicadores cuantitativos y cualitativos.
- Elegir las fuentes de datos y las técnicas adecuadas
- Estandarizar la canalización de evaluación
Estos pasos se describen en las siguientes secciones.
1. Define indicadores cuantitativos y cualitativos
Las métricas basadas en cálculos se calculan con fórmulas numéricas. Recuerda que las métricas de pérdida de 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 de fraudes supervisada 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 relevante podría ser la recuperación, que indica la cobertura de las transacciones fraudulentas. Agent Platform 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 y recuperación (AuPRC). Para obtener más información, consulta Evaluación de modelos en Agent Platform.
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 las fuentes de datos y las 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, captura los 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 Agent Platform.
- BigQuery te permite usar comandos de SQL para ejecutar tareas de inferencia, como el procesamiento de lenguaje natural y la traducción automática. Para obtener más información, consulta Descripción general de las soluciones específicas para tareas.
- Cloud Storage proporciona una solución de almacenamiento rentable para conjuntos de datos grandes.
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 Agent Platform: Proporciona primitivas listas para usar que permiten hacer un seguimiento del rendimiento del modelo como parte del ciclo de vida del AA en Agent Platform.
- Gen AI Evaluation Service: Te permite evaluar cualquier modelo o aplicación generativos, 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 aumentada por recuperación (RAG) y la optimización de agentes de IA.
- Herramienta de evaluación automática en paralelo (AutoSxS) de Agent Platform: Admite la evaluación basada en modelos por pares.
- Kubeflow: Proporciona componentes especiales para ejecutar evaluaciones de modelos.
Ejecuta y supervisa experimentos frecuentes
Para optimizar el rendimiento del AA de manera eficaz, necesitas una plataforma de experimentación dedicada, potente e interactiva. 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 escala
- Permite que los equipos descubran de manera eficiente las configuraciones óptimas que pueden usar para activar trabajos de entrenamiento.
- Proporcionar acceso controlado a los datos, las funciones y las herramientas pertinentes para realizar experimentos y hacer un seguimiento de ellos
- Admitir la reproducibilidad y el seguimiento del linaje de datos
Tratar los datos como un servicio
Aísla las cargas de trabajo experimentales de los sistemas de producción y configura controles de seguridad adecuados para tus recursos de datos con las siguientes técnicas:
| Técnica | Descripción | Beneficios |
|---|---|---|
| Aislamiento de recursos | Aísla los recursos para diferentes entornos
en proyectos de Google Cloud independientes. Por ejemplo, aprovisiona los
recursos para los entornos de desarrollo, etapa de pruebas y producción en
proyectos independientes, 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 GPU NVIDIA A100 disponibles para el entrenamiento administrado de Agent Platform. 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 de la carga de trabajo. Otorga acceso con
roles predefinidos de Identity and Access Management (IAM), como
Usuario de Agent Platform
(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 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 datos experimentales en buckets de Cloud Storage y conjuntos de datos de BigQuery independientes. | 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 los atributos en una tabla de BigQuery compartida, lo que podría provocar una degradación significativa en la exactitud del modelo en el entorno de producción. |
Equipa a los equipos con las herramientas adecuadas
Para establecer un conjunto de herramientas seleccionadas 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:
- Creación de prototipos interactivos: Para explorar datos, probar hipótesis y crear prototipos de código con rapidez, usa Colab Enterprise o instancias administradas de JupyterLab en Gemini Enterprise Agent Platform 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 admite el entrenamiento distribuido y los recursos de procesamiento escalables, como las GPU y Cloud TPU. Este enfoque ayuda a reducir el tiempo de entrenamiento de días a horas y permite una mayor experimentación en paralelo. 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 de experimento. Para obtener más información, consulta Crea un sistema de linaje de datos y modelos.
- Optimiza la IA generativa: Para optimizar el rendimiento de las aplicaciones de IA generativa, debes experimentar con instrucciones, selección de modelos y ajustes. Para realizar ingeniería de instrucciones con rapidez, usa Agent Studio en Gemini Enterprise Agent Platform. Para experimentar con modelos de base (como Gemini) y encontrar un modelo 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. Agent Platform 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 Gemini Enterprise Agent Platform Pipelines. Este enfoque ayuda a aplicar la coherencia, garantizar la reproducibilidad y hacer un seguimiento automático de todos los artefactos y metadatos en Agent Platform ML Metadata.
- Automatiza el aprovisionamiento con la infraestructura como código (IaC): Define e implementa entornos de experimentación estandarizados con herramientas de IaC, como Terraform. Para garantizar que cada proyecto cumpla con un conjunto estandarizado de parámetros de configuración de seguridad, redes y administración, usa módulos de Terraform.
Compilar y automatizar la infraestructura de entrenamiento 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 las tareas repetibles en el ciclo de vida del AA, desde la preparación de los datos hasta la validación del modelo.
Recopilación y preparación de datos
Para entrenamiento de modelos de forma eficaz, debes recopilar y preparar los datos necesarios para el entrenamiento, las pruebas y la validación. Los datos pueden provenir de diferentes fuentes y ser de diferentes tipos. También debes reutilizar los datos pertinentes en las ejecuciones de entrenamiento y compartir los atributos entre los equipos. Para mejorar la repetibilidad de la fase de recopilación y preparación de datos, ten en cuenta las siguientes recomendaciones:
- Mejora la visibilidad de los datos con Knowledge Catalog.
- Centraliza la ingeniería de atributos en Agent Platform Feature Store.
- Preprocesar datos con Dataflow
Ejecución del entrenamiento
Cuando entrenas un modelo, usas datos para crear un objeto de modelo. Para ello, debes configurar la infraestructura y las dependencias necesarias del código de entrenamiento. También debes decidir cómo conservar los modelos de entrenamiento, hacer un seguimiento del progreso del entrenamiento, evaluar el modelo y presentar los resultados. Para mejorar la repetibilidad del entrenamiento, ten en cuenta las siguientes recomendaciones:
- Sigue los lineamientos que se indican en Automatiza la evaluación para la reproducibilidad y la estandarización.
- Para enviar trabajos de entrenamiento en uno o más nodos trabajadores sin administrar el
aprovisionamiento o las dependencias de la infraestructura subyacente, usa el
recurso
CustomJoben el entrenamiento administrado de Agent Platform. También puedes usar el recursoCustomJobpara los trabajos de ajuste de hiperparámetros. - Optimiza el procesamiento útil de la programación con Dynamic Workload Scheduler o reservas para Agent Platform Managed Training.
- Registra tus modelos en Model Registry.
Organización del entrenamiento
Implementar cargas de trabajo de entrenamiento como etapas de una canalización con Agent Platform Pipelines Este servicio proporciona servicios administrados de Kubeflow y TFX. Define cada paso de la canalización como un componente que se ejecuta en un contenedor. Cada componente funciona como una función, con parámetros de entrada y artefactos de salida que se convierten en entradas para los componentes posteriores de la canalización. Para optimizar la eficiencia de tu canalización, ten en cuenta las siguientes recomendaciones:
- Implementa la automatización principal:
- Usa los componentes de Kubeflow Pipelines.
- Usa flujos de control para diseños de canalizaciones avanzados, como puertas condicionales.
- Integra la compilación de la canalización como parte de tu flujo de CI/CD.
- Ejecuta la canalización con Cloud Scheduler.
- Aumenta la velocidad y la rentabilidad:
- Para aumentar la velocidad de las iteraciones y reducir el costo, usa la caché de ejecución de las canalizaciones de Agent Platform.
- Especifica la configuración de la máquina para cada componente según los requisitos de recursos de cada paso.
- Aumenta la solidez:
- Para aumentar la solidez contra problemas temporales sin necesidad de intervención manual, configura reintentos.
- Para fallar rápido y realizar iteraciones de manera eficiente, configura una política de fallas.
- Para controlar las fallas, configura las notificaciones por correo electrónico.
- Implementa la administración y el seguimiento:
- Para experimentar con diferentes parámetros de configuración de modelos o de entrenamiento, agrega ejecuciones de canalización a los experimentos.
- Supervisa los registros y las métricas de Agent Platform Pipelines.
- Sigue las recomendaciones que se indican en Supervisa el rendimiento en todas las etapas del ciclo de vida del modelo.
Usa infraestructura especializada para la predicción
Para reducir el trabajo de administrar la infraestructura y las implementaciones de modelos, automatiza los flujos de tareas repetibles. 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.
Implementa la implementación automática
- Después de entrenar un modelo, usa la automatización para implementarlo. Agent Platform Pipelines proporciona componentes especializados para implementar modelos en extremos de Agent Platform. Puedes administrar la implementación automática con los flujos de control de Kubeflow.
- Para decidir si implementar un modelo en función de una evaluación con 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 Agent Platform.
Aprovecha las funciones de escalamiento administrado
- Agent Platform proporciona capacidades de inferencia en línea y por lotes que te permiten configurar el comportamiento de escalamiento.
- Cloud Run admite el ajuste de escala automático de las GPU.
Optimiza la latencia y la capacidad de procesamiento en los extremos de Agent Platform
- Elige un tipo de máquina adecuado.
- Elige un tipo de extremo adecuado para tus modelos. Los extremos privados dedicados pueden ayudar a reducir la latencia.
- Si usas Feature Store, utiliza la entrega en línea de Bigtable para entregar valores de atributos con una alta capacidad de procesamiento y una baja latencia, y usa Vector Search para entregar incorporaciones.
Optimiza el uso de los recursos
- Para optimizar el uso de recursos, puedes compartir recursos entre implementaciones de modelos. En lugar de usar una VM independiente para cada modelo (comportamiento predeterminado), puedes implementar varios modelos en una sola VM.
- Para garantizar o mejorar la disponibilidad de los recursos, usa reservas, Dynamic Workload Scheduler o VMs Spot.
Optimiza la implementación del modelo
- Para evitar cambios rotundos, puedes realizar una migración gradual y, luego, implementar pruebas A/B mediante la implementación automática de varios modelos en el mismo extremo. Agent Platform separa la capa de extremos de los modelos, lo que te permite dividir el tráfico entre las versiones de los modelos.
- Para reemplazar un modelo implementado, usa una estrategia de implementación progresiva.
Supervisa 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 Agent Platform. Para comprender el comportamiento de los modelos en producción, necesitas herramientas que te permitan supervisar la calidad y el rendimiento. Model Monitoring en Agent Platform v2 te permite supervisar varias versiones de un modelo y realizar iteraciones con rapidez.
Hacer coincidir las opciones de diseño con los requisitos de rendimiento
Cuando tomes decisiones de diseño para mejorar el rendimiento, evalúa si las opciones respaldan tus requisitos empresariales o si son innecesarias y contraproducentes. Para elegir la infraestructura, los modelos y los parámetros de configuración adecuados, identifica los cuellos de botella de 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 de 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 aumentan los requisitos de entrenamiento en términos de tamaño del modelo y del clúster, es posible que aumenten la tasa de fallas y los costos de infraestructura. Por lo tanto, el costo de la falla podría aumentar de forma cuadrática. No puedes confiar solo en las métricas convencionales de eficiencia de recursos, como la utilización de FLOPs del modelo (MFU). Para comprender por qué la 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:
- Creación del clúster: Se aprovisionan los nodos trabajadores.
- Inicialización: El entrenamiento se inicializa en los nodos trabajadores.
- Ejecución del entrenamiento: Los recursos se usan para la propagación hacia adelante o hacia atrás.
- Interrupción: El proceso de entrenamiento se interrumpe durante la creación de puntos de control del modelo o debido a interrupciones de los nodos 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 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 un 100% de eficiencia, la eficiencia general puede ser baja si se producen interrupciones con frecuencia o si se tarda mucho tiempo en reanudar el entrenamiento después de las interrupciones.
Adopta y haz un seguimiento de las métricas de procesamiento útil
Para garantizar la medición y la optimización del rendimiento de forma integral, cambia tu enfoque de las métricas de eficiencia de recursos convencionales, como la MFU, al goodput. La tasa de transferencia de datos útil considera la disponibilidad y el uso 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 rendimiento útil te ayudan a optimizar los trabajos de entrenamiento para obtener mejoras generales tangibles en la productividad y el 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 que se necesitan 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 del uso eficiente de los recursos de procesamiento subyacentes durante el entrenamiento.
Optimiza el procesamiento útil de programación
Para optimizar la tasa de transferencia de 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 admitir algunas interrupciones y retrasos en la disponibilidad de los recursos.
- Las cargas de trabajo de inferencia de transmisión requieren una infraestructura sin estado.
- Las cargas de trabajo de entrenamiento requieren compromisos de infraestructura a más 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 necesitan. Google Cloud proporciona los siguientes modos de obtención:
- VMs on demand: Aprovisionas VMs de Compute Engine cuando se necesitan y ejecutas tus cargas de trabajo en ellas. La solicitud de aprovisionamiento está sujeta a la disponibilidad de recursos, como las GPU. Si no hay una cantidad suficiente del 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, pero Google Cloud podría interrumpir las VMs Spot en cualquier momento. Te recomendamos que uses VMs Spot para cargas de trabajo sin estado que puedan fallar de forma correcta cuando se interrumpan las VMs host.
- Reservas: Reserva capacidad como un grupo de VMs. Las reservas son ideales para cargas de trabajo que necesitan garantía de capacidad. Usa las reservas para maximizar el procesamiento útil de la programación, ya que garantizan que los recursos estén disponibles cuando se necesiten.
Dynamic Workload Scheduler: Este mecanismo de aprovisionamiento pone en cola las solicitudes de VMs con tecnología de GPU en un grupo dedicado. Dynamic Workload Scheduler te ayuda a evitar las restricciones de los otros modos de obtención:
- Situaciones de falta de stock en el modo on-demand.
- 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 de los servicios de Google Cloud y se proporcionan vínculos a la documentación pertinente:
Planifica eventos de mantenimiento
Puedes mejorar la tasa de transferencia de programación anticipando y planificando el mantenimiento y las actualizaciones de la infraestructura.
GKE te permite controlar cuándo se puede realizar el mantenimiento automático en tus clústeres. Para obtener más información, consulta Períodos de mantenimiento y exclusiones.
Compute Engine proporciona las siguientes funciones:
- Para mantener una instancia en ejecución durante un evento del host, como el mantenimiento planificado del hardware subyacente, Compute Engine realiza una migración en vivo de la instancia a otro host en la misma zona. Para obtener más información, consulta Proceso de migración en vivo durante los eventos de mantenimiento.
- Para controlar cómo responde una instancia cuando el host subyacente requiere mantenimiento o tiene un error, puedes establecer una política de mantenimiento del host para la instancia.
Para obtener información sobre cómo planificar eventos de host relacionados con clústeres de entrenamiento grandes en AI Hypercomputer, consulta Administra eventos de host en instancias de procesamiento.
Optimiza el procesamiento útil del entorno de ejecución
El proceso de entrenamiento de modelos se interrumpe con frecuencia por eventos como la creación de puntos de control del modelo y la interrupción de recursos. Para optimizar el rendimiento del tiempo de 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 puntos de control para hacer un seguimiento del progreso y minimizar el aprendizaje perdido debido a las interrupciones de recursos. Los tamaños de modelo 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, ya que se deben volver a cargar los artefactos necesarios.
Para optimizar la tasa de transferencia útil del entorno de ejecución, usa las siguientes técnicas:
| Técnica | Descripción |
|---|---|
| Implementar 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 para cada punto de control, lo que reduce la tasa de transferencia de datos útil del entorno de ejecución. Para minimizar las interrupciones, puedes configurar la creación automática de puntos de control, en la que el indicador SIGTERM del host 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 algunas fallas de hardware podrían no activar indicadores SIGTERM. Por lo tanto, debes encontrar un equilibrio adecuado entre los puntos de control automáticos y los eventos SIGTERM. Puedes configurar puntos de control automáticos con las siguientes técnicas:
|
| Usa estrategias adecuadas de carga de contenedores. | En un clúster de GKE, antes de que los nodos puedan reanudar los trabajos de entrenamiento, puede llevar un tiempo completar la carga de los artefactos necesarios, como los datos o los puntos de control del modelo. Para reducir el tiempo que se necesita para volver a cargar los datos y reanudar el entrenamiento, usa las siguientes técnicas:
|
| 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 grafo de cálculo 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 Cloud 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 procesamiento útil 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 entre el procesamiento y la comunicación, un acceso optimizado a la memoria y canalizaciones eficientes.
Para optimizar la tasa de transferencia útil del programa, usa las siguientes estrategias:
| Estrategia | Descripción |
|---|---|
| Usa las opciones de personalización a nivel del framework. | Los frameworks o compiladores, como Accelerated Linear Algebra (XLA), proporcionan muchos componentes clave de la tasa de transferencia de datos útil del programa. Para optimizar aún más el rendimiento, puedes personalizar los componentes fundamentales del grafo de procesamiento. Por ejemplo, Pallas admite kernels personalizados para Cloud TPU y GPU. |
| Descarga 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, JAX y XLA te permiten descargar activaciones de modelos desde el 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 la tasa de transferencia de datos útil del programa aprovechando la cuantización del modelo durante el entrenamiento. Esta estrategia reduce la precisión de los gradientes o pesos durante ciertos pasos del entrenamiento; por lo tanto, mejora el procesamiento útil del programa. Sin embargo, esta estrategia puede requerir un esfuerzo de ingeniería adicional durante el desarrollo del modelo. Para obtener más información, consulta los siguientes recursos: |
| Implementar 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 se cargan los datos. Para obtener información sobre el paralelismo de modelos, 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 hacer coincidir las decisiones de optimización con los requisitos específicos de tus cargas de trabajo de entrenamiento y de inferencia. Elegir modelos de IA adecuados y usar estrategias pertinentes de optimización de instrucciones 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 modelo de referencia de rendimiento. Responde preguntas como las siguientes:
|
| Contexto de publicación | Analiza el entorno operativo en el que planeas implementar el modelo. El contexto de entrega suele tener un impacto significativo en las decisiones de diseño. Considera los siguientes factores:
|
| Habilidades y economía del equipo | Evalúa el valor empresarial de comprar la solución en comparación con el costo y la complejidad de crearla y mantenerla. Determina si tu equipo tiene las habilidades especializadas que se requieren 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 requeridos, 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 Google de base y específicos para tareas. Model Garden también proporciona modelos abiertos, como Gemma, y modelos de terceros, que puedes ejecutar en Agent Platform o implementar en entornos 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 Agent Platform. No es necesario que vuelvas a escribir las instrucciones y las instrucciones del sistema de forma manual. 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 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 de 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 AA y de IA generativa, considera las siguientes recomendaciones:
- Almacena en caché los resultados con Memorystore.
- Para las APIs de IA generativa, usa las siguientes técnicas:
- Caché de contexto: Logra una latencia más baja para las solicitudes que contienen contenido repetido.
- Capacidad de procesamiento aprovisionada: Mejora la capacidad de procesamiento de los extremos de Gemini reservando capacidad de procesamiento.
- Para los modelos alojados de forma autónoma, considera los siguientes frameworks de inferencia
optimizados:
Framework Notebooks y guías Contenedores de vLLM optimizados en Model Garden Implementa modelos abiertos con contenedores compilados previamente Inferencia basada en GPU en GKE Inferencia basada en Cloud TPU
Usa soluciones con poco código y ajustes
Si los modelos entrenados previamente 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 para mejorar los resultados de inferencia con un esfuerzo técnico mínimo en 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).
- El ajuste te ayuda a lograr una generación de mayor calidad y más estable, y una latencia más baja con instrucciones más cortas y sin muchos datos. Te recomendamos que comiences el ajuste con los valores predeterminados para los hiperparámetros. Para obtener más información, consulta Acerca del ajuste supervisado para Gemini.
Optimiza el entrenamiento autoadministrado
En algunos casos, puedes decidir 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 uses.
Aprovecha las opciones de framework optimizadas para el rendimiento, como las siguientes:
Usa imágenes o contenedores de aprendizaje profundo, que incluyen las dependencias de software más recientes y bibliotecas específicas deGoogle Cloud.
Ejecuta el entrenamiento de modelos con Ray en Google Cloud:
- Ray en Gemini Enterprise Agent Platform te permite llevar el framework de entrenamiento distribuido de Ray a Compute Engine o GKE, y simplifica la sobrecarga de administrar el framework.
- Puedes autoadministrar Ray en GKE con KubeRay implementando 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 con rendimiento optimizado, usa blueprints basados 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 Agent Platform o en los frameworks descritos anteriormente. El entrenamiento distribuido habilita 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 ayudar a reducir el tiempo de entrenamiento.
- Para entrenamiento de modelos de forma eficiente y explorar diferentes configuraciones de rendimiento, ejecuta puntos de control en intervalos adecuados. Para obtener más información, consulta Optimiza la tasa de transferencia útil del entorno de ejecución.
Optimiza la entrega autoadministrada
Para la entrega autoadministrada, necesitas operaciones de inferencia eficientes y una alta capacidad de procesamiento (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 puede cambiar la calidad del modelo. Por ejemplo, la cuantización después del entrenamiento podría causar una reducción en la exactitud.
- La cuantización posterior al entrenamiento (PTQ) es una tarea repetible. Los frameworks de AA principales, como PyTorch y TensorFlow, admiten la PTQ.
- Puedes organizar la PTQ con una canalización en Pipelines de Agent Platform.
- Para estabilizar el rendimiento del modelo y beneficiarte de las reducciones en su tamaño, puedes usar Qwix.
Paralelismo de tensores: Mejora la capacidad de procesamiento de 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 las entradas.
Usa frameworks optimizados para la inferencia, como los siguientes:
- Para los modelos generativos, usa un framework abierto, como MaxText, MaxDiffusion o vLLM.
- Ejecuta imágenes de contenedor previamente compiladas en Agent Platform para obtener predicciones y explicaciones. Si eliges TensorFlow, usa el entorno de ejecución optimizado de TensorFlow. Este entorno de ejecución permite una inferencia más eficiente y de menor costo que los contenedores precompilados que usan TensorFlow de código abierto.
- Aprovecha el servidor de inferencia de Triton de NVIDIA para Agent Platform.
- Simplifica la implementación de cargas de trabajo de inferencia en GKE con parámetros de configuración optimizados para LLM. Para obtener más información, consulta Analiza el rendimiento y los costos de la entrega de modelos con GKE Inference Quickstart.
Optimiza el consumo de recursos según los objetivos de rendimiento
La optimización de recursos ayuda a acelerar el entrenamiento, iterar de manera eficiente, mejorar la calidad del modelo y aumentar la capacidad de entrega.
Elige los tipos de procesadores adecuados
La elección de la plataforma de procesamiento puede tener un impacto significativo en la eficiencia del entrenamiento de un modelo.
- Los modelos de aprendizaje profundo tienen un buen rendimiento en las GPU y las Cloud TPU porque estos modelos 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 Cloud TPU, consulta Cuándo usar Cloud TPU.
- Las VMs optimizadas para procesamiento son ideales para las cargas de trabajo de HPC.
Optimiza el entrenamiento y la entrega en GPU
Para optimizar el rendimiento de las cargas de trabajo de entrenamiento y de inferencia que se implementan en las GPU, ten en cuenta las siguientes recomendaciones:
| Recomendación | Descripción |
|---|---|
| Selecciona las especificaciones de memoria adecuadas. | Cuando elijas tipos de máquinas de GPU, selecciona las especificaciones de memoria
en función de los siguientes factores:
|
| Evalúa los requisitos de ancho de banda de memoria y de núcleos. | Además del tamaño de la memoria, ten en cuenta otros requisitos, como la cantidad de núcleos Tensor y el ancho de banda de la memoria. Estos factores influyen en la velocidad del acceso a los datos y los cálculos en el chip. |
| Elegir los tipos de máquinas de GPU adecuados | Es posible que el entrenamiento y la entrega requieran diferentes tipos de máquinas con GPU.
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 uso de recursos, usa herramientas de supervisión, como el agente de DCGM de NVIDIA, y ajusta los recursos de forma adecuada. |
| Aprovecha el uso compartido de GPU en GKE. | Dedicar una GPU completa a un solo contenedor puede ser un enfoque ineficiente en algunos casos. Para ayudarte a superar esta ineficiencia, GKE admite las siguientes estrategias de uso compartido de GPU:
Para maximizar el uso de recursos, te recomendamos que uses una combinación adecuada de estas estrategias. Por ejemplo, cuando virtualizas una GPU H100 grande con las estrategias de GPU de tiempo compartido y de instancias múltiples, la plataforma de entrega 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 de modelos. |
| Optimiza el enrutamiento y el balanceo de cargas. | Cuando implementas varios modelos en un clúster, puedes usar
GKE Inference Gateway
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 funciones:
|
| Comparte recursos para los extremos de Agent Platform. | Puedes configurar varios extremos de Agent Platform para que usen un grupo de recursos común. Para obtener más información sobre esta función y sus limitaciones, consulta Cómo compartir recursos entre implementaciones. |
Optimiza el entrenamiento y la entrega en Cloud TPU
Cloud TPU proporciona chips de Google que ayudan a resolver desafíos de escalamiento masivo para los algoritmos de AA. Estos chips proporcionan un rendimiento óptimo para las cargas de trabajo de entrenamiento y de inferencia de IA. En comparación con las GPU, Cloud TPU proporciona una mayor eficiencia para el entrenamiento y la entrega del aprendizaje profundo. Para obtener información sobre los casos de uso adecuados para Cloud TPU, consulta Cuándo usar Cloud TPU. Cloud TPU es compatible con frameworks de AA, como TensorFlow, PyTorch y JAX.
Para optimizar el rendimiento de Cloud 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 Cloud TPU.
- Asegúrate de que los recursos de Cloud TPU no estén inactivos. Por ejemplo, implementa lecturas de datos paralelas.
- Optimizar el compilador XLA Ajusta las dimensiones de los tensores según sea necesario y evita el relleno. XLA optimiza automáticamente el rendimiento de la ejecución por grafos con herramientas como la fusión y la transmisión.
Optimiza el entrenamiento en Cloud TPU y la entrega en GPU
Cloud TPU admite el entrenamiento eficiente. Las GPU proporcionan versatilidad y una mayor disponibilidad para las cargas de trabajo de inferencia. Para combinar las fortalezas de Cloud TPU y las GPU, puedes entrenar modelos en Cloud TPU y entregarlos en GPU. Este enfoque puede ayudar a reducir los costos generales y acelerar el desarrollo, en especial para modelos grandes. Para obtener información sobre las ubicaciones en las que están disponibles los tipos de máquinas de Cloud TPU y GPU, consulta Regiones y zonas de Cloud TPU y Ubicaciones de GPU.
Optimiza la capa de almacenamiento
La capa de almacenamiento de tu infraestructura de entrenamiento y 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:
- Carga y procesamiento de datos.
- Crear puntos de control del modelo durante el entrenamiento
- Volver a cargar objetos binarios para reanudar el entrenamiento después de las interrupciones de nodos.
- Cargar el modelo de forma 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 están 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 ajustar el 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 entrenar con conjuntos de datos grandes y para crear 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, comienza por cambiar 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 Persistent Disk. Para probar la carga del rendimiento de lectura y escritura, y la latencia en la capa de almacenamiento, puedes usar herramientas como el verificador de E/S flexible (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 Descripción general de los servicios de almacenamiento para cargas de trabajo de IA y AA en AI Hypercomputer.
Optimiza la capa de red
Para optimizar el rendimiento de las cargas de trabajo de IA 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í. | |
| Configurar VMs para que admitan velocidades de red más altas |
|
Vincular las métricas de rendimiento con las opciones de diseño y configuración
Para innovar, solucionar problemas y, además, investigar 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 los parámetros de configuración y las entradas correspondientes que produjeron los resultados.
Crea un sistema de linaje de datos y modelos
Para mejorar el rendimiento de forma confiable, necesitas la capacidad de rastrear cada versión del modelo hasta los datos, el código y las configuraciones exactos que se usaron para producir el modelo. A medida que escalas un modelo, ese seguimiento se vuelve difícil. Necesitas un sistema de linaje que automatice el proceso de seguimiento y cree un registro que sea claro y 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 un rendimiento óptimo.
Para ver y analizar el linaje de los artefactos de canalización de las cargas de trabajo en Agent Platform, puedes usar Agent Platform ML Metadata o Knowledge Catalog. Ambas opciones te permiten registrar eventos o artefactos para cumplir con los requisitos de administración, 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 los metadatos de AA de Agent Platform y Knowledge Catalog, consulta Realiza un seguimiento del linaje de los artefactos de canalización.
Implementación predeterminada: Agent Platform ML Metadata
La primera ejecución de la canalización o el experimento en Agent Platform crea un servicio predeterminado de metadatos de AA de Agent Platform. Los parámetros y los metadatos de artefactos que la canalización consume y genera se registran automáticamente en un almacén de metadatos de AA de Agent Platform. 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 dato de entrada o salida que produce y consume un flujo de trabajo.
- Evento: Es una relación entre un artefacto y una ejecución.
De forma predeterminada, los metadatos de AA de Agent Platform capturan y hacen un seguimiento de todos los artefactos de entrada y salida de una ejecución de canalización. Integra estos artefactos con Experimentos en Agent Platform, Model Registry y conjuntos de datos administrados de Agent Platform.
El registro automático es una función integrada en el entrenamiento administrado de Agent Platform para registrar automáticamente los datos en Experiments en Agent Platform. Para hacer un seguimiento eficiente de los experimentos y optimizar el rendimiento, usa las integraciones integradas entre Experiments en Agent Platform y el servicio asociado de metadatos de AA de Agent Platform.
Agent Platform ML Metadata proporciona una sintaxis de filtrado y operadores 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 de 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 las consultas de ejemplo, consulta Analiza metadatos.
Implementación alternativa: Knowledge Catalog
Knowledge Catalog descubre metadatos de recursos deGoogle Cloud , incluidos los artefactos de Agent Platform. También puedes integrar una fuente de datos personalizada.
Knowledge Catalog puede leer metadatos en varias regiones y almacenes de toda la organización, mientras que ML Metadata de Agent Platform es un recurso específico del proyecto. En comparación con los metadatos de AA de Agent Platform, Knowledge Catalog implica un mayor esfuerzo de configuración. Sin embargo, Knowledge Catalog podría ser adecuado cuando necesites integración con tu cartera de datos más amplia en Google Cloud y con almacenes de toda la organización.
Knowledge 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. Knowledge Catalog proporciona una sintaxis específica que puedes usar para descubrir artefactos. Si es necesario, puedes asignar artefactos de metadatos a Knowledge 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 de solo autos rojos. El modelo podría aprender a identificar la etiqueta "automóvil" en función del color del objeto, en lugar de sus atributos espaciales y de forma. Cuando el modelo se prueba con imágenes que muestran autos de diferentes colores, el rendimiento del modelo puede deteriorarse. En las siguientes secciones, se describen las herramientas que puedes usar para identificar y diagnosticar estos problemas.
Detecta sesgos de 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 de clase desequilibrada y sesgos.
En los sistemas de producción, a menudo vuelves a entrenar modelos y ejecutas experimentos con diferentes conjuntos de datos. Para estandarizar los datos y compararlos entre experimentos, recomendamos un enfoque sistemático del EDA que incluya las siguientes características:
- Automatización: A medida que aumenta el tamaño de un conjunto de entrenamiento, 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 del 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 de datos desequilibrados y Métricas de sesgo de datos para Agent Platform.
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 | Finalidades |
|---|---|---|
| Explicaciones basadas en ejemplos | Puedes usar explicaciones basadas en ejemplos o la búsqueda de vecino más cercano para comprender una predicción encontrando 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. |
|
| Explicaciones basadas en atributos | En el caso de las predicciones que se basan 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. Las técnicas de explicabilidad y las explicaciones tabulares proporcionan 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. |
|
| Herramienta What-If | La herramienta What-If se desarrolló con 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 de uso de la herramienta, consulta las demostraciones web de la herramienta What-If. |
|
Colaboradores
Autores:
- Benjamin Sadik | Ingeniero de Atención al Cliente especialista en IA y AA
- Filipe Gracio, PhD | Ingeniero de Atención al cliente, especialista en IA y AA
Otros colaboradores:
- Daniel Lees | Arquitecto de Seguridad en la Nube
- Autor: Kumar Dhanagopal | Desarrollador de soluciones entre productos