Datasets documentation

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

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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

عند تنزيل مجموعة بيانات من Hugging Face، تُخزَّن البيانات محليًا على جهازك. تُخزَّن الملفات من Hugging Face بشكل اعتيادي في ذاكرة التخزين المؤقت huggingface_hub، والتي تقع افتراضيًا في ~/.cache/huggingface/hub. راجع توثيق ذاكرة التخزين المؤقت في Hub لمزيد من التفاصيل وكيفية تغيير موقعها.

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

🤗 كما يحتوي Datasets على ذاكرة تخزين مؤقت خاصة به لتخزين مجموعات البيانات المحوَّلة إلى صيغة Arrow (الصيغة المستخدمة في كائنات 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 للاطلاع على النقاش حول كيفية مواجهة المستخدمين مواقع تخزين مؤقت غير متوقعة عندما لم يتم تعيين HF_HUB_CACHE بالتزامن مع HF_DATASETS_CACHE.

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

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

وضع التنزيل

بعد تنزيل مجموعة بيانات، تتحكم في طريقة تحميلها بواسطة load_dataset() باستخدام معامل download_mode. بشكل افتراضي، سيعيد 🤗 Datasets استخدام مجموعة البيانات إذا كانت موجودة. ولكن إذا كنت بحاجة إلى مجموعة البيانات الأصلية دون تطبيق أي دوال معالجة، أعد تنزيل الملفات كما هو موضح أدناه:

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

راجع DownloadMode للحصول على قائمة كاملة بأنواع التحميل.

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

قم بتنظيف ملفات ذاكرة Arrow المؤقتة في المجلد باستخدام Dataset.cleanup_cache_files():

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

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

إذا كنت تستخدم ملفًا مخزّنًا محليًا، فسيتم إعادة تحميل مجموعة البيانات تلقائيًا مع أي تحويلات سابقة طبقتها على مجموعة البيانات. عطّل هذا السلوك عن طريق تعيين الحجة load_from_cache_file=False في Dataset.map():

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

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

تعطيل التخزين المؤقت على نطاق شامل باستخدام disable_caching():

>>> from datasets import disable_caching
>>> disable_caching()

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

إذا كنت ترغب في إعادة استخدام مجموعة بيانات من الصفر، فحاول بدلاً من ذلك ضبط معامل download_mode في load_dataset().

تحسين الأداء

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

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

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

Update on GitHub