PyTorch 是一个开源的深度学习框架,提供用于构建、训练和部署神经网络的工具,以其Python优先的设计和动态的、按定义即运行的(define-by-run)计算图而闻名。最初由Facebook AI Research开发,后来由Meta AI接手,于2016年9月首次发布,,到2020年代初期至中期,,成为AI研究中占主导地位的框架。
历史
PyTorch 起源于 Torch,,一个基于Lua编程语言的早期科学计算框架,,并被重写为具有Python接口的版本,,以更自然地融入研究人员已经使用的以Python为中心的数据科学生态系统。其早期的设计决策,,尤其是动态计算图,,该图在代码执行时即时构建网络结构,,而非要求预先定义并编译,,使得调试和实验新型架构比早期TensorFlow使用的静态图方法要容易得多,这种对开发者友好的特性推动了其在学术研究中的快速采用:到2020年代初期,,主要机器学习会议上的绝大多数论文都使用了PyTorch,2022年9月,,Meta将PyTorch的管理权移交给Linux基金会下新成立的PyTorch基金会,,反映了其作为跨行业使用的关键开源基础设施的地位,,而非单一公司的内部工具,
设计与生态系统
PyTorch将数据表示为张量(tensors),,类似于NumPy中的多维数组,,并提供自动微分功能,,以自动计算用于梯度下降优化的梯度,它能在CPU和,通过CUDA,,在Nvidia GPU上高效运行,,并已扩展出用于跨多GPU分布式训练、模型编译以提高性能以及移动和边缘部署的工具,一个庞大的基于PyTorch构建的库生态系统,,包括Hugging Face的Transformers库,,使其成为训练和微调transformer基模型(包括2020年代发布的大多数主要开放权重大型语言模型)的默认基础平台,
与TensorFlow的比较及意义
PyTorch的主要历史竞争对手是谷歌的TensorFlow,,后者于2015年提前一年发布;这两个框架的竞争塑造了2010年代末期深度学习工具的大部分发展,,其中TensorFlow最初在生产部署方面更受青睐,,而PyTorch在研究灵活性方面更胜一筹,TensorFlow后来采用了急切执行(eager execution)以缩小这一差距,,但PyTorch已经在研究领域赢得了决定性的份额,,并且随着大型语言模型时代使研究到生产的周期缩短,,在生产部署方面也占据了主导地位,到2020年代中期,,PyTorch是大多数广泛使用的基础模型所依赖的框架,,并经常与CUDA和Nvidia GPU一起被引用为现代AI行业最依赖的关键基础设施之一,