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

Para maximizar el rendimiento y la eficiencia en cuanto a costos 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 el tiempo de inactividad de los aceleradores de TPU, lo que disminuye el tiempo y los costos de entrenamiento.

En este documento, se proporcionan recomendaciones de almacenamiento específicas para las cargas 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 para datos de TPU disponibles. En este documento, se supone que conoces las VMs de TPU y 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, ordenadas según la 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 los datos
  1. Usa buckets regionales de Cloud Storage con Rapid Cache y ajustes del cliente (como lecturas anticipadas) para obtener el costo más bajo.
  2. Usa Cloud Storage Rapid Bucket para obtener el mejor rendimiento y escalabilidad.
  3. Usa Managed Lustre si estandarizas Lustre (almacenamiento del sistema de archivos) debido a la alta simultaneidad de metadatos o a los archivos pequeños (menos de 1 MB).
  • En el caso de 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 perfil gcsfusecsi-training.
  • En el caso de Managed Lustre, considera usar el nivel dinámico para reducir los costos y optimizar el rendimiento automáticamente.
Puntos de control y pesos del aprendizaje por refuerzo
  1. Usa Managed Lustre para obtener un alto rendimiento sin necesidad de realizar ajustes exhaustivos para los requisitos de baja latencia (menos de 1 ms), como los puntos de control síncronos y la propagación de pesos de alta velocidad para el aprendizaje por refuerzo.
  2. Usa Cloud Storage Rapid Bucket para obtener la mayor capacidad de procesamiento en 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.
Para Rapid Bucket, usa el perfil gcsfusecsi-checkpointing.
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 usando el perfil gcsfusecsi-serving.
Descarga de la caché de pares clave-valor (KV)
  1. Siempre usa 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 y 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 sí.

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 de un directorio o cambiar el nombre de los directorios sean lentas, ya que el sistema debe analizar todos los objetos con ese prefijo. El espacio de nombres jerárquico proporciona una verdadera estructura de sistema de archivos, lo 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.
  • Mayor cantidad de QPS iniciales: 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 los 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 uses 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 para el ajuste del rendimiento.

Personaliza el disco de arranque de la TPU VM

Puedes personalizar el entorno del SO invitado en una VM de TPU con secuencias de comandos de inicio o creando imágenes personalizadas. Personalizar el disco de arranque es útil en las siguientes situaciones:

  • Precarga de software y bibliotecas: Instala frameworks de AA, dependencias o software personalizado específicos para reducir el tiempo de inicio de la VM y garantizar entornos coherentes.
  • Uso de distribuciones de SO no estándares: Usar una distribución o versión del SO que no se incluya en la lista administrada por Google
  • Aplica la configuración 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 una instantánea del disco de arranque para realizar reparaciones 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 inicio cuando personalices tus entornos de TPU VM.

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 el montaje: Cuando agregues entradas al archivo /etc/fstab, siempre usa 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 inicio 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 ayudar con la depuración.

  • Dependencias críticas: Ten mucho cuidado cuando modifiques archivos esenciales para el inicio, como el archivo /etc/fstab, la configuración de red o la configuración del cargador de arranque. Un error de sintaxis o una entrada incorrecta pueden impedir el inicio de la VM.

  • 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 de lo esperado en conectarse. 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 de /etc/fstab recomendadas y no recomendadas para montar 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 registren de forma detallada en la consola en serie, ya que esta es la herramienta principal para diagnosticar problemas de inicio en las VMs de TPU.

Planifica tu capacidad de almacenamiento

Es importante planificar la cantidad de capacidad de almacenamiento que necesitará tu carga de trabajo para utilizar por completo tus aceleradores. Esto incluye la capacidad de almacenamiento y el ancho de banda de los puntos 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 de conjuntos de datos Almacenamiento de puntos 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

Cómo estimar el ancho de banda de los puntos de control

Puedes estimar el ancho de banda mínimo de puntos de control necesario para las cargas de trabajo de entrenamiento con la siguiente fórmula. Para las lecturas de datos, las múltiples ejecuciones de entrenamiento o el entrenamiento y la inferencia, aumenta tus 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 de 12 a 16 bytes por parámetro para FP16 + estado del optimizador). Agrega un búfer (aproximadamente 3 veces) para los estados del optimizador y las diferentes precisiones.
  2. Intervalo de punto 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 del punto de control

En el siguiente ejemplo, se muestra cómo estimar el ancho de banda mínimo de la creación de 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 ver 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 de las ofertas de Cloud Storage y Compute Engine está limitado por las cuotas predeterminadas. Si superas una cuota, es posible que se limite la velocidad 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?