APP下载

PyTorch 1.6加入自动混合精度训练

消息来源:baojiabao.com 作者: 发布时间:2026-09-05

报价宝综合消息PyTorch 1.6加入自动混合精度训练

机器学习框架TensorFlow释出更新,PyTorch也紧接着推出PyTorch 1.6版本,而更新的方向也与TensorFlow方向相似,同样也释出了新的API改进效能,而且也提供新的效能分析工具,供用户掌握模型运作情况。另外,这个版本让用户能够混用分散式资料平行(Distributed Data Parallel,DDP),以及远端程序呼叫(Remote Procedure Call,RPC),来改进分散式训练的效能。

在PyTorch 1.6,由Nvidia贡献的自动混合精度(Automatic mixed precision,AMP)训练功能已经进入稳定阶段,AMP训练能在Tensor Core GPU上实现高效能,并节省高达50%的内存。

AMP API提供简单使用混合精度的方法,官方提到,在像是线性层(Linear Layer)或是卷积操作上,float16运算较快,但像是Reduction运算又需要float32的动态范围,而现在有了AMP功能,便可以在部分资料操作使用float16,另一部分则使用float32,混合精度功能会尝试为每个运算,使用相符的资料类型。

与TensorFlow 2.3更新相同,PyTorch也增加了内存分析器,在其torch.autograd.profiler的API中加入内存分析器,让用户能够查看CPU和GPU中,不同运算的张量内存消耗。

在这个版本,官方也下功夫改进分散式训练。PyTorch的分散式功能支援两种使用案例DDP和RPC,DDP是使模型能以全同步资料平行进行训练,而RPC框架则是能平行化分散式模型,过去这两个功能独立运作,无法互相互用。

从PyTorch 1.6开始,DDP和RPC能够无缝协作,用户可以结合两项技术,以实现资料平行与模型平行。官方提到,这将使用户能够在参数服务器中,存放大型的嵌入表,并使用RPC框架进行嵌入查询,而非只能储存较小的密集参数,还要使用DDP来同步密集参数。

PyTorch 1.6的RPC模组使用了新后端,这个后端采用TensorPipe函式库开发,以补充目前PyTorch中的分散式训练原语,TensorPipe的配对以及异步网络通讯,使得RPC能够支援用户与服务器架构、模型和工作管线平行化训练。

在PyTorch 1.6新功能发布的同时,官方也提到,新功能使用新的分类方法,现在新功能会被分类成稳定版、测试版以及原型。测试版是指那些已经通过验证,证明其具有加入PyTorch框架的价值,只是API还可能会更改,或还有效能和影响范围等问题尚待解决。

而功能原型则是新功能提案,希望能够从使用者端获得大量的回馈,反应良好的原型功能可被放进测试版中,反应不好的便可就此打住,不进一步开发,不过,功能原型不会被放到发布的二进制档案中,想要尝鲜的用户需要自己从源代码编译,或使用Nightly等版本。

2020-08-04 09:48:00

相关文章