Hub documentation
حدود التخزين
حدود التخزين
في Hugging Face، نسعى إلى توفير مساحات تخزين مجانية كبيرة للمجتمع المهتم بالذكاء الاصطناعي، مخصصة لمساحات التخزين المجانية للمستودعات العامة، مع إمكانية شراء مساحة تخزين إضافية عند الحاجة. كما نفرض رسومًا على مساحة التخزين الخاصة بالمستودعات الخاصة، وذلك بعد تجاوز الحد المجاني (انظر الجدول أدناه).
تُطبَّق حدود وسياسات التخزين على جميع أنواع المستودعات (النماذج، مجموعات البيانات، الدلاء، ...) على Hub.
نقوم بتحسين بنيتنا التحتية باستمرار من أجل توسيع تخزيننا لسنوات النمو القادمة في الذكاء الاصطناعي وتعلم الآلة.
لدينا تدابير للحد من إساءة استخدام التخزين العام المجاني، ونطلب بشكل عام من المستخدمين والمنظمات التأكد من أن أي نموذج كبير أو مجموعة بيانات مرفوعة تكون مفيدة للمجتمع قدر الإمكان (كما يتضح من عدد الإعجابات أو التحميلات، على سبيل المثال). قم بالترقية إلى حساب منظمة أو مستخدم مدفوع (PRO) لفتح حدود أعلى.
خطط التخزين
| نوع الحساب | التخزين العام | التخزين الخاص |
|---|---|---|
| مستخدم أو منظمة مجانية | بأقصى جهد* | 100GB |
| PRO | حتى 10 تيرابايت مضمّنة* + إضافة ✅ منح متاحة للأعمال ذات الأثر† | 1 تيرابايت + الدفع حسب الاستخدام |
| منظمات الفرق | 12 تيرابايت أساسي + 1 تيرابايت لكل مقعد + إضافة ✅ | 1 تيرابايت لكل مقعد + الدفع حسب الاستخدام |
| منظمات المؤسسات | 200 تيرابايت أساسية + 1 تيرابايت لكل مقعد + إضافة 🏆 حتى 1,000 تيرابايت للعقود الكبيرة | 1 تيرابايت لكل مقعد + الدفع حسب الاستخدام |
💡 تشمل منظمات الفرق أو المؤسسات مساحة تخزين خاصة بحجم 1 تيرابايت لكل مقعد في الاشتراك: على سبيل المثال، إذا كانت منطمتك تضم 40 عضوًا، فإن لديك 40 تيرابايت من مساحة التخزين الخاصة المضمنة.
* نهدف إلى الاستمرار في توفير مساحة تخزين مجانية سخية لمجتمع الذكاء الاصطناعي للمستودعات العامة. بعد تجاوز أول بضعة غيغابايت، يرجى استخدام هذه الموارد بمسؤولية من خلال رفع محتوى يقدم قيمة حقيقية للمستخدمين الآخرين. إذا كنت بحاجة إلى مساحة تخزين كبيرة، فستحتاج إلى الترقية إلى PRO أو Team أو Enterprise.
† في بعض الحالات، تتوفر منح تخزين إضافية للأعمال مفتوحة المصدر ذات الأثر الكبير، عندما لا تستطيع الخطة المدفوعة تغطية الحاجة فعليًا. تواصل معنا مع دليل على الأثر المجتمعي (الإعجابات، التحميلات، الاستشهادات).
إضافة التخزين العام
يمكن للمستخدمين على خطة مدفوعة (PRO أو Team أو Enterprise) الاشتراك في إضافة تخزين عام للحصول على مساحة تخزين عامة إضافية فوق الحد الأساسي لخطة الاشتراك.
| إضافة التخزين | السعر | لكل TB |
|---|---|---|
| 1 تيرابايت | 12 دولارًا/شهر | 12 دولار/تيرابايت/شهر |
| 5 تيرابايت | 60 دولارًا/شهر | 12 دولار/تيرابايت/شهر |
| 10 تيرابايت | 120 دولارًا/شهر | 12 دولار/تيرابايت/شهر |
| 20 تيرابايت | 240 دولارًا/شهر | 12 دولار/تيرابايت/شهر |
| 50 تيرابايت | 500 دولار/شهر | 10 دولارات/تيرابايت/شهر |
يمكنك الاشتراك أو تغيير خطتك من صفحة إعدادات الفوترة في حسابك أو مؤسستك. تُطبَّق الترقية فورًا، بينما تُجدول التخفيض ليصبح ساريًا في بداية الشهر التالي. إذا كنت بحاجة إلى مساحة تخزين أكبر، يمكنك تواصل معنا للاستفادة من أسعار مخصصة على نطاق واسع.
التخزين الخاص الدفع حسب الاستخدام
بالإضافة إلى مساحة التخزين الخاصة المضمّنة البالغة 1 تيرابايت (أو 1 تيرابايت لكل مقعد) في PRO ومنظمات Team أو Enterprise، تُحتسب تكلفة مساحة التخزين الخاصة الإضافية على طريقة الدفع الخاصة بك في وضع الدفع حسب الاستخدام، بسعر أساسي قدره 18 دولارًا/تيرابايت/شهر. تتوفر خصومات إضافية للحجم الكبير من خلال مسؤولي الحساب لدينا:
| الحجم | السعر (المستودعات الخاصة) |
|---|---|
| الأساس | 18 دولار/تيرابايت/شهر |
| أكثر من 50 تيرابايت | 16 دولار/تيرابايت/شهر |
| أكثر من 200 تيرابايت | 14 دولار/تيرابايت/شهر |
| أكثر من 500 تيرابايت | 12 دولار/تيرابايت/شهر |
راجع وثيقة الفوترة لدينا لمزيد من التفاصيل، أو اطّلع على أحدث الأسعار في huggingface.co/pricing.
قيود المستودع والتوصيات
لا ينطبق هذا القسم على Storage Buckets
بالإضافة إلى حدود التخزين على مستوى الحساب (المستخدم أو المؤسسة)، هناك بعض القيود التي يجب الانتباه إليها عند التعامل مع كميات كبيرة من البيانات في مستودع Git محدد. نظرًا للوقت الذي يستغرقه بث البيانات، فإن فشل عملية الرفع/الدفع في نهاية العملية أو مواجهة تجربة متدهورة، سواء على hf.co أو عند العمل محليًا، قد يكون أمرًا مزعجًا للغاية. في القسم التالي، نوصي بأفضل طريقة لبناء مستودعاتك الكبيرة.
التوصيات
جمعنا قائمةً من النصائح والتوصيات لبناء مستودعك. إذا كنت تبحث عن نصائح أكثر عملية، فتفضل بالاطلاع على هذا الدليل حول كيفية رفع كميات كبيرة من البيانات باستخدام مكتبة Python.
| الخاصية | موصى به | نصائح |
|---|---|---|
| حجم المستودع | - | قم بترقية خطة التخزين الخاصة بك أو تواصل معنا للمستودعات الكبيرة (بيانات بحجم تيرابايت) |
| الملفات لكل مستودع | <100k | دمج البيانات في ملفات أقل |
| عدد العناصر في كل مجلد | <10k | استخدام مجلدات فرعية في المستودع |
| حجم الملف | <200GB | تقسيم البيانات إلى ملفات مقسّمة |
| حجم الالتزام | <100 ملفات* | upload_folder/hf upload تقسيم المجلدات الكبيرة تلقائيًا إلى عدة التزامات |
| التزامات لكل مستودع | - | رفع عدة ملفات لكل التزام و/أو دمج السجل |
* غير ذي صلة عند استخدام git مباشرةً
يرجى قراءة القسم التالي لفهم هذه الحدود بشكل أفضل وكيفية التعامل معها.
التفسيرات
عما نتحدث عندما نقول «تحميلات كبيرة»، وما هي القيود المرتبطة بها؟ يمكن أن تكون التحميلات الكبيرة متنوعة للغاية، من مستودعات تحتوي على عدد قليل من الملفات الضخمة (مثل أوزان النموذج) إلى مستودعات تحتوي على آلاف الملفات الصغيرة (مثل مجموعة بيانات من الصور).
في الخلفية، يستخدم Hub نظام Git لإدارة إصدارات البيانات، مما يترتب عليه آثار بنيوية على ما يمكنك القيام به في مستودعك.
إذا كان مستودعك يتجاوز بعض الأرقام المذكورة في القسم السابق، ننصحك بشدة بالاطلاع على git-sizer،
والذي يحتوي على توثيق مفصّل للغاية حول العوامل المختلفة التي ستؤثر على تجربتك. فيما يلي ملخص سريع للعوامل التي يجب مراعاتها:
- حجم المستودع: الحجم الإجمالي للبيانات التي تخطط لرفعها. لا يوجد حد لحجم المستودع الفردي بالنسبة إلى النماذج ومجموعات البيانات، لكن عمليات الرفع تُحتسب ضمن حصة التخزين الإجمالية لحسابك (انظر خطط التخزين أعلاه). إذا كنت بحاجة إلى مساحة تخزين أكبر، قم بترقية خطتك أو اشترِ إضافة تخزين.
- Number of files:
- لضمان أفضل تجربة، ننصح بإبقاء العدد الإجمالي للملفات أقل من 100 ألف، ويفضل أن يكون أقل بكثير من ذلك. إذا كان لديك عدد أكبر، فحاول دمج البيانات في عدد أقل من الملفات. على سبيل المثال، يمكن دمج ملفات json في ملف jsonl واحد، أو تصدير مجموعات البيانات الكبيرة كملفات Parquet أو بصيغة WebDataset.
- لا يمكن أن يتجاوز الحد الأقصى لعدد الملفات في كل مجلد 10 آلاف ملف. الحل البسيط هو إنشاء بنية مستودع تستخدم مجلدات فرعية. على سبيل المثال، يكفي مستودع يحتوي على 1000 مجلد من
000/إلى999/، حيث يحتوي كل منها على 1000 ملف كحد أقصى.
- File size: في حالة رفع ملفات كبيرة (مثل أوزان النموذج)، ننصح بشدة بتقسيمها إلى أجزاء لا يتجاوز حجم كل منها 200 جيجابايت..
وهناك عدة أسباب لذلك:
- تكون عملية رفع الملفات وتنزيلها أسهل بكثير لك وللمستخدمين الآخرين عندما تكون الملفات أصغر حجماً. كما أن مشاكل الاتصال قد تحدث دائماً عند بث البيانات، وتساعد الملفات الأصغر في تجنب إعادة البدء من البداية في حال حدوث أخطاء.
- تُقدَّم الملفات للمستخدمين باستخدام CloudFront. ومن خبرتنا، فإن الملفات الضخمة لا تُخزَّن مؤقتًا بواسطة هذه الخدمة مما يؤدي إلى انخفاض سرعة التحميل. في جميع الحالات، لن تتجاوز أي ملف فردي حجم 500 جيجابايت. أي أن 500 جيجابايت هو الحد الأقصى الصارم لحجم الملف الواحد.
- عدد الالتزامات: لا يوجد حد صارم لعدد الالتزامات الإجمالي في سجل مستودعك. ومع ذلك، فمن خبرتنا، تبدأ تجربة المستخدم على المنصة بالتدهور بعد بضع آلاف من الالتزامات. نحن نعمل باستمرار على تحسين الخدمة، لكن يجب دائماً التذكر أن مستودع git ليس مصمماً للعمل كقاعدة بيانات تتضمن العديد من عمليات الكتابة. إذا أصبح سجل مستودعك كبيراً جداً، فمن الممكن دائماً دمج جميع الالتزامات للحصول على بداية جديدة باستخدام
super_squash_historyالخاص بـhuggingface_hub. كن على دراية بأن هذه عملية غير قابلة للتراجع. - عدد العمليات لكل التزام: مرة أخرى، لا يوجد حد صارم هنا. عند رفع التزام إلى المستودع، يتم فحص كل عملية git (إضافة أو حذف) من قِبل الخادم. عند التزام مئة ملف كبير دفعة واحدة، يتم فحص كل ملف على حدة للتأكد من أنه تم رفعه بشكل صحيح. عند دفع البيانات عبر HTTP، يتم تعيين مهلة زمنية قدرها 60 ثانية على الطلب، مما يعني أنه إذا استغرق العملية وقتًا أطول، فسيتم رفع خطأ. ومع ذلك، قد يحدث (في حالات نادرة) أنه حتى إذا تم تجاوز المهلة على جانب العميل، فإن العملية لا تزال مكتملة على جانب الخادم. يمكن التحقق من ذلك يدويًا من خلال تصفح المستودع على المستودع. تتجنب طريقة
upload_folderوأمرhf uploadهذا تلقائيًا من خلال تقسيم المجلدات الكبيرة إلى عدة التزامات. إذا كنت تلتزم يدويًا، فحافظ على حوالي 50-100 ملف لكل التزام.
مشاركة مجموعات البيانات الكبيرة على الـ Hub
من أبرز الطرق التي تدعم بها Hugging Face منظومة تعلّم الآلة استضافة مجموعات البيانات على Hub، بما في ذلك المجموعات الضخمة. تُحتسب مجموعات البيانات الكبيرة ضمن إجمالي حصة التخزين الخاصة بحسابك، لذا تأكد من أن خطة التخزين لديك توفر سعة كافية قبل الرفع. يمكن شراء مساحة تخزين عامة إضافية كـ إضافة.
للاستضافة مجموعات بيانات كبيرة على Hub، نحتاج إلى ما يلي:
- بطاقة مجموعة بيانات: نريد التأكد من إمكانية استخدام مجتمعك لمجموعتك بفعالية، وأحد الطرق الرئيسية لتمكين ذلك هو من خلال بطاقة مجموعة بيانات. يوفر هذا الدليل نظرة عامة على كيفية كتابة بطاقة مجموعة بيانات.
- أنت تشارك مجموعة البيانات لتمكين إعادة استخدامها من قبل المجتمع. إذا كنت تخطط لرفع مجموعة بيانات لا تتوقع أن يتم إعادة استخدامها مرة أخرى، فمن المرجح أن تكون المنصات الأخرى أكثر ملاءمة.
- يجب عليك الالتزام بحدود المستودع الموضحة أعلاه.
- استخدام صيغ ملفات متكاملة بشكل جيد مع منظومة Hugging Face. لدينا دعم جيد لصيغتي Parquet وWebDataset، والتي غالباً ما تكون خيارات جيدة لمشاركة مجموعات البيانات الكبيرة بكفاءة. كما سيضمن ذلك عمل عارض مجموعة البيانات لمجموعتك.
- تجنّب استخدام سكربتات التحميل المخصصة عند استخدام مجموعات البيانات. فمن خبرتنا، غالبًا ما تنتهي مجموعات البيانات التي تتطلب استخدام أكواد مخصصة إلى إعادة استخدام محدودة.
يرجى التواصل معنا إذا كانت أي من هذه المتطلبات صعبة عليك تحقيقها بسبب نوع البيانات أو المجال الذي تعمل فيه.
مشاركة كميات كبيرة من النماذج على Hub
وبنفس الطريقة التي تُطبَّق على مجموعات البيانات، تُحتسب النماذج الكبيرة أو الكميات الكبيرة من النماذج (على سبيل المثال، مئات الكميات الآلية) ضمن حصة التخزين الإجمالية لحسابك. تأكد من أن خطة التخزين الخاصة بك توفر سعة كافية، أو اشترِ إضافة تخزين.
منح لفرق البحث والمنظمات غير الربحية
نوصي المؤسسات الأكاديمية والبحثية بالترقية إلى Team أو Enterprise أو Academia Hub لضمان حدود تخزين مضمونة. في بعض الحالات، قد تكون منح التخزين متاحة للأعمال مفتوحة المصدر ذات الأثر الكبير حيث لا تغطي الخطة المدفوعة الحاجة فعلياً. تُقيَّم هذه الطلبات حالةً بحالة وتتطلب إثبات الأثر على المجتمع (التحميلات، الاستشهادات، تبني المجتمع، إلخ). تواصل مع datasets@huggingface.co أو models@huggingface.co مع اقتراح مفصل.
كيف يمكنني تحرير مساحة التخزين في حسابي/منظمتي؟
تتوفر عدة طرق لإدارة مساحة التخزين في حسابك أو مؤسستك وتحرير جزء منها. أولاً، إذا كنت بحاجة إلى مساحة تخزين أكبر، فقم بالترقية إلى خطة PRO أو Team أو Enterprise للاستفادة من حدود تخزين أعلى.
⚠️ مهم: حذف الملفات الكبيرة عملية تدميرية لا يمكن التراجع عنها. تأكد من إنشاء نسخة احتياطية من ملفاتك قبل المتابعة.
نقاط رئيسية يجب تذكّرها:
- حذف مؤشرات LFS فقط لا يُحرر مساحة
- إذا لم تُعد كتابة سجل Git، فإن عمليات الاستخراج المستقبلية للفروع/الوسوم التي تحتوي على ملفات LFS محذوفة مع وجود مؤشرات lfs موجودة مسبقًا ستفشل (لتجنب الأخطاء، أضف السطر التالي إلى ملف
.gitconfigالخاص بك:lfs.skipdownloaderrors=true)
حذف ملفات LFS الفردية
- انتقل إلى صفحة الإعدادات في مستودعك
- انقر على “List LFS files” في قسم “Storage”
- استخدم قائمة الإجراءات لحذف ملفات محددة
حذف مراجع طلبات الدمج
تُنشئ طلبات الدمج مراجع git تخزّن التزامات الخاصة بها. بعد إغلاق طلب الدمج أو دمجه، يمكنك حذف مرجعه لتحرير مساحة التخزين. وهذا مفيد بشكل خاص عندما:
- تحتوي طلبات الدمج على ملفات كبيرة لم يتم دمجها قط
- لقد ضغطت فرع main وأزلت ملفات لاحقًا — تبقى تلك الملفات في سجل فرع طلب الإضافة (PR) حتى لو لم يضيفها طلب الإضافة نفسه
لحذف مرج طلب الدمج، افتح طلب الدمج المغلق أو المدمج وابحث عن إشعار التخزين في الأسفل الذي يعرض المساحة التقديرية التي يمكن تحريرها. انقر على “Delete ref” لإزالته بشكل دائم.
حذف مرج طلب الدمج عملية لا رجعة فيها، وستمنع أي شخص من جلب تلك الالتزامات أو التحقق منها محليًا.
قم بدمج مستودعك بشكل فائق باستخدام واجهة برمجة التطبيقات
تعمل عملية super-squash على ضغط سجل Git بأكمله في التزام الواحد. يُنصح باستخدام super-squash عندما تحتاج إلى استعادة مساحة التخزين من إصدارات LFS القديمة التي لا تستخدمها. هذه العملية متاحة فقط من خلال مكتبة Python الخاصة بـ Hub أو واجهة برمجة التطبيقات (API).
⚠️ مهم: هذه عملية تدميرية لا يمكن التراجع عنها، حيث ستُفقد سجلات الالتزام بشكل دائم وسيتم حذف سجل ملفات LFS
لا تظهر آثار عملية الضغط على حصة التخزين الخاصة بك فوراً، بل ستُنعكس على حصتك خلال 36 ساعة.
متقدم: تتبع مراجع ملفات LFS
عندما تجد ملف LFS في مستودعك ضمن «قائمة ملفات LFS» لكنك لا تعرف مصدره، يمكنك تتبع تاريخه باستخدام معرّف SHA-256 OID الخاص به من خلال أمر git log:
git log --all -p -S <SHA-256-OID>على سبيل المثال:
git log --all -p -S 68d45e234eb4a928074dfd868cead0219ab85354cc53d20e772753c6bb9169d3
commit 5af368743e3f1d81c2a846f7c8d4a028ad9fb021
Date: Sun Apr 28 02:01:18 2024 +0200
Update LayerNorm tensor names to weight and bias
diff --git a/model.safetensors b/model.safetensors
index a090ee7..e79c80e 100644
--- a/model.safetensors
+++ b/model.safetensors
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:68d45e234eb4a928074dfd868cead0219ab85354cc53d20e772753c6bb9169d3
+oid sha256:0bb7a1683251b832d6f4644e523b325adcf485b7193379f5515e6083b5ed174b
size 440449768
commit 0a6aa9128b6194f4f3c4db429b6cb4891cdb421b (origin/pr/28)
Date: Wed Nov 16 15:15:39 2022 +0000
Adding `safetensors` variant of this model (#15)
- Adding `safetensors` variant of this model (18c87780b5e54825a2454d5855a354ad46c5b87e)
Co-authored-by: Nicolas Patry <Narsil@users.noreply.huggingface.co>
diff --git a/model.safetensors b/model.safetensors
new file mode 100644
index 0000000..a090ee7
--- /dev/null
+++ b/model.safetensors
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68d45e234eb4a928074dfd868cead0219ab85354cc53d20e772753c6bb9169d3
+size 440449768
commit 18c87780b5e54825a2454d5855a354ad46c5b87e (origin/pr/15)
Date: Thu Nov 10 09:35:55 2022 +0000
Adding `safetensors` variant of this model
diff --git a/model.safetensors b/model.safetensors
new file mode 100644
index 0000000..a090ee7
--- /dev/null
+++ b/model.safetensors
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68d45e234eb4a928074dfd868cead0219ab85354cc53d20e772753c6bb9169d3
+size 440449768