Community 计算机视觉课程 文档

模型优化工具和框架

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

模型优化工具和框架

Tensorflow 模型优化工具包 (TMO)

概述

TensorFlow 模型优化工具包是一套用于优化机器学习模型以进行部署的工具。TensorFlow Lite 后训练量化工具使用户能够将权重转换为 8 位精度,从而将训练后的模型大小减少约 4 倍。这些工具还包括用于在训练期间进行剪枝和量化的 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 量化以 API 的形式在 PyTorch 包中提供。要使用它,只需安装 PyTorch 并按如下方式导入量化 API

pip install torch
import torch.quantization

实践指南

有关如何使用 Pytorch 量化的实践指南,请参阅此notebook

ONNX Runtime

概述

ONNX Runtime 是一个跨平台的机器学习模型加速器,具有灵活的接口来集成特定于硬件的库。ONNX Runtime 可以与来自 PyTorch、Tensorflow/Keras、TFLite、scikit-learn 和其他框架的模型一起使用。使用 ONNX Runtime 进行推理的好处如下

  • 提高各种 ML 模型的推理性能。
  • 在不同的硬件和操作系统上运行。
  • 在 Python 中训练,但部署到 C#/C++/Java 应用程序中。
  • 使用不同框架中创建的模型进行训练和推理。

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

安装指南

ONNX Runtime 有 2 个 python 包,并且在任何一个环境中一次只能安装其中一个包。如果要将 ONNX Runtime 与 GPU 支持一起使用,请使用 GPU 包。ONNX Runtime 的 python 包以 pip 包的形式提供。要安装该软件包,请运行以下命令

pip install onnxruntime

对于 GPU 版本,请运行以下命令

pip install onnxruntime-gpu

实践指南

有关如何使用 ONNX Runtime 的实践指南,请参阅此notebook

TensorRT

概述

NVIDIA® TensorRT™ 是一个 SDK,用于优化训练后的深度学习模型,以实现高性能推理。TensorRT 包含一个用于训练后的深度学习模型的深度学习推理优化器,以及一个用于执行的运行时。在用户使用他们选择的框架训练了他们的深度学习模型后,TensorRT 使他们能够以更高的吞吐量和更低的延迟运行它。

安装指南

TensorRT 以 pip 包 tensorrt 的形式提供。要安装该软件包,请运行以下命令

pip install tensorrt

有关其他安装方法,请参阅此处

实践指南

有关如何使用 TensorRT 的实践指南,请参阅此notebook

OpenVINO

概述

OpenVINO™ 工具包使用户能够优化来自几乎任何框架的深度学习模型,并在各种 Intel® 处理器和其他硬件平台上以一流的性能部署它。使用 OpenVINO 的好处包括

  • 直接与 OpenVINO Runtime 链接以在本地运行推理,或使用 OpenVINO Model Server 从单独的服务器或 Kubernetes 环境中提供模型推理
  • 编写一次应用程序,将其部署到您喜欢的设备、语言和操作系统上的任何位置
  • 外部依赖项极少
  • 通过使用 CPU 进行初始推理,然后在模型编译并加载到内存后切换到另一个设备,从而减少首次推理延迟

安装指南

Openvino 以 pip 包 openvino 的形式提供。要安装该软件包,请运行以下命令

pip install openvino

有关其他安装方法,请参阅此处

实践指南

有关如何使用 OpenVINO 的实践指南,请参阅此notebook

Optimum

概述

Optimum 是 Transformers 的扩展,提供一套工具,旨在优化在特定硬件上训练和运行模型的性能,从而确保最大效率。在快速发展的 AI 领域,专业硬件和独特的优化不断涌现。Optimum 使开发人员能够无缝地利用这些不同的平台,同时保持 Transformers 固有的易用性。Optimum 目前支持的平台有

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

安装指南

Optimum 以 pip 包 optimum 的形式提供。要安装该软件包,请运行以下命令

pip install optimum

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

实践指南

有关如何使用 Optimum 进行量化的实践指南,请参阅此notebook

EdgeTPU

概述

Edge TPU 是谷歌专为在边缘运行 AI 而构建的 ASIC。它在小巧的物理和功率占用空间内提供高性能,从而可以在边缘部署高精度 AI。使用 EdgeTPU 的好处包括

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

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

有关如何设置和使用 EdgeTPU 的指南,请参阅此notebook

< > 在 GitHub 上更新