信息无障碍通道
您的位置:首页>>业界动态

用上 Pytorch Lightning 这六招,深度学习 pipeline 可提速 10 倍

发布时间:2021-10-02 14:09  来源:量子位    背景: 无障碍阅读通道

  面对数以亿计的图片数据,到底该用什么样的方法才能快速搞实验?

  这样的问题,或许在做机器学习研究的你,也会经常遇到。

  而就在最近,一个国外小哥就提出了一种建议:

  在 Pytorch lightning 基础上,让深度学习 pipeline 速度提升 10 倍!

  用他自己的话来说就是 ——“爬楼时像给了你一个电梯”。

  这般“酸爽”,到底是如何做到的呢?

  优化机器学习 pipeline,很重要

  无论你是身处学术界还是工业界,时间和资源等各种因素,往往会成为你在搞实验的枷锁。

  尤其是随着数据集规模和机器学习模型,变得越发庞大和复杂,让实验变得既费时又耗力。

  提速这件事,就变得至关重要。

  例如在 2012 年的时候,训练一个 AlexNet,要花上 5 到 6 天的时间。

  而现如今,只需要短短几分钟就可以在更大的数据集上训练更大的图像模型。

  这位小哥认为,从某种角度上来说,这是得益于各种各样的“利器”的出现。

  例如 Pytorch Lingtning,就是其中一种。

  于是,他便“死磕”pipeline,总结了六种“闪电加速”实验周期的方法。

  并行数据加载

  数据加载和增强(augmentation)往往被认为是训练 pipeline 时的瓶颈之一。

  一个典型的数据 pipeline 包含以下步骤:

  从磁盘加载数据

  在运行过程中创建随机增强

  将每个样本分批整理

  在这个过程中,倒是可以用多个 CPU 进程并行加载数据来优化。

  但与此同时,还可以通过下面的操作来加速这一过程:

  1、将 DataLoader 中的 num_workers 参数设置为 CPU 的数量。

  2、当与 GPU 一起工作时,将 DataLoader 中的 pin_memory 参数设置为 True。这可以将数据分配到页锁定的内存中,从而加快数据传输到 GPU 的速度。

  使用分布式数据并行的多 GPU 训练

  与 CPU 相比,GPU 已经大大加速了训练和推理时间。

  但有没有比一个 GPU 更好的方法?或许答案就是:

  多个 GPU!

  在 PyTorch 中,有几种范式可以用多个 GPU 训练你的模型。

  两个比较常见的范式是“DataParallel”和“DistributedDataParallel”。

  而小哥采用的方法是后者,因为他认为这是一种更可扩展的方法。

  但在 PyTorch(以及其他平台)中修改训练 pipeline 并非易事。

  必须考虑以分布式方式加载数据以及权重、梯度和指标的同步等问题。

  不过,有了 PyTorch Lightning,就可以非常容易地在多个 GPU 上训练 PyTorch 模型,还是几乎不需要修改代码的那种!

  混合精度

  在默认情况下,输入张量以及模型权重是以单精度(float32)定义的。

  然而,某些数学运算可以用半精度(float16)进行。

  这样一来,就可以显著提升速度,并降低了模型的内存带宽,还不会牺牲模型的性能。

  通过在 PyTorch Lightning 中设置混合精度标志(flag),它会在可能的情况下自动使用半精度,而在其他地方保留单精度。

  通过最小的代码修改,模型训练的速度可以提升 1.5 至 2 倍。

  早停法

  当我们训练深度学习神经网络的时候,通常希望能获得最好的泛化性能。

  但是所有的标准深度学习神经网络结构,比如全连接多层感知机都很容易过拟合。

  当网络在训练集上表现越来越好,错误率越来越低的时候,实际上在某一刻,它在测试集的表现已经开始变差。

  因此,早停法 (Early Stopping)便在训练过程中加入了进来。

  具体来说,就是当验证损失在预设的评估次数(在小哥的例子中是 10 次评估)后停止训练。

  这样一来,不仅防止了过拟合的现象,而且还可以在几十个 epoch 内找到最佳模型。

  Sharded Training

  Sharded Training 是基于微软的 ZeRO 研究和 DeepSpeed 库。

  它显著的效果,就是让训练大模型变得可扩展和容易。

  否则,这些模型就不适合在单个 GPU 上使用了。

  而在 Pytorch Lightning 的 1.2 版本中,便加入了对 Shared Training 的支持。

  虽然在小哥的实验过程中,并没有看到训练时间或内存占用方面有任何改善。

  但他认为,这种方法在其它实验中可能会提供帮助,尤其是在不使用单一 GPU 的大模型方面。

  模型评估和推理中的优化

  在模型评估和推理期间,梯度不需要用于模型的前向传递。

  因此,可以将评估代码包裹在一个 torch.no_grad 上下文管理器中。

  这可以防止在前向传递过程中的存储梯度,从而减少内存占用。

  如此一来,就可以将更大的 batch 送入模型,让评估和推理变得更快。

  效果如何?

  介绍了这么多,你肯定想知道上述这些方法,具体起到了怎样的作用。

  小哥为此做了一张表格,详解了方法的加速效果。

  那么这些方法,是否对在做机器学习实验的你有所帮助呢?

  快去试试吧~

  参考链接:

  https://devblog.pytorchlightning.ai/how-we-used-pytorch-lightning-to-make-our-deep-learning-pipeline-10x-faster-731bd7ad318a

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


