Hub documentation
استخدام 🤗 transformers في Hugging Face
استخدام 🤗 transformers في Hugging Face
🤗 transformers هي مكتبة تُديرها Hugging Face والمجتمع، مخصصة لأحدث تقنيات التعلم الآلي في PyTorch وTensorFlow وJAX. توفر آلاف النماذج المُسبقة التدريب لأداء مهام على أنماط مختلفة مثل النص والرؤية والصوت. نحن منحازون بعض الشيء، لكننا نحب 🤗 transformers حقًا!
استكشاف 🤗 transformers في Hub
يوجد أكثر من 630,000 نموذج transformers في Hub يمكنك العثور عليها من خلال التصفية على يسار صفحة النماذج.
يمكنك العثور على نماذج لمهام مختلفة كثيرة:
- استخراج الإجابة من السياق (إجابة الأسئلة).
- إنشاء ملخصات من نص كبير (تلخيص).
- تصنيف النص (مثلًا، كرسالة غير مرغوب فيها أو غير ذلك، text-classification).
- أنشئ نصًا جديدًا باستخدام نماذج مثل GPT (text-generation).
- تحديد أجزاء الكلام (الفعل، الفاعل، إلخ) أو الكيانات (الدولة، المنظمة، إلخ) في جملة (token-classification).
- نسخ ملفات الصوت إلى نص (automatic-speech-recognition).
- صنّف المتحدث أو اللغة في ملف صوتي (audio-classification).
- كشف الكائنات في صورة (object-detection).
- تجزئة صورة (image-segmentation).
- قم بتعلم التعزيز (reinforcement-learning)!
يمكنك تجربة النماذج مباشرةً في المتصفح إذا كنت ترغب في اختبارها دون تنزيلها، وذلك بفضل أدوات الواجهة المدمجة في المتصفح!

ملفات مستودع Transformers
تحتوي مستودعة نماذج Transformers بشكل عام على ملفات النموذج وملفات المعالج المسبق.

النموذج
تخزّن ملف
config.jsonتفاصيل حول بنية النموذج مثل عدد الطبقات المخفية، حجم المفردات، عدد رؤوس الانتباه، أبعاد كل رأس، والمزيد. تُعد هذه البيانات الوصفية مخطط النموذج.يخزّن ملف
model.safetensorsالطبقات والأوزان المُسبقة التدريب للنماذج. بالنسبة للنماذج الكبيرة، يتم تقسيم ملف safetensors إلى أجزاء لتقليل كمية الذاكرة المطلوبة لتحميله. تصفح ملفmodel.safetensors.index.jsonلمعرفة من أي ملف safetensors يتم تحميل أوزان النموذج.{ "metadata": { "total_size": 16060522496 }, "weight_map": { "lm_head.weight": "model-00004-of-00004.safetensors", "model.embed_tokens.weight": "model-00001-of-00004.safetensors", ... } }يمكنك أيضًا تصور هذا الترميز بالنقر على زر ↗ في بطاقة النموذج.

Safetensors هو تنسيق تسلسلي أكثر أمانًا وسرعة - مقارنةً بـ pickle - لتخزين أوزان النموذج. قد تواجه أوزانًا مُسلسلة بتنسيقات مثل
binأوpthأوckpt، لكنsafetensorsيُتبنى بشكل متزايد في منظومة النماذج كبديل أفضل.قد يحتوي النموذج أيضًا على ملف
generation_config.jsonيخزّن تفاصيل حول كيفية توليد النص، مثل ما إذا كان سيتم أخذ عينات، والرموز العلوية التي سيتم أخذ العينات منها، ودرجة الحرارة، والرموز الخاصة لبدء التوليد وإيقافه.
المعالج المسبق
- تخزّن ملف
tokenizer_config.jsonالرموز الخاصة التي يضيفها النموذج. تُشعِر هذه الرموز الخاصة النموذج بالعديد من الأمور، مثل بداية الجملة، أو تنسيق محدد للقوالب الخاصة بالحوارات، أو الإشارة إلى صورة. كما يُظهر هذا الملف أقصى طول لسلسلة الإدخال التي يمكن للنموذج قبولها، وفئة المعالج المسبق، والمخرجات التي يعيدها. - يخزّن الملف
tokenizer.jsonالمفردات التي تعلّمها النموذج. - يُعدّ
special_tokens_map.jsonخريطةً للرموز الخاصة. على سبيل المثال، في Llama 3.1-8B-Instruct، يكون رمز بداية النص"<|begin_of_text|>".
بالنسبة إلى الأنماط الأخرى، يُستبدل ملف
tokenizer_config.jsonبملفpreprocessor_config.json.
استخدام نماذج موجودة
جميع نماذج transformer على بُعد سطر واحد من أن تصبح جاهزة للاستخدام! اعتمادًا على الطريقة التي ترغب في استخدامها بها، يمكنك استخدام واجهة برمجة التطبيقات عالية المستوى عبر دالة pipeline أو استخدام AutoModel للحصول على تحكم أكبر.
# With pipeline, just specify the task and the model id from the Hub.
from transformers import pipeline
pipe = pipeline("text-generation", model="distilbert/distilgpt2")
# If you want more control, you will need to define the tokenizer and model.
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2")
model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")يمكنك أيضًا تحميل نموذج من إصدار محدد (بناءً على تجزئة الالتزام، أو اسم العلامة، أو الفرع) على النحو التالي:
model = AutoModel.from_pretrained(
"julien-c/EsperBERTo-small", revision="v2.0.1" # tag name, or branch name, or commit hash
)إذا كنت ترغب في معرفة كيفية تحميل نموذج محدد، يمكنك النقر على Use in Transformers وستحصل على مقتطف برمجي جاهز للتشغيل يمكنك من خلاله تحميل النموذج! إذا كنت بحاجة إلى مزيد من المعلومات حول بنية النموذج، يمكنك أيضًا النقر على “Read model documentation” في أسفل المقتطف.

مشاركة نماذجك
للقراءة عن مشاركة النماذج باستخدام transformers على وجه التحديد، يرجى التوجه إلى دليل مشاركة نموذج في التوثيق الرسمي.
تحتوي العديد من الفئات في transformers، مثل النماذج ومقسّمي الرموز، على طريقة push_to_hub تتيح رفع الملفات إلى مستودع بسهولة.
# Pushing model to your own account
model.push_to_hub("my-awesome-model")
# Pushing your tokenizer
tokenizer.push_to_hub("my-awesome-model")
# Pushing all things after training
trainer.push_to_hub()هناك المزيد مما يمكنك القيام به، لذا نقترح عليك مراجعة دليل مشاركة نموذج.
موارد إضافية
- مكتبة Transformers.
- وثائق Transformers.
- شارك دليل نموذج.