Hub documentation

الإعداد اليدوي

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

الإعداد اليدوي

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

يتميز مجموعة بيانات ذات بنية مدعومة وصيغ ملفات تلقائيًا بمشغل مجموعات البيانات في صفحة المجموعة على Hub. يمكنك استخدام YAML لتعريف التقسيمات والفرعية ومعاملات الباني التي يستخدمها المشغل.

كما يمكن تحديد عدة مجموعات فرعية (تُسمى أيضاً «إعدادات») لنفس مجموعة البيانات (على سبيل المثال، إذا كانت مجموعة البيانات تحتوي على ملفات مستقلة متنوعة).

التقسيمات

إذا كان لديك عدة ملفات وتريد تحديد الملف الذي ينتمي إلى كل تقسيم، يمكنك استخدام YAML في أعلى ملف README.md.

على سبيل المثال، عند وجود مستودع كهذا:

my_dataset_repository/
├── README.md
├── data.csv
└── holdout.csv

يمكنك تحديد مجموعة فرعية لتقسيماتك عن طريق إضافة حقل configs في كتلة YAML في أعلى ملف README.md الخاص بك:

---
configs:
- config_name: default
  data_files:
  - split: train
    path: "data.csv"
  - split: test
    path: "holdout.csv"
---

يمكنك تحديد ملفات متعددة لكل تقسيم باستخدام قائمة من المسارات:

my_dataset_repository/
├── README.md
├── data/
│   ├── abc.csv
│   └── def.csv
└── holdout/
    └── ghi.csv
---
configs:
- config_name: default
  data_files:
  - split: train
    path:
    - "data/abc.csv"
    - "data/def.csv"
  - split: test
    path: "holdout/ghi.csv"
---

أو يمكنك استخدام أنماط glob لتجميع جميع الملفات التي تحتاجها تلقائيًا:

---
configs:
- config_name: default
  data_files:
  - split: train
    path: "data/*.csv"
  - split: test
    path: "holdout/*.csv"
---

لاحظ أن حقل config_name مطلوب حتى لو كان لديك مجموعة فرعية واحدة فقط.

تعدد المجموعات الفرعية

قد يحتوي مجموعة بياناتك على عدة مجموعات فرعية من البيانات التي تريد أن تكون قادرًا على استخدامها بشكل منفصل. على سبيل المثال، لكل مجموعة فرعية قائمة منسدلة خاصة بها في عارض مجموعات البيانات على Hugging Face Hub.

في هذه الحالة يمكنك تحديد قائمة من المجموعات الفرعية داخل حقل configs في ملف YAML:

my_dataset_repository/
├── README.md
├── main_data.csv
└── additional_data.csv
---
configs:
- config_name: main_data
  data_files: "main_data.csv"
- config_name: additional_data
  data_files: "additional_data.csv"
---

لاحظ أن ترتيب المجموعات الفرعية المعروضة في العارض هو الترتيب الافتراضي أولاً، ثم الترتيب الأبجدي.

يمكنك تعيين مجموعة فرعية افتراضية باستخدام default: true

- config_name: main_data
  data_files: "main_data.csv"
  default: true

يُفيد هذا في تحديد المجموعة الفرعية التي يعرضها عارض البيانات (Dataset Viewer) أولاً، والمجموعة الفرعية التي تُحمّلها مكتبات البيانات افتراضيًا.

مجلد البيانات

بدلاً من سرد الملفات الفردية باستخدام data_files، يمكنك استخدام data_dir للإشارة إلى مجلد. يتم تحديد الملفات داخل ذلك المجلد تلقائيًا بناءً على امتدادات الملفات. وهذا مفيد بشكل خاص عندما تكون بياناتك منظمة في مجلدات فرعية:

على سبيل المثال، في حالة كهذه، يمكنك ببساطة استخدام data_dir لأن بيانات كل مجموعة فرعية موجودة في مجلد خاص بها:

my_dataset_repository/
├── README.md
├── main/
│   ├── train.csv
│   └── test.csv
└── extra/
    ├── train.csv
    └── test.csv
---
configs:
- config_name: main
  data_dir: "main"
- config_name: extra
  data_dir: "extra"
---

عند تعيين data_dir، يحلّ الباني الملفات نسبةً إلى ذلك المجلد. إذا احتوى المجلد على ملفات تطابق نمط تسمية التقسيمات الافتراضي (مثل train.csv، test.csv)، تُسند التقسيمات تلقائيًا دون الحاجة إلى تحديد data_files صراحةً.

يمكنك أيضًا دمج data_dir مع data_files للحصول على مزيد من التحكم:

---
configs:
- config_name: default
  data_dir: "data"
  data_files:
  - split: train
    path: "training_*.csv"
  - split: test
    path: "eval_*.csv"
---

في هذه الحالة، تُحلّ أنماط path في data_files نسبةً إلى data_dir.

معاملات المُنشئ

يمكن تمرير معاملات أخرى خاصة بالبناء عبر YAML إلى جانب data_files، مما يتيح مرونة أكبر في كيفية تحميل البيانات دون الحاجة إلى أي مخصصات مخصصة. على سبيل المثال، حدد الفاصل الذي يجب استخدامه في أي مجموعة فرعية لتحميل ملفات csv الخاصة بك:

---
configs:
- config_name: tab
  data_files: "main_data.csv"
  sep: "\t"
- config_name: comma
  data_files: "additional_data.csv"
  sep: ","
---

راجع توثيق المُنشئين المحددين لمعرفة المعلمات التي يمتلكونها.

Update on GitHub