模型优化工具和框架
TensorFlow 模型优化工具包 (TMO)
概述
TensorFlow 模型优化工具包是一套用于优化机器学习模型以进行部署的工具。TensorFlow Lite 的训练后量化工具使用户能够将权重转换为 8 位精度,从而使训练后的模型大小减少约 4 倍。这些工具还包括用于在训练期间进行剪枝和量化的 API,如果训练后量化不足,则可以使用这些 API。这些有助于用户减少延迟和推理成本,将模型部署到资源受限的边缘设备,以及针对现有硬件或新的专用加速器进行优化执行。
安装指南
TensorFlow 模型优化工具包可作为 pip 包 tensorflow-model-optimization
使用。要安装该包,请运行以下命令
pip install -U tensorflow-model-optimization
实践指南
有关如何使用 TensorFlow 模型优化工具包的实践指南,请参考此 notebook
PyTorch 量化
概述
为了优化模型,PyTorch 支持 INT8 量化,与典型的 FP32 模型相比,这会导致模型大小减少 4 倍,内存带宽需求减少 4 倍。PyTorch 支持多种量化深度学习模型的方法,如下所示
- 模型以 FP32 训练,然后转换为 INT8。
- 量化感知训练,其中模型使用伪量化模块在正向和反向传递中量化误差。
- 表示量化张量并对其执行运算。它们可用于直接构建在较低精度下执行所有或部分计算的模型。
有关 PyTorch 中量化的更多详细信息,请参见 此处
安装指南
PyTorch 量化作为 PyTorch 包中的 API 提供。要使用它,只需安装 PyTorch 并导入量化 API,如下所示
pip install torch
import torch.quantization
实践指南
有关如何使用 PyTorch 量化的实践指南,请参考此 [notebook](https://colab.research.google.com/drive/1toyS6IUsFvjuSK71oeLZZ51mm8hVnlZv
ONNX 运行时
概述
ONNX 运行时是一个跨平台的机器学习模型加速器,具有灵活的接口来集成特定于硬件的库。ONNX 运行时可用于来自 PyTorch、TensorFlow/Keras、TFLite、scikit-learn 和其他框架的模型。使用 ONNX 运行时进行推理的好处如下
- 提高各种 ML 模型的推理性能
- 在不同的硬件和操作系统上运行
- 在 Python 中训练,但在 C#/C++/Java 应用程序中部署
- 使用在不同框架中创建的模型进行训练和执行推理
有关 ONNX 运行时的更多详细信息,请参见 此处
安装指南
ONNX 运行时有两个 Python 包,在任何一个环境中一次只能安装其中一个包。如果您想在支持 GPU 的情况下使用 ONNX 运行时,请使用 GPU 包。ONNX 运行时的 Python 包可作为 pip 包使用。要安装该包,请运行以下命令
pip install onnxruntime
对于 GPU 版本,请运行以下命令
pip install onnxruntime-gpu
实践指南
有关如何使用 ONNX 运行时的实践指南,请参考此 notebook
TensorRT
概述
NVIDIA® TensorRT™ 是一款用于优化经过训练的深度学习模型以实现高性能推理的 SDK。TensorRT 包含一个用于训练过的深度学习模型的深度学习推理优化器,以及一个用于执行的运行时。在用户使用他们选择的框架训练完他们的深度学习模型后,TensorRT 使他们能够以更高的吞吐量和更低的延迟运行它。
安装指南
TensorRT 可作为 pip 包 tensorrt
使用。要安装该包,请运行以下命令
pip install tensorrt
有关其他安装方法,请参见 此处
实践指南
有关如何使用 TensorRT 的实践指南,请参考此笔记本
OpenVINO
概述
OpenVINO™ 工具套件使用户能够优化来自几乎任何框架的深度学习模型,并在各种英特尔® 处理器和其他硬件平台上以一流的性能部署它。使用 OpenVINO 的优势包括
- 直接链接到 OpenVINO Runtime 以在本地运行推理,或使用 OpenVINO Model Server 从单独的服务器或 Kubernetes 环境中提供模型推理
- 编写一次应用程序,即可在您首选的设备、语言和操作系统上部署它。
- 具有最少的外部依赖项
- 通过使用 CPU 进行初始推理,然后在模型已编译并加载到内存后切换到其他设备,从而减少首次推理延迟
安装指南
Openvino 可作为 pip 包 openvino
使用。要安装该包,请运行以下命令
pip install openvino
有关其他安装方法,请参阅此处
实践指南
有关如何使用 OpenVINO 的实践指南,请参考此笔记本
Optimum
概述
Optimum 充当 Transformers 的扩展,提供一套旨在优化在特定硬件上训练和运行模型的性能的工具,确保最大效率。在快速发展的 AI 领域,专门的硬件和独特的优化不断涌现。Optimum 使开发人员能够无缝地利用这些不同的平台,同时保持 Transformers 固有的易用性。目前 Optimum 支持的平台有
安装指南
Optimum 可作为 pip 包 optimum
使用。要安装该包,请运行以下命令
pip install optimum
有关加速器特定功能的安装,请参阅此处
实践指南
有关如何使用 Optimum 进行量化的实践指南,请参考此笔记本
EdgeTPU
概述
Edge TPU 是谷歌专为在边缘运行 AI 而设计的定制 ASIC。它在较小的物理和功耗占用空间内提供高性能,从而能够在边缘部署高精度 AI。使用 EdgeTPU 的优势包括
- 补充 Cloud TPU 和 Google Cloud 服务,为基于 AI 的解决方案部署提供端到端、云到边缘的硬件 + 软件基础设施
- 在较小的物理和功耗占用空间内提供高性能
- 结合定制硬件、开放软件和最先进的 AI 算法,为边缘提供高质量、易于部署的 AI 解决方案。
有关 EdgeTPU 的更多详细信息,请参阅此处
有关如何设置和使用 EdgeTPU 的指南,请参考此笔记本
< > 在 GitHub 上更新