Prácticas recomendadas de almacenamiento para cargas de trabajo de IA/AA en VMs de TPU

Para maximizar el rendimiento y la rentabilidad de tus cargas de trabajo de IA/AA en VMs de TPU, selecciona y configura la solución de almacenamiento adecuada para tu carga de trabajo. Si quitas los cuellos de botella de E/S, puedes reducir la cantidad de tiempo que tus aceleradores de TPU están inactivos, lo que reduce el tiempo y los costos de entrenamiento.

En este documento, se proporcionan recomendaciones de almacenamiento específicas de la carga de trabajo y prácticas recomendadas de optimización para el entrenamiento, la creación de puntos de control, la entrega y el almacenamiento en caché en VMs de TPU. Antes de aplicar estas prácticas, revisa las opciones de almacenamiento disponibles para datos de TPU. En este documento, se supone que estás familiarizado con las VMs de TPU y que tienes experiencia básica en el aprovisionamiento de recursos de Cloud Storage.

Orientación específica para la carga de trabajo

En la siguiente tabla, se proporcionan recomendaciones de almacenamiento, que se enumeran en orden de preferencia, para diferentes cargas de trabajo:

Carga de trabajo Recomendación Optimización y herramientas (si corresponde)
Conjuntos de datos de entrenamiento, incluida la preparación de datos
  1. Usa buckets regionales de Cloud Storage con Rapid Cache y ajuste del cliente (como lecturas anticipadas) para obtener el costo más bajo.
  2. Usa Cloud Storage Rapid Bucket para obtener el mejor rendimiento y escala.
  3. Usa Managed Lustre si estás estandarizando Lustre (almacenamiento del sistema de archivos) debido a la alta simultaneidad de metadatos o a archivos pequeños (menos de 1 MB).
  • Para los buckets regionales de Cloud Storage, habilita el espacio de nombres jerárquico.
  • Para los buckets regionales de Cloud Storage o Rapid Bucket, usa Cloud Storage FUSE y gRPC. En el caso de GKE, usa el gcsfusecsi-training perfil.
  • Para Managed Lustre, considera usar el nivel Dynamic para reducir los costos y optimizar automáticamente el rendimiento.
Puntos de control y pesos de aprendizaje por refuerzo
  1. Usa Managed Lustre para obtener un alto rendimiento sin un ajuste extenso para los requisitos de baja latencia (menos de 1 ms), como los puntos de control síncronos y la propagación de peso de alta velocidad para el aprendizaje por refuerzo.
  2. Usa Cloud Storage Rapid Bucket para obtener la mayor capacidad de procesamiento para la creación de puntos de control asíncronos y de varios niveles, y para paralelizar las operaciones de puntos de control en el almacenamiento. Rapid Bucket proporciona la alta capacidad de procesamiento necesaria para estas cargas de trabajo.
En el caso de Rapid Bucket, usa el gcsfusecsi-checkpointing perfil.
Almacenamiento y descarga de modelos
  1. Usa Hyperdisk ML para el almacenamiento en caché de modelos pequeños y hasta 2,500 instancias.
  2. Usa la misma solución de almacenamiento que usas para los conjuntos de datos de entrenamiento (Managed Lustre, Rapid Bucket o buckets regionales) si deseas estandarizar una sola solución de almacenamiento.
Para descargar modelos, usa GKE Run:ai Model Streamer o Cloud Storage FUSE con un punto de activación independiente con el gcsfusecsi-serving perfil.
Descarga de caché de par clave-valor (KV)
  1. Usa siempre la memoria de la CPU del host (RAM) como el nivel principal para liberar VRAM sin agregar una latencia significativa.
  2. Si la memoria de la CPU es insuficiente, usa Managed Lustre como un segundo nivel paralelo de baja latencia en la jerarquía de caché para satisfacer las necesidades de latencia ultrabaja (menos de 1 ms) de la descarga de caché de KV con una alta capacidad de procesamiento (hasta 10 TB/s).

Optimizaciones de Cloud Storage

En las siguientes secciones, se describen las prácticas recomendadas para optimizar el rendimiento cuando se usa Cloud Storage con VMs de TPU.

Habilita el espacio de nombres jerárquico para la optimización de metadatos

Para mejorar el rendimiento de los metadatos, habilita el espacio de nombres jerárquico cuando crees buckets regionales para cargas de trabajo de IA/AA. El rendimiento de los metadatos se refiere a la rapidez con la que Cloud Storage puede procesar operaciones que implican buscar, enumerar o modificar rutas de acceso y carpetas de objetos, en lugar de leer o escribir el contenido de los archivos.

