É possível configurar jobs de treinamento personalizados para ativar compartilhamentos do Network File System (NFS) no contêiner em que o código está sendo executado. Isso permite que os jobs acessem arquivos remotos como se fossem locais, permitindo alta capacidade e baixa latência.
Neste guia, mostramos como ativar um compartilhamento de NFS ao executar um job de treinamento personalizado.
Antes de começar
Crie um compartilhamento de NFS em uma nuvem privada virtual (VPC). Seu compartilhamento precisa ser acessível sem autenticação.
É possível usar uma instância do Filestore como compartilhamento de NFS. Se você estiver usando o Filestore e planeja usar o peering de VPC para a Vertex AI na próxima etapa, selecione Acesso a serviços particulares como o modo de conexão ao criar uma instância. Para ver um exemplo, consulte Como criar instâncias na documentação do Filestore.
Para conectar o Vertex AI à VPC que hospeda seu compartilhamento de NFS, siga as instruções em Usar a interface do Private Service Connect para o Vertex AI (recomendado) ou Configurar peering de rede VPC.
Informações de NFS para treinamento personalizado
Ao criar um job de treinamento personalizado que monta um compartilhamento de NFS, é necessário especificar o seguinte:
O nome da rede para a Vertex AI acessar. A maneira como você especifica o nome da rede varia de acordo com o tipo de job de treinamento personalizado. Veja mais detalhes em Fazer um treinamento personalizado.
A configuração de NFS no campo WorkerPoolSpec. Inclua os seguintes campos:
Campo Descrição nfsMounts.server
O endereço IP do servidor NFS. Precisa ser um endereço privado na sua VPC. nfsMounts.path
O caminho de compartilhamento do NFS. Precisa ser um caminho absoluto que comece com /
.nfsMounts.mountPoint
O ponto de montagem local. Precisa ser um nome de diretório UNIX válido. Por exemplo, se o ponto de montagem local for sourceData
, especifique o caminho/mnt/nfs/sourceData
da instância de VM de treinamento.Para mais informações, consulte Onde especificar recursos de computação.
Exemplo: criar um job personalizado usando a CLI gcloud
Siga as etapas em Criar um aplicativo de treinamento em Python para um contêiner predefinido para criar um aplicativo de treinamento que será executado no Vertex AI.
Crie um arquivo chamado
config.yaml
que descreva as configurações de montagem da configuração da interface PSA ou do Private Service Connect para o job de treinamento. Use um dos seguintes formatos:
Interface do Private Service Connect
Para usar a interface do Private Service Connect:
pscInterfaceConfig: network_attachment: NETWORK_ATTACHMENT_NAME workerPoolSpecs: - machineSpec: machineType: MACHINE_TYPE replicaCount: 1 pythonPackageSpec: executorImageUri: PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI packageUris: - PYTHON_PACKAGE_URIS pythonModule: PYTHON_MODULE nfsMounts: - server: NFS_SERVER_IP path: NFS_SHARE_NAME mountPoint: LOCAL_FOLDER
Substitua:
NETWORK_ATTACHMENT_NAME: o nome do anexo de rede.
MACHINE_TYPE: o identificador do seu tipo de máquina virtual.
PYTHON_PACKAGE_EXECUTOR_IMAGE_URI ou PRE_BUILT_CONTAINER_IMAGE_URI: o URI de uma imagem de contêiner no Artifact Registry que vai executar o pacote Python fornecido. A Vertex AI oferece uma grande variedade de imagens de executores com pacotes pré-instalados para atender aos vários casos de uso dos usuários.
PYTHON_PACKAGE_URIS: uma lista separada por vírgulas de URIs do Cloud Storage que especificam os arquivos de pacote do Python que compõem o programa de treinamento e os pacotes dependentes. O número máximo de URIs do pacote é 100.
PYTHON_MODULE: o nome do módulo Python que será executado após a instalação dos pacotes.
NFS_SERVER_IP: o endereço IP do servidor NFS.
NFS_SHARE_NAME: o caminho de compartilhamento do NFS, que é um caminho absoluto que começa com
/
.LOCAL_FOLDER: o ponto de montagem local (nome do diretório do UNIX).
Verifique se o nome da sua rede está formatado corretamente e se o compartilhamento de NFS existe na rede especificada.
Crie o job personalizado e transmita o arquivo
config.yaml
para o parâmetro--config
.gcloud ai custom-jobs create \ --region=LOCATION \ --display-name=JOB_NAME \ --config=config.yaml
Substitua:
LOCATION: especifique a região em que o job será criado.
JOB_NAME: um nome para o job personalizado.
Peering de VPC
Use o peering de VPC se quiser que o job use o peering de VPC/PSA no job ou não.
network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME workerPoolSpecs: - machineSpec: machineType: MACHINE_TYPE replicaCount: 1 pythonPackageSpec: executorImageUri: PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI packageUris: - PYTHON_PACKAGE_URIS pythonModule: PYTHON_MODULE nfsMounts: - server: NFS_SERVER_IP path: NFS_SHARE_NAME mountPoint: LOCAL_FOLDER
Substitua:
PROJECT_NUMBER: o ID do seu projeto do Google Cloud.
NETWORK_NAME: o nome da VPC particular ou compartilhada.
MACHINE_TYPE: o identificador do seu tipo de máquina virtual.
PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI: o URI de uma imagem de contêiner no Artifact Registry que vai executar o pacote Python fornecido. A Vertex AI oferece uma grande variedade de imagens de executores com pacotes pré-instalados para atender aos vários casos de uso dos usuários.
PYTHON_PACKAGE_URIS: uma lista separada por vírgulas de URIs do Cloud Storage que especificam os arquivos de pacote do Python que compõem o programa de treinamento e os pacotes dependentes. O número máximo de URIs do pacote é 100.
PYTHON_MODULE: o nome do módulo Python que será executado após a instalação dos pacotes.
NFS_SERVER_IP: o endereço IP do servidor NFS.
NFS_SHARE_NAME: o caminho de compartilhamento do NFS, que é um caminho absoluto que começa com
/
.LOCAL_FOLDER: o ponto de montagem local (nome do diretório do UNIX).
Verifique se o nome da sua rede está formatado corretamente e se o compartilhamento de NFS existe na rede especificada.
Crie o job personalizado e transmita o arquivo
config.yaml
para o parâmetro--config
.gcloud ai custom-jobs create \ --region=LOCATION \ --display-name=JOB_NAME \ --config=config.yaml
Substitua:
LOCATION: especifique a região em que o job será criado.
JOB_NAME: um nome para o job personalizado.
Limitações
Você precisa ativar o compartilhamento de NFS usando um endereço IP interno da VPC. Não é permitido usar URLs públicos.
Os jobs de treinamento montam os compartilhamentos NFS sem autenticação e falharão se um nome de usuário e uma senha forem necessários.
Para proteger seus dados, defina permissões no compartilhamento do NFS. Se você estiver usando o Filestore, consulte controle de acesso na documentação do Filestore.
Não é possível executar dois jobs de treinamento que montam compartilhamentos NFS de diferentes redes VPC ao mesmo tempo. Isso ocorre devido à restrição de peering de rede.