使用OSS Connector for AI/ML实现在PyTorch训练任务中访问和存储OSS数据

OSS Connector for AI/ML是一个用于在PyTorch训练任务中高效访问和存储OSS数据的Python库。

功能优势

对比项

不使用OSS Connector for AI/ML

使用OSS Connector for AI/ML

性能

手动优化性能,效率可能低下

自动优化OSS数据下载及检查点保存性能

数据加载方式

需提前下载数据,增加成本和管理负担

支持流式加载,降低成本和管理复杂度

数据访问

通过转接器读写,增加复杂度

直接从OSS读写,简化流程

配置难度

需编写复杂代码管理,配置困难

提供简单配置,提高开发效率

工作原理

通过OSS Connector for AI/ML使用OSS中的数据进行PyTorch训练的过程如下图所示:

image

功能特性

OSS Connector for AI/ML主要功能如下表所示:

功能点

特性

关联类

方法

映射式数据集

适合随机访问,方便在训练过程中快速获取特定数据。

OssMapDataset

OssMapDatasetOssIterableDataset所提供方法相同,如下所示:

  • from_prefix()

    使用OSS_URI前缀构建数据集,适用于OSS存储路径具有统一规律的场景。

  • from_objects()

    使用OSS_URI的列表数据集,适用于OSS存储路径位置明确但分散的场景。

  • from_manifest_file()

    使用清单文件构建数据集,适用于数据集文件数量大(如千万级)且有重复加载数据集需求,以及已开通数据索引OSS功能的Bucket。

可迭代式数据集

适合流式顺序访问,能够高效地处理大量连续的数据流。

OssIterableDataset

检查点接口

在模型训练时从OSS中加载检查点,并且在周期性模型训练结束后可以直接将检查点保存至OSS。简化了工作流程。

OssCheckpoint

  • OssCheckpoint()

    初始化OssCheckpoint对象,用于在模型训练过程中读写检查点。

  • reader()

    OssCheckpoint对象方法,用于从OSS中读取检查点。

  • writer()

    OssCheckpoint对象方法,用于将检查点写入OSS中。

使用流程

实践教程

  • 如果您想快速学习如何在PyTorch中使用OSS数据进行模型训练,并将训练结果保存至OSS,我们为您提供了一个使用OSS Connector for AI/ML完成手写数字识别模型训练的Demo。详情请参见OSS Connector for AI/ML快速入门

  • 如果您需要进一步提升OSS Connector for AI/ML的性能,建议您使用OSS加速器域名而不是默认的OSS内网域名。关于使用OSS内网域名与OSS加速器域名之间的OSS Connector for AI/ML性能对比,请参见性能测试

  • 如果您要在容器环境中使用OSS Connector for AI/ML,您可以使用含有OSS Connector for AI/ML的Docker镜像。如何构建镜像,请参见构建含有OSS Connector for AI/ML环境的Docker镜像