Home
Login

مكتبة تسريع الاستدلال والتدريب مع أدوات تحسين الأجهزة لـ Transformers و Diffusers و TIMM و Sentence Transformers

Apache-2.0Python 2.9khuggingface Last Updated: 2025-06-19

نظرة عامة على مشروع Hugging Face Optimum

🤗 Optimum عبارة عن مكتبة متخصصة لتحسين نماذج تعلم الآلة تم إطلاقها بواسطة Hugging Face، وهي أداة توسيع لـ 🤗 Transformers و Diffusers. يركز هذا المشروع على توفير أدوات لتحسين تدريب وتشغيل النماذج بأقصى قدر من الكفاءة لمختلف الأجهزة المستهدفة، مع الحفاظ على سهولة الاستخدام.

عنوان المشروع: https://github.com/huggingface/optimum

الميزات الأساسية

1. دعم منصات أجهزة متعددة

يدعم Optimum العديد من منصات تسريع الأجهزة الرئيسية:

  • ONNX/ONNX Runtime - استدلال تعلم الآلة عبر الأنظمة الأساسية
  • ExecuTorch - حل استدلال PyTorch للأجهزة الطرفية
  • TensorFlow Lite - تحسين للأجهزة المحمولة والطرفية
  • OpenVINO - تحسين لأجهزة Intel
  • NVIDIA TensorRT-LLM - تسريع NVIDIA GPU
  • AWS Trainium & Inferentia - رقائق AWS مخصصة
  • Habana Gaudi - معالجات Habana
  • AMD Instinct GPUs - دعم أجهزة AMD
  • Intel Neural Compressor - ضغط الشبكات العصبية من Intel
  • FuriosaAI - منصة أجهزة FuriosaAI

2. تصدير النماذج وتحسينها

  • تحويل التنسيق: يدعم تصدير نماذج Transformers و Diffusers إلى تنسيقات مثل ONNX و ExecuTorch و TensorFlow Lite
  • تحسين الرسم البياني: إجراء تحسين تلقائي لرسم بياني لحساب النموذج
  • تقنيات التكميم: توفير حلول تكميم متعددة لتقليل حجم النموذج وتقليل زمن الوصول للاستدلال
  • ضبط الأداء: تحسين الأداء لأجهزة معينة

3. تسريع التدريب

توفير أغلفة تدريب محسنة، تدعم:

  • تدريب معالج Habana Gaudi
  • تدريب مثيل AWS Trainium
  • تدريب مُحسَّن لـ ONNX Runtime GPU

طريقة التثبيت

التثبيت الأساسي

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

وحدات الوظائف الرئيسية

1. تصدير النموذج (Export)

مثال على تصدير 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/

2. تحسين الاستدلال

استخدام 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)

3. تقنيات التكميم

يدعم حلول تكميم متعددة:

  • التكميم الديناميكي - التكميم في وقت التشغيل
  • التكميم الثابت - التكميم على أساس بيانات المعايرة
  • QAT (Quantization Aware Training) - التدريب المدرك للتكميم

4. تحسين التدريب

استخدام 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()

المزايا الرئيسية

1. سهولة الاستخدام

  • واجهة موحدة: تصميم API متسق مع مكتبة Transformers
  • أداة سطر الأوامر: توفير أداة سطر الأوامر optimum-cli لتبسيط العمليات
  • التحسين التلقائي: اختيار ذكي لأفضل استراتيجية تحسين

2. تحسين الأداء

  • تسريع الاستدلال: تحسين كبير في سرعة استدلال النموذج
  • تحسين الذاكرة: تقليل استخدام الذاكرة
  • تقليل استهلاك الطاقة: تحسين استهلاك الطاقة

3. جاهز للإنتاج

  • الاستقرار: تم اختباره والتحقق منه على نطاق واسع
  • قابلية التوسع: يدعم النشر على نطاق واسع
  • التوافق: يتكامل تمامًا مع نظام Hugging Face البيئي الحالي

سيناريوهات التطبيق

1. نشر الأجهزة الطرفية

  • تطبيقات الذكاء الاصطناعي للأجهزة المحمولة
  • ذكاء أجهزة إنترنت الأشياء
  • تحسين الأنظمة المدمجة

2. تحسين الخدمات السحابية

  • خدمات API واسعة النطاق
  • مهام الاستدلال المجمعة
  • أنظمة الاستجابة في الوقت الحقيقي

3. تسريع الأجهزة المخصصة

  • تحسين مجموعات GPU
  • تسريع TPU
  • تكييف رقائق الذكاء الاصطناعي المخصصة

النظام البيئي للمجتمع

المشاريع ذات الصلة

  • optimum-intel - تحسين مخصص لأجهزة Intel
  • optimum-habana - دعم معالج Habana Gaudi
  • optimum-neuron - دعم رقاقة AWS Neuron
  • optimum-nvidia - تحسين أجهزة NVIDIA
  • optimum-benchmark - أداة قياس الأداء
  • optimum-quanto - الواجهة الخلفية لتكميم PyTorch

موارد الوثائق

البنية التقنية

المكونات الأساسية

  1. المصدرون (Exporters) - مسؤولون عن تحويل تنسيق النموذج
  2. المحسنات (Optimizers) - تنفيذ استراتيجيات التحسين المختلفة
  3. المكممون (Quantizers) - تحقيق تكميم النموذج
  4. وقت التشغيل (Runtimes) - توفير وقت تشغيل استدلال مُحسَّن
  5. المدربون (Trainers) - تغليف تدريب مُحسَّن للأجهزة

مبادئ التصميم

  • وحدات - وحدات وظيفية مستقلة وقابلة للتركيب
  • قابلة للتوسيع - سهولة إضافة دعم أجهزة جديد
  • التوافق مع الإصدارات السابقة - الحفاظ على التوافق مع واجهات برمجة التطبيقات الأصلية
  • أولوية الأداء - تحسين الأداء هو الهدف الأساسي

ملخص

Hugging Face Optimum عبارة عن مكتبة أدوات قوية وسهلة الاستخدام لتحسين نماذج تعلم الآلة. يوفر للمطورين حلاً كاملاً لنشر نماذج الذكاء الاصطناعي بكفاءة على منصات أجهزة مختلفة، وهو أداة مهمة لتطوير ونشر تطبيقات الذكاء الاصطناعي الحديثة. سواء كان نشر الأجهزة الطرفية أو الخدمات السحابية واسعة النطاق، يمكن لـ Optimum توفير تحسينات كبيرة في الأداء وتحسين التكلفة.