Transformers documentation

الفلسفة

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

الفلسفة

Transformers هي مكتبة تُعطي الأولوية لـ PyTorch. فهي توفر نماذج مطابقة لأوراقها البحثية، وسهلة الاستخدام، وسهلة التعديل.

يتوفر مقال أطول وأكثر تفصيلاً يتضمن أمثلة وتصورات زمنية وجداول زمنية هنا كمرجع قياسي لدينا.

تتطور فلسفتنا من خلال الممارسة. فيما يلي مبادئنا الحالية والمستقرة.

لمن هذه المكتبة

  • الباحثون والمعلمون الذين يستكشفون أو يوسّعون من هياكل النماذج.
  • الممارسون الذين يقومون بضبط النماذج الدقيقة أو تقييمها أو تقديمها.
  • المهندسون الذين يريدون نموذجًا مُدرَّبًا مسبقًا "يعمل مباشرة" مع واجهة برمجة تطبيقات متوقعة.

ما يمكن أن تتوقعه

  • تتطلب كل نموذج ثلاث فئات أساسية: configuration، وmodels، وفئة للمعالجة المسبقة. تتولى Tokenizers معالجة نصوص اللغة الطبيعية، وتتولى image processors معالجة الصور، وتتولى video processors معالجة مقاطع الفيديو، وتتولى feature extractors معالجة الصوت، وتتولى processors معالجة المدخلات متعددة الوسائط.

  • يمكن تهيئة جميع هذه الفئات بطريقة بسيطة وموحّدة من النماذج المُسبقة التدريب باستخدام طريقة from_pretrained() المشتركة، والتي تقوم بتنزيل (إذا لزم الأمر) وتخزين مؤقت وتحميل كائن الفئة ذات الصلة والبيانات المرتبطة به (معاملات التشكيلات، ومفردات المُرمّزات، ومعاملات المُعالجات، وأوزان النماذج) من نقطة تحقق مُسبقة التدريب متاحة على Hugging Face Hub أو من نقطة تحقق محفوظة من قِبلك.

  • بالإضافة إلى هذه الفئات الأساسية الثلاث، يوفر المكتبة واجهتي برمجة تطبيقات: pipeline() لاستخدام نموذج بسرعة للاستدلال على مهمة محددة، وTrainer لتدريب أو ضبط نموذج PyTorch بسرعة.

المبادئ الأساسية

تبلورت المبادئ العشرة التالية مع مرور الوقت، وهي موضّحة بالتفصيل في منشورنا الجديد على المدونة. وتُوجّه قرارات المشرفين عند مراجعة طلبات الدمج والمساهمات.

  • مصدر الحقيقة. يجب أن تكون التطبيقات مطابقة للنتائج الرسمية والسلوك المقصود.
  • نموذج واحد، ملف واحد. منطق الاستدلال/التدريب الأساسي مرئي من أعلى الملف إلى أسفله في ملف النموذج الذي يقرؤه المستخدمون.
  • الكود هو المنتج. احرص على تحسين الكود من حيث سهولة القراءة ومقارنة الفروقات. وفضّل الأسماء الصريحة على التوجيه غير المباشر المعقّد.
  • قيِّم ولا تُجَرِّد. احتفظ بالسلوك الخاص بالنموذج داخل النموذج. استخدم الواجهات المشتركة فقط للبنية التحتية العامة.
  • DRY* (كرّرها عندما يفيد ذلك المستخدمين). تبقى ملفات نمذجة المستخدم النهائي مكتفية ذاتياً. يتم فصل البنية التحتية.
  • واجهة مستخدم بسيطة. مسارات برمجية قليلة، وkwargs متوقعة، وطرق مستقرة.
  • التوافق العكسي. يجب ألا تُكسر الواجهات العامة. يجب أن تستمر عناصر Hub القديمة في العمل.
  • سطح عام متسق. يتم مواءمة التسميات والمخرجات والتشخيصات الاختيارية واختبارها.

الفئات الرئيسية

  • تُخزّن فئات التهيئة المعاملات الفائقة اللازمة لبناء النموذج. وتشمل هذه المعاملات عدد الطبقات وحجم الطبقة المخفية. لا تحتاج دائمًا إلى إنشاء هذه الفئات بنفسك. عند استخدام نموذج مُدرَّب مسبقًا دون إجراء أي تعديلات عليه، يتم إنشاء النموذج تلقائيًا مع تهيئة الفئة المصاحبة له.

  • فئات النماذج Model classes هي نماذج PyTorch (torch.nn.Module)، مُغلَّفة بطبقة واحدة على الأقل من PreTrainedModel.

  • محوّلات معيارية. يكتب المساهمون شريحة صغيرة modular_*.py تُعلن إعادة الاستخدام من مكوّنات موجودة مسبقًا. يقوم المكتبة تلقائيًا بتوسيع هذه الشريحة إلى الملف المرئي modeling_*.py الذي يقرؤه المستخدمون ويصححون أخطاءه. يراجع المسؤولون الشريحة؛ بينما يعدّل المستخدمون الملف الموسّع. يحافظ هذا على مبدأ «نموذج واحد، ملف واحد» دون انحراف في الشيفرة القياسية. راجع توثيق المساهمة لمزيد من المعلومات.

  • تقوم فئات المعالجة المسبقة بتحويل البيانات الخام إلى صيغة يقبلها النموذج. يخزّن المجزّئ قاموس الكلمات لكل نموذج، ويوفّر طرقًا لتشفير النصوص وفكّ تشفيرها في قائمة من فهارس تضمين الرموز. تعالج معالجات الصور مدخلات الرؤية، وتعالج معالجات الفيديو مدخلات الفيديو، وتعالج مستخرجات الميزات مدخلات الصوت، بينما تعالج المعالجات المدخلات متعددة الوسائط.

يمكن إنشاء جميع هذه الفئات من نماذج مُدرَّبة مسبقًا، وحفظها محليًا، ومشاركتها على Hub باستخدام ثلاث طرق:

  • يتيح لك from_pretrained() إنشاء نموذج، وتكوين، وفئة معالجة مسبقة من نسخة مُدرَّبة مسبقًا، إما تلك التي توفرها المكتبة نفسها (يمكن العثور على النماذج المدعومة في Model Hub)، أو تلك التي يخزنها المستخدم محليًا (أو على خادم).
  • تتيح لك save_pretrained() حفظ النموذج والإعدادات وفئة المعالجة المسبقة محليًا بحيث يمكن إعادة تحميلها باستخدام from_pretrained().
  • يتيح لك push_to_hub() مشاركة نموذج، وإعدادات، وفئة معالجة مسبقة مع مستودع Hub، مما يجعلها في متناول الجميع بسهولة.
Update on GitHub