# استخدام تخزين Xet

## Python

للوصول إلى إصدار من `huggingface_hub` يدعم Xet، ما عليك سوى تثبيت أحدث إصدار:

```bash
pip install -U huggingface_hub
```

بدءًا من `huggingface_hub` 0.32.0، سيؤدي هذا أيضًا إلى تثبيت `hf_xet`. يدمج حزمة `hf_xet` بين `huggingface_hub` و [`xet-core`](https://github.com/huggingface/xet-core)، وهو عميل Rust الخاص بالخلفية Xet.

إذا كنت تستخدم مكتبات `transformers` أو `datasets`، فهي تستخدم بالفعل `huggingface_hub`. ما دام إصدار `huggingface_hub` >= 0.32.0، فلا حاجة لاتخاذ أي إجراء إضافي.

عند تثبيت إصدارات من `huggingface_hub` >= 0.30.0 و < 0.32.0، يجب تثبيت `hf_xet` بشكل صريح:

```bash
pip install -U hf-xet
```

وهذا كل شيء! ستحصل الآن على فوائد إزالة التكرار في Xet لكل من عمليات الرفع والتنزيل. وسيتمكن أعضاء الفريق الذين يستخدمون إصدارًا من `huggingface_hub` < 0.30.0 من مواصلة رفع المستودعات وتنزيلها من خلال [التوافق العكسي الذي يوفره جسر LFS](legacy-git-lfs#backward-compatibility-with-lfs).

لمزيد من التوثيق التفصيلي للاستخدام، راجع توثيقات `huggingface_hub` الخاصة بـ:

- [رفع](https://huggingface.co/docs/huggingface_hub/guides/upload#faster-uploads)
- [تنزيل](https://huggingface.co/docs/huggingface_hub/guides/download#faster-downloads)
- [إدارة ذاكرة التخزين المؤقت `hf_xet`](https://huggingface.co/docs/huggingface_hub/guides/manage-cache#chunk-based-caching-xet)

## Git

يمكن لمستخدمي Git الاستفادة من مزايا Xet من خلال تنزيل وتثبيت إضافة Git Xet. بمجرد التثبيت، ما عليك سوى استخدام [مسارات العمل القياسية لإدارة مستودعات Hub باستخدام Git](../repositories-getting-started) - دون الحاجة إلى أي تغييرات إضافية.

### المتطلبات

قم بتثبيت [Git](https://git-scm.com/) و [Git LFS](https://git-lfs.com/).

### التثبيت على macOS أو Linux (amd64 أو aarch64)

قم بالتثبيت باستخدام سكربت التثبيت عبر الأمر التالي في الطرفية (يتطلب `curl` و`unzip`):
```
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/huggingface/xet-core/refs/heads/main/git_xet/install.sh | sh
```

أو، ثبّت باستخدام [Homebrew](https://brew.sh/):
```
brew install git-xet
git xet install
```

للتحقق من التثبيت، قم بتشغيل:
```
git xet --version
```

### Windows (amd64)

باستخدام `winget`:
```
winget install git-xet
```

باستخدام مُثبّت:
 - قم بتنزيل `git-xet-windows-installer-x86_64.zip` ([متوفر هنا](https://github.com/huggingface/xet-core/releases/download/git-xet-v0.2.0/git-xet-windows-installer-x86_64.zip)) ثم فك الضغط عنه.
 - شغّل ملف المثبّت `msi` واتبع التعليمات.

التثبيت اليدوي:
 - قم بتنزيل `git-xet-windows-x86_64.zip` ([متوفر هنا](https://github.com/huggingface/xet-core/releases/download/git-xet-v0.2.0/git-xet-windows-x86_64.zip)) ثم فك الضغط عنه.
 - ضع الملف المستخرج `git-xet.exe` داخل مجلد `PATH`.
 - شغّل `git xet install` في الطرفية.

للتحقق من التثبيت، قم بتشغيل:
  ```
  git xet --version
  ```

### استخدام Git Xet

بمجرد تثبيته على منصتك، يكون استخدام Git Xet بسيطاً مثل اتباع سير عمل Git القياسية الخاصة بـ Hub.

تأكد من أن جميع [المتطلبات تم تثبيتها وتكوينها](https://huggingface.co/docs/hub/repositories-getting-started#requirements)، واتبع [تعليمات الإعداد للعمل مع المستودعات على Hub](https://huggingface.co/docs/hub/repositories-getting-started#set-up)، ثم اقبل تغييراتك، و`push` إلى Hub:

  ```
  # Create any files you like! Then...
  git add .
  git commit -m "Uploading new models"  # You can choose any descriptive message
  git push
  ```
في الخلفية، يتم استدعاء [بروتوكول Xet](https://huggingface.co/docs/xet/index) لرفع الملفات الكبيرة مباشرةً إلى تخزين Xet، مما يزيد من سرعات الرفع بفضل [إزالة التكرار على مستوى المقاطع](./deduplication).

### إلغاء التثبيت على macOS أو Linux

باستخدام Homebrew:
```bash
git xet uninstall
brew uninstall git-xet
```
إذا استخدمت سكربت التثبيت (لـ MacOS أو Linux)، فنفّذ ما يلي في طرفية النظام:
```bash
git xet uninstall
sudo rm $(which git-xet)
```
### إلغاء التثبيت على Windows

إذا كنت قد استخدمت `winget`:
```
winget uninstall git-xet
```

إذا كنت قد استخدمت المثبّت:
-  انتقل إلى الإعدادات -> التطبيقات -> التطبيقات المثبتة
- ابحث عن "Git-Xet".
- اختر خيار "Uninstall" المتاح في قائمة السياق.

إذا قمت بالتثبيت يدويًا:
- شغّل `git xet uninstall` في الطرفية.
- احذف ملف `git-xet.exe` من الموقع الذي تم وضعه فيه في الأصل.

## التوصيات

يتكامل Xet بسلاسة مع جميع سير عمل Hub. ومع ذلك، هناك بعض الخطوات التي قد تفكر في اتخاذها للحصول على أقصى فائدة من تخزين Xet.

عند الرفع أو التنزيل باستخدام Python:

- **تأكد من تثبيت `hf_xet`**: على الرغم من أن Xet يحافظ على التوافق مع العملاء التقليديين المُحسَّنين لـ Git LFS، إلا أن تكامل `hf_xet` مع `huggingface_hub` يوفر أداءً مثالياً قائماً على التقسيمات (chunks) وتسريعاً في التكرار على الملفات الكبيرة.
- **تُفعَّل الموازاة التكيفية افتراضيًا**: يقوم `hf_xet` تلقائيًا بضبط عدد تدفقات النقل المتوازية بناءً على ظروف الشبكة في الوقت الفعلي — دون الحاجة إلى أي إعداد. ستُشبع الإعدادات الافتراضية معظم مسارات الشبكة دون أي ضبط.
- **تتوسع مخازن التنزيل مع ذاكرة النظام**: بدءًا من الإصدار `hf_xet` 1.7.0، يتم تحديد حجم مخازن التنزيل بناءً على الذاكرة المتاحة لـ `hf_xet`، بما في ذلك حدود ذاكرة الحاويات. تستخدم الحاويات الصغيرة ذاكرة أقل للتنزيل، بينما تستخدم الأجهزة الكبيرة ذاكرة أكثر، دون الحاجة إلى أي إعدادات. راجع [مخازن التنزيل](#download-buffers).
- **الضبط المتقدم**: للتحكم الدقيق، تتيح لك `HF_XET_FIXED_DOWNLOAD_CONCURRENCY` و`HF_XET_FIXED_UPLOAD_CONCURRENCY` تثبيت مستوى التزامن على قيمة ثابتة، مع تجاوز المتحكم التكيفي. راجع [متغيرات البيئة](https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables#xet) الخاصة بـ`hf_xet` للاطلاع على القائمة الكاملة للخيارات.

عند الرفع أو التنزيل في Git أو Python:

- **الاستفادة من الالتزامات المتكررة والتدريجية**: تعني إزالة التكرار على مستوى المقاطع في Xet أنه يمكنك إجراء تحديثات تدريجية على النماذج أو مجموعات البيانات بأمان. يتم رفع المقاطع المُعدَّلة فقط، لذا فإن الالتزامات المتكررة سريعة وفعّالة من حيث التخزين.
- **كن محددًا في .gitattributes**: عند تحديد الأنماط لـ Xet أو LFS، استخدم امتدادات ملفات دقيقة (مثل `*.safetensors`، `*.bin`) لتجنب توجيه الملفات الأصغر حجمًا عبر تخزين الملفات الكبيرة دون داعٍ.
- **أعطِ الأولوية لوصول المجتمع**: يزيد Xet بشكل كبير من كفاءة ومقياس نقل الملفات الكبيرة. بدلاً من هيكلة مستودعك لتقليل حجمه الإجمالي (أو حجم الملفات الفردية)، نظّمه لصالح المتعاونين ومستخدمي المجتمع حتى يتمكنوا من التنقل بسهولة واسترجاع المحتوى الذي يحتاجونه.

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

بدءًا من `hf_xet` 1.8.0، يمكن لعمليات الرفع إرسال البيانات مباشرة إلى Amazon S3 بدلاً من المرور حصريًا عبر خدمة تخزين Xet. يتخذ Hub القرار لكل عملية رفع بشأن استخدام الرفع المباشر، وهو يفعّله تدريجيًا. لا تتغير عمليات التنزيل.

إذا كانت شبكتك تقيد حركة المرور الصادرة، فاسمح بهذه الأسماء المستضيفة (HTTPS، المنفذ 443) بالإضافة إلى تلك المذكورة في [التحميل خلف وكيل أو جدار حماية](../models-downloading#downloading-behind-a-proxy-or-firewall):

| اسم المضيف                     | الغرض                                          |
|------------------------------|--------------------------------------------------|
| `s3.us-east-1.amazonaws.com` | الرفع المباشر (الولايات المتحدة)                              |
| `s3.eu-west-3.amazonaws.com` | الرفع المباشر للمستودعات المخزنة في الاتحاد الأوروبي |

هذه أسماء النطاقات ليست تحت `hf.co` أو `huggingface.co`، لذا فإن السماح بهذه اللواحق لا يغطيها.

إذا تعذّر على `hf_xet` الوصول إلى S3، فإنه يعيد محاولة الرفع المباشر ثم يرسل تلك البيانات عبر خدمة تخزين Xet بدلاً من ذلك. لا يزال الرفع يكتمل، لكنه قد يكون أبطأ بكثير، لأن كل كتلة تنتظر خلال عمليات إعادة المحاولة أولاً. يعرض `hf_xet` [سجل](#logging) `Upload grant URL unreachable, falling back to legacy xorb upload path (may be slower)` عند حدوث ذلك. إذا لم تتمكن من السماح بأسماء مضيفي S3، فاضبط `HF_XET_CLIENT_LEGACY_DIRECT_XORB_UPLOAD=1` لإيقاف الرفع المباشر.

## متغيرات البيئة

يعمل كلٌّ من `hf_xet` وGit Xet بواسطة `xet-core`، والذي يمكن ضبطه عبر متغيرات البيئة. تدرج الجداول أدناه المتغيرات الفردية للتحكم الدقيق. لن يحتاج معظم المستخدمين إلى تغيير أيٍّ من هذه المتغيرات — فقد تم ضبط القيم الافتراضية لتعظيم استخدام معظم مسارات الشبكة تلقائيًا.

> [!NOTE]
> `HF_XET_HIGH_PERFORMANCE=1` هو علم ميسّر يضبط عدة إعدادات دفعة واحدة (حدود التزامن، أحجام المخازن المؤقتة، وحدود الملفات المتوازية). وهو مخصص للأجهزة ذات النطاق الترددي العالي والقرص السريع. بدءًا من الإصدار `hf_xet` 1.7.0، أصبحت أحجام المخازن المؤقتة التي يضبطها هذا العلم مبنية على الذاكرة المتاحة لـ `hf_xet` (انظر [المخازن المؤقتة للتنزيل](#download-buffers))، لذا لم يعد يتطلب 64 جيجابايت من ذاكرة الوصول العشوائي، وأي متغير تضبطه بنفسك له الأولوية على هذا العلم. أما في الإصدارات الأقدم، فاستخدمه فقط على الأجهزة التي تحتوي على 64 جيجابايت على الأقل من ذاكرة الوصول العشوائي.

### عام

أعلام عالية المستوى يلجأ إليها معظم المستخدمين أولاً.

| متغير البيئة | افتراضي | الوصف |
|---|---|---|
| `HF_XET_HIGH_PERFORMANCE` (المعرف بـ `HF_XET_HP`) | إيقاف | علامة مريحة تعظّم استخدام الشبكة ومعالج CPU عن طريق رفع مستوى التزامن، وحجم المخازن المؤقتة، وحدود الملفات المتوازية دفعة واحدة. راجع الملاحظة أعلاه. |
| `HF_XET_CACHE` | `$HF_HOME/xet` | المجلد الذي يخزّن فيه Xet البيانات محليًا (القطع المُحمَّلة وقطع إزالة التكرار). له الأولوية على `HF_HOME`. |

### التوازي التكيفي

بشكل افتراضي، يستخدم `xet-core` التزامن التكيفي — وهو تعديل ديناميكي للتوازي بناءً على ظروف الشبكة في الوقت الفعلي. هذه إعدادات متقدمة من غير المرجح أن تكون مطلوبة في معظم الحالات. تتحكم المتغيرات أدناه في سلوك وحدة التحكم التكيفية:

| متغير البيئة | افتراضي | الوصف |
|---|---|---|
| `HF_XET_CLIENT_AC_INITIAL_UPLOAD_CONCURRENCY` | `2` | عدد تدفقات الرفع المتزامنة الابتدائي. وضع HP: `16`. |
| `HF_XET_CLIENT_AC_INITIAL_DOWNLOAD_CONCURRENCY` | `4` | عدد تدفقات التنزيل المتزامنة عند البدء. وضع HP: `16`. |
| `HF_XET_CLIENT_AC_MIN_UPLOAD_CONCURRENCY` | `1` | الحد الأدنى لتزامن الرفع. وضع HP: `4`. |
| `HF_XET_CLIENT_AC_MIN_DOWNLOAD_CONCURRENCY` | `1` | الحد الأدنى لتزامن التنزيل. وضع HP: `4`. |
| `HF_XET_CLIENT_AC_MAX_UPLOAD_CONCURRENCY` | `64` | الحد الأقصى لتزامن عمليات الرفع. وضع HP: `124`. |
| `HF_XET_CLIENT_AC_MAX_DOWNLOAD_CONCURRENCY` | `64` | الحد الأقصى لتزامن التنزيل. وضع HP: `124`. |
| `HF_XET_CLIENT_AC_TARGET_RTT` | `60s` | زمن الرحلة ذهاباً وإياباً المستهدف. تزداد درجة التوازي طالما أن زمن الرحلة ذهاباً وإياباً المتوقع لنقل كامل أقل من هذه القيمة. |
| `HF_XET_CLIENT_AC_MAX_HEALTHY_RTT` | `90s` | أقصى وقت ذهاب وإياب مقبول. تُحتسب التحويلات التي تستغرق وقتاً أطول من ذلك كفشل من قِبل المتحكم التكيفي. |
| `HF_XET_CLIENT_AC_HEALTHY_SUCCESS_RATIO_THRESHOLD` | `0.8` | نسبة النجاح التي تزيد عن حدّها يرفع المتحكم مستوى التزامن. |
| `HF_XET_CLIENT_AC_UNHEALTHY_SUCCESS_RATIO_THRESHOLD` | `0.5` | نسبة النجاح التي يقلّ عنها المتحكّم في خفض التزامن. |
| `HF_XET_CLIENT_AC_LOGGING_INTERVAL_MS` | `10000` | الفاصل الزمني (بالميلي ثانية) الذي يتم فيه تسجيل حالة التزامن. |

> [!TIP]
> لتثبيت التزامن على قيمة ثابتة (مع تجاوز المتحكم التكيفي)، استخدم المستعجلات المريحة `HF_XET_FIXED_UPLOAD_CONCURRENCY` و`HF_XET_FIXED_DOWNLOAD_CONCURRENCY`. تُضبط هذه القيم الأولية والأدنى والأقصى للتزامن على القيمة نفسها.

### الشبكة وإعادة المحاولة

| متغير البيئة | افتراضي | الوصف |
|---|---|---|
| `HF_XET_CLIENT_RETRY_MAX_ATTEMPTS` | `5` | الحد الأقصى لعدد محاولات إعادة الطلبات الفاشلة. |
| `HF_XET_CLIENT_RETRY_BASE_DELAY` | `3000ms` | الزمن الأساسي بين المحاولات المتكررة (مع تراجع أُسّي). |
| `HF_XET_CLIENT_RETRY_MAX_DURATION` | `360s` | أقصى مدة انتظار قبل أي إعادة محاولة فردية. تتوقف عمليات إعادة المحاولة بعد `HF_XET_CLIENT_RETRY_MAX_ATTEMPTS`، لذا قد تتجاوز مدة إعادة المحاولة الإجمالية هذه القيمة. |
| `HF_XET_CLIENT_CONNECT_TIMEOUT` | `60s` | انتهاء مهلة الاتصال عبر TCP. |
| `HF_XET_CLIENT_READ_TIMEOUT` | `300s` | مهلة انتهاء القراءة لاستجابات HTTP. |
| `HF_XET_CLIENT_IDLE_CONNECTION_TIMEOUT` | `60s` | مهلة الانتظار قبل إغلاق الاتصالات الخاملة. |
| `HF_XET_CLIENT_MAX_IDLE_CONNECTIONS` | `16` | الحد الأقصى لعدد الاتصالات الخاملة في الحوض. |
| `HF_XET_CLIENT_RECONSTRUCTION_API_VERSION` | (غير مُعيّن) | فرض إصدار واجهة برمجة التطبيقات للتنزيل (إعادة البناء) ليكون `1` أو `2`، دون أي تراجع. عند عدم ضبطه، يحاول `hf_xet` استخدام الإصدار 2 ويتراجع إلى الإصدار 1 إذا لم يدعمه الخادم. |
| `HF_XET_CLIENT_SHARD_API_VERSION` | (غير مُعيّن) | فرض إصدار واجهة برمجة التطبيقات (API) للرفع (الشريحة) على `1` أو `2`، دون أي تراجع. عند عدم التعيين، يحاول `hf_xet` الإصدار 2 ويتراجع إلى الإصدار 1 إذا لم يدعمه الخادم. |

### نقل البيانات

| متغير البيئة | افتراضي | الوصف |
|---|---|---|
| `HF_XET_DATA_MAX_CONCURRENT_FILE_INGESTION` | `8` | الحد الأقصى لعدد الملفات التي تتم معالجتها بالتوازي أثناء الرفع. وضع HP: `100`. |
| `HF_XET_DATA_MAX_CONCURRENT_FILE_DOWNLOADS` | `8` | الحد الأقصى لعدد الملفات التي يتم تنزيلها بالتوازي. |
| `HF_XET_DATA_INGESTION_BLOCK_SIZE` | `8mb` | حجم الكتل التي يتم قراءتها أثناء استيراد الملف. |
| `HF_XET_DATA_PROGRESS_UPDATE_INTERVAL` | `200ms` | تكرار تحديث أشرطة التقدم. |
| `HF_XET_DATA_PROGRESS_UPDATE_SPEED_SAMPLING_WINDOW` | `10s` | نافذة الوقت المستخدمة لتجميع قياسات سرعة النقل في تقارير التقدم. |
| `HF_XET_CLIENT_LEGACY_DIRECT_XORB_UPLOAD` | `false` | اضبطه على `1` لإرسال جميع بيانات الرفع عبر خدمة تخزين Xet بدلاً من إرسالها مباشرة إلى S3 (`hf_xet` 1.8.0+). راجع [الرفع خلف وكيل أو جدار حماية](#uploading-behind-a-proxy-or-firewall). |

### تنزيل المخازن المؤقتة

تتحكم هذه الإعدادات في استخدام الذاكرة أثناء عمليات التنزيل.

بدءًا من `hf_xet` 1.7.0، تعتمد القيم الافتراضية لمتغيرات `DOWNLOAD_BUFFER` الثلاثة على مقدار الذاكرة التي يمكن لـ`hf_xet` استخدامها. وهذا هو ذاكرة الوصول العشوائي (RAM) للآلة، أو حد ذاكرة الحاوية إذا كان أقل. كل قيمة افتراضية هي نسبة من تلك الذاكرة، وتُحفظ بين الحد الأدنى والحد الأقصى الموضحين في الجدول. يستخدم وضع HP ضعف النسبة، مع نفس الحد الأدنى والحد الأقصى. على سبيل المثال، تحصل حاوية محدودة بـ 4 جيجابايت على مخزن مؤقت بحجم حوالي 256 ميجابايت مع حد 1 جيجابايت، وتحصل آلة بذاكرة 32 جيجابايت على مخزن مؤقت بحجم حوالي 2 جيجابايت وحد 8 جيجابايت، تمامًا كما في الإصدارات السابقة.

تستخدم الإصدارات السابقة، أو أي إصدار لا يستطيع تحديد كمية الذاكرة المتاحة، قيمًا افتراضية ثابتة وهي `2gb` و`512mb` و`8gb` (و`16gb` و`2gb` و`64gb` في وضع HP). تُكتب القيم المستخدمة في ملف السجل `hf_xet` عند بدء التشغيل (انظر [التسجيل](#logging)).

| متغير البيئة | افتراضي | وضع HP | الوصف |
|---|---|---|---|
| `HF_XET_RECONSTRUCTION_MIN_RECONSTRUCTION_FETCH_SIZE` | `256mb` | `1gb` | الحد الأدنى لحجم الاسترداد لطلبات إعادة البناء. |
| `HF_XET_RECONSTRUCTION_MAX_RECONSTRUCTION_FETCH_SIZE` | `8gb` | `16gb` | الحد الأقصى لحجم الاسترداد لطلبات إعادة البناء. |
| `HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_SIZE` | 1/16 من الذاكرة، من `64mb` إلى `16gb` | 1/8 من الذاكرة | ميزانية المخزن المؤقت المشترك الأساسي. |
| `HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_PERFILE_SIZE` | 1/64 من الذاكرة، من `16mb` إلى `2gb` | 1/32 من الذاكرة | ميزانية إضافية للمخزن المؤقت لكل ملف نشط. |
| `HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_LIMIT` | ربع الذاكرة، من `264mb` إلى `64gb` | 1/2 من الذاكرة | حد أقصى صارم لذاكرة مخزن التنزيل الكلي. إذا تم تعيين `HF_XET_RECONSTRUCTION_DOWNLOAD_BUFFER_SIZE` بقيمة أعلى من هذا الحد، يتم رفع الحد ليتطابق معه. |
| `HF_XET_DISABLE_MEMORY_DERIVED_DOWNLOAD_BUFFERS` | إلغاء تعيين | — | اضبطه على `1` لاستخدام الإعدادات الافتراضية الثابتة بدلاً من تحديد أحجام المخازن المؤقتة بناءً على الذاكرة المتاحة. |
| `HF_XET_RECONSTRUCTION_TARGET_BLOCK_COMPLETION_TIME` | `15m` | — | الوقت المستهدف لإكمال كتلة الاستباق. يُستخدم لتحديد كمية البيانات التي يجب استباقها مسبقًا أثناء عمليات التنزيل. |
| `HF_XET_RECONSTRUCTION_MIN_PREFETCH_BUFFER` | `1gb` | — | الحد الأدنى لكمية البيانات التي يجب الاحتفاظ بها مسبقًا أثناء التنزيلات، بغض النظر عن وقت الإكمال المقدر. |

### ذاكرة التخزين المؤقت للتجزئة

يحتفظ **shard cache** بمؤشر إزالة التكرار (الـ "shards" التي تصف المقاطع التي تم رفعها مسبقًا) على القرص، ضمن مجلد ذاكرة التخزين المؤقت الخاص بـ Xet. كلما كانت ذاكرة التخزين المؤقت أكبر، أمكن للعميل إزالة التكرار مقابل بيانات أكثر شوهدت سابقًا، مما يقلل من عدد البايتات التي يتم رفعها مرة أخرى.

| متغير البيئة | افتراضي | الوصف |
|---|---|---|
| `HF_XET_SHARD_CACHE_SIZE_LIMIT` | `16gb` | حد أقصى ناعم لملف التخزين المؤقت للأجزاء على القرص. يتم تقليص هذا الملف إلى هذا الحجم عند **البداية** من التشغيل، لكنه قد يتجاوز هذا الحجم خلال جلسة تشغيل طويلة واحدة. كدليل تقريبي، فإن ملف تخزين مؤقت بحجم *X* يُزيل التكرار مقابل ما يقرب من 1000 × *X* من البيانات (16 جيجابايت → حوالي 16 تيرابايت). ارفع هذا الحد للحصول على إزالة تكرار أفضل في المستودعات الكبيرة جدًا؛ وانزله إذا كان نمو ملف التخزين المؤقت يُشكّل خطر امتلاء القرص. يقبل حجمًا مقروءًا من قبل الإنسان (مثل `32gb`) أو عددًا خامًا من البايتات. |
| `HF_XET_SHARD_CHUNK_INDEX_TABLE_MAX_SIZE` | `67108864` | الحد الأقصى لعدد إدخالات المقاطع في فهرس إزالة التكرار في الذاكرة. اضبط رقمًا صحيحًا، وليس حجمًا مثل `128mb`. بدءًا من `hf_xet` 1.7.1، عندما يمتلئ الفهرس، تُزال أقدم الشرائح منه لتوفير مساحة للشرائح الجديدة؛ بينما تتوقف الإصدارات الأقدم عن إضافة المقاطع بمجرد امتلائه. |
| `HF_XET_SHARD_CACHE_SUBDIR` | `shard-cache` | المجلد الفرعي لذاكرة التخزين المؤقت للتجزئات داخل مجلد ذاكرة التخزين المؤقت الخاصة بـ Xet. |

### ذاكرة مؤقت المقاطع

لم يعد `hf_xet` يستخدم ذاكرة تخزين مؤقت محلية للقطع لتنزيل الملفات. لا تزال الملفات المنزّلة تُخزَّن في ذاكرة التخزين المؤقت القائمة على الملفات في `huggingface_hub`.

| متغير البيئة | افتراضي | الوصف |
|---|---|---|
| `HF_XET_CHUNK_CACHE_SIZE_BYTES` | — | لم يعد مستخدماً بواسطة `hf_xet`. ضبطه لا يُفعّل ذاكرة تخزين مؤقتة لتحميل المقاطع. |

### التسجيل

| متغير البيئة | افتراضي | الوصف |
|---|---|---|
| `HF_XET_LOG_DEST` | (none) | وجهة التسجيل. يقبل مسار ملف أو مسار مجلد (ينتهي بـ `/`). عند ضبطه على مجلد، تُنشأ ملفات التسجيل بأسماء تحمل طابعًا زمنيًا. عند ضبطه على سلسلة فارغة، تُوجَّه السجلات إلى وحدة التحكم. عند عدم ضبطه، تُوجَّه السجلات إلى مجلد الفرع `logs/` داخل مجلد ذاكرة التخزين المؤقت لـ Hugging Face Xet. |
| `HF_XET_LOG_FORMAT` | (none) | صيغة السجلات. اضبطها على `json` للحصول على سجلات بصيغة JSON؛ وإلا فستكون نصًا عاديًا. افتراضيًا، يستخدم تسجيل الملفات صيغة JSON بينما يستخدم تسجيل وحدة التحكم النص العادي. |
| `HF_XET_LOG_PREFIX` | `xet` | بادئة لأسماء ملفات السجلات عند التسجيل في مجلد. |
| `HF_XET_LOG_DIR_DISABLE_CLEANUP` | `false` | تعطيل التنظيف التلقائي لملفات السجلات القديمة في مجلد السجلات. |
| `HF_XET_LOG_DIR_MAX_SIZE` | `250mb` | الحد الأقصى للحجم الإجمالي لملفات السجلات في مجلد السجلات. يتم حذف الملفات القديمة للبقاء ضمن هذا الحد. |
| `HF_XET_LOG_DIR_MIN_DELETION_AGE` | `1d` | الحد الأدنى للعمر قبل إمكانية حذف ملف السجل أثناء التنظيف. |
| `HF_XET_LOG_DIR_MAX_RETENTION_AGE` | `14d` | الحد الأقصى لعمر ملفات السجل. يتم حذف الملفات الأقدم من هذا العمر دائمًا أثناء التنظيف. |

### التقنيات

`hf_xet` يرسل تقريرًا مختصرًا بعد كل عملية رفع وتحميل. راجع [Telemetry](./telemetry) لمعرفة محتواه. لتعطيله، اضبط `HF_HUB_DISABLE_TELEMETRY=1`.

## القيود الحالية

في حين أن Xet يجلب إزالة التكرار الدقيقة والأداء المحسّن إلى التخزين المبني على Git، فإن بعض الميزات وتوافق المنصات لا تزال قيد التطوير. ونتيجةً لذلك، خذ في الاعتبار القيود التالية عند العمل مع مستودع مفعّل بـ Xet:

- **أنظمة 64-بت فقط**: يتطلب كل من `hf_xet` وGit Xet حاليًا معمارية 64-بت؛ ولا يتم دعم أنظمة 32-بت.

