0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PyTorch IO DataPipes可用性、性能和功能

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-09-04 16:22 次阅读

培训大型深层学习模式需要大型数据集。亚马逊简单存储服务(Amazon S3)是用于储存大型培训数据集的可缩放云点存储服务。 机器学习(ML)实践者需要高效的数据管道,能够从亚马逊S3下载数据,转换数据,并将数据输入GPU,用于高输送量和低潜伏度的培训模式。

我们在此为皮托尔奇推出新的S3 IO DataPipes(S3 IO DataPipes),s3 文件列表器和s3 文件加载器为了提高记忆效率和快速运行,新的数据平台使用C扩展号访问亚马逊S3基准显示:s3 文件加载器速度为59.8%ffspepefile 打开器用于下载亚马逊S3的自然语言处理(NLP)数据集。电子数据管道我们还表明,新的数据平台可以将贝尔特和ResNet50培训时间总体减少7%。

概览

亚马逊 S3 是一个可缩放的云存储服务系统,没有数据数量限制。 从亚马逊 S3 上载数据并将数据输入高性能的 GPU, 如 NVIDIA A100 等高性能的 GPU, 可能具有挑战性。 它需要高效的数据管道, 能够满足 GPU 的数据处理速度 。 为此, 我们为 PyTorrch 发布了一个新的高性能工具: S3 IO DataPipes 。 DataPipes 从参考文献数据库 参考文献数据库,以便他们能与宜用数据排气管接口开发者可以快速建立数据平台 DAG, 以获取、转换和操作数据,并使用打乱、分割和批量功能。

新的 DataPipes 设计成文件格式的不可知性,亚马逊 S3 数据作为二进制大型对象( BLOBs) 下载。它可以用作可合成的构件块,用于组装一个DataPipe 图表,该图可以将表格、NLP和计算机视觉(CV)数据装入培训管道。

在引擎盖下,新的S3 IO DataPipes使用一个与 AWS C SDK 的 C S3 处理器。 一般来说, C 的安装比 Python 更能提高内存效率,并且与 Python 相比, C 的 CPU 核心使用( 没有全球解释器锁 ) 更好。 新的 C S3 IO DataPipes 被推荐在培训大型深层学习模型时使用高输送量、低潜伏数据。

新的S3 IO DataPipes提供两个头等公民API:

s3 文件列表器- 可在给定的 S3 前缀内列出 S3 文件 URL。 此 API 的功能名称是列表文件_by_s3.

s3 文件加载器- 从给定的 S3 前缀装入 S3 文件的可使用性。 此 API 的功能名称是负载文件_by_s3.

使用量

在本节中,我们为使用新的S3 IO DataPipes提供指导。负载_ files_by_s3 ().

从源构建

新建的 S3 IO DataPipes 使用 C 扩展名。 它被嵌入点火数据选项卡。但是,如果新的数据提示在环境中不可用,例如 Conda 上的 Windows,您需要从源构建。如果需要更多信息,请参见可迭接数据管道.

配置

亚马逊 S3 支持全球水桶。然而,在区域内创建一个水桶。您可以通过使用__init___()或者,您也可以导出 AWS_ REGION =us- 西向 2外壳或设置环境变量[AWS_REGION] =“我们一号” =“我们一号”在你的代码。

要在水桶中阅读无法公开查阅的物品,您必须通过下列方法之一提供AWS证书:

安装和配置排AWS 命令行界面(AWS CLLI)和(AWS CLLI)AWS 配置

设置当地系统AWS 认证档案档案中的全权证书。~/.锯/证书在 Linux, macOS 或 Unix 上

设定aws_ access_keey_id 访问器和aws_ secret_ access_keys 密钥环境变量

如果您使用这个图书馆亚马逊(Amazon EC2)实例,具体说明AWS 身份和准入管理(IMM)作用,然后让EC2实例有机会发挥这种作用

示例代码

下面的代码片断提供了一种典型的用法负载_ files_by_s3 ():

