Py之optimum:optimum的简介、安装、使用方法之详细攻略

Py之optimum:optimum的简介、安装、使用方法之详细攻略

目录

optimum的简介

1、加速推理  Optimum 提供多种工具,用于在不同生态系统上导出和运行优化模型:

2、功能概述

optimum的安装

1、如果您想使用  Optimum 的加速器特定功能,您可以根据下表安装所需的依赖项:

2、从源代码安装:

optimum的使用方法

1、基础用法

(1)、加载一个模型并使用 OpenVINO Runtime 运行推理

(2)、要加载使用 Intel Neural Compressor 量化的模型(本地或在  hub 上托管),可以按如下方式进行:


optimum的简介

Optimum 是Transformers 和 Diffusers 的扩展,提供了一套优化工具,可实现在目标硬件上训练和运行模型的最大效率,同时保持易于使用。

1、加速推理  Optimum 提供多种工具,用于在不同生态系统上导出和运行优化模型:

  • ONNX / ONNX Runtime
  • TensorFlow Lite
  • OpenVINO
  • Habana 第一代 Gaudi / Gaudi2,更多详情请参见这里

导出和优化可以通过编程方式和命令行完成。

2、功能概述

功能 ONNX Runtime Neural Compressor OpenVINO TensorFlow Lite
图优化 N/A N/A
训练后动态量化 N/A
训练后静态量化
量化感知训练 (QAT) N/A N/A
FP16 (半精度) N/A
剪枝 N/A N/A
知识蒸馏 N/A N/A

optimum的安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple optimum auto-gptq

Py之optimum:optimum的简介、安装、使用方法之详细攻略_第1张图片Py之optimum:optimum的简介、安装、使用方法之详细攻略_第2张图片

1、如果您想使用  Optimum 的加速器特定功能,您可以根据下表安装所需的依赖项:

加速器 安装命令
ONNX Runtime pip install --upgrade-strategy eager optimum[onnxruntime]
Intel Neural Compressor pip install --upgrade-strategy eager optimum[neural-compressor]
OpenVINO pip install --upgrade-strategy eager optimum[openvino,nncf]
Habana Gaudi 处理器 (HPU) pip install --upgrade-strategy eager optimum[habana]
FuriosaAI pip install --upgrade-strategy eager optimum[furiosa]

需要使用 --upgrade-strategy eager 选项来确保不同的软件包被升级到最新版本。

2、从源代码安装:

python -m pip install git+https://github.com/huggingface/optimum.git

对于特定加速器功能,请将 optimum[accelerator_type] 添加到上述命令中:

python -m pip install optimum[onnxruntime]@git+https://github.com/huggingface/optimum.git

OpenVINO 这需要通过以下命令安装 OpenVINO 额外功能:

pip install --upgrade-strategy eager optimum[openvino,nncf]

optimum的使用方法

1、基础用法

(1)、加载一个模型并使用 OpenVINO Runtime 运行推理

只需将 AutoModelForXxx 类替换为相应的 OVModelForXxx 类。要加载 PyTorch 检查点并在加载模型时将其转换为 OpenVINO 格式,可以在加载模型时设置 export=True

from transformers import AutoModelForSequenceClassification
from optimum.intel import OVModelForSequenceClassification
from transformers import AutoTokenizer, pipeline

model_id = "distilbert-base-uncased-finetuned-sst-2-english"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = OVModelForSequenceClassification.from_pretrained(model_id, export=True)
model.save_pretrained("./distilbert")

classifier = pipeline("text-classification", model=model, tokenizer=tokenizer)
results = classifier("He's a dreadful magician.")

(2)、要加载使用 Intel Neural Compressor 量化的模型(本地或在  hub 上托管),可以按如下方式进行:

from optimum.intel import INCModelForSequenceClassification

model_id = "Intel/distilbert-base-uncased-finetuned-sst-2-english-int8-dynamic"
model = INCModelForSequenceClassification.from_pretrained(model_id)

你可能感兴趣的:(NLP/LLMs,深度学习,人工智能)