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 |
|
|
| Puntos de control y pesos del aprendizaje por refuerzo |
|
Para Rapid Bucket, usa el perfil gcsfusecsi-checkpointing.
|
| Almacenamiento y descarga de modelos |
|
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) |
|
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/fstabrecomendadas 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
nofailpuede 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.- Se recomienda:
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.
- 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.
- Intervalo de punto de control: Con qué frecuencia guardas un punto de control (por ejemplo, cada 15 minutos).
- 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:
- 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.
- Intervalo de puntos de control: 2 minutos = 120 segundos.
- 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:
- Inferencias en TPU7x:
- Entrenamiento de TPU7x:
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?
- Opciones de almacenamiento para datos de TPU
- Conecta VMs de TPU a buckets de Cloud Storage
- Conecta almacenamiento en bloque duradero a una VM de TPU
- Prácticas recomendadas para optimizar el rendimiento de Cloud Storage FUSE