Ativar um compartilhamento de NFS para treinamento personalizado

É 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 com 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

  1. 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, selecione Acesso privado a serviços 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.

  2. Siga as instruções em Configurar peering de rede VPC para fazer peering do Vertex AI com a VPC que hospeda o compartilhamento de NFS.

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

  1. 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.

  2. Crie um arquivo chamado config.yaml que descreva as configurações de ativação da rede e do NFS para o job de treinamento. Use o seguinte formato:

    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 projeto do 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 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.

  3. 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: cria o job nesta região.

    • 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 ativam compartilhamentos NFS de diferentes redes VPC ao mesmo tempo. Isso ocorre devido à restrição de peering de rede.