🤗 Optimum ist eine von Hugging Face entwickelte, spezialisierte Bibliothek zur Optimierung von Machine-Learning-Modellen. Sie ist eine Erweiterung von 🤗 Transformers und Diffusers. Das Projekt konzentriert sich auf die Bereitstellung von Werkzeugen zur Maximierung der Effizienz beim Trainieren und Ausführen von Modellen auf verschiedenen Zielhardwareplattformen, wobei gleichzeitig die Benutzerfreundlichkeit erhalten bleibt.
Projektadresse: https://github.com/huggingface/optimum
Optimum unterstützt eine Vielzahl gängiger Hardwarebeschleunigungsplattformen:
Bietet optimierte Trainings-Wrapper, die Folgendes unterstützen:
python -m pip install optimum
Wählen Sie den entsprechenden Installationsbefehl basierend auf der benötigten Hardwareplattform:
# 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-Exportbeispiel:
# Abhängigkeiten installieren
pip install optimum[exporters,onnxruntime]
# Modell exportieren
optimum-cli export onnx --model bert-base-uncased --output ./bert-onnx/
ExecuTorch-Export:
# Abhängigkeiten installieren
pip install optimum[exporters-executorch]
# Modell für Edge-Geräte exportieren
optimum-cli export executorch --model distilbert-base-uncased --output ./distilbert-executorch/
TensorFlow Lite-Export:
# Abhängigkeiten installieren
pip install optimum[exporters-tf]
# Exportieren und quantisieren
optimum-cli export tflite --model bert-base-uncased --output ./bert-tflite/
Verwenden von ONNX Runtime zur optimierten Inferenz:
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer
# Optimiertes Modell laden
model = ORTModelForSequenceClassification.from_pretrained("./bert-onnx/")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
# Inferenz durchführen
inputs = tokenizer("Hello world!", return_tensors="pt")
outputs = model(**inputs)
Unterstützt verschiedene Quantisierungsschemata:
Verwenden von Habana Gaudi zur optimierten Trainings:
from optimum.habana import GaudiTrainer, GaudiTrainingArguments
# Trainingsparameter konfigurieren
training_args = GaudiTrainingArguments(
output_dir="./results",
use_habana=True,
use_lazy_mode=True,
gaudi_config_name="Habana/bert-base-uncased"
)
# Optimierten Trainer erstellen
trainer = GaudiTrainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
# Training starten
trainer.train()
optimum-cli
Befehlszeilentools zur Vereinfachung der BedienungHugging Face Optimum ist eine leistungsstarke und benutzerfreundliche Bibliothek zur Optimierung von Machine-Learning-Modellen. Sie bietet Entwicklern eine umfassende Lösung für die effiziente Bereitstellung von KI-Modellen auf verschiedenen Hardwareplattformen und ist ein wichtiges Werkzeug für die moderne Entwicklung und Bereitstellung von KI-Anwendungen. Ob Edge-Gerätebereitstellung oder großflächige Cloud-Dienste, Optimum bietet deutliche Leistungssteigerungen und Kostenoptimierungen.