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

    文章

    7002

    浏览量

    88941
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4729

    浏览量

    128890
  • 亚马逊
    +关注

    关注

    8

    文章

    2650

    浏览量

    83316
  • pytorch
    +关注

    关注

    2

    文章

    807

    浏览量

    13200
收藏 人收藏

    评论

    相关推荐

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

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

    Spartan-6器件的可用性

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

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

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

    评估高可用性机制

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

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

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

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

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

    各种机架电源冗余配置的可用性比较

    转换开关 和IT设备双路配电用于提高计算系统的可用性。统计可用性分析技术表明,各种常用方法预期的可用性大不相同。本白皮书介绍为了在当今任务关键环境中实现冗余而采用的各
    发表于 08-08 17:07 24次下载
    各种机架电源冗余配置的<b class='flag-5'>可用性</b>比较

    云计算平台对PACS的高可用性支持

    介绍了云计算平台对PACS的高可用性支持,云计算平台通过强大的资源配置、动态扩展以及对虚拟服务器的高效的备份恢复能力,提高了PACS的高可用性、高可靠,降低了维护的压力,提高了资源利用率。通过
    发表于 01-04 14:55 0次下载

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

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

    如何提高UPS系统的可靠可用性

    如何提高UPS系统的可靠可用性
    发表于 09-11 11:20 2次下载
    如何提高UPS系统的可靠<b class='flag-5'>性</b>和<b class='flag-5'>可用性</b>

    UPS系统的可用性进行内部设计分析

    本文对UPS内部设计,UPS系统以及配电系统的可用性进行分析,给出了提升UPS电源系统可用性的思路。通过分析结果可以发现在UPS中采用旁路与市电独立的电源,加入多CPU监控,加入电池监控等措施可以
    发表于 12-07 05:57 2094次阅读
    UPS系统的<b class='flag-5'>可用性</b>进行内部设计分析

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

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

    如何使用马尔可夫链与服务质量提高网络可用性性能模型说明

    针对网络可用性在不同网络业务中的服务质量( QoS)存在差异,且与性能花费相互制约的问题,引入了马尔可夫链理论,在定义了基于业务开销最小的服务能力匹配度的基础上构建了基于马尔可夫链和QoS指标的网络
    发表于 12-19 14:53 4次下载
    如何使用马尔可夫链与服务质量提高网络<b class='flag-5'>可用性</b>的<b class='flag-5'>性能</b>模型说明

    使用Arduino获取疫苗可用性

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

    性能电机控制应用的电流反馈系统中的相关可用性

    电子发烧友网站提供《高性能电机控制应用的电流反馈系统中的相关可用性.pdf》资料免费下载
    发表于 11-29 10:17 0次下载
    高<b class='flag-5'>性能</b>电机控制应用的电流反馈系统中的相关<b class='flag-5'>性</b>与<b class='flag-5'>可用性</b>