Hub documentation
المهام
المهام
ما هو المهمة؟
تصف المهام، أو أنواع خطوط الأنابيب، "الشكل" الخاص بواجهة برمجة التطبيقات (API) لكل نموذج (المدخلات والمخرجات)، وتُستخدم لتحديد واجهة برمجة التطبيقات (API) للاستدلال (Inference API) والمكوّن (widget) الذي نرغب في عرضه لأي نموذج معيّن.

هذا التصنيف خشن الحبيبات إلى حد ما (يمكنك دائمًا إضافة المزيد من أسماء المهام الدقيقة في وسوم نموذجك)، لذا نادرًا ما ستحتاج إلى إنشاء مهمة جديدة. إذا كنت ترغب في إضافة دعم لمهمة جديدة، يوضح هذا المستند الخطوات المطلوبة.
نظرة عامة
يعني أن مهمة جديدة أصبحت مدمجة في الـ Hub ما يلي:
- يمكن للمستخدمين البحث عن جميع النماذج – ومجموعات البيانات – الخاصة بمهمة معينة.
- يدعم واجهة برمجة التطبيقات للاستدلال (Inference API) المهمة.
- يمكن للمستخدمين تجربة النماذج مباشرةً باستخدام المكوّن. 🏆
لاحظ أنك لا تحتاج إلى تنفيذ جميع الخطوات بنفسك. إضافة مهمة جديدة هي جهد جماعي، ويمكن لشخصيات متعددة المساهمة. 🧑🤝🧑
لبدء العملية، افتح مشكلة جديدة في مستودع huggingface_hub. يُرجى استخدام قالب “إضافة مهمة جديدة”. ⚠️قبل القيام بأي برمجة، يُقترح الاطلاع على هذا المستند. ⚠️
الخطوة الأولى هي رفع نموذج للمهمة المقترحة. بمجرد توفّر نموذج في Hub للمهمة الجديدة، تكون الخطوة التالية هي تفعيله في Inference API. هناك ثلاثة أنواع من الدعم يمكنك الاختيار من بينها:
- 🤗 استخدام نموذج
transformers - 🐳 استخدام نموذج من مكتبة مدعومة رسميًا
- 🖨️ استخدام نموذج مع كود استنتاج مخصص. هذا الخيار التجريبي له عيوب، لذا نوصي باستخدام أحد الأساليب الأخرى.
أخيرًا، يمكنك إضافة بعض عناصر واجهة المستخدم، مثل أيقونة المهمة والمكوّن، لإكمال التكامل في Hub. 📷
بعض الخطوات مستقلة عن بعضها البعض؛ فلا يلزم تنفيذها بالترتيب. لا تحتاج إلى واجهة برمجة التطبيقات للاستدلال لإضافة الأيقونة. وهذا يعني أنه، حتى في حال عدم اكتمال التكامل بعد، يمكن للمستخدمين البحث عن نماذج مهمة معينة.
إضافة مهام جديدة إلى Hub
استخدام مكتبة transformers من Hugging Face
إذا كان نموذجك نموذجًا مبنيًا على transformers، فهناك تطابق واحد لواحد بين مهمة واجهة برمجة التطبيقات للاستدلال وفئة pipeline. فيما يلي بعض أمثلة طلبات الدمج من مكتبة transformers:
بمجرد إرسال خط الأنابيب ونشره، يجب أن تتمكن من استخدام واجهة برمجة التطبيقات للاستدلال (Inference API) لنموذجك.
استخدام واجهة برمجة تطبيقات الاستدلال المجتمعية مع مكتبة مدعومة
يدعم واجهة برمجة التطبيقات للاستدلال المجتمعي في المستودع أيضًا أكثر من 10 مكتبات مفتوحة المصدر.
إضافة مهمة جديدة عملية بسيطة نسبيًا وتتطلب طلبَي دمج:
- طلب الإرسال 1: إضافة المهمة الجديدة إلى واجهة برمجة التطبيقات التحقق. تضمن هذا الكود أن مدخلات الاستدلال صالحة لمهمة معينة. أمثلة على طلبات الإرسال:
- الطلب الثاني: إضافة المهمة الجديدة إلى صورة Docker الخاصة بالمكتبة. يجب أيضًا إضافة قالب إلى
docker_images/common/app/pipelinesلتسهيل دمج المهمة في المكتبات الأخرى. إليك مثالًا على طلب:
إضافة واجهة برمجة تطبيقات الاستدلال المجتمعية لإنشاء نموذج أولي سريع
نموذجي غير مدعوم من أي مكتبة. هل أنا محكوم عليّ بالفشل؟ 😱
نوصي باستخدام Hugging Face Spaces لهذه الحالات.
عناصر واجهة المستخدم
يتيح لك الـ Hub تصفية النماذج حسب مهمة محددة. للقيام بذلك، تحتاج إلى إضافة المهمة إلى عدة أماكن. كما ستتمكن من اختيار أيقونة للمهمة!
- أضف نوع المهمة إلى
Types.ts
في huggingface.js/packages/tasks/src/pipelines.ts، عليك القيام بعدة أشياء
- أضِف النوع إلى
PIPELINE_DATA. لاحظ أن أنواع خطوط الأنابيب مصنّفة في فئات مختلفة (معالجة اللغة الطبيعية، والصوت، والرؤية الحاسوبية، وغيرها). - ستحتاج أيضاً إلى إدخال تعديلات طفيفة في huggingface.js/packages/tasks/src/tasks/index.ts
- اختر أيقونة
يمكنك إضافة أيقونة في مجلد lib/Icons. نختار عادةً أيقونات carbon من https://icones.js.org/collection/carbon. أضف أيضًا الأيقونة إلى PipelineIcon.
المكوّن
بمجرد أن تصبح المهمة في بيئة الإنتاج، ما الذي يمكن أن يكون أكثر إثارة من تنفيذ طريقة ما تتيح للمستخدمين التفاعل مباشرة مع النماذج في متصفحاتهم؟ 🤩 يمكنك العثور على جميع الأدوات المدمجة هنا.
إذا كنت مهتمًا بالمساهمة في إضافة أداة، يمكنك الاطلاع على التنفيذ لجميع الأدوات.
Update on GitHub