Datasets documentation

مشاركة مجموعة بيانات باستخدام سطر الأوامر

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

مشاركة مجموعة بيانات باستخدام سطر الأوامر

في Hugging Face، نعمل على مهمة تتمثل في ديمقراطية تعلم الآلة الجيد، ونؤمن بقيمة المصادر المفتوحة. ولهذا السبب صممنا 🤗 Datasets بحيث يمكن لأي شخص مشاركة مجموعة بيانات مع مجتمع تعلم الآلة الأوسع. حاليًا، هناك آلاف مجموعات البيانات بأكثر من 100 لغة في Hugging Face Hub، وفريق Hugging Face يرحب دائمًا بالمساهمات الجديدة!

توفر مستودعات مجموعات البيانات ميزات مثل:

  • استضافة مجانية للبيانات
  • إصدار بيانات
  • سجلّ الالتزامات والفروقات
  • بيانات وصفية لتحسين قابلية الاكتشاف
  • بطاقات مجموعات البيانات للتوثيق، والترخيص، والقيود، وما إلى ذلك.
  • عارض مجموعة البيانات

ستُظهر لك هذه الدليل كيفية مشاركة مجلد بيانات أو مستودع يمكن لأي شخص الوصول إليه بسهولة.

إضافة مجموعة بيانات

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

في مستودع مجموعة بيانات، يمكنك استضافة جميع ملفات البيانات الخاصة بك وإعداد مجموعة البيانات لتحديد الملف الذي ينتمي إلى كل تقسيم. الصيغ المدعومة هي: CSV وTSV وJSON وJSON lines والنص وParquet وArrow وSQLite وWebDataset. كما يتم دعم العديد من أنواع الملفات المضغوطة: GZ وBZ2 وLZ4 وLZMA أو ZSTD. على سبيل المثال، يمكن أن تتكون مجموعة بياناتك من ملفات .json.gz.

عند تحميل مجموعة بيانات من Hub، يتم تحميل جميع الملفات الموجودة في الصيغ المدعومة، وذلك وفقاً لـهيكل المستودع.

لمزيد من المعلومات حول كيفية تحميل مجموعة بيانات من Hub، راجع درس تحميل مجموعة بيانات من Hub.

إنشاء المستودع

يتطلب مشاركة مجموعة بيانات المجتمع إنشاء حساب على hf.co إذا لم يكن لديك حساب بالفعل. يمكنك إنشاء مستودع مجموعة بيانات جديد مباشرةً من حسابك على Hugging Face Hub، لكن هذا الدليل سيوضح لك كيفية رفع مجموعة بيانات من الطرفية.

  1. تأكد من أنك داخل البيئة الافتراضية التي قمت بتثبيت Datasets فيها، ثم نفّذ الأمر التالي:
hf auth login
  1. سجّل الدخول باستخدام بيانات اعتماد Hugging Face Hub الخاصة بك، وأنشئ مستودع بيانات جديدًا:
hf repos create my-cool-dataset --type dataset

أضف اسم المنظمة قبل اسم المستودع لإنشاؤه تحت تلك المنظمة:

hf repos create your-org-name/my-cool-dataset --type dataset

جهّز ملفاتك

تحقق من مجلدك للتأكد من أن الملفات التي تقوم برفعها هي فقط:

  • ملفات البيانات الخاصة بمجموعة البيانات

  • بطاقة مجموعة البيانات README.md

hf upload

استخدم أمر hf upload لرفع الملفات إلى Hub مباشرة. داخليًا، يستخدم نفس أدوات المساعدة upload_file وupload_folder الموصوفة في دليل الرفع. في الأمثلة أدناه، سنستعرض أكثر حالات الاستخدام شيوعًا. للحصول على قائمة كاملة بالخيارات المتاحة، يمكنك تشغيل:

>>> hf upload --help

لمزيد من المعلومات العامة حول hf يمكنك الاطلاع على دليل سطر الأوامر.

رفع مجلد كامل

الاستخدام الافتراضي لهذا الأمر هو:

# Usage:  hf upload [dataset_repo_id] [local_path] [path_in_repo] --repo-type dataset

لرفع المجلد الحالي في جذر المستودع، استخدم:

>>> hf upload my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/main/

إذا لم يكن المستودع موجودًا بعد، فسيتم إنشاؤه تلقائيًا.

يمكنك أيضًا رفع مجلد محدد:

>>> hf upload my-cool-dataset ./data . --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main/

أخيرًا، يمكنك رفع مجلد إلى وجهة محددة في المستودع:

>>> hf upload my-cool-dataset ./path/to/curated/data /data/train --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main/data/train

رفع ملف واحد

يمكنك أيضًا رفع ملف واحد عن طريق تعيين local_path ليُشير إلى ملف على جهازك. في هذه الحالة، يكون path_in_repo اختياريًا وسيُستخدم افتراضيًا اسم ملفك المحلي:

