Hub Python Library documentation
نموذج Git مقابل HTTP
نموذج Git مقابل HTTP
مكتبة huggingface_hub هي مكتبة للتفاعل مع Hugging Face Hub، وهو مجموعة من المستودعات القائمة على git (نماذج، مجموعات بيانات أو Spaces). هناك طريقتان رئيسيتان للوصول إلى Hub باستخدام huggingface_hub.
تعتمد الطريقة الأولى، المعروفة بالطريقة “المبنية على git”، على استخدام أوامر git القياسية مباشرةً في الطرفية. تتيح لك هذه الطريقة استنساخ المستودعات وإنشاء التزامات ودفع التغييرات يدويًا. أما الخيار الثاني، المسمى بالطريقة “المبنية على HTTP”، فيتمثل في إرسال طلبات HTTP باستخدام عميل HfApi. دعونا نفحص إيجابيات وسلبيات كل طريقة.
Git: النهج التاريخي القائم على سطر الأوامر
في البداية، تفاعل معظم المستخدمين مع Hugging Face Hub باستخدام أوامر git بسيطة مثل git clone، git add، git commit، git push، git tag، أو git checkout.
تتيح لك هذه الطريقة العمل مع نسخة محلية كاملة من المستودع على جهازك، تمامًا كما هو الحال في تطوير البرمجيات التقليدي. وقد يكون ذلك ميزة عندما تحتاج إلى وصول دون اتصال أو ترغب في العمل مع السجل الكامل للمستودع. ومع ذلك، فإنها تأتي أيضًا بعيوب: فأنت مسؤول عن إبقاء المستودع محدثًا محليًا، والتعامل مع بيانات الاعتماد، وإدارة الملفات الكبيرة (عبر git-lfs)، مما قد يصبح أمرًا متعبًا عند العمل مع نماذج تعلم الآلة الكبيرة أو مجموعات البيانات.
في العديد من سير عمل تعلّم الآلة، قد تحتاج فقط إلى تنزيل عدد قليل من الملفات للاستدلال أو تحويل الأوزان دون الحاجة إلى استنساخ المستودع بأكمله. في مثل هذه الحالات، يمكن أن يكون استخدام git مبالغاً فيه ويُدخل تعقيداً غير ضروري.
HfApi: عميل HTTP مرن وسهل الاستخدام
طُوّرت فئة HfApi لتوفير بديل لاستخدام مستودعات git المحلية، والتي قد تكون متعبة في الصيانة، خاصة عند التعامل مع نماذج أو مجموعات بيانات كبيرة. توفر فئة HfApi نفس الوظائف التي توفرها سير عمل git -مثل تنزيل الملفات ودفعها وإنشاء الفروع والوسوم- ولكن دون الحاجة إلى مجلد محلي يجب الحفاظ على مزامنته.
بالإضافة إلى الوظائف التي يوفرها git بالفعل، توفّر فئة HfApi ميزات إضافية، مثل القدرة على إدارة المستودعات، وتنزيل الملفات باستخدام التخزين المؤقت لإعادة الاستخدام بكفاءة، والبحث في Hub عن المستودعات والبيانات الوصفية، والوصول إلى ميزات المجتمع مثل النقاشات وطلبات الدمج والتعليقات، وإعداد العتاد والأسرار الخاصة بـ Spaces.
ماذا يجب أن أستخدم؟ ومتى؟
بشكل عام، يُعدّ النهج المبني على HTTP هو الطريقة الموصى بها لاستخدام huggingface_hub في جميع الحالات. يتيح لك HfApi سحب التغييرات ودفعها، والعمل مع طلبات الدمج والوسوم والفروع، والتفاعل مع النقاشات، وأكثر من ذلك بكثير.
ومع ذلك، لا تتوفر جميع أوامر git عبر HfApi. قد لا يتم تنفيذ بعضها على الإطلاق، لكننا نعمل دائمًا على التحسين وسد الفجوة. إذا لم تجد استخدامك مغطى، فيرجى فتح مشكلة على GitHub! نرحب بملاحظاتكم للمساعدة في بناء نظام HF البيئي مع مستخدمينا ولأجلهم.
لا يعني تفضيل HfApi القائم على بروتوكول HTTP على أوامر git المباشرة أن نظام إصدارات git سيختفي من Hugging Face Hub في أي وقت قريب. وسيظل من الممكن دائمًا استخدام git محليًا في سير العمل التي يكون فيها ذلك منطقيًا.