重磅!Facebook更新PyTorch 1.1,打算跨GPU分割神经网络
时隔半年不到,PyTorch 已经从之前的 1.0 升级到 1.1 版本了。刚刚,Facebook 在年度开发者大会 F8 上宣布正式发布 PyTorch 1.1 版本,这是对 PyTorch 1.0 的一次大的功能升级。
PyTorch 产品经理 Joe Spisak 接受外媒 ZDNet 采访时,谈及了新推出的训练 AI 系统时”跨 GPU 分割神经网络“功能,他表示:“(神经网络)模型越来越大,它们真得非常大,而且训练一个模型的成本也非常高。在很多情况下,其 GPU 占比超过 16GB。例如,我们内部最新开发的神经网络模型超过 10GB,其参数数量基本超过 10 亿个。“
虽然 BERT 效果惊人,但其所需要的计算量也非常大。例如,BERT-Large 模型有 24 层、2014 个隐藏单元,它们在有 33 亿词量的数据集上需要训练 40 个 Epoch。
为了解决这类问题,PyTorch 1.1 增加了跨 GPU 分割神经网络的能力,成为”分片 “(sharding)模型。此前,PyTorch 允许开发人员将不同处理器中的训练数据分割,这在并行处理计算领域称为” 数据并行 “(data parallelism)。神经网络分割使得” 指令并行“成为可能,因此神经网络可以实现多指令、多数据的模式。
”一般来讲,这些模型均位于一个 GPU 中,开发人员处理分布式并行数据,这意味着,他们可以对数据集进行分割,然后在系统上复制模型。一旦训练这种较大规模的模型,模型本身就必须切分。可以将某个模型层或子图神经网络放在一个节点上,然后将另一个子图神经网络切换到另一个计算单元上。“
分片完成后,PyTorch 中的算法在模型训练时会将其结合起来。
实际上,跨 GPU 分割模型仅是 PyTorch 此次升级的其中一项新功能。
▌PyTorch 1.1 有什么新功能?
该框架主要有四大更新,总结起来如下:
- 提供 TensorBoard 官方支持:
使用 TensorBoard 进行一级原生的可视化和模型调试。TensorBoard 是一个用于检查和理解训练脚本、张量和图神经网络的 Web 应用程序套件。PyTorch 现在通过一个简单的 “from torch.utils.tensorboard import SummaryWriter” 命令原生支持 TensorBoard。
- 升级 JIT 编译器:
对即时(JIT)编译进行改进。这些改进包括修复各种 bug 一级 TorchScript 中的扩展功能,例如对字典、用户类和属性的支持。
- 新 API:
支持布尔张量,更好地支持自定义递归神经网络(RNN)。
- 分布式训练:
改进了 CNN 等场景模型的性能,增加了对多设备模块的支持,包括在使用分布式数据并行(DDP,Distributed Data Parallel)的同时跨 GPU 分割模型的能力,并支持在每次迭代中不适用所有参数的模块(例如控制流程,如自适应 softmax 等)。
值得注意的是,PyTorch 1.1 不再支持 CUDA 8.0。
▌生态的深度支持
PyTorch 升级新框架都不开生态社区的支持。
例如,在 2018 年 5 月在 F8 开发者大会上首次公布的 PyTorch 1.0 ,就与 Facebook 的 Caff2、ONNX 进行了更深入的整合。
而此次,Facebook 表示:还将继续与社区合作,开发共同项目和工具,旨在支持 ML 工程师满足从改进模型理解到使用 AutoML 方法进行自动调整等各种需求。其中包括已经在生产规模部署的 Facebook 开源资源,以及与 Google 等公司合作的产品和服务,主要有四方面:
- BoTorch
BoTorch 是一个建立在 PyTorch 之上的贝叶斯优化库。
- Ax
Ax 是一个用于管理自适应实验的机器学习平台,它使研究人员和工程师能够系统地探索大型配置空间,以优化机器学习模型、基础架构和产品。
- PyTorch-BigGraph
PBG 是一个分布式系统,用于创建具有数十亿实体和数万亿边的非常大的图神经网络的嵌入。(AI 科技大本营此前报道)
- Google AI Platform Notebooks
Google AI Platform Notebooks 是 Google Cloud Platform 提供的全新托管的 JupyterLab 服务。数据科学家可以快速创建运行 JupyterLab 的虚拟机,并预装最新版本的 PyTorch。它还与 BigQuery、Cloud Dataproc、Cloud Dataflow 和 AI Factory 等 GCP 服务紧密集成,可以在不离开 JupyterLab 的情况下轻松执行完整的机器学习构建。
此外,Facebook 将与 fast.ai 展开更紧密的合作。
去年,双方联合发布了 fastai 1.0,一个基于 PyTorch 构建的开源深度学习库。目前,包括斯坦福 NLP、加州伯克大学 CV 课程正基于 PyTorch 进行授课。今年,Facebook 表示,将在牛津大学 Andrew Trask 和 OpenMined 推出深度学习入门课程的基础上,赞助新的 Udacity 课程。Facebook 还将提供奖学金,以支持学生在 Udacity 完整的 Nanodegree 课程中继续接受教育。
相关链接:
https://pytorch.org/
https://github.com/pytorch/pytorch/releases
https://ai.facebook.com/blog/pytorch-adds-new-dev-tools-as-it-hits-production-scale/
(本文为AI科技大本营原创文章,转载请微信联系 1092722531)