返回网站首页 本文来源:量子位

本文评论
三星 DeX PC 桌面宣布明年 1 月起停止支持 Windows 7/macOS 系统
11 月 13 日消息,据 SAMMOBILE 报道,三星 DeX 桌面是该公司有史以来最好的生产力软件之一。当连接到更大的显示器(显示器或电视)时,它将你的智能手机或平板电脑软件转化为类似桌面的用户界面 UI。当你把它...
日期:11-13
台积电创始人张忠谋:芯片短缺原因之一是使用方低估需求
11 月 13 日消息,据《经济日报》报道,台积电创始人张忠谋今日在 APEC 经济会议上直言,芯片短缺的原因是使用半导体芯片的一方低估需求,而非制造方。他还表示,自由贸易、自由竞争的市场,是解决芯片短缺或...
日期:11-13
谷歌相机 8.4 版推出:界面微调,闪光灯闪烁倒计时
11 月 13 日消息,据外媒 9to5google 报道,11 月 11 日谷歌相机 Google Camera App 8.4 版本正式推出,为 Pixel 6/Pro 之外的手机带来新功能。
日期:11-13
10月iOS性能榜:124W跑分创新高
M1芯片版本的iPad Pro和A15芯片的iPhone 13系列发布之后,今年的iOS性能榜基本上就可以说已经是尘埃落定了,即使苹果带来了史上最强的M1 Pro和M1 Max,可那又怎么样呢?它又不可能下放到这两个产品线上,所以...
日期:11-13
OPPO 公开安全防护专利,可模拟危险对象的防护对象特征
11 月 13 日消息,昨日,OPPO 广东移动通信有限公司公开了“安全防护方法及装置、介质、电子设备及车辆”专利,公开号为 CN113642111A。
日期:11-13
卢伟冰公开提名天玑2000芯片:Redmi K50系列或配备、性能赶超骁龙898
经历过双11大战之后,各家手机厂商业都迅速回到了正轨,目前已知有多家厂商都已经开始准备新品发布会,推出各档位新手机了。
日期:11-13
小米公开商品购买意图确定专利,可精准定位潜在目标用户
11 月 13 日消息,昨日,北京小米松果电子有限公司、北京小米移动软件有限公司公开了“商品购买意图确定方法、装置、存储介质及电子设备”专利,公开号为 CN113643068A。
日期:11-13
苹果被曝秘密为少数高价值第三方应用购买谷歌搜索广告
11 月 13 日消息,据外媒报道,多家应用发行商爆料称,苹果正在秘密为少数第三方高价值应用购买谷歌搜索广告,借此引导用户浏览苹果应用商店列表而非开发商自己的网站。此举可能损害开发商利益,导致他们损失...
日期:11-13
SK 海力士获得 ISO 26262 汽车半导体芯片安全认证
11 月 12 日消息,根据外媒 techpowerup 报道,韩国企业 SK 海力士于 11 月 11 日获得了 ISO 26262: 2018 FSM 汽车半导体芯片安全认证。这一认证由全球汽车功能安全认证机构 TUV Nord 颁布,两家公司举办了证...
日期:11-12
OPPO Reno 7 通过工信部认证,有望在近期发布
11 月 12 日消息,OPPO Reno 7 以及 7 Pro 新机通过 3C 认证,型号为 PFDM00 和 PFJM10,采用 65W 快充。
日期:11-12
全球首款 4nm 手机芯片:联发科天玑 2000 平台 vivo 新机曝光,安兔兔跑分突破一百万
11 月 12 日消息,联发科方面近日开始预告,全新的旗舰芯片组天玑 2000 SoC 即将到来,基于 4nm 工艺,也是全球首款 4nm 的手机芯片,或成为台积电 4nm 首发新品。
日期:11-12
消息称联电计划 2022 年一季度将代工报价再度上调 10%
11 月 12 日消息,IC 设计业内消息人士称,联电计划从 2022 年第一季度起,将代工报价再度上调 10%,新报价将适用于其前三大客户的订单,过去的一年,上述客户由于提前锁定长单,而免于联电的多次涨价。
日期:11-12
Unity 与 LG U + 签署合作意向书,将打造办公区元宇宙
11 月 12 日消息,Unity 韩国近日宣布与 LG U+ 达成商业协议(MOU),就元宇宙技术展开合作。
日期:11-12
英特尔与中科院计算所宣布结成战略合作伙伴,共建中国首个 oneAPI 卓越中心
11 月 12 日消息,第三届中国超级算力大会(ChinaSC 2021)今日以“线上 + 线下”形式在京召开。会上,中国计算机学会高性能计算专业委员会(以下简称 CCF 高专委)还发布了 2021 中国高性能计算机性能...
日期:11-12
消息称三星电机将供货苹果 M1 芯片用 FC-BGA 封装基板
11 月 12 日消息,据 TheElec 报道,自去年以来,三星电机一直在向苹果公司提供倒装芯片球栅阵列(FC-BGA)封装,供其在 M1 芯片上使用。
日期:11-12
台积电加速全球扩张,可能将削弱其高毛利优势
全球最大的芯片制造商台积电正在加速全球扩张。
  11 月 11 日,索尼半导体解决方案和台积电联合宣布,台积电将在日本熊本县设立子公司日本先进半导体制造公司,将提供 22nm 和 28nm 工艺的初始技术。...
