第 7 章 部署 PyTorch 到生产环境 将 PyTorch 部署到生产环境中
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
到目前为止,本书的大部分内容都集中在模型设计和训练上。前面几章向你展示了如何使用 PyTorch 的内置功能来设计模型,并创建自定义的 NN 模块、损失函数、优化器和其他算法。在上一章中,我们了解了如何使用分布式训练和模型优化来加快模型训练时间,并最大限度地减少运行模型所需的资源。
至此,您已经拥有了创建训练有素的尖端 NN 模型所需的一切,但不要让您的创新成果孤立无援。现在,是时候通过应用将您的模型部署到世界中去了。
过去,从研究到生产是一项极具挑战性的任务,需要软件工程师团队将 PyTorch 模型转移到框架中,并集成到(通常是非 Python 的)生产环境中。如今,PyTorch 包括内置工具和外部库,支持快速部署到各种生产环境中。
在本章中,我们的重点是部署模型进行推理,而不是训练,我们将探讨如何将训练好的 PyTorch 模型部署到各种应用中。首先,我将介绍 PyTorch 的各种内置功能和工具,你可以用它们来进行部署。TorchServe 和 TorchScript 等工具可以让你轻松地将 PyTorch 模型部署到 Cloud 和移动或边缘设备上。
根据应用和环境的不同,您可能有多种部署选择,每种选择都有自己的权衡。我将举例说明如何在多个云和边缘环境中部署 PyTorch 模型。您将学习如何部署到用于大规模开发和生产的网络服务器、iOS 和 Android 移动设备,以及基于 ARM 处理器、GPU 和现场可编程门阵列 (FPGA) 硬件的物联网 (IoT) 设备。
本章还将提供参考代码,包括我们使用的关键 API 和库的参考,以便轻松上手。当需要部署模型时,您可以回过头来参考本章,以便在云或移动环境中演示您的应用程序。
首先,让我们回顾一下 PyTorch 为协助您部署模型而提供的资源。
PyTorch 部署工具和库
PyTorch 包含内置工具和功能,便于将模型部署到生产环境和边缘设备中。在本节中,我们将探索这些工具,并在本章的其余部分将它们应用到各种环境中。
PyTorch 的部署功能包括其自然 Python API,以及 TorchServe、TorchScript、ONNX 和移动库。由于 PyTorch 的自然 API 是基于 Python 的,因此 PyTorch 模型可以在任何支持 Python 的环境中原样部署。
表 7-1总结了可供部署的各种资源,并说明了如何合理使用每种资源。
| 资源 | 使用 |
|---|---|
Python 应用程序接口 |
执行快速原型设计、培训和实验;编写 Python 运行程序。 |
TorchScript |
提高性能和可移植性(如用 C++ 加载和运行模型);对非 Python 运行时或严格的延迟和性能要求进行编程。 |
火炬服务 |
一款快速生产环境工具,具有模型存储、A/B 测试、监控和 RESTful API。 |
ONNX |
部署到带有 ONNX 运行时或 FPGA 设备的系统中。 |
流动图书馆 |
部署到 iOS 和 Android 设备。 |
以下各节为每种部署资源提供了参考和一些示例代码。在每种情况下,我们都将使用相同的示例模型,如下所述。
常见示例模型
对于每个部署资源示例和应用,以及本章提供的参考代码,我们都将使用相同的模型。在示例中,我们将使用使用 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access