Escolher a configuração de armazenamento certa é fundamental para o desempenho e a estabilidade do cluster de treinamento. O serviço se integra a duas soluções de armazenamento distintas e de alto desempenho:
- Filestore: um serviço gerenciado de arquivos necessário que fornece os diretórios
/homecompartilhados para todos os nós do cluster. - Managed Lustre do Google Cloud: um sistema de arquivos paralelo opcional projetado para desempenho extremo de E/S, ideal para treinamento em grandes conjuntos de dados.
Esta página oferece uma visão geral dos principais usos e descreve os requisitos específicos de rede e implantação para uma integração bem-sucedida com seu cluster.
Integração de armazenamento para clusters de treinamento
Os clusters de treinamento da Vertex AI dependem de soluções de armazenamento específicas e em rede para a operação. O Filestore é necessário para fornecer os diretórios /home compartilhados
para o cluster, enquanto o Lustre gerenciado é um sistema de arquivos opcional de alta performance
para cargas de trabalho exigentes.
É fundamental configurar corretamente a rede para esses serviços de armazenamento antes de implantar o cluster.
Filestore para diretórios principais
Esse serviço usa uma instância do Filestore para fornecer o diretório /home
compartilhado para o cluster. Para garantir a conectividade adequada, crie os recursos da nuvem nesta ordem específica:
- Crie a rede VPC: primeiro, implante uma rede VPC configurada com a MTU recomendada (por exemplo, 8896).
- Crie a instância do Filestore: em seguida, implante a instância do Filestore na VPC que você acabou de criar.
- Crie o cluster de treinamento: por fim, implante o cluster, que poderá se conectar à instância do Filestore na mesma rede.
Google Cloud Managed Lustre para cargas de trabalho de alta performance
Para cargas de trabalho que exigem o máximo de desempenho de E/S, é possível anexar um sistema de arquivos Lustre gerenciado. Esse serviço se conecta à sua VPC usando o acesso a serviços particulares.
Limitação crítica de rede: não há peering transitivo
Uma limitação crítica para o Filestore e o Managed Lustre do Google Cloud é que eles não são compatíveis com peering transitivo. Isso significa que apenas os recursos na VPC diretamente conectada podem acessar o serviço de armazenamento. Por exemplo, se a VPC do cluster (N1) tiver peering com o serviço de armazenamento, outra VPC (N2) com peering com N1 não terá acesso.
Integração de armazenamento para clusters de treinamento
Os clusters de treinamento da Vertex AI dependem de soluções de armazenamento específicas e em rede para operar. O Filestore é necessário para fornecer
os diretórios /home compartilhados para o cluster, enquanto o Lustre gerenciado do Google Cloud é um
sistema de arquivos de alto desempenho opcional para cargas de trabalho exigentes.
É fundamental configurar corretamente a rede para esses serviços de armazenamento
antes de implantar o cluster.
Filestore
Principais usos do Filestore com clusters de treinamento
Além da função de diretório inicial obrigatório, o Filestore oferece uma maneira flexível de compartilhar dados com seu cluster.
Armazenamento compartilhado adicional: é possível anexar uma ou mais instâncias adicionais do Filestore a qualquer pool de nós. Isso é útil para fornecer conjuntos de dados compartilhados, binários de aplicativos ou outros arquivos comuns aos seus jobs de treinamento. Quando especificado na configuração do pool de nós, os clusters de treinamento montam automaticamente essas instâncias no diretório /mnt/filestore em cada nó.
Requisitos do Filestore
Para uma integração bem-sucedida do Filestore com clusters de treinamento, é necessário ter a seguinte configuração:
- Ative a API: a API Filestore precisa ser ativada no seu projeto do Google Cloud antes de criar o cluster.
- Diretório
/homeobrigatório: cada cluster de treinamento requer uma instância dedicada do Filestore para servir como o diretório/homecompartilhado. Essa instância tem requisitos de configuração específicos:- Rede: precisa estar na mesma rede VPC que os nós de computação e login do cluster.
- Localização: precisa estar na mesma região ou zona do cluster.
- Configuração: especifique o nome completo do recurso dessa instância no campo
ao criar o cluster pela API.orchestrator_spec.slurm_spec.home_directory_storage
Configurar o armazenamento do Filestore
Crie uma instância zonal ou regional do Filestore na zona em que você quer criar o cluster. A API Vertex AI exige que um
Filestore seja anexado ao cluster para servir como o diretório /home.
O Filestore precisa estar na mesma zona ou região e na mesma rede que todos os nós de computação e de login. No exemplo abaixo, 172.16.10.0/24 é usado para a
implantação do 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
O Google Cloud Managed Lustre oferece um sistema de arquivos paralelo de alto desempenho e totalmente gerenciado otimizado para aplicativos de IA e HPC. Com capacidade de vários petabytes e capacidade de processamento de até 1 TBps, o Managed Lustre facilita a migração de cargas de trabalho exigentes para a nuvem.
As instâncias do Managed Lustre ficam em zonas dentro de regiões. Região é uma localização geográfica específica onde os recursos podem ser executados. Cada região é subdividida em várias zonas. Por exemplo, a região us-central1 na região central dos Estados Unidos tem zonas
us-central1-a, us-central1-b, us-central1-c e us-central1-f. Para mais informações, consulte
Geografia e regiões.
Para diminuir a latência da rede, recomendamos criar uma instância do Lustre gerenciado em uma região e zona próximas de onde você planeja usá-la.
Ao criar uma instância do Managed Lustre, é necessário definir as seguintes propriedades:
- O nome da instância usada pelo Google Cloud.
- O nome do sistema de arquivos usado por ferramentas do lado do cliente, por exemplo,
lfs. - A capacidade de armazenamento em gibibytes (GiB). A capacidade pode variar de 9.000 GiB a aproximadamente 8 PiB (7.632.000 GiB). O tamanho máximo de uma instância depende do nível de desempenho dela.
- O Managed Lustre oferece níveis de desempenho que variam de 125 MBps por TiB a 1.000 MBps por TiB.
- Para ter o melhor desempenho, crie a instância na mesma zona do cluster de treinamento.
- A rede VPC dessa instância precisa ser a mesma usada pelo cluster de treinamento.
O Managed Lustre oferece quatro níveis de desempenho, cada um com uma velocidade máxima de capacidade por TiB diferente. Os níveis de performance também afetam o tamanho mínimo e máximo da instância, além do tamanho da etapa entre os valores de capacidade aceitáveis. Não é possível mudar o nível de performance de uma instância depois que ela é criada.
A implantação do Lustre gerenciado requer o acesso a serviços particulares, que estabelece o peering de VPC entre a VPC do cluster de treinamento e a VPC que hospeda o Lustre gerenciado, usando uma sub-rede /20 dedicada.
Configurar a instância do Managed Lustre (opcional)
Use o Google Cloud Managed Lustre apenas se quiser usar o Managed Lustre no serviço de desenvolvimento de modelos.
O Lustre gerenciado do Google Cloud é um serviço de sistema de arquivos paralelo de alto desempenho totalmente gerenciado no Google Cloud. Ele foi projetado especificamente para acelerar cargas de trabalho exigentes em IA/machine learning e computação de alto desempenho (HPC).
Para ter um desempenho ideal ao usar clusters de treinamento, o Google Cloud Managed Lustre precisa ser implantado na mesma VPC e zona do cluster de treinamento usando o peering de VPC para redes de serviços.
Criar instância do 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
Montagem do Cloud Storage
Como pré-requisito, verifique se a conta de serviço da VM tem o papel Usuário de objetos do Storage.
Montagem padrão
Os clusters de treinamento da Vertex AI usam o Cloud Storage FUSE para montar dinamicamente os buckets do Cloud Storage em todos os nós de login e de computação, tornando-os acessíveis no diretório /gcs. Buckets montados dinamicamente não podem ser listados a partir do ponto de montagem raiz /gcs. Você pode acessar os buckets montados dinamicamente como
subdiretórios:
user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name
Montaria personalizada
Para montar um bucket específico do Cloud Storage em um diretório local com opções personalizadas, use a seguinte estrutura de comando transmitindo-a como parte do script de inicialização na criação do cluster ou executando-a diretamente no nó após a criação do cluster.
sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a
Por exemplo, para ativar o bucket mtdata no diretório /data, use
o seguinte 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 uma configuração totalmente automatizada e consistente, inclua seus scripts de montagem personalizados nos scripts de inicialização do cluster. Essa prática garante que seus buckets do Cloud Storage sejam montados automaticamente em todos os nós na inicialização, eliminando a necessidade de configuração manual.
Para outras recomendações de configuração adaptadas a cargas de trabalho de IA/ML, consulte o Guia de práticas recomendadas de ajuste de performance. Ele oferece orientações específicas para otimizar o Cloud Storage FUSE para treinamento, inferência e criação de pontos de verificação.
A seguir
As próximas etapas se concentram no uso eficiente do cluster para treinamento em grande escala.
- Adapte seu código para treinamento distribuído: para aproveitar ao máximo um cluster de vários nós e armazenamento de alta performance, adapte seu código de treinamento para um ambiente distribuído.
- Orquestre seus jobs com o Vertex AI Pipelines: para fluxos de trabalho de produção, automatize o processo de preparação de dados, envio de jobs e registro de modelos usando o Vertex AI Pipelines.
- Monitore e depure seus jobs de treinamento: acompanhe o progresso e a utilização de recursos dos seus jobs de treinamento distribuído para identificar e resolver problemas.