日期:11-12
不再谷歌 Pixel 系列独享,其它厂商手机有望用上 Android 12 动态颜色主题功能
11 月 12 日消息,XDA 论坛主编 Mishaal Rahman 今日在 Twitter 上发推称,Monet(原生 Android 12 里的壁纸主题系统)的源代码将会伴随新系统 Android 12L 一起发布,但基于 Material 组成库(Material Compone...
日期:11-12
支持 5G:华为 Mate X2 折叠屏旗舰手机开放购买
今年 2 月,华为正式发布了 Mate X2 全新折叠屏手机。搭载 8GB 内存,256GB 售价 17999 元,512GB 售价 18999 元。
日期:11-12
英特尔 12 代酷睿 65W 型号参数规格曝光:i9-12900 16 核 24 线程,最高 5.1GHz
11 月 12 日消息,英特尔现已推出了 12 代酷睿 125W K 系列可超频处理器,65W 的不可超频系列暂未发布。爆料者 Momomo_US 现在曝光了 12 代酷睿 65W 型号的参数规格,共六款。
日期:11-12
SK海力士首秀HBM3内存:轻松堆叠288GB
SK海力士日前宣布,已经全球首家研发成功新一代HBM3内存,单颗容量16/24GB,内部堆叠多达12颗芯片,而厚度只相当于A4纸的三分之一,带宽则高达819GB/s,还支持ECC。
日期:11-12
  专栏介绍
科技说 的专栏
科技说发表的文章