全部产品
Search
文档中心

人工智能平台 PAI:DSW挂载配置

更新时间:Oct 28, 2024

在DSW中挂载数据集或直接挂载OSS路径,可以在云端环境中便捷地访问和处理数据,方便多用户间的数据共享和协作,简化数据管理和维护,以及确保数据的一致性和实时性。本文为您介绍DSW挂载配置。

背景信息

系统为使用公共资源组创建的DSW实例提供一定存储空间的云盘,用于持久化存储。如果该实例停机超过15天未开机,云盘的内容将被清空。而使用专有资源组创建的DSW实例则提供非持久化的本地存储。如果您需要持久化存储DSW数据,需要创建NAS、OSS或CPFS类型的数据集,并将数据集挂载到DSW指定的路径,以实现在DSW中读写数据集数据。

挂载模式

DSW的挂载项不同,支持的挂载模式不同,详情请参见下表。

挂载项

支持的挂载模式

挂载自定义数据集

非OSS类型数据集

无挂载模式。

OSS类型数据集

支持默认配置和自定义配置。

  • 默认配置:Jindo配置保持为空,表示使用默认的挂载配置。

  • 自定义配置:单击展开Jindo配置,自行配置Jindo属性和参数。

挂载公共数据集

挂载OSS路径

本文提供部分场景的Jindo配置建议,并未覆盖所有场景下的最优性能。更灵活的配置,请参见JindoFuse使用指南

  • 快速读写:允许用户读写,读取速度快,但并发读写可能会出现数据不一致的问题,适合挂载训练数据和模型,不适合作为工作目录。

    {
      "fs.oss.download.thread.concurrency": "cpu核数2倍",
      "fs.oss.upload.thread.concurrency": "cpu核数2倍",
      "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink"
    }
    
  • 增量读写:在增量写入时能够保证数据一致性,覆盖原有数据会有一致性问题。读取速度略慢,适合保存训练的模型权重文件。

    {
      "fs.oss.upload.thread.concurrency": "cpu核数2倍",
      "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink"
    }
    
  • 读写一致:在并发读写中能保持数据一致性,适用于对数据一致性要求高,可以容忍读取速度慢的场景,适合保存代码项目。

    {
      "fs.jindo.args": "-oattr_timeout=0 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink"
    }
    
  • 只读:仅允许读取,不允许写入,适合挂载公共数据集。

    {
      "fs.oss.download.thread.concurrency": "cpu核数2倍",
      "fs.jindo.args": "-oro -oattr_timeout=7200 -oentry_timeout=7200 -onegative_timeout=7200 -okernel_cache -ono_symlink"
    }

使用限制

  • 多个数据集挂载的路径不能重复。

  • 在OSS挂载的目录下,不建议进行频繁的写操作。

挂载自定义数据集

步骤一:创建数据集

AI资产管理>数据集页面创建自定义数据集。由于DSW只能挂载目录,不能挂载文件,因此,属性只能选择文件夹

具体操作,请参见创建及管理数据集

步骤二:挂载数据集

模型开发与训练>交互式建模(DSW)页面创建DSW实例,或变更已有DSW实例配置。其中,数据集选择已创建的自定义数据集,挂载路径挂载模式按需配置。

其他参数详情,请参见创建DSW实例

说明
  • 如果配置了CPFS类型的数据集,需要设置网络配置,且选择的专有网络需要与CPFS一致。否则,DSW实例可能会创建失败。

  • 如果配置了NAS类型的数据集,需要设置网络配置,选择安全组。

  • 当资源组选择专有资源组时,因为OSS对fuse接口的支持不如NAS完善,DSW限制第一个数据集必须选择NAS类型数据集,并且该数据集会同时挂载到您指定的路径和DSW默认工作目录/home/admin/workspace下。

挂载公共数据集

步骤一:创建数据集

AI资产管理>数据集页面创建公共数据集。具体操作,请参见创建数据集:公共数据集

步骤二:挂载数据集

