装载 NFS 共享以进行自定义训练

您可以配置自定义训练作业,以将网络文件系统 (NFS) 共享装载到运行代码所在的容器。这允许您的作业访问远程文件,就像它们在本地一样,从而实现高吞吐量和短延时。

本指南介绍了如何在运行自定义训练作业时装载 NFS 共享。

准备工作

  1. Virtual Private Cloud (VPC) 中创建 NFS 共享。您的共享必须无需进行身份验证即可访问。

    您可以将 Filestore 实例用作 NFS 共享。如果您使用的是 Filestore,请在创建实例时选择专用服务访问通道作为连接模式。如需查看示例,请参阅 Filestore 文档中的创建实例部分。

  2. 按照设置 VPC 网络对等互连中的说明,在 Vertex AI 与托管 NFS 共享的 VPC 之间建立对等互连。

用于自定义训练的 NFS 信息

创建自定义训练作业以装载 NFS 共享时,您必须指定以下内容:

  • 供 Vertex AI 访问的网络的名称。指定网络名称的方式取决于自定义训练作业的类型。如需了解详情,请参阅执行自定义训练

  • WorkerPoolSpec 字段中的 NFS 配置。包含下列字段:

    字段 说明
    nfsMounts.server NFS 服务器的 IP 地址。此地址必须是您的 VPC 中的专用地址。
    nfsMounts.path NFS 共享路径。此路径必须是以 / 开头的绝对路径。
    nfsMounts.mountPoint 本地装载点。这必须是有效的 UNIX 目录名称。比方说,如果本地装载点是 sourceData,则指定训练虚拟机实例中的路径 /mnt/nfs/sourceData

    如需了解详情,请参阅在何处指定计算资源

示例:使用 gcloud CLI 创建自定义作业

  1. 按照为预构建容器创建 Python 训练应用中的步骤构建训练应用以在 Vertex AI 上运行。

  2. 创建名为 config.yaml 的文件以描述训练作业的网络和 NFS 装载设置。请使用以下格式:

    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
    

    请替换以下内容:

    • PROJECT_NUMBER:您的 Google Cloud 项目的 ID。

    • NETWORK_NAME:您的不公开 VPC 或共享 VPC 的名称。

    • MACHINE_TYPE:虚拟机类型的标识符。

    • PYTHON_PACKAGE_EXECUTOR_IMAGE_URI or PRE_BUILT_CONTAINER_IMAGE_URI:Artifact Registry 中将运行所提供 Python 软件包的容器映像的 URI。Vertex AI 提供各种预安装软件包的执行程序映像,以满足用户的各种使用场景。

    • PYTHON_PACKAGE_URIS:以英文逗号分隔的 Cloud Storage URI 列表,用于指定构成训练程序及其依赖软件包的 Python 软件包文件。软件包 URI 的数量上限为 100。

    • PYTHON_MODULE:安装软件包后要运行的 Python 模块名称。

    • NFS_SERVER_IP:NFS 服务器的 IP 地址。

    • NFS_SHARE_NAME:NFS 共享路径,是以 / 开头的绝对路径。

    • LOCAL_FOLDER:本地装载点(UNIX 目录名称)。

    确保您的网络名称的格式正确,并且指定的网络中已存在 NFS 共享。

  3. 创建自定义作业并将 config.yaml 文件传递给 --config 参数。

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

    请替换以下内容:

    • LOCATION:指定要在其中创建作业的区域。

    • JOB_NAME:自定义作业的名称。

限制

  • 必须使用 VPC 内部的 IP 地址装载 NFS 共享;不允许使用公开网址。

  • 训练作业在无需身份验证的情况下装载 NFS 共享;如果需要用户名和密码,则无法装载。

    如需保护数据,请在 NFS 共享上设置权限。如果您使用的是 Filestore,请参阅 Filestore 文档中的访问权限控制

  • 您无法同时运行两个训练作业来从不同的 VPC 网络装载 NFS 共享。造成此问题的原因是网络对等互连限制