使用PyTorch 2.0 加速Hugging Face和TIMM库的模型

2022-12-25 22:39:30

点蓝色字关注“机器学习算法工程师”


【资料图】

设为星标,干货直达!

PyTorch 2.0引入了**torch.compile()**来加速模型,这篇文章我们将介绍如何使用**torch.compile()**来加速Hugging Face和TIMM库的模型。

torch.compile() 使得尝试不同的编译器后端变得容易,从而使用单行装饰器 torch.compile() 使 PyTorch 代码更快。它可以直接在 nn.Module 上工作,作为 torch.jit.script() 的直接替代品,但不需要您进行任何源代码更改。我们希望这一行代码更改能够为您已经运行的绝大多数模型提供 30%-2 倍的训练时间加速。

opt_module=torch.compile(module)

torch.compile 支持任意 PyTorch 代码、控制流、变异,并带有对动态形状的实验性支持。我们对这一发展感到非常兴奋,我们将其称为 PyTorch 2.0。

这个版本对我们来说不同的是,我们已经对一些最流行的开源 PyTorch 模型进行了基准测试,并获得了 30% 到 2 倍的大幅加速(见https://github.com/pytorch/torchdynamo/issues/681) 。

这里没有技巧,我们已经 pip 安装了流行的库,比如https://github.com/huggingface/transformers, https://github.com/huggingface/accelerate 和 https://github.com/rwightman/pytorch-image-models等流行的库,然后对它们运行 torch.compile() 就可以了。

很难同时获得性能和便利性,但这就是核心团队发现 PyTorch 2.0 如此令人兴奋的原因。Hugging Face 团队也很兴奋,用他们的话说:

TIMM 的主要维护者 Ross Wightman:“PT 2.0 开箱即用,适用于推理和训练工作负载的大多数 timm 模型,无需更改代码。”

Sylvain Gugger 是 transformers 和 accelerate 的主要维护者:“只需添加一行代码,PyTorch 2.0 就可以在训练 Transformers 模型时提供 1.5 到 2.x 的加速。这是引入混合精度训练以来最激动人心的事情!”

本教程将向您展示如何使用这些加速,这样您就可以像我们一样对 PyTorch 2.0 感到兴奋。

安装教程

对于 GPU(新一代 GPU 的性能会大大提高):

pip3installnumpy--pretorch--force-reinstall--extra-index-urlhttps://download.pytorch.org/whl/nightly/cu117

对于CPU:

pip3install--pretorch--extra-index-urlhttps://download.pytorch.org/whl/nightly/cpu

当安装好后,你可以通过以下方式来进行验证:

gitclonehttps://github.com/pytorch/pytorchcdtools/dynamopythonverify_dynamo.py

另外一种安装方式是采用docker,我们还在 PyTorch nightly 二进制文件中提供了所有必需的依赖项,您可以使用它们下载:

dockerpullghcr.io/pytorch/pytorch-nightly

对于临时实验,只需确保您的容器可以访问所有 GPU:

dockerrun--gpusall-itghcr.io/pytorch/pytorch-nightly:latest/bin/bash

使用教程

让我们从一个简单的例子开始,一步步把事情复杂化。请注意,您的 GPU 越新,您可能会看到更显着的加速。

importtorchdeffn(x,y):a=torch.sin(x).cuda()b=torch.sin(y).cuda()returna+bnew_fn=torch.compile(fn,backend="inductor")input_tensor=torch.randn(10000).to(device="cuda:0")a=new_fn()

这个例子实际上不会运行得更快,但它具有教育意义。

以 torch.cos() 和 torch.sin() 为特色的示例,它们是逐点操作的示例,因为它们在向量上逐个元素地进行操作。你可能真正想要使用的一个更著名的逐点运算是类似 torch.relu() 的东西。eager模式下的逐点操作不是最优的,因为每个操作都需要从内存中读取一个张量,进行一些更改,然后写回这些更改。

PyTorch 2.0 为您所做的最重要的优化是融合。

回到我们的示例,我们可以将 2 次读取和 2 次写入变成 1 次读取和 1 次写入,这对于较新的 GPU 来说尤其重要,因为瓶颈是内存带宽(您可以多快地向 GPU 发送数据)而不是计算(您的速度有多快) GPU 可以处理浮点运算)。