En los buckets sin el espacio de nombres jerárquico habilitado, las carpetas no existen como recursos reales, sino que son carpetas simuladas representadas por prefijos de nombres de objetos delimitados por barras diagonales (/). Esto hace que las operaciones, como enumerar el contenido del directorio o cambiar el nombre de los directorios, sean lentas porque el sistema debe analizar todos los objetos con ese prefijo. El espacio de nombres jerárquico proporciona una estructura de sistema de archivos verdadera, que es importante para las cargas de trabajo de IA/AA por varios motivos:

  • Cambios de nombre de directorio atómicos: Los frameworks de AA usan cambios de nombre de directorio para finalizar los puntos de control. El espacio de nombres jerárquico admite cambios de nombre atómicos, lo que garantiza que los puntos de control se finalicen rápidamente.
  • QPS inicial más alta: El espacio de nombres jerárquico admite hasta ocho veces más consultas por segundo (QPS) iniciales para lecturas y escrituras en comparación con los buckets sin el espacio de nombres jerárquico habilitado. Esto evita cuellos de botella cuando muchas TPU acceden al almacenamiento de forma simultánea.
  • Operaciones eficientes a nivel de carpeta: Encontrar y enumerar archivos dentro de directorios específicos es mucho más rápido, lo que reduce los tiempos de respuesta durante el entrenamiento y la carga de datos.

Los buckets zonales, que se ofrecen a través de Rapid Bucket, usan el espacio de nombres jerárquico de forma predeterminada. Para obtener más información, consulta Descripción general de los espacios de nombres jerárquicos.

Usa Cloud Storage FUSE con los perfiles adecuados

Cloud Storage FUSE es un adaptador de FUSE que te permite activar buckets como un sistema de archivos local. Cuando usas Google Kubernetes Engine, te recomendamos que uses el controlador CSI de Cloud Storage FUSE y los perfiles de Cloud Storage FUSE para automatizar el ajuste del rendimiento.

Para obtener más información sobre las prácticas recomendadas para usar Cloud Storage FUSE, consulta Prácticas recomendadas de ajuste del rendimiento.

Personaliza el disco de arranque de la VM de TPU

Puedes personalizar el entorno del SO invitado en una VM de TPU con secuencias de comandos de inicio o creando imágenes personalizadas. La personalización del disco de arranque es útil en los siguientes casos:

  • Software y bibliotecas de carga previa: Instala frameworks de AA, dependencias o software personalizado específicos para reducir el tiempo de inicio de la VM y garantizar entornos coherentes.
  • Usa distribuciones de SO no estándar: Usa una distribución o versión del SO que no esté incluida en la lista administrada por Google.
  • Aplicando configuraciones de seguridad y supervisión: Aplica parámetros de configuración de seguridad personalizados , instala agentes de supervisión o establece variables de entorno.

Sin embargo, la recuperación del disco de arranque para las VMs de TPU es limitada. No puedes desconectar ni crear instantáneas del disco de arranque para la reparación sin conexión, por lo que debes tener cuidado cuando realices cambios que afecten el proceso de arranque. Si sigues estas prácticas recomendadas, puedes reducir el riesgo de fallas de arranque cuando personalices tus entornos de VM de TPU.

Ten en cuenta los siguientes principios clave cuando personalices tu disco de arranque:

  • Minimiza las modificaciones del disco de arranque: Siempre que sea posible, instala aplicaciones y almacena datos en volúmenes de Persistent Disk o Hyperdisk en lugar de modificar en gran medida el disco de arranque.

  • Usa UUIDs para la activación: Cuando agregues entradas al archivo /etc/fstab, usa siempre UUIDs para identificar discos y particiones (UUID=...) en lugar de nombres de dispositivos como /dev/sdb1. No se garantiza que los nombres de dispositivos generados automáticamente sean estables durante los reinicios.

