Montar un recurso compartido de Network File System

Puedes configurar tus trabajos de entrenamiento personalizado para montar recursos compartidos del sistema de archivos de red (NFS) en el contenedor en el que se ejecuta tu código. De esta forma, tus trabajos pueden acceder a archivos remotos como si fueran locales, lo que permite obtener un alto rendimiento y una latencia baja.

En esta guía se muestra cómo montar un recurso compartido de Network File System al ejecutar un trabajo de entrenamiento personalizado.

Antes de empezar

  1. Crea un recurso compartido NFS en una nube privada virtual (VPC). El contenido compartido debe ser accesible sin autenticación.

    Puedes usar una instancia de Filestore como recurso compartido de NFS. Si usas Filestore y tienes previsto usar el emparejamiento de VPC para Vertex AI en el siguiente paso, selecciona Acceso a servicios privados como modo de conexión al crear una instancia. Por ejemplo, consulta Crear instancias en la documentación de Filestore.

  2. Para conectar Vertex AI con la VPC que aloja tu recurso compartido de NFS, sigue las instrucciones de Usar la interfaz de Private Service Connect para Vertex AI (opción recomendada) o Configurar el emparejamiento de redes de VPC.

Información del sistema de archivos de red para el entrenamiento personalizado

Cuando creas un trabajo de entrenamiento personalizado que monta un recurso compartido NFS, debes especificar lo siguiente:

  • Nombre de la red a la que debe acceder Vertex AI. La forma de especificar el nombre de la red varía en función del tipo de trabajo de entrenamiento personalizado. Para obtener más información, consulta el artículo Realizar un entrenamiento personalizado.

  • Tu configuración de NFS en el campo WorkerPoolSpec. Incluye los siguientes campos:

    Campo Descripción
    nfsMounts.server La dirección IP de tu servidor NFS. Debe ser una dirección privada de tu VPC.
    nfsMounts.path La ruta del recurso compartido NFS. Debe ser una ruta absoluta que empiece por /.
    nfsMounts.mountPoint Punto de montaje local. Debe ser un nombre de directorio UNIX válido. Por ejemplo, si el punto de montaje local es sourceData, especifica la ruta /mnt/nfs/sourceData desde tu instancia de VM de entrenamiento.

    Para obtener más información, consulta Dónde especificar los recursos de computación.

Ejemplo: crear un trabajo personalizado con la CLI de gcloud

  1. Sigue los pasos que se indican en el artículo Crear una aplicación de entrenamiento de Python para un contenedor prediseñado para crear una aplicación de entrenamiento que se ejecute en Vertex AI.

  2. Crea un archivo llamado config.yaml que describa los ajustes de montaje de la configuración de la interfaz de PSA o Private Service Connect para tu trabajo de entrenamiento. Se debe utilizar uno de los formatos indicados a continuación.

Interfaz de Private Service Connect

  1. Para usar la interfaz de Private Service Connect, sigue estos pasos:

    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
    

    Haz los cambios siguientes:

    • NETWORK_ATTACHMENT_NAME: el nombre de tu adjunto de red.

    • MACHINE_TYPE: identificador del tipo de máquina virtual.

    • PYTHON_PACKAGE_EXECUTOR_IMAGE_URI o PRE_BUILT_CONTAINER_IMAGE_URI: URI de una imagen de contenedor en Artifact Registry que ejecutará el paquete de Python proporcionado. Vertex AI ofrece una amplia gama de imágenes de ejecutores con paquetes preinstalados para satisfacer las necesidades de los usuarios en diferentes casos prácticos.

    • PYTHON_PACKAGE_URIS: lista separada por comas de URIs de Cloud Storage que especifican los archivos de paquetes de Python que componen el programa de entrenamiento y sus paquetes dependientes. El número máximo de URIs de paquetes es 100.

    • PYTHON_MODULE: el nombre del módulo de Python que se va a ejecutar después de instalar los paquetes.

    • NFS_SERVER_IP: la dirección IP de tu servidor NFS.

    • NFS_SHARE_NAME: la ruta del recurso compartido de NFS, que es una ruta absoluta que empieza por /.

    • LOCAL_FOLDER: punto de montaje local (nombre de directorio de UNIX).

    Asegúrate de que el nombre de la red tenga el formato correcto y de que el recurso compartido NFS exista en la red especificada.

  2. Crea tu trabajo personalizado y pasa tu archivo config.yaml al parámetro --config.

    gcloud ai custom-jobs create \
      --region=LOCATION \
      --display-name=JOB_NAME \
      --config=config.yaml
    

    Haz los cambios siguientes:

    • LOCATION: especifica la región en la que quieres crear el trabajo.

    • JOB_NAME: nombre del trabajo personalizado.

Emparejamiento de VPC

  1. Usa el emparejamiento de VPC si quieres que el trabajo use el emparejamiento de VPC o la asignación de direcciones privadas en el trabajo o no.

    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
    

    Haz los cambios siguientes:

    • PROJECT_NUMBER: el ID de proyecto de tu Google Cloud proyecto.

    • NETWORK_NAME: el nombre de tu VPC privada o compartida.

    • MACHINE_TYPE: identificador del tipo de máquina virtual.

    • PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI: URI de una imagen de contenedor de Artifact Registry que ejecutará el paquete de Python proporcionado. Vertex AI ofrece una amplia gama de imágenes de ejecutores con paquetes preinstalados para satisfacer las necesidades de los usuarios en diferentes casos prácticos.

    • PYTHON_PACKAGE_URIS: lista separada por comas de URIs de Cloud Storage que especifican los archivos de paquetes de Python que componen el programa de entrenamiento y sus paquetes dependientes. El número máximo de URIs de paquetes es 100.

    • PYTHON_MODULE: el nombre del módulo de Python que se va a ejecutar después de instalar los paquetes.

    • NFS_SERVER_IP: la dirección IP de tu servidor NFS.

    • NFS_SHARE_NAME: la ruta del recurso compartido de NFS, que es una ruta absoluta que empieza por /.

    • LOCAL_FOLDER: punto de montaje local (nombre de directorio de UNIX).

    Asegúrate de que el nombre de la red tenga el formato correcto y de que el recurso compartido NFS exista en la red especificada.

  2. Crea tu trabajo personalizado y pasa tu archivo config.yaml al parámetro --config.

    gcloud ai custom-jobs create \
      --region=LOCATION \
      --display-name=JOB_NAME \
      --config=config.yaml
    

Haz los cambios siguientes:

  • LOCATION: especifica la región en la que quieres crear el trabajo.

  • JOB_NAME: nombre del trabajo personalizado.

Limitaciones

  • Debes montar el recurso compartido NFS con una dirección IP interna de tu VPC. No se permite usar URLs públicas.

  • Los trabajos de entrenamiento montan recursos compartidos de NFS sin autenticación y fallarán si se requiere un nombre de usuario y una contraseña.

    Para proteger tus datos, define permisos en tu recurso compartido NFS. Si utilizas Filestore, consulta el control de acceso en la documentación de Filestore.

  • No puedes ejecutar dos trabajos de entrenamiento que monten recursos compartidos de NFS de diferentes redes VPC al mismo tiempo. Esto se debe a la restricción de peering de red.