社区计算机视觉课程文档

模型优化工具和框架

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始使用

模型优化工具和框架

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 支持多种量化深度学习模型的方法,如下所示

  1. 模型以 FP32 训练,然后转换为 INT8。
  2. 量化感知训练,其中模型使用伪量化模块在正向和反向传递中量化误差。
  3. 表示量化张量并对其执行运算。它们可用于直接构建在较低精度下执行所有或部分计算的模型。

有关 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 支持的平台有

  1. Habana
  2. 英特尔
  3. 英伟达
  4. AWS Trainium 和 Inferentia
  5. AMD
  6. FuriosaAI
  7. ONNX Runtime
  8. BetterTransformer

安装指南

Optimum 可作为 pip 包 optimum 使用。要安装该包,请运行以下命令

pip install optimum

有关加速器特定功能的安装,请参阅此处

实践指南

有关如何使用 Optimum 进行量化的实践指南,请参考此笔记本

EdgeTPU

概述

Edge TPU 是谷歌专为在边缘运行 AI 而设计的定制 ASIC。它在较小的物理和功耗占用空间内提供高性能,从而能够在边缘部署高精度 AI。使用 EdgeTPU 的优势包括

  • 补充 Cloud TPU 和 Google Cloud 服务,为基于 AI 的解决方案部署提供端到端、云到边缘的硬件 + 软件基础设施
  • 在较小的物理和功耗占用空间内提供高性能
  • 结合定制硬件、开放软件和最先进的 AI 算法,为边缘提供高质量、易于部署的 AI 解决方案。

有关 EdgeTPU 的更多详细信息,请参阅此处

有关如何设置和使用 EdgeTPU 的指南,请参考此笔记本

< > 在 GitHub 上更新