Hub documentation
الخطوات التالية
الخطوات التالية
تسلّط الأقسام التالية الضوء على ميزات ومعلومات إضافية قد تجد أنها مفيدة للاستفادة الكاملة من مستودعات Git على Hugging Face Hub.
كيفية إدارة المستودعات برمجياً
تدعم Hugging Face الوصول إلى المستودعات باستخدام Python عبر مكتبة huggingface_hub. العمليات التي استكشفناها، مثل تنزيل المستودعات ورفع الملفات، متاحة من خلال هذه المكتبة، بالإضافة إلى دوال مفيدة أخرى!
إذا كنت تفضل استخدام git مباشرةً، فيرجى قراءة الأقسام أدناه.
التعرف على Git بشكل أعمق
مكان جيد للزيارة إذا كنت ترغب في مواصلة التعلم حول Git هو هذا الشرح التعليمي لـ Git. للحصول على مزيد من الخلفية حول Git، يمكنك الاطلاع على أدلة Git من GitHub.
كيفية استخدام الفروع
للاستخدام الفعّل لمستودعات Git بشكل تعاوني والعمل على الميزات دون نشر كود غير مكتمل، يمكنك استخدام الفروع. تتيح لك الفروع فصل كودك "قيد العمل" عن كودك "جاهز للإنتاج"، مع فائدة إضافية تتمثل في تمكين عدة أشخاص من العمل على مشروع واحد دون تعارض متكرر مع مساهمات بعضهم البعض. يمكنك استخدام الفروع لعزل التجارب في فرع خاص بها، بل وحتى اعتماد ممارسات على مستوى الفريق لإدارة الفروع.
لتعلّم حول تفرّع Git، يمكنك تجربة الدليل التفاعلي لتعلّم تفرّع Git.
استخدام الوسوم
يتيح لك Git وضع وسوم على الالتزامات حتى تتمكن من توثيق معالم المشروع بسهولة. وبذلك، يمكنك استخدام الوسوم لتمييز الالتزامات في مستودعاتك على Hub! للتعرف على كيفية استخدام الوسوم، يمكنك زيارة هذا المنشور على DevConnected.
إلى جانب تسهيل تحديد الالتزامات المهمة في سجل مستودعك، يتيح استخدام وسوم Git إجراء اختبارات A/B، واستنساخ مستودع عند وسم محدد، والمزيد! كما تدعم مكتبة huggingface_hub العمل مع الوسوم، مثل تنزيل الملفات من التزام محدد بوسم.
كيفية تكرار مستودع
تتوفر عدة طرق لنسخ مستودع، وذلك بناءً على ما إذا كنت بحاجة إلى الحفاظ على سجل Git.
النسخ من المستودع
انقر على النقاط الثلاث في أعلى يمين أي صفحة مستودع، ثم اختر نسخ هذا النموذج أو نسخ هذا مجموعة البيانات أو نسخ هذا المساحة. تكون هذه العملية فورية تقريباً بفضل استخدام تقنية إزالة التكرار في Xet. وستتمكن من الاختيار بين:
- المالك: حسابك أو أي منظمة لديك صلاحية الكتابة فيها.
- اسم المستودع: اسم المستودع المكرر. افتراضيًا، يحتفظ بالاسم نفسه كمصدره، تحت نطاقك (على سبيل المثال، تكرار
bigscience/bloom-560mينشئyour-username/bloom-560m). - الظهور: يمكنك اختيار جعل المستودع المكرر عامًا أو خاصًا. اقرأ المزيد حول المستودعات الخاصة هنا.
بالنسبة إلى النماذج ومجموعات البيانات، يتم ضغط سجل Git في التزام الواحد. أما بالنسبة إلى Spaces، فيُحفظ سجل Git الكامل. تُنسخ المتغيرات العامة إلى Spaces، لكن يجب إعادة إدخال الأسرار يدويًا.
قيود
لا يمكن تكرار بعض المستودعات:
- المستودعات المُقيَّدة (النماذج أو مجموعات البيانات التي تم تفعيل طلبات الوصول لها).
- المستودعات التي قام فيها المؤلف بتعطيل التكرار.
- لا يُدعم التكرار عبر المناطق (على سبيل المثال، لا يمكن تكرار مستودع مخزَّن في منطقة الولايات المتحدة إلى منظمة في الاتحاد الأوروبي).
التكرار برمجياً
يمكنك أيضًا تكرار المستودعات باستخدام مكتبة huggingface_hub أو سطر الأوامر. تستخدم هذه الأدوات نفس واجهة برمجة التطبيقات على جانب الخادم كما في زر Hub أعلاه (يتم ضغط سجل Git للنماذج ومجموعات البيانات، مع الحفاظ عليه في Spaces).
باستخدام Python:
from huggingface_hub import duplicate_repo
duplicate_repo("bigscience/bloom-560m", private=False)
duplicate_repo("openai/gdpval", repo_type="dataset")
duplicate_repo("multimodalart/dreambooth-training", repo_type="space", private=False)أو باستخدام سطر الأوامر:
hf repos duplicate bigscience/bloom-560m
hf repos duplicate openai/gdpval --type datasetبالنسبة إلى Spaces، ستحتاج إلى تكوين إعداداتك الخاصة (العتاد، وقت السكون، التخزين، المتغيرات والأسرار). راجع دليل إدارة مساحتك لمزيد من التفاصيل.
بديلًا عن ذلك، إذا كنت ترغب في الاحتفاظ بنسخة محلية من المستودع، يمكنك استخدام hf download متبوعًا بـhf upload إلى مساحة أسماء مختلفة. ولن يحافظ هذا على سجل Git أيضًا.
إنشاء فرع يدويًا باستخدام Git
إذا كنت بحاجة إلى الحفاظ على سجل Git للنماذج/مجموعات البيانات، أو ترغب في مزيد من التحكم في العملية (مثل إعادة الأساس فوق تغييراتك الخاصة)، يمكنك إنشاء فرع مستودع يدويًا باستخدام Git.
ستحتاج إلى تثبيت git-xet. قد يستغرق إنشاء فرع (Fork) وقتاً طويلاً اعتماداً على عرض النطاق الترددي لديك، لأنك ستحتاج إلى جلب جميع ملفات LFS وإعادة رفعها (على الرغم من أن إعادة الرفع ستكون سريعة بفضل Xet).
أنشئ مستودعًا للوجهة (مثل
me/myfork) على https://huggingface.coاستنسخه وأضف المستودع المصدر كعن بُعد:
git clone git@hf.co:me/myfork
cd myfork
git xet install
git remote add upstream git@hf.co:friend/upstream
git fetch upstream
git lfs fetch --all upstream- استبدل محتوى الفرع بتاريخ المنبع:
git reset --hard upstream/main
- دفع:
git push --force origin main