模型开发与训练>交互式建模(DSW)页面创建DSW实例,或变更已有DSW实例配置。其中,数据集选择已创建的公共数据集,挂载路径挂载模式按需配置。

其他参数详情,请参见创建DSW实例

挂载OSS路径

步骤一:创建OSS Bucket

开通OSS服务创建Bucket

说明

Bucket所属地域与PAI的地域一致。Bucket一旦创建,则无法更改其所属地域。

步骤二:挂载OSS路径

模型开发与训练>交互式建模(DSW)页面创建DSW实例,或变更已有DSW实例配置。其中,在挂载配置区域,OSS选择已创建的OSS Bucket路径,挂载路径挂载模式按需配置。

其他参数详情,请参见创建DSW实例

动态挂载

模型开发与训练>交互式建模(DSW)页面创建并打开DSW实例,在实例中自行编写代码挂载数据集。

步骤一:准备工作

  • 模型开发与训练>交互式建模(DSW)页面创建DSW实例,在DSW实例执行如下命令,安装PAI Python SDK。

    python -m pip install pai>=0.4.11
  • 通过以下两种方式中的任意一种,配置SDK访问PAI的密钥:

    • 方式一:配置DSW实例的PAI默认角色或自定义RAM角色,实例内包含访问密钥。具体操作,请参见配置DSW实例RAM角色

    • 方式二:手动通过PAI Python SDK提供的命令行工具完成配置。

步骤二:挂载数据集

通过动态挂载功能,您无需重启配置DSW实例,即可将指定的OSS Bucket目录直接挂载到实例内,实现在实例内通过读写本地文件的方式访问OSS数据。可参考如下使用示例:

  • 配置挂载OSS Bucket

    相应的数据会被挂载到实例内的默认挂载路径下。

    from pai.dsw import mount
    
    mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/")
    
  • 配置挂载到指定路径

    动态挂载功能目前需要将数据挂载到容器内的指定路径(或是相应的子路径下),可以通过SDK提供的API获取动态挂载路径。

    from pai.dsw import mount, default_dynamic_mount_point
    
    # 获取实例的默认挂载路径
    default_path = default_dynamic_mount_path()
    
    mount_point = mount("oss://<YourBucketName>/Path/Data/Directory", mount_point=default_path + "tmp/output/model")
    
  • 卸载挂载数据

    
    from pai.dsw import unmount
    
    mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/")
    
    unmount(mount_point)
  • 查看当前实例内的所有挂载数据配置

    
    from pai.dsw import list_dataset_configs
    
    print(list_dataset_configs())
    
  • 配置挂载选项

    DSW基于JindoFuse挂载,您可以针对自己不同的读写场景,配置符合需求的挂载参数。

    from pai.dsw import mount, OptionType
    
    # 使用默认的挂载配置模版
    mount("oss://<YourBucket>/path/to/data/", option_type=OptionType.FastReadWrite)
    
    # 使用JindoFuse的挂载配置参数
    mount("oss://<YourBucket>/path/to/data/", options={
                "fs.oss.download.thread.concurrency": "8",
                "fs.oss.upload.thread.concurrency": "8",
                "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink"
            }))
    

查看挂载配置

  1. 单击目标DSW实例操作列下的打开

  2. 在DSW实例页面的顶部菜单栏中,单击Terminal页签。然后按照操作指引打开Terminal。

  3. Terminal中,输入以下命令,查看NAS及OSS类型的数据集是否挂载成功。

    #查询NAS挂载路径
    mount | grep nas
    #查询OSS挂载路径
    mount | grep oss

    系统输出如下返回结果,说明数据集已成功挂载。挂载路径

    • NAS数据集已挂载到/mnt/data_nas/mnt/workspace/home/admin/workspace目录。其中,/mnt/data_nas为创建DSW实例时指定的挂载路径,后两个路径为配置第一个NAS数据集时,被挂载的DSW的默认工作目录。后续只要您的NAS盘和服务正常运行,数据和代码就可以持久化存储。

    • OSS数据集挂载到DSW的/mnt/data_oss目录。