Sigue estas recomendaciones para reducir el riesgo de fallas de arranque cuando realices cambios en el sistema:

  • Manejo de errores: Implementa una verificación de errores sólida y modos de falla correctos en tus secuencias de comandos. Registra mensajes detallados en la consola en serie y en Cloud Logging para facilitar la depuración.

  • Dependencias críticas: Ten mucho cuidado cuando modifiques archivos esenciales para el arranque, como el archivo /etc/fstab, las configuraciones de red o la configuración del bootloader. Un error de sintaxis o una entrada incorrecta pueden hacer que la VM no se pueda iniciar.

  • Discos secundarios: Si tu secuencia de comandos depende de discos secundarios, asegúrate de que controle los casos en los que el disco podría no estar presente o tardar más en conectarse de lo esperado. Evita que el proceso de arranque dependa de forma crítica de las activaciones de discos secundarios, a menos que sea absolutamente necesario.

    A continuación, se muestran ejemplos de entradas /etc/fstab recomendadas y no recomendadas para activar un disco secundario:

    • Se recomienda: UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /mnt/mydata ext4 defaults,nofail 0 2
    • No se recomienda: /dev/sdb1 /mnt/mydata ext4 defaults 0 2

    Usar la opción nofail puede evitar que el sistema se detenga si no se encuentra el disco, pero asegúrate de que tu aplicación pueda controlar que el punto de activación no esté disponible.

  • Administración de paquetes: Ten cuidado cuando agregues repositorios de terceros. Asegúrate de que sean confiables y compatibles con la imagen de SO base. Comprende las dependencias de los paquetes que instales y su impacto potencial en las bibliotecas del sistema.

  • Espacio en disco: Supervisa el uso del disco de arranque. El registro extenso o las instalaciones de software grandes pueden llenar el disco de arranque, lo que impide que se inicie la VM.

  • Registro: Configura tus aplicaciones y secuencias de comandos para que se registren de forma detallada en la consola en serie, ya que esta es la herramienta principal para diagnosticar problemas de arranque en VMs de TPU.

Planifica tu capacidad de almacenamiento

Es importante planificar la cantidad de capacidad de almacenamiento que necesitará tu carga de trabajo para usar por completo tus aceleradores. Esto incluye la capacidad de almacenamiento y el ancho de banda del punto de control.

Estima el almacenamiento

Puedes usar las siguientes estimaciones como punto de partida para tus requisitos de almacenamiento:

Tipo de carga de trabajo Almacenamiento del conjunto de datos Almacenamiento del punto de control
Entrenamiento previo de LLM 2 TB por TPU 200 GB por TPU
Entrenamiento multimodal 12 TB por TPU 1 TB por TPU
Inferencia 1 TB por TPU 1 GB por TPU

Estima el ancho de banda del punto de control

Puedes estimar el ancho de banda mínimo de los puntos de control que se requiere para las cargas de trabajo de entrenamiento con la siguiente fórmula. Para las lecturas de datos, las ejecuciones de entrenamiento múltiples o el entrenamiento y la inferencia, aumenta los requisitos de ancho de banda estimados de forma proporcional.

  1. Tamaño del punto de control: Cantidad de parámetros × bytes por parámetro (aproximadamente 12 a 16 bytes por parámetro para FP16 + estado del optimizador). Agrega un búfer (aproximadamente 3×) para los estados del optimizador y las diferentes precisiones.
  2. Intervalo de puntos de control: Con qué frecuencia guardas un punto de control (por ejemplo, cada 15 minutos)
  3. Ancho de banda requerido: Tamaño del punto de control ÷ intervalo de puntos de control.

En el siguiente ejemplo, se muestra cómo estimar el ancho de banda mínimo de los puntos de control para Qwen3-72B:

  1. Tamaño del punto de control: 72 mil millones de parámetros × 12 bytes ≈ 864 GB por punto de control Con el búfer, 3 × 864 GB ≈ 2.5 TB
  2. Intervalo de puntos de control: 2 minutos = 120 segundos
  3. Ancho de banda requerido: 2.5 TB ÷ 120 segundos ≈ 20 GBps

Recetas de referencia

Para obtener ejemplos de configuraciones de almacenamiento para hardware y cargas de trabajo específicos, consulta las siguientes recetas:

Cuotas y límites de ancho de banda

El ancho de banda para las ofertas de Cloud Storage y Compute Engine está limitado por las cuotas predeterminadas. Si excedes una cuota, es posible que se limite la frecuencia de tus solicitudes de entrada y salida.

Para obtener información sobre las cuotas de Cloud Storage y cómo solicitar aumentos, consulta Cuotas y límites en la documentación de Cloud Storage. Para obtener información sobre las cuotas de Compute Engine para Hyperdisk y Persistent Disk, consulta Cuotas de disco.

¿Qué sigue?