# إدارة ذاكرة التخزين المؤقت

عند تنزيل مجموعة بيانات من Hugging Face، تُخزَّن البيانات محليًا على جهازك. تُخزَّن الملفات من Hugging Face بشكل اعتيادي في ذاكرة التخزين المؤقت `huggingface_hub`، والتي تقع افتراضيًا في `~/.cache/huggingface/hub`. راجع [توثيق ذاكرة التخزين المؤقت في Hub](https://huggingface.co/docs/huggingface_hub/guides/manage-cache) لمزيد من التفاصيل وكيفية تغيير موقعها.

يتيح لك كاش Hub لتجنب إعادة تنزيل ملفات مجموعات البيانات من Hugging Face كل مرة تستخدمها فيها.

🤗 كما يحتوي Datasets على ذاكرة تخزين مؤقت خاصة به لتخزين مجموعات البيانات المحوَّلة إلى صيغة Arrow (الصيغة المستخدمة في كائنات [Dataset](/docs/datasets/v5.2.0/ar/package_reference/main_classes#datasets.Dataset)).

يركز هذا الدليل على ذاكرة التخزين المؤقت لـ 🤗 Datasets وسيعرض لك كيفية:

- تغيير مجلد التخزين المؤقت.
- تحكم في كيفية تحميل مجموعة البيانات من ذاكرة التخزين المؤقت.
- قم بتنظيف ملفات الكاش في المجلد.
- تفعيل أو تعطيل التخزين المؤقت.

## مجلد التخزين المؤقت

المجلد الافتراضي لذاكرة التخزين المؤقت لـ 🤗 Datasets هو `~/.cache/huggingface/datasets`. غيّر موقع التخزين المؤقت عن طريق تعيين متغير البيئة الخاص بالصدفة `HF_HOME` إلى مجلد آخر:

```
$ export HF_HOME="/path/to/another/directory"
```

بديلًا عن ذلك، يمكنك ضبط متغير البيئة `HF_DATASETS_CACHE` للتحكم في مجلد ذاكرة التخزين المؤقت الخاص بالبيانات فقط:

```
$ export HF_DATASETS_CACHE="/path/to/datasets_cache"
```

⚠️ ينطبق هذا فقط على الملفات التي تُكتب بواسطة مكتبة `datasets` (مثل ملفات Arrow والفهارس). لا **يؤثر** هذا على الملفات المُحمّلة من Hugging Face Hub (مثل النماذج ومُقسّمي الرموز أو مصادر البيانات الخام)، والتي تقع افتراضيًا في `~/.cache/huggingface/hub` وتُتحكم بها بشكل منفصل عبر متغير `HF_HUB_CACHE`:

```
$ export HF_HUB_CACHE="/path/to/hub_cache"
```

💡 إذا كنت ترغب في نقل جميع ذاكرات التخزين المؤقت الخاصة بـ Hugging Face — بما في ذلك مجموعات البيانات وتحميلات hub — فاستخدم متغير `HF_HOME` بدلاً من ذلك:

```
$ export HF_HOME="/path/to/cache_root"
```

يؤدي ذلك إلى:
- كاش مجموعات البيانات → `/path/to/cache_root/datasets`
- مخزن hub → `/path/to/cache_root/hub`

تُعدّ هذه التمييزات مفيدة بشكل خاص عند العمل في بيئات مشتركة أو أنظمة ملفات شبكية (مثل NFS). راجع [المشكلة رقم 7480](https://github.com/huggingface/datasets/issues/7480) للاطلاع على النقاش حول كيفية مواجهة المستخدمين مواقع تخزين مؤقت غير متوقعة عندما لم يتم تعيين `HF_HUB_CACHE` بالتزامن مع `HF_DATASETS_CACHE`.

عند تحميل مجموعة بيانات، لديك أيضًا خيار تغيير مكان تخزين البيانات مؤقتًا. غيّر معامل `cache_dir` إلى المسار الذي تريده:

```py
>>> from datasets import load_dataset
>>> dataset = load_dataset('username/dataset', cache_dir="/path/to/another/directory/datasets")
```

## وضع التنزيل

تحكّم في إعادة استخدام الملفات المصدرية المُحمّلة ومجموعات البيانات المُعدّة في [load_dataset()](/docs/datasets/v5.2.0/ar/package_reference/loading_methods#datasets.load_dataset) باستخدام معامل `download_mode`. بشكل افتراضي، سيعيد 🤗 Datasets استخدامها إذا كانت موجودة. لتحميل الملفات المصدرية مرة أخرى وإعادة بناء مجموعة البيانات، استخدم `force_redownload`:

```py
>>> from datasets import load_dataset
>>> dataset = load_dataset('rajpurkar/squad', download_mode='force_redownload')
```

راجع [DownloadMode](/docs/datasets/v5.2.0/ar/package_reference/builder_classes#datasets.DownloadMode) للحصول على قائمة كاملة بأنواع التحميل.

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

قم بتنظيف ملفات ذاكرة Arrow المؤقتة في المجلد باستخدام [Dataset.cleanup_cache_files()](/docs/datasets/v5.2.0/ar/package_reference/main_classes#datasets.Dataset.cleanup_cache_files):

```py
# Returns the number of removed cache files
>>> dataset.cleanup_cache_files()
2
```

## تفعيل أو تعطيل التخزين المؤقت

إذا كنت تستخدم ملفًا مخزّنًا محليًا، فسيتم إعادة تحميل مجموعة البيانات تلقائيًا مع أي تحويلات سابقة طبقتها على مجموعة البيانات. عطّل هذا السلوك عن طريق تعيين الحجة `load_from_cache_file=False` في [Dataset.map()](/docs/datasets/v5.2.0/ar/package_reference/main_classes#datasets.Dataset.map):

```py
>>> updated_dataset = small_dataset.map(add_prefix, load_from_cache_file=False)
```

في المثال أعلاه، سيقوم 🤗 Datasets بتنفيذ الدالة `add_prefix` على كامل مجموعة البيانات مرة أخرى بدلاً من تحميل مجموعة البيانات من حالتها السابقة.

تعطيل التخزين المؤقت على نطاق شامل باستخدام [disable_caching()](/docs/datasets/v5.2.0/ar/package_reference/main_classes#datasets.disable_caching):

```py
>>> from datasets import disable_caching
>>> disable_caching()
```

عند تعطيل التخزين المؤقت، لن يعيد 🤗 Datasets تحميل الملفات المخزنة مؤقتًا عند تطبيق التحويلات على مجموعات البيانات. أي تحويل تطبّقه على مجموعة بياناتك سيتطلب إعادة تطبيقه.

> [!TIP]
> إذا كنت ترغب في إعادة استخدام مجموعة بيانات من الصفر، فحاول بدلاً من ذلك ضبط معامل `download_mode` في [load_dataset()](/docs/datasets/v5.2.0/ar/package_reference/loading_methods#datasets.load_dataset).

## تحسين الأداء

إن تعطيل ذاكرة التخزين المؤقت ونسخ مجموعة البيانات في الذاكرة سيُسرعان من عمليات مجموعة البيانات. هناك خياران لنسخ مجموعة البيانات في الذاكرة:

1. اضبط `datasets.config.IN_MEMORY_MAX_SIZE` على قيمة غير صفرية (بالبايت) تتسع في ذاكرة الوصول العشوائي لديك.

2. اضبط متغير البيئة `HF_DATASETS_IN_MEMORY_MAX_SIZE` على قيمة غير صفرية. لاحظ أن الطريقة الأولى لها أولوية أعلى.

