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

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

إذا كان نموذج على Hub مرتبطًا بـ[مكتبة مدعومة](./models-libraries)، فيمكن تحميل النموذج في بضع سطور فقط. للحصول على معلومات حول كيفية الوصول إلى النموذج، يمكنك النقر على زر "Use in _Library_" في صفحة النموذج لمعرفة الطريقة. على سبيل المثال، يُظهر `distilbert/distilgpt2` أدناه كيفية القيام بذلك باستخدام 🤗 Transformers.

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

يمكنك استخدام مكتبة [`huggingface_hub`](https://github.com/huggingface/huggingface_hub) لإنشاء المستودعات وحذفها وتحديثها واسترجاع المعلومات منها. على سبيل المثال، لتنزيل نموذج `HuggingFaceH4/zephyr-7b-beta` من سطر الأوامر، قم بتشغيل
```bash
hf download HuggingFaceH4/zephyr-7b-beta
```
راجع [توثيق تنزيل سطر الأوامر](https://huggingface.co/docs/huggingface_hub/en/guides/cli#download-an-entire-repository) لمزيد من المعلومات.

يمكنك أيضًا دمج هذا في مكتبتك الخاصة. على سبيل المثال، يمكنك تحميل نموذج Scikit-learn بسرعة بعدة أسطر.
```py
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](./xet/using-xet-storage#git-xet) ثم تشغيل الأمر التالي:

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

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

أضِف مفتاح SSH العام إلى [إعدادات المستخدم](https://huggingface.co/settings/keys) لديك لدفع التغييرات و/أو للوصول إلى المستودعات الخاصة.

## تنزيلات أسرع

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

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

يمكنك أيضًا قياس سرعة التنزيل مباشرةً من الطرفية باستخدام امتداد سطر الأوامر [`hf-speedtest`](https://github.com/julien-c/hf-speedtest) :

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

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

`hf_xet` هو حزمة مبنية على لغة Rust تستفيد من [خلفية تخزين Xet](https://huggingface.co/docs/hub/en/xet/index) لتحسين نقل الملفات عبر إزالة التكرار على مستوى المقاطع. افتراضيًا، يستخدم `hf_xet` **التوازي التكيفي** — حيث يضبط تلقائيًا عدد تدفقات النقل المتوازية بناءً على ظروف الشبكة في الوقت الفعلي، بدءًا من إعداد حذر (تدفق واحد) والتوسع حتى 64 تدفقًا متوازيًا حسب ما تسمح به النطاق الترددي.

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

```bash
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 جيجابايت على الأقل. راجع [مخازن التنزيل](./xet/using-xet-storage#download-buffers) للاطلاع على القيم المستخدمة.

## باستخدام hf-mount

بالنسبة للنماذج الكبيرة، يمكنك تركيب مستودع كنظام ملفات محلي باستخدام [hf-mount](https://github.com/huggingface/hf-mount) بدلاً من تنزيل المستودع كاملاً. يتم جلب الملفات بشكل كسول — حيث تصل إلى الشبكة فقط البايتات التي يقرأها كودك.

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

تُركَّب المستودعات للقراءة فقط. راجع [التركيب كنظام ملفات محلي](./storage-buckets-access#mount-as-a-local-filesystem) للحصول على تفاصيل الإعداد الكاملة وخيارات الخلفية والتخزين المؤقت.

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

إذا كانت شبكتك تقيد حركة المرور الصادرة عبر جدار حماية أو وكيل، فإن تنزيل النماذج ومجموعات البيانات يتطلب أكثر من مجرد `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.co`         | LFS CDN (الولايات المتحدة)                                |
| `cdn-lfs-eu-1.hf.co`         | LFS CDN (أوروبا)                                |

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

> [!TIP]
> يعتمد سلوك النطاقات البرية على طريقة مطابقة وكيلك للنطاقات. تعامل وكلاء المؤسسات الكثر إدخالات قائمة السماح كمطابقة لاحقة تغطي النطاقات الفرعية على أي عمق. إذا كان وكيلك كذلك، فإن الخيار الأبسط هو إدراج لاحقتي `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`.

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

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

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

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