PyTorch 2.0 为您做的第二个最重要的优化是 CUDA graphs。CUDA graphs有助于消除从 python 程序启动单个内核的开销。

torch.compile() 支持许多不同的后端,但我们特别兴奋的一个是生成 Triton 内核(https://github.com/openai/triton,用 Python 编写的,但性能优于绝大多数手写的 CUDA 内核)的 Inductor。假设我们上面的示例名为 trig.py,我们实际上可以通过运行来检查代码生成的 triton 内核:

TORCHINDUCTOR_TRACE=1pythontrig.py

@pointwise(size_hints=[16384],filename=__file__,meta={"signature":{0:"*fp32",1:"*fp32",2:"i32"},"device":0,"constants":{},"configs":[instance_descriptor(divisible_by_16=(0,1,2),equal_to_1=())]})@triton.jitdefkernel(in_ptr0,out_ptr0,xnumel,XBLOCK:tl.constexpr):xnumel=10000xoffset=tl.program_id(0)*XBLOCKxindex=xoffset+tl.reshape(tl.arange(0,XBLOCK),[XBLOCK])xmask=xindex

你可以验证融合这两个 sins 确实发生了,因为这两个 sin 操作发生在一个单一的 Triton 内核中,并且临时变量保存在寄存器中,可以非常快速地访问。

下一步,让我们尝试一个真实的模型,比如来自 PyTorch hub 的 resnet50。

importtorchmodel=torch.hub.load("pytorch/vision:v0.10.0","resnet18",pretrained=True)opt_model=torch.compile(model,backend="inductor")model(torch.randn(1,3,64,64))

如果您实际运行,您可能会惊讶于第一次运行很慢,那是因为正在编译模型。后续运行会更快,因此在开始对模型进行基准测试之前预热模型是常见的做法。

您可能已经注意到我们如何在此处使用“inductor”显式传递编译器的名称,但它不是唯一可用的后端,您可以在 torch._dynamo.list_backends() 中运行以查看可用后端的完整列表。为了好玩,您应该尝试 aot_cudagraphs 或 nvfuser。

现在让我们做一些更有趣的事情,我们的社区经常使用来自 transformers (https://github.com/huggingface/transformers) 或 TIMM (https://github.com/rwightman/pytorch-image-models)的预训练模型和我们的设计之一PyTorch 2.0 的目标是任何新的编译器堆栈都需要开箱即用,可以与人们实际运行的绝大多数模型一起工作。因此,我们将直接从 Hugging Face hub 下载预训练模型并对其进行优化。

importtorchfromtransformersimportBertTokenizer,BertModel#Copypastedfromherehttps://huggingface.co/bert-base-uncasedtokenizer=BertTokenizer.from_pretrained("bert-base-uncased")model=BertModel.from_pretrained("bert-base-uncased").to(device="cuda:0")model=torch.compile(model)#Thisistheonlylineofcodethatwechangedtext="Replacemebyanytextyou"dlike."encoded_input=tokenizer(text,return_tensors="pt").to(device="cuda:0")output=model(**encoded_input)

如果您从模型和 encoded_input 中删除 to(device="cuda:0") ,那么 PyTorch 2.0 将生成 C++ 内核,这些内核将针对在您的 CPU 上运行进行优化。你可以检查 Triton 或 C++ 内核的 BERT,它们显然比我们上面的三角函数示例更复杂,但如果你了解 PyTorch,你也可以类似地浏览它并理解。

相同的代码也可以https://github.com/huggingface/accelerate 和 DDP 一起使用。

同样让我们尝试一个 TIMM 示例:

importtimmimporttorchmodel=timm.create_model("resnext101_32x8d",pretrained=True,num_classes=2)opt_model=torch.compile(model,backend="inductor")opt_model(torch.randn(64,3,7,7))

我们使用 PyTorch 的目标是构建一个广度优先的编译器,该编译器将加速人们在开源中运行的绝大多数实际模型。Hugging Face Hub 最终成为我们非常有价值的基准测试工具,确保我们所做的任何优化实际上都有助于加速人们想要运行的模型。

本文翻译自https://pytorch.org/blog/Accelerating-Hugging-Face-and-TIMM-models/

标签:

中国铁建中标泸州至古蔺高速公路项目,项目总投资约303.53亿元_热闻

乐居财经张林霞12月30日,中国铁建(601186)发布公告称,近日,公司下属中国铁建昆仑投资集团有限公司等...

12-30 18:23:55

12月29日贵金属行业十大熊股一览

12月29日,沪指报收3073 7,较前一交易日下跌0 44%。贵金属行业整体表现一般,较前一交易日下跌0 25%...

12-30 15:31:43

重庆今年落实水利建设投资280亿元 同比增长46.9%

新华网重庆12月29日电(李海岚)12月29日,重庆市召开坚持“两手发力”助推全市水利高质量发展新闻发布...

12-30 09:43:07

博彩公司遭黑客攻击,67000账户被窃,损失超30万!公司称登录信息由第三方泄露

大数据文摘出品作者:Caleb12月19日,卡塔尔世界杯落幕,总决赛可以说是让观众一直紧绷神经。梅西带领的...

12-30 02:02:13

大衣哥着急了:陈萌暂时不考虑结婚,朱小伟婚事只能往后推|世界今亮点

大衣哥儿子朱小伟的婚事引起了大家的讨论,尤其是与陈萌之间的感情升温快速之后,整个朱楼村的村民们都...

12-29 19:35:22

韶能股份(000601.SZ):子公司获得政府补助882.94万元

格隆汇12月29日丨韶能股份公布,2022年12月,公司控股子公司韶能集团耒阳蔡伦纸品有限公司获得与收益相...

12-29 17:41:47

名臣健康涨5.18%,东吴证券一个月前给出“买入”评级_当前通讯

今日名臣健康(002919)涨5 18%,收盘报34 55元。2022年10月31日,东吴证券研究员张良卫,周良玖,陈欣...

12-29 15:21:45

纸质离婚协议书有效吗?

签订的离婚协议书如果不违反法律规定,是夫妻双方的真实意思表示,且办理了离婚登记手续,是有效的。根...

12-29 13:28:58

飞龙股份:截止到12月20日,股东户数与上期基本保持持平 全球今亮点

飞龙股份(002536)12月29日在投资者关系平台上答复了投资者关心的问题。投资者:请问截止到12月20日的股...

12-29 11:22:27

G15沈海高速公路海口段28日正式通车 世界简讯

中新网海口12月28日电(记者符宇群李宇凡)记者28日从在海口举行的海南省交通工程项目集中通车暨开工仪式...

12-29 09:35:45

快报:怎么分辨冻豆腐好坏 如何分辨冻豆腐质量的好坏呢

1、气味:优质冻豆腐闻起来有浓浓的豆香味,劣质的则无豆香味,甚至会有一股淡淡的腥味或者是有化学剂的...

12-28 16:50:11

全球今亮点!两栖装甲新乘员多课目连贯考核

驾驶新乘员要在规定时间内、闭舱条件下,通过长度为4 3公里的野外山林路段,车辙桥、九杆弯道、下坡桩...

12-28 14:21:19

环球快看点丨上海复旦大学附属妇产科医院招聘门诊办公室导医

复旦大学附属妇产科医院招聘门诊办公室导医招聘岗位:门诊办公室导医招聘人数:2人岗位职责:1、负责门...

12-28 10:44:28

宁波银行财富管理部副总经理徐昉:个人养老金产品要优中选优、聚焦头部 今头条

“作为首批个人养老金试点的银行之一,宁波银行整合全行资源,全力推进个人养老金业务的落地。”12月22...

12-28 03:38:50

中国工商银行湖南贺岁普通纪念币预约兑换指南(附入口)-今日热闻

中国人民银行将于近期采取预约兑换方式发行2023年贺岁普通纪念币(以下简称“贺岁币”),发行量1 2亿...

12-27 18:37:17

最新:男孩晚归怕责罚编出“绑架案” 父母和老师惊出一身冷汗

近日,湖北黄石的王女士报警求助称,其11岁的儿子放学后失联。黄石港分局民警迅速赶到现场,向家属了解...

12-27 15:06:33

出入境政策优化,OTA平台入境航班搜索量创3年峰值

(原标题:出入境政策优化,OTA平台入境航班搜索量创3年峰值)证券时报e公司讯,12月26日晚,国家卫健委...

12-27 09:32:10

每日热点:当年沙溢一家四口在丈母娘家住四年,后给丈母娘买大平层孝敬

2017年,沙溢给胡可的父母买了一套北京朝阳区价值3000万的大平层,沙溢激动地拿着钥匙说,“爸爸、妈妈...

12-26 22:07:39

环球看点![快讯]惠发食品:惠发食品高管集中竞价减持股份结果

CFi CN讯:?高管持股的基本情况截至本公告披露日,山东惠发食品股份有限公司(以下简称“公司”)副总...

12-26 15:54:37

环球热消息:异动快报:上海三毛(600689)12月26日10点30分触及涨停板

12月26日盘中消息,10点30分上海三毛(600689)触及涨停板。目前价格9 15,上涨9 98%。其所属行业综合...

12-26 10:17:55

使用PyTorch 2.0 加速Hugging Face和TIMM库的模型

点蓝色字关注“机器学习算法工程师”设为星标,干货直达!​PyTorch2 0引入了**torch compile()**来加...

12-25 22:39:30

世界快看:青春不过几场世界杯

卡塔尔世界杯结束了,阿根廷夺冠,梅西封王,圆满了。我想说青春结束了,却又怕显得矫情。第一次看世界...

12-25 07:44:14

天天头条:美媒:泽连斯基从美返乌后首次公开露面,解释其“罕见的美国之行”

【环球网报道记者索炎琦】当地时间21日,乌克兰总统泽连斯基“突访”华盛顿,与美国总统拜登举行会谈,...

12-24 09:54:57

世界信息:助力经济实现“开门稳” 上交所进一步扩大降费范围

中新网上海12月23日电(高志苗)23日,记者从上海证券交易所获悉,为切实支持实体经济发展、降低市场主体...

12-23 19:08:21

微动态丨延边州天河县交通违章处理要带什么东西

1、车辆行驶证原件或复印件;2、车辆驾驶人驾驶证原件;3、车辆驾驶人身份证原件;4、现金和银行卡。5、如...

12-23 14:28:27

当前看点!华厦眼科(301267)12月22日主力资金净买入1839.55万元

截至2022年12月22日收盘,华厦眼科(301267)报收于70 21元,上涨5 9%,换手率8 09%,成交量4 56万手...

12-23 08:38:59

天天讯息:东易日盛: 简式权益变动报告书(二)

东易日盛:简式权益变动报告书(二)

12-22 19:29:19

【天天新要闻】独家资金:主力进散户逃前10股

12月22日大单净量前十名个股如下:dde大单净量=dde大单净流入量 流通股本股票简称DDE大单净量DDE大单金...

12-22 14:06:00

博瑞医药(688166)12月21日主力资金净买入165.51万元|世界今热点

截至2022年12月21日收盘,博瑞医药(688166)报收于21 08元,下跌2 68%,换手率0 6%,成交量2 46万手...

12-22 07:43:40

鹤壁征地拆迁纠纷律师要给多少钱|全球新动态

1、按件收费收取(1)无财产争议:6000元-20000元之间;(2)法律文书:600元-2000元之间;(3)律师见...

12-21 17:57:58

叶一良:美联储降息就在眼前?油市寡头局面已破,大跌将始

叶一良:美联储降息就在眼前?油市寡头局面已破,大跌将始

12-21 11:57:32

基于.NetCore开发博客项目 StarBlog - (21) 开始开发RESTFul接口_每日速递

1前言最近电脑坏了,开源项目的进度也受到一些影响这篇酝酿很久了,作为本系列第二部分(API接口开发)...

12-21 05:29:51

常润股份: 常熟通润汽车零部件股份有限公司关于使用部分暂时闲置募集资金进行现金管理到期赎回的公告|天天精选

证券代码:603201   证券简称:常润股份       公告编号:2022-027  常熟通润汽车零部件股...

12-20 16:55:33

中航光电(002179)12月19日主力资金净买入7098.17万元-全球速讯

截至2022年12月19日收盘,中航光电报收于58 67元,上涨0 89%,换手率0 33%,成交量5 07万手,成交额...

12-20 10:59:26

环球简讯:还呗网贷逾期暂时还不起有起诉的风险吗

可能会。如果用户使用网贷消费之后出现了逾期,并且经过网贷机构和第三方的催收人员催缴欠款无果之后,...

12-20 00:07:33

快消息!隧道股份: 上海隧道工程股份有限公司第十届监事会第六次会议决议公告

证券代码:600820   股票简称:隧道股份         编号:临 2022-048债券代码:185752  ...

12-19 16:20:13

奕东电子:公司有空气净化消毒机产品 全球要闻

(原标题:奕东电子:公司有空气净化消毒机产品)同花顺(300033)金融研究中心12月19日讯,有投资者向...

12-19 10:38:03

今日视点:鹿邑县:“三举措”积极推进乡镇管理体制机制改革

为深入贯彻落实省委市委关于深化乡镇管理体制机制改革精神,扎实做好乡镇机构改革“后半篇文章”,鹿邑...

12-19 01:22:23

提钱花逾期5个月会不会上征信

网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天...

12-18 13:34:53

【经纬晚班车】皮尔巴拉锂精矿拍卖价年内第二次下跌,全球锂价下行开始?

欢迎来到中新经纬《经纬晚班车》,这里有重要的新闻资讯、财经热点

12-17 15:36:21

12月16日基金净值:汇添富价值领先混合最新净值0.8131,涨0.1% 今日快看

12月16日,汇添富价值领先混合最新单位净值为0 8131元,累计净值为0 8131元,较前一交易日上涨0 1%。...

12-17 01:17:19

瑞松科技(688090.SH):厦门恒兴拟转让5%的股份予自然人赵伟_天天微速讯

格隆汇12月16日丨瑞松科技(688090 SH)公布,公司持股5%以上股东厦门恒兴集团有限公司(“厦门恒兴”)与...

12-16 16:35:34

惠企纾困“拼服务”加速经济回归常态运行

据光明日报报导,在日前召开的企业家座谈会上,广西柳州释放了惠企纾困拼服务、全力加快经济回归常态运...

12-16 10:24:12

*ST紫晶: 独立董事提名人声明

查看原文公告

12-15 22:29:48

浙江将确保医疗和防疫物资不低于3个月用量|全球快看

省市县三级协同,加强药物、口罩、抗原等防疫物资生产和储备,同时做好呼吸机等重症救治资源储备,确保...

12-15 15:22:56

旭辉控股与中国建设银行上海市分行达成银企战略合作

旭辉控股与中国建设银行上海市分行达成银企战略合作2022年12月15日10:11中国网财经

12-15 10:18:48

每日动态!大悦城(000031.SZ):拟公开发行不超15亿元公司债券

格隆汇12月14日丨大悦城(000031)(000031 SZ)发布大悦城控股集团股份有限公司2022年面向专业投资者公开...

12-14 21:24:23

偃师区人民检察院召开提升业务数据质量培训会 天天速看

大河网讯为进一步加强检察业务数据质量,提升工作人员专业技能和业务素养,1月20日下午,偃师区检察院组...

12-14 15:14:29

盘前有料丨阿根廷率先晋级;北京恢复跨省团队游业务…重要消息还有这些

(原标题:盘前有料丨阿根廷率先晋级;北京恢复跨省团队游业务…重要消息还有这些)重要的消息有哪些今...

12-14 08:45:40

光洋股份: 董事会议事规则(修订稿) 当前速讯

常州光洋轴承股份有限公司董事会议事规则(经 2022 年 12 月 13 日召开的公司第四届董事会第二十...

12-13 18:00:12

12月29日贵金属行业十大熊股一览
重庆今年落实水利建设投资280亿元 同比增长46.9%
博彩公司遭黑客攻击,67000账户被窃,损失超30万!公司称登录信息由第三方泄露
大衣哥着急了:陈萌暂时不考虑结婚,朱小伟婚事只能往后推|世界今亮点
韶能股份(000601.SZ):子公司获得政府补助882.94万元
名臣健康涨5.18%,东吴证券一个月前给出“买入”评级_当前通讯
纸质离婚协议书有效吗?
飞龙股份:截止到12月20日,股东户数与上期基本保持持平 全球今亮点
G15沈海高速公路海口段28日正式通车 世界简讯
快报:怎么分辨冻豆腐好坏 如何分辨冻豆腐质量的好坏呢
全球今亮点!两栖装甲新乘员多课目连贯考核
环球快看点丨上海复旦大学附属妇产科医院招聘门诊办公室导医
宁波银行财富管理部副总经理徐昉:个人养老金产品要优中选优、聚焦头部 今头条
中国工商银行湖南贺岁普通纪念币预约兑换指南(附入口)-今日热闻
最新:男孩晚归怕责罚编出“绑架案” 父母和老师惊出一身冷汗
出入境政策优化,OTA平台入境航班搜索量创3年峰值
每日热点:当年沙溢一家四口在丈母娘家住四年,后给丈母娘买大平层孝敬
环球看点![快讯]惠发食品:惠发食品高管集中竞价减持股份结果
环球热消息:异动快报:上海三毛(600689)12月26日10点30分触及涨停板
使用PyTorch 2.0 加速Hugging Face和TIMM库的模型
世界快看:青春不过几场世界杯
天天头条:美媒:泽连斯基从美返乌后首次公开露面,解释其“罕见的美国之行”
世界信息:助力经济实现“开门稳” 上交所进一步扩大降费范围
微动态丨延边州天河县交通违章处理要带什么东西
当前看点!华厦眼科(301267)12月22日主力资金净买入1839.55万元
天天讯息:东易日盛: 简式权益变动报告书(二)
【天天新要闻】独家资金:主力进散户逃前10股
博瑞医药(688166)12月21日主力资金净买入165.51万元|世界今热点
鹤壁征地拆迁纠纷律师要给多少钱|全球新动态
叶一良:美联储降息就在眼前?油市寡头局面已破,大跌将始
基于.NetCore开发博客项目 StarBlog - (21) 开始开发RESTFul接口_每日速递
常润股份: 常熟通润汽车零部件股份有限公司关于使用部分暂时闲置募集资金进行现金管理到期赎回的公告|天天精选
中航光电(002179)12月19日主力资金净买入7098.17万元-全球速讯
环球简讯:还呗网贷逾期暂时还不起有起诉的风险吗
快消息!隧道股份: 上海隧道工程股份有限公司第十届监事会第六次会议决议公告
奕东电子:公司有空气净化消毒机产品 全球要闻
今日视点:鹿邑县:“三举措”积极推进乡镇管理体制机制改革
提钱花逾期5个月会不会上征信
【经纬晚班车】皮尔巴拉锂精矿拍卖价年内第二次下跌,全球锂价下行开始?
12月16日基金净值:汇添富价值领先混合最新净值0.8131,涨0.1% 今日快看
瑞松科技(688090.SH):厦门恒兴拟转让5%的股份予自然人赵伟_天天微速讯
惠企纾困“拼服务”加速经济回归常态运行
*ST紫晶: 独立董事提名人声明
浙江将确保医疗和防疫物资不低于3个月用量|全球快看
旭辉控股与中国建设银行上海市分行达成银企战略合作
每日动态!大悦城(000031.SZ):拟公开发行不超15亿元公司债券
偃师区人民检察院召开提升业务数据质量培训会 天天速看
盘前有料丨阿根廷率先晋级;北京恢复跨省团队游业务…重要消息还有这些
光洋股份: 董事会议事规则(修订稿) 当前速讯
三门峡集团犯罪律师怎么收费_环球百事通
X 广告
行业动态
X 广告

Copyright ©  2015-2022 青年植物网版权所有  备案号:皖ICP备2022009963号-20   联系邮箱:39 60 291 42@qq.com