Hub documentation

تنزيل النماذج

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

تنزيل النماذج

المكتبات المتكاملة

إذا كان نموذج على Hub مرتبطًا بـمكتبة مدعومة، فيمكن تحميل النموذج في بضع سطور فقط. للحصول على معلومات حول الوصول إلى النموذج، يمكنك النقر على زر “Use in Library” في صفحة النموذج لمعرفة كيفية القيام بذلك. على سبيل المثال، يُظهر distilbert/distilgpt2 أدناه كيفية القيام بذلك باستخدام 🤗 Transformers.

استخدام مكتبة عميل Hugging Face

يمكنك استخدام مكتبة huggingface_hub لإنشاء المستودعات وحذفها وتحديثها واسترجاع المعلومات منها. على سبيل المثال، لتنزيل نموذج HuggingFaceH4/zephyr-7b-beta من سطر الأوامر، قم بتشغيل

hf download HuggingFaceH4/zephyr-7b-beta

راجع توثيق تنزيل سطر الأوامر لمزيد من المعلومات.

يمكنك أيضًا دمج هذا في مكتبتك الخاصة. على سبيل المثال، يمكنك تحميل نموذج Scikit-learn بسرعة بعدة أسطر.

from huggingface_hub import hf_hub_download
import joblib

REPO_ID = "YOUR_REPO_ID"
FILENAME = "sklearn_model.joblib"

model = joblib.load(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
)

استخدام Git

بما أن جميع النماذج على Model Hub هي مستودعات Git مدعومة بتقنية Xet، يمكنك استنساخ النماذج محليًا من خلال تثبيت git-xet ثم تشغيل الأمر التالي:

git xet install
git lfs install
git clone git@hf.co:<MODEL ID> # example: git clone git@hf.co:bigscience/bloom

إذا كان لديك صلاحية الكتابة في مستودع النموذج المعني، فستتمتع أيضاً بالقدرة على الالتزام بدفع المراجعات إلى النموذج.

أضِف مفتاح SSH العام إلى إعدادات المستخدم لديك لدفع التغييرات و/أو للوصول إلى المستودعات الخاصة.

تنزيلات أسرع

اختبر سرعة التنزيل لديك

يمكنك اختبار سرعة التنزيل من شبكة توزيع المحتوى (CDN) الخاصة بـ Hugging Face عبر fast.hf.co. يقوم هذا الاختبار بإجراء فحص سريع لعرض النطاق الترددي مقابل أقرب خادم طرفي لـ HF، مما يساعدك على فهم معدل الإخراج الأساسي لديك قبل ضبط أي إعدادات.

يمكنك أيضًا قياس سرعة التنزيل مباشرةً من الطرفية باستخدام امتداد سطر الأوامر hf-speedtest :

hf extensions install julien-c/hf-speedtest
hf speedtest

التوازي التكيفي مع hf_xet

hf_xet هو حزمة مبنية على لغة Rust تستفيد من خلفية تخزين Xet لتحسين نقل الملفات عبر إزالة التكرار على مستوى المقاطع. افتراضيًا، يستخدم hf_xet التوازي التكيفي — حيث يضبط تلقائيًا عدد تدفقات النقل المتوازية بناءً على ظروف الشبكة في الوقت الفعلي، بدءًا من إعداد حذر (تدفق واحد) والتوسع حتى 64 تدفقًا متوازيًا حسب ما تسمح به النطاق الترددي.

بالنسبة لمعظم الأجهزة — بما في ذلك بيئات مراكز البيانات — فإن الإعدادات الافتراضية ستشبع عرض النطاق الترددي المتاح للشبكة بالفعل. أما للمستخدمين المتقدمين على أجهزة تتمتع بعرض نطاق ترددي عالٍ وقراءة/كتابة سريعة على القرص، فإن HF_XET_HIGH_PERFORMANCE=1 يرفع حدود التوازي ويزيد من أحجام مخازن الذاكرة المؤقتة، مما قد يساعد عند تنزيل العديد من الملفات الكبيرة بالتوازي.

HF_XET_HIGH_PERFORMANCE=1 hf download ...

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

باستخدام hf-mount

بالنسبة للنماذج الكبيرة، يمكنك تركيب مستودع كنظام ملفات محلي باستخدام hf-mount بدلاً من تنزيل المستودع كاملاً. يتم جلب الملفات بشكل كسول — حيث تصل إلى الشبكة فقط البايتات التي يقرأها كودك.

