众所周知,PyTorch 框架十分便捷且灵活,增强学习、图像分类和自然语言处理等示例是比较常见的用例。
商业、研究和教育示例
自然语言处理 (NLP):从 Siri 到 Google Translate,深度神经网络在机器理解自然语言方面取得了突破性进展。其中大多数模型都将语言视为单词或字符的平面序列,并使用一种称为时间递归神经网络 (RNN) 的模型处理该序列。但是,许多语言学家认为,语言极易理解为一个由短语组成的层次树,因此,大量研究已经进入称为递归神经网络的深度学习模型,该模型将这种结构考虑在内。虽然这些模型难以实现且运行效率低下,但 PyTorch 使这些模型和其他复杂自然语言处理变得容易得多。Salesforce 正在使用 PyTorch 进行 NLP 和多任务学习。
研究:PyTorch 具有易用性、灵活性和快速原型设计,是研究的首选。斯坦福大学正在利用 PyTorch 的灵活性高效研究新的算法方法。
教育:Udacity 正在使用 PyTorch 培养 AI 创新者。
PyTorch 的重要意义……
数据科学家
对于熟悉 Python 的程序员而言,PyTorch 学习起来相对容易。它提供了简单的调试、简单的 API,并且兼容各种内置 Python 的扩展。其动态执行模型也非常适合原型设计,尽管会产生一些性能开销。
软件开发者
PyTorch 支持各种功能,可以快速轻松地部署 AI 模型。它还具有丰富的库生态系统,如 Captum(用于模型可解释性)、skorch(scikit-learn 兼容性)等,以支持开发。PyTorch 具有出色的加速器生态系统,例如,Glow(用于训练)和 NVIDIA® TensorRT™(用于推理)。
GPU:深度学习的关键
在架构方面,CPU 仅由几个具有大缓存内存的核心组成,一次只可以处理几个软件线程。相比之下,GPU 由数百个核心组成,可以同时处理数千个线程。
先进的深度学习神经网络可能有数百万乃至十亿以上的参数需要通过反向传播进行调整。由于神经网络由大量相同的神经元构建而成,因此本质上具有高度并行性。这种并行性会自然地映射到 NGC (NVIDIA GPU Cloud),用户可以在其中提取容器,这些容器具有可用于各种任务(例如计算机视觉、自然语言处理等)的预训练模型,且所有依赖项和框架位于一个容器中。借助 NVIDA 的 TensorRT,使用 NVIDIA GPU 时,可以在 PyTorch 上显著提高推理性能。