🤗 Optimum 是 Hugging Face 推出的一个专业机器学习模型优化库,是 🤗 Transformers 和 Diffusers 的扩展工具。该项目专注于为各种目标硬件提供最大效率的模型训练和运行优化工具,同时保持易于使用的特点。
项目地址: https://github.com/huggingface/optimum
Optimum 支持多种主流硬件加速平台:
提供优化的训练封装器,支持:
python -m pip install optimum
根据需要的硬件平台选择对应的安装命令:
# ONNX Runtime
pip install --upgrade --upgrade-strategy eager optimum[onnxruntime]
# ExecuTorch
pip install --upgrade --upgrade-strategy eager optimum[executorch]
# Intel Neural Compressor
pip install --upgrade --upgrade-strategy eager optimum[neural-compressor]
# OpenVINO
pip install --upgrade --upgrade-strategy eager optimum[openvino]
# NVIDIA TensorRT-LLM
docker run -it --gpus all --ipc host huggingface/optimum-nvidia
# AMD 硬件
pip install --upgrade --upgrade-strategy eager optimum[amd]
# AWS Trainium & Inferentia
pip install --upgrade --upgrade-strategy eager optimum[neuronx]
# Habana Gaudi
pip install --upgrade --upgrade-strategy eager optimum[habana]
# FuriosaAI
pip install --upgrade --upgrade-strategy eager optimum[furiosa]
python -m pip install git+https://github.com/huggingface/optimum.git
ONNX 导出示例:
# 安装依赖
pip install optimum[exporters,onnxruntime]
# 导出模型
optimum-cli export onnx --model bert-base-uncased --output ./bert-onnx/
ExecuTorch 导出:
# 安装依赖
pip install optimum[exporters-executorch]
# 导出模型用于边缘设备
optimum-cli export executorch --model distilbert-base-uncased --output ./distilbert-executorch/
TensorFlow Lite 导出:
# 安装依赖
pip install optimum[exporters-tf]
# 导出并量化
optimum-cli export tflite --model bert-base-uncased --output ./bert-tflite/
使用 ONNX Runtime 进行优化推理:
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer
# 加载优化后的模型
model = ORTModelForSequenceClassification.from_pretrained("./bert-onnx/")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
# 进行推理
inputs = tokenizer("Hello world!", return_tensors="pt")
outputs = model(**inputs)
支持多种量化方案:
使用 Habana Gaudi 进行优化训练:
from optimum.habana import GaudiTrainer, GaudiTrainingArguments
# 配置训练参数
training_args = GaudiTrainingArguments(
output_dir="./results",
use_habana=True,
use_lazy_mode=True,
gaudi_config_name="Habana/bert-base-uncased"
)
# 创建优化训练器
trainer = GaudiTrainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
# 开始训练
trainer.train()
optimum-cli
命令行工具简化操作Hugging Face Optimum 是一个功能强大、易于使用的机器学习模型优化工具库。它为开发者提供了将 AI 模型高效部署到各种硬件平台的完整解决方案,是现代 AI 应用开发和部署的重要工具。无论是边缘设备部署还是大规模云端服务,Optimum 都能提供显著的性能提升和成本优化。