PyTorch 2.0 发布总结
主要观点
PyTorch 基金会最近发布了 PyTorch 2.0 版本,这是一个 100% 向后兼容的更新。该版本的主要贡献是引入了一个用于深度学习模型的编译函数,显著加速了训练过程。PyTorch 2.0 还包括了对 Transformer 模型(如大语言模型和扩散模型)的性能改进,以及针对 Apple silicon 的加速支持。此外,PyTorch 的领域库(如 TorchAudio、TorchVision 和 TorchText)也更新了新的测试版功能。
关键信息
- 编译功能:PyTorch 2.0 引入了一个编译函数,能够将深度学习模型的 Python 代码转换为计算图块,从而加速训练过程。在 163 个开源 AI 项目上的内部基准测试显示,训练速度平均提高了 43%。
- Transformer 模型性能优化:通过新的“缩放点积注意力”(SDPA)实现,PyTorch 2.0 优化了基于 Transformer 的模型(如大语言模型和扩散模型)的性能。
- Apple silicon 加速:通过改进的 Metal Performance Shaders (MPS),PyTorch 2.0 在 Apple silicon 上的训练速度得到提升,目前 MPS 支持 300 种操作。
- 领域库更新:TorchAudio、TorchVision 和 TorchText 等 PyTorch 领域库也进行了更新,引入了新的测试版功能。
- 开发贡献:PyTorch 2.0 包含了超过 4,500 次提交,来自 428 位开发者。
重要细节
编译功能的底层组件:
- TorchDynamo:将深度学习模型的 Python 代码重写为计算图块。
- AOTAutograd:在反向传播步骤中执行“提前”自动微分。
- PrimTorch:将超过 2,000 个 PyTorch 操作符规范化为约 250 个基本操作符。
- TorchInductor:为加速器生成快速的硬件特定后端代码。
- 性能测试:PyTorch 团队在 163 个开源深度学习项目上进行了基准测试,这些项目涵盖了计算机视觉、自然语言处理和强化学习等多种任务。在不修改代码的情况下,仅通过一行编译函数调用,93% 的项目成功运行,并且在 NVIDIA A100 GPU 上训练速度提高了 43%。
- 社区反馈:在 Hacker News 的讨论中,有用户指出,PyTorch 的成功在于其生产力,而非增量性能提升。用户认为,一旦系统变得流行,社区会迅速缩小性能差距,并且对开源项目的投资和专业打磨至关重要。
- 资源获取:PyTorch 2.0 的代码和发布说明可以在 GitHub 上获取。
总结
PyTorch 2.0 通过引入编译功能和多项性能优化,显著提升了深度学习模型的训练速度和效率。该版本不仅保持了与之前版本的兼容性,还在多个领域库中引入了新功能,进一步增强了其适用性和灵活性。社区对此次更新反应积极,认为 PyTorch 的成功在于其高效的生产力和社区的持续贡献。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。