Elegir la configuración de almacenamiento adecuada es fundamental para el rendimiento y la estabilidad de tu clúster de entrenamiento. El servicio se integra con dos soluciones de almacenamiento distintas y de alto rendimiento:
- Filestore: Es un servicio de archivos administrado obligatorio que proporciona los directorios
/homecompartidos para todos los nodos del clúster. - Google Cloud Managed Lustre: Es un sistema de archivos paralelos opcional diseñado para un rendimiento de E/S extremo, ideal para el entrenamiento con conjuntos de datos masivos.
En esta página, se proporciona una descripción general de sus usos principales y se describen los requisitos específicos de redes y de implementación para una integración exitosa con tu clúster.
Integración de almacenamiento para clústeres de entrenamiento
Los clústeres de entrenamiento de Vertex AI dependen de soluciones de almacenamiento específicas y conectadas en red para su funcionamiento. Filestore es necesario para proporcionar los directorios /home compartidos para el clúster, mientras que Lustre administrado es un sistema de archivos opcional de alto rendimiento para cargas de trabajo exigentes.
Es fundamental configurar correctamente las redes para estos servicios de almacenamiento antes de implementar tu clúster.
Filestore para directorios principales
Este servicio usa una instancia de Filestore para proporcionar el directorio /home compartido para el clúster. Para garantizar una conectividad adecuada, debes crear tus recursos de Cloud en este orden específico:
- Crea la red de VPC: Primero, implementa una red de VPC configurada con la MTU recomendada (por ejemplo, 8896).
- Crea la instancia de Filestore: A continuación, implementa la instancia de Filestore en la VPC que acabas de crear.
- Crea el clúster de entrenamiento: Por último, implementa el clúster, que luego podrá conectarse a la instancia de Filestore dentro de la misma red.
Google Cloud Managed Lustre para cargas de trabajo de alto rendimiento
Para las cargas de trabajo que requieren el máximo rendimiento de E/S, puedes conectar un sistema de archivos Lustre administrado. Este servicio se conecta a tu VPC a través del acceso privado a servicios.
Limitación de red crítica: No hay intercambio de tráfico transitivo
Una limitación fundamental tanto para Filestore como para Google Cloud Managed Lustre es que no admiten el intercambio de tráfico transitivo. Esto significa que solo los recursos dentro de la VPC conectada directamente pueden acceder al servicio de almacenamiento. Por ejemplo, si la VPC de tu clúster (N1) intercambia tráfico con el servicio de almacenamiento, otra VPC (N2) que intercambia tráfico con N1 no tendrá acceso.
Integración de almacenamiento para clústeres de entrenamiento
Los clústeres de entrenamiento de Vertex AI dependen de soluciones de almacenamiento específicas y conectadas en red para su funcionamiento. Filestore es necesario para proporcionar los directorios /home compartidos para el clúster, mientras que Google Cloud Managed Lustre es un sistema de archivos opcional de alto rendimiento para cargas de trabajo exigentes.
Es fundamental configurar correctamente las redes para estos servicios de almacenamiento antes de implementar tu clúster.
Filestore
Usos clave de Filestore con clústeres de entrenamiento
Además de su función como directorio principal obligatorio, Filestore proporciona una forma flexible de compartir datos con tu clúster.
Almacenamiento compartido adicional: Puedes adjuntar una o más instancias de Filestore adicionales a cualquier grupo de nodos. Esto es útil para proporcionar conjuntos de datos compartidos, archivos binarios de aplicaciones o cualquier otro archivo común a tus trabajos de entrenamiento. Cuando se especifican en la configuración del grupo de nodos, los clústeres de entrenamiento montan automáticamente estas instancias en el directorio /mnt/filestore de cada nodo.
Requisitos de Filestore
Para que la integración de Filestore con los clústeres de entrenamiento se realice correctamente, se requiere la siguiente configuración:
- Habilita la API: La API de Filestore debe estar habilitada en tu proyecto de Google Cloud antes de que puedas crear el clúster.
- Directorio
/homeobligatorio: Cada clúster de entrenamiento requiere una instancia de Filestore dedicada para que funcione como el directorio/homecompartido. Esta instancia tiene requisitos de configuración específicos:- Red: Debe residir en la misma red de VPC que los nodos de procesamiento y acceso del clúster.
- Ubicación: Debe estar ubicado en la misma región o zona que el clúster.
- Configuración: Debes especificar el nombre completo del recurso de esta instancia en el campo
cuando crees el clúster a través de la API.orchestrator_spec.slurm_spec.home_directory_storage
Configura el almacenamiento de Filestore
Crea una instancia de Filestore zonal o regional en la zona en la que deseas crear el clúster. La API de Vertex AI requiere que se adjunte un Filestore al clúster para que actúe como el directorio /home.
Este Filestore debe estar en la misma zona o región y en la misma red que todos los nodos de procesamiento y nodos de acceso. En el siguiente ejemplo, se usa 172.16.10.0/24 para la implementación de Filestore.
SERVICE_TIER=ZONAL # Can use BASIC_SSD # Create reserved IP address range gcloud compute addresses create CLUSTER_IDfs-ip-range \ --project=PROJECT_ID \ --global \ --purpose=VPC_PEERING \ --addresses=172.16.10.0 \ --prefix-length=24 \ --description="Filestore instance reserved IP range" \ --network=NETWORK # Get the CIDR range FS_IP_RANGE=$( gcloud compute addresses describe CLUSTER_IDfs-ip-range \ --global \ --format="value[separator=/](address, prefixLength)" ) # Create the Filestore instance gcloud filestore instances create FS_INSTANCE_ID \ --project=PROJECT_ID \ --location=ZONE \ --tier=ZONAL \ --file-share=name="nfsshare",capacity=1024 \ --network=name=NETWORK,connect-mode=DIRECT_PEERING,reserved-ip-range="${FS_IP_RANGE}"
Lustre
Google Cloud Managed Lustre ofrece un sistema de archivos paralelos completamente administrado y de alto rendimiento optimizado para aplicaciones de IA y HPC. Con una capacidad de varios petabytes y un rendimiento de hasta 1 TBps, Managed Lustre facilita la migración de cargas de trabajo exigentes a la nube.
Las instancias de Managed Lustre se encuentran en zonas dentro de regiones. Una región es una ubicación geográfica específica donde puedes ejecutar tus recursos. Cada región está subdividida en varias zonas. Por ejemplo, la región us-central1 en el centro de Estados Unidos tiene las zonas us-central1-a, us-central1-b, us-central1-c y us-central1-f. Para obtener más información, consulta Geografía y regiones.
Para disminuir la latencia de la red, te recomendamos que crees una instancia de Lustre administrado en una región y zona que estén cerca de donde planeas usarla.
Cuando creas una instancia de Lustre administrada, debes definir las siguientes propiedades:
- Nombre de la instancia que usa Google Cloud.
- Nombre del sistema de archivos que usan las herramientas del cliente, por ejemplo,
lfs. - Es la capacidad de almacenamiento en gibibytes (GiB). La capacidad puede variar de 9,000 GiB a ~8 PiB (7,632,000 GiB). El tamaño máximo de una instancia depende de su nivel de rendimiento.
- Managed Lustre ofrece niveles de rendimiento que van desde 125 MBps por TiB hasta 1,000 MBps por TiB.
- Para obtener el mejor rendimiento, crea tu instancia en la misma zona que tu clúster de entrenamiento.
- La red de VPC para esta instancia debe ser la misma que usa tu clúster de entrenamiento.
Managed Lustre ofrece 4 niveles de rendimiento, cada uno con una velocidad de capacidad de procesamiento máxima diferente por TiB. Los niveles de rendimiento también afectan el tamaño mínimo y máximo de la instancia, y el tamaño del paso entre los valores de capacidad aceptables. No puedes cambiar el nivel de rendimiento de una instancia después de que se haya creado.
La implementación de Lustre administrado requiere acceso privado a los servicios, lo que establece el intercambio de tráfico entre VPC entre la VPC del clúster de entrenamiento y la VPC que aloja Lustre administrado, con una subred /20 dedicada.
Configura la instancia de Managed Lustre (opcional)
Usa Google Cloud Managed Lustre solo si deseas usar Managed Lustre en el servicio de desarrollo de modelos.
Google Cloud Managed Lustre es un servicio de sistema de archivos paralelo de alto rendimiento y completamente administrado en Google Cloud. Está diseñada específicamente para acelerar cargas de trabajo exigentes en IA/aprendizaje automático y computación de alto rendimiento (HPC).
Para obtener un rendimiento óptimo cuando uses clústeres de entrenamiento, Google Cloud Managed Lustre debe implementarse desde la misma VPC y zona que tu clúster de entrenamiento con el intercambio de tráfico de VPC para la red de servicios.
Crea una instancia de Lustre
gcloud lustre instances create LUSTRE_INSTANCE_ID \
--project=PROJECT_ID \
--location=ZONE \
--filesystem=lustrefs \
--per-unit-storage-throughput=500 \
--capacity-gib=36000 \
--network=NETWORK_NAME
Montaje de Cloud Storage
Como requisito previo, asegúrate de que la cuenta de servicio de la VM tenga el rol de usuario de objetos de almacenamiento.
Soporte predeterminado
Los clústeres de entrenamiento de Vertex AI usan Cloud Storage FUSE para activar de forma dinámica tus buckets de Cloud Storage en todos los nodos de acceso y procesamiento, lo que los hace accesibles en el directorio /gcs. Los buckets activados de forma dinámica no pueden aparecer en una lista desde el punto de activación raíz /gcs. Puedes acceder a los buckets activados de forma dinámica como subdirectorios:
user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name
Soporte personalizado
Para activar un bucket de Cloud Storage específico en un directorio local con opciones personalizadas, usa la siguiente estructura de comandos. Puedes pasarla como parte de la secuencia de comandos de inicio en la creación del clúster o ejecutarla directamente en el nodo después de que se cree el clúster.
sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a
Por ejemplo, para activar el bucket mtdata en el directorio /data, usa el siguiente comando:
sudo mkdir -p /data
echo "mtdata /data gcsfuse defaults,_netdev,implicit_dirs,allow_other,dir_mode=777,file-mode=777,metadata_cache_negative_ttl_secs=0,metadata_cache_ttl_secs=-1,stat_cache_max_size_mb=-1,type_cache_max_size_mb=-1,enable_streaming_writes=true" | sudo tee -a /etc/fstab
sudo mount -a
Para una configuración coherente y completamente automatizada, incluye tus secuencias de comandos de activación personalizadas en las secuencias de comandos de inicio del clúster. Esta práctica garantiza que tus buckets de Cloud Storage se activen automáticamente en todos los nodos durante el inicio, lo que elimina la necesidad de realizar una configuración manual.
Si deseas obtener recomendaciones de configuración adicionales adaptadas a las cargas de trabajo de IA/AA, consulta la guía de prácticas recomendadas para el ajuste del rendimiento. Proporciona orientación específica para optimizar Cloud Storage FUSE para el entrenamiento, la inferencia y la creación de puntos de control.
¿Qué sigue?
Los siguientes pasos se centran en usar tu clúster de manera eficaz para el entrenamiento a gran escala.
- Adapta tu código para el entrenamiento distribuido: Para aprovechar al máximo un clúster de varios nodos y el almacenamiento de alto rendimiento, adapta tu código de entrenamiento para un entorno distribuido.
- Organiza tus trabajos con Vertex AI Pipelines: Para los flujos de trabajo de producción, automatiza el proceso de preparación de datos, envío de trabajos y registro de modelos con Vertex AI Pipelines.
- Supervisa y depura tus trabajos de entrenamiento: Realiza un seguimiento del progreso y el uso de recursos de tus trabajos de entrenamiento distribuidos para identificar y resolver problemas.