从 rch.utils. data 导入来自 rchdata. dataloader 从 rchdata. datapipops. iter 导入 IterableWrapper s3_shard_urls = IterableWrapper ([“s3://bucket/prefix/] ]).列表文件_by_s3 () s3_shards = s3_shard_urls.负载文件_by_s3 ()

基准基准基准

在本节中,我们展示新的数据平台如何能够减少Bert和ResNet50的总体培训时间。

对照FSSpec的孤立数据 Loader 业绩评价

ffspepefile 打开器是另一个 PyTollch S3 DataPipe 。它使用体核和传真/传真: http/ asyncioS3 数据访问 S3 数据。 以下是性能测试设置和结果(引自本地ASWDK与基于数据平台的FSspec(boto3)之间的业绩比较).

测试中的 S3 数据是一个碎片化的文本数据集。 每个碎片有大约10万条线, 每条线约为1.6 KB, 使每条碎片大约156 MB。 本基准中的测量量平均超过1,000 批。 没有进行打乱、 取样或变换 。

下图的图表汇报了以下表格中各种批量规模的通过量比较。num_工人=0,数据装载器在主过程中运行。s3 文件加载器每秒(QPS)的查询量较高(QPS),比(QPS)高90%。纤维分批体积为512。

wKgaomTv91uAcsskAADGcELXm6k332.png

下图图表汇报了以下各项结果:num_工人=4,数据装载器运行在主进程。s3 文件加载器高于59.8%纤维分批体积为512。

wKgaomTv91-AZlvAAADBaVc7gKY731.png

打击Boto3的训练ResNet50模式

在下图中,我们培训了RESNet50模型,该模型由4p3.16x大案例组成,总共32个GPUs。培训数据集是图像网络,有120万张图像,以1 000张图像碎片组成。培训批量尺寸为64。培训时间以秒计。对于8个时代,培训时间以8个时代计。s3 文件加载器比Boto3还快7.5%。

wKgZomTv94OAOTytAABnObU-TXg736.png

a 与Boto3相比的Bert培训模式

对于以下的马车,我们训练了一个Bert模型,在总共32个GPU的4 p3.16x大案例群中,共有1 474个文件。每个文件有大约15万个样本。要运行一个较短的时代,我们每个文件使用0.05%(大约75个样本)。批量大小为2 048,培训时间以秒计。对于一个时代,我们用0.5 % (大约75个样本)来测量。s3 文件加载器比Boto3还快7%

wKgaomTv94iAdv4hAACA3HTk0eE769.png

与原始 PyTorrch S3 插件的比较

新的PyTollch S3 DataPipes 运行比原运行要好得多PyTork S3 插件我们调整了内部缓冲大小s3 文件加载器。装载时间以秒计。

10个散乱的猜谜文件(每个约1.5GB),s3 文件加载器在我们的实验中 速度是3.5倍

最佳做法

培训大型深层学习模型可能需要一个包含数十个甚至数百个节点的大规模计算组。 集群中的每个节点都可能产生大量数据装载请求,这些请求会击中特定的 S3 碎片。 为了避免油门,我们建议在 S3 桶和 S3 文件夹上分割培训数据。

wKgZomTv96GAGPVZAACDuqMPk2g694.png

为了取得良好的业绩,它有助于拥有足够大的文件大小,足以在特定文件上平行,但并不大,以致于我们根据培训工作,在亚马逊S3上达到该物体的输送量极限。 最佳规模可能介于50-200 MB之间。

六. 结论和下一步措施

在此文章中,我们向您介绍了新的PyTorch IO DataPipes。新的 DataPipes 使用aws-sdk-cpp 缩略语并显示与基于 Boto3 的数据装载器相比的性能较好。

对于今后的步骤,我们计划改进可用性、性能和功能,侧重于以下特点:

S3授权,由IAM担任- 目前,S3 DataPipes支持明确的准入证书、案例简介和S3桶政策。 但是,有些使用案例更偏爱IMA角色。

双重缓冲- 我们计划提供双重缓冲 支持多工人下载

本地缓存- 我们计划使示范培训能够穿行培训数据集以通过多个传球。 第一个时代之后的本地缓冲可以缩短亚马逊三世的飞行延误时间,这可以大大加快随后时代的数据检索时间。

可定制配置- 我们计划披露更多参数,如内部缓冲大小、多部分块大小、执行人计数等,让用户进一步调整数据装载效率。

亚马逊 S3 上传- 我们计划扩大S3 DataPipes, 支持上传检查。

与 Fspec 合并 – 纤维用于其他系统,例如irch. save ()我们可以将新的 S3 数据 PDataPipes 与纤维这样他们就可以有更多的使用案例。

审核编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6514

    浏览量

    87609
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4424

    浏览量

    126724
  • 亚马逊
    +关注

    关注

    8

    文章

    2480

    浏览量

    82382
  • pytorch
    +关注

    关注

    2

    文章

    763

    浏览量

    12836
收藏 人收藏

    评论

    相关推荐

    企业服务器网络的可用性设计

    企业服务器网络的可用性设计 随着企业信息系统的集中化和虚拟化,作为企业连接服务器和企业网络主干的服务器群网络必须具有高性能、可扩展性和高可用性,能满足不断增长的企业服务器群规模
    发表于 04-29 11:09

    一起来学习《尼尔森的十大可用性原则》

    在全球范围内得到认可的专有调查产品和方法,为客户提供最有力的可比标准化数据。下面就让我们一起来学习下尼尔森的十大可用性原则:一、状态可见原则用户在网页上的任何操作,不论是单击、滚动还是按下键盘,页面
    发表于 10-12 11:59

    可用性无缝冗余以太网通信解决方案

    描述此参考设计可实现高可靠、低延迟网络通信解决方案,适用于智能电网传输和分配网络中的变电站自动化设备。它支持 IEC 62439 标准中的高可用性无缝冗余 (HSR) 规范。此解决方案是 FPGA
    发表于 10-16 19:24

    Spartan-6器件的可用性

    有谁知道更多关于Spartan-6 XC6SLX150的可用性?我知道周围有工程样品,但我无法获得最终商业版的任何交货时间。谢谢,罗伯特以上来自于谷歌翻译以下为原文Anyone knows more
    发表于 05-24 13:15

    YARN群集高可用性配置和验证

    FlinkYarn 模式高可用性配置
    发表于 06-21 16:45

    保护和监控高可用性系统中的热插拔卡

    DN360- 保护和监控高可用性系统中的热插拔卡
    发表于 07-25 06:59

    评估高可用性机制

    评估高可用性机制
    发表于 09-27 06:31

    评估高可用性机制白皮书

    评估高可用性机制(白皮书)
    发表于 10-10 09:09

    怎样实现高可用性系统的热插拔和加电顺序保护?

    如何利用PLD去实现高可用性系统的热插拔和加电顺序保护?
    发表于 04-28 06:40

    STmicro如何解决STM32 MCU估计可用性的问题

    众所周知,STM32 MCU 在全球范围内短缺,而且分销商甚至都没有尝试估计可用性。STmicro 如何解决这个问题?
    发表于 12-01 06:06

    基于可用性模型的志愿计算

    对志愿提供空闲计算资源为目的的高性能计算技术来说,资源提供者的可用性在一定范围内具有规律性和周期性。该文介绍用Hurst 重标度和分形学理论分析CPU 可用序列的方法,并应
    发表于 03-28 08:52 21次下载

    UPS拓扑结构对供电系统高可用性的影响

      USP供电系统的“高可用性”要求其系统必须具备可靠性、功能性、可维护性和容错性四个要素,而UPS内部拓扑结构对系统的可靠性和功能性起着决定作用。可用性的关键要素
    发表于 09-08 12:04 1077次阅读

    基于CMDB的业务可用性评估_黄波

    基于CMDB的业务可用性评估_黄波
    发表于 03-19 11:33 0次下载

    如何确保冗余云存储的可用性

    正如高可用性和灵活性是本地存储应用的重要性能要素一样,这两个性能指标对于使用云存储服务的组织也是同等重要的。
    的头像 发表于 06-27 10:35 3807次阅读

    使用Arduino获取疫苗可用性

    电子发烧友网站提供《使用Arduino获取疫苗可用性.zip》资料免费下载
    发表于 11-15 10:04 0次下载
    使用Arduino获取疫苗<b class='flag-5'>可用性</b>