brew install hf-mount
hf-mount start repo openai-community/gpt2 /tmp/gpt2

تُركَّب المستودعات للقراءة فقط. راجع التركيب كنظام ملفات محلي للحصول على تفاصيل الإعداد الكاملة وخيارات الخلفية والتخزين المؤقت.

التحميل خلف وكيل أو جدار حماية

إذا كانت شبكتك تقيد حركة المرور الصادرة عبر جدار حماية أو وكيل، فإن تنزيل النماذج ومجموعات البيانات يتطلب أكثر من مجرد huggingface.co. تُقدَّم محتويات الملفات من أسماء مضيفات تخزين و CDN منفصلة، وسيفشل from_pretrained / hf download إذا لم تكن هذه المضيفات قابلة للوصول، حتى لو كان huggingface.co نفسه مدرجًا في قائمة السماح.

اسمح بالمضيفين التاليين (عبر HTTPS / المنفذ 443):

اسم المضيفالغرض
huggingface.coواجهة برمجة تطبيقات Hub، البيانات الوصفية، وإعادة توجيه التنزيل
cas-server.xethub.hf.coواجهات برمجة تطبيقات بروتوكول Xet، التنزيل والرفع (الولايات المتحدة)
cas-server.xethub-eu.hf.coواجهات برمجة تطبيقات بروتوكول Xet، التنزيل والرفع (الاتحاد الأوروبي)
transfer.xethub.hf.coواجهات برمجة تطبيقات تنزيل تخزين Xet (الولايات المتحدة)
transfer.xethub-eu.hf.coواجهات برمجة تطبيقات تنزيل تخزين Xet (الاتحاد الأوروبي)
us.aws.cdn.hf.coحافة CDN (الولايات المتحدة)
us.gcp.cdn.hf.coحافة CDN (الولايات المتحدة)
cdn-lfs-us-1.hf.coLFS CDN (الولايات المتحدة)
cdn-lfs-eu-1.hf.coLFS CDN (أوروبا)

تتبع عمليات التحميل إعادة التوجيه عبر بروتوكول HTTP من huggingface.co إلى أسماء العُقد هذه، لذا فإن السماح بـhuggingface.co وحدها غير كافٍ. عادةً ما يعني ظهور خطأ ReadTimeoutError (بدلاً من خطأ اتصال) في منتصف عملية التحميل أن الاتصال الأولي نجح لكن عُقدة تخزين أو CDN محظورة.

يعتمد سلوك النطاقات البرية على طريقة مطابقة وكيلك للنطاقات. تعامل وكلاء المؤسسات الكثر مع إدراج في قائمة السماح كمطابقة لاحقة تغطي النطاقات الفرعية عند أي عمق. إذا كان وكيلك كذلك، فإن الخيار الأبسط هو إدراج اللاحقتين hf.co وhuggingface.co في قائمة السماح — فهما تغطيان كل نقاط نهاية التخزين وCDN الحالية والمستقبلية.

إذا كان وكيلك يدعم فقط كواشف عامة بوسم واحد (حيث يطابق *.hf.co عنوان cdn-lfs-us-1.hf.co لكنه لا يطابق العناوين الأعمق مثل us.aws.cdn.hf.co أو cas-server.xethub.hf.co)، فأضف أسماء العُقد الصريحة المذكورة في الجدول أعلاه إلى قائمة السماح. لاحظ أن *.xethub.hf.co لا يغطي عُقد الاتحاد الأوروبي الموجودة تحت xethub-eu.hf.co، وأن *.cdn.hf.co لا يغطي العناوين ذات الوسمين us.aws.cdn.hf.co / us.gcp.cdn.hf.co.

قد تتغير هذه أسماء النطاقات مع تطور بنية التخزين وشبكة توزيع المحتوى لدينا. حيثما سمحت سياسة الأمان لديك، أضف لاحقتي hf.co وhuggingface.co (جميع النطاقات الفرعية) إلى قائمة السماح حتى لا تتعطل قواعدها عند تغيير نقطة نهاية محددة.

قائمة قابلة للقراءة آليًا

تُنشر أسماء النطاقات المذكورة أعلاه أيضًا بصيغة JSON في https://huggingface.co/.well-known/meta.json، لذا يمكنك توليد قواعد الوكيل أو جدار الحماية منها بدلاً من نسخ الجدول يدويًا.

يتغيّر الملف مع إضافة نقاط النهاية وإزالتها. استحضره عند بناء قواعلك بدلاً من تثبيت نسخة منه.

Update on GitHub