🤗 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 عبارة عن مكتبة أدوات قوية وسهلة الاستخدام لتحسين نماذج تعلم الآلة. يوفر للمطورين حلاً كاملاً لنشر نماذج الذكاء الاصطناعي بكفاءة على منصات أجهزة مختلفة، وهو أداة مهمة لتطوير ونشر تطبيقات الذكاء الاصطناعي الحديثة. سواء كان نشر الأجهزة الطرفية أو الخدمات السحابية واسعة النطاق، يمكن لـ Optimum توفير تحسينات كبيرة في الأداء وتحسين التكلفة.