装载网络文件系统共享

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

本指南介绍如何在运行自定义训练作业时装载网络文件系统共享。

准备工作

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

    您可以将 Filestore 实例用作 NFS 共享。如果您使用的是 Filestore,并且计划在下一步中将 VPC 对等互连用于 Vertex AI,请在创建实例时选择专用服务访问通道作为连接模式。如需查看示例,请参阅 Filestore 文档中的创建实例部分。

  2. 如需将 Vertex AI 与托管 NFS 共享的 VPC 连接,请按照将 Private Service Connect 接口用于 Vertex AI(推荐)或设置 VPC 网络对等互连中的说明操作。

用于自定义训练的网络文件系统信息

创建自定义训练作业以装载 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 的文件,用于描述训练作业的 PSA 或 Private Service Connect 接口配置装载设置。请采用以下某种格式:

Private Service Connect 接口

  1. 如需使用 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
    

    替换以下内容:

    • NETWORK_ATTACHMENT_NAME:网络连接的名称。

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

    • PYTHON_PACKAGE_EXECUTOR_IMAGE_URIPRE_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 共享。

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

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

    请替换以下内容:

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

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

VPC 对等互连

  1. 如果您希望作业对作业使用 VPC 对等互连/PSA,请使用 VPC 对等互连。

    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 共享。

  2. 创建自定义作业并将 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 共享。造成此问题的原因是网络对等互连限制