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 


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)
 
 
 
                


