>>> hf upload Wauplin/my-cool-dataset ./files/train.csv --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/blob/main/train.csv

إذا كنت ترغب في رفع ملف واحد إلى مجلد محدد، فاضبط path_in_repo وفقًا لذلك:

>>> hf upload Wauplin/my-cool-dataset ./files/train.csv /data/train.csv --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/blob/main/data/train.csv

رفع ملفات متعددة

لرفع عدة ملفات من مجلد دفعة واحدة دون رفع المجلد بأكمله، استخدم أنماط --include و--exclude. كما يمكن دمج ذلك مع خيار --delete لحذف الملفات من المستودع أثناء رفع ملفات جديدة. في المثال أدناه، نزامن المساحة المحلية عن طريق حذف الملفات البعيدة ورفع جميع ملفات CSV:

# Sync local Space with Hub (upload new CSV files, delete removed files)
>>> hf upload Wauplin/my-cool-dataset --repo-type dataset --include="/data/*.csv" --delete="*" --commit-message="Sync local dataset with Hub"
...

الرفع إلى منظمة

لرفع المحتوى إلى مستودع مملوك لمنظمة بدلاً من مستودع شخصي، يجب عليك تحديد ذلك صراحةً في repo_id:

>>> hf upload MyCoolOrganization/my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasetsMyCoolOrganization/my-cool-dataset/tree/main/

الرفع إلى إصدار محدد

بشكل افتراضي، يتم رفع الملفات إلى الفرع main. إذا كنت ترغب في رفع الملفات إلى فرع أو مرجع آخر، فاستخدم الخيار --revision:

# Upload files to a PR
hf upload bigcode/the-stack . . --repo-type dataset --revision refs/pr/104
...

ملاحظة: إذا لم يكن revision موجودًا ولم يتم تعيين --create-pr، فسيتم إنشاء فرع تلقائيًا من الفرع main.

الرفع وإنشاء طلب دمج

إذا لم يكن لديك إذن لدفع التغييرات إلى مستودع، فيجب عليك فتح طلب سحب (PR) وإعلام المؤلفين بالتغييرات التي تريد إجراؤها. يمكن القيام بذلك من خلال تعيين الخيار --create-pr:

# Create a PR and upload the files to it
>>> hf upload bigcode/the-stack --repo-type dataset --revision refs/pr/104 --create-pr . .
https://huggingface.co/datasets/bigcode/the-stack/blob/refs%2Fpr%2F104/

الرفع على فترات منتظمة

في بعض الحالات، قد ترغب في دفع تحديثات دورية إلى مستودع. على سبيل المثال، يكون هذا مفيدًا إذا كان مجموعة بياناتك تنمو مع مرور الوقت وتريد رفع مجلد البيانات كل 10 دقائق. يمكنك القيام بذلك باستخدام خيار --every:

# Upload new logs every 10 minutes
hf upload my-cool-dynamic-dataset data/ --every=10

تحديد رسالة التزام

استخدم --commit-message و--commit-description لتعيين رسالة ووصف مخصصين لالتزامك بدلاً من الافتراضي

>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --commit-message="Version 2" --commit-description="Train size: 4321. Check Dataset Viewer for more details."
...
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main

تحديد رمز

لرفع الملفات، يجب عليك استخدام رمز. بشكل افتراضي، سيتم استخدام الرمز المحفوظ محليًا (باستخدام hf auth login). إذا كنت ترغب في المصادقة بشكل صريح، استخدم خيار --token:

>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --token=hf_****
...
https://huggingface.co/datasetsWauplin/my-cool-data/tree/main

وضع الصمت

بشكل افتراضي، يكون أمر hf upload مفصّلاً. حيث يطبع تفاصيل مثل رسائل التحذير، ومعلومات حول الملفات المرفوعة، وأشرطة التقدم. إذا كنت ترغب في كتم جميع هذه المخرجات، فاستخدم خيار --quiet. في هذه الحالة، يُطبع السطر الأخير فقط (أي الرابط إلى الملفات المرفوعة). وقد يكون ذلك مفيداً إذا كنت تريد تمرير المخرجات إلى أمر آخر في سكربت.

>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --quiet
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/main

استمتع!

تهانينا، تم الآن رفع مجموعة بياناتك إلى Hugging Face Hub حيث يمكن لأي شخص تحميلها بسطر واحد من الكود! 🥳

dataset = load_dataset("Wauplin/my-cool-dataset")

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

أخيرًا، لا تنسَ إثراء بطاقة مجموعة البيانات لتوثيقها وجعلها قابلة للاكتشاف! اطّلع على دليل إنشاء بطاقة مجموعة بيانات لمعرفة المزيد.

Update on GitHub