Hub documentation

Konfigurasi Manual

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Konfigurasi Manual

Panduan ini akan menunjukkan cara mengonfigurasi struktur kustom untuk repositori dataset Anda. koleksi dataset contoh pendamping menampilkan setiap bagian dari dokumentasi.

Dataset dengan struktur dan format file yang didukung secara otomatis memiliki Dataset Viewer di halaman dataset-nya di Hub. Anda dapat menggunakan YAML untuk mendefinisikan splits, subsets, dan parameter builder yang digunakan oleh Viewer.

Anda juga dapat mendefinisikan beberapa subset (juga disebut β€œkonfigurasi”) untuk dataset yang sama (misalnya jika dataset memiliki berbagai file independen).

Pembagian

Jika Anda memiliki beberapa file dan ingin menentukan file mana yang masuk ke split mana, Anda dapat menggunakan YAML di bagian atas README.md.

Sebagai contoh, diberikan sebuah repositori seperti ini:

my_dataset_repository/
β”œβ”€β”€ README.md
β”œβ”€β”€ data.csv
└── holdout.csv

Anda dapat mendefinisikan subset untuk split Anda dengan menambahkan field configs di blok YAML di bagian atas README.md Anda:

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

Anda dapat memilih beberapa file per split menggunakan daftar path:

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"
---

Atau Anda dapat menggunakan pola glob untuk secara otomatis mendaftar semua file yang Anda butuhkan:

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

Perhatikan bahwa field config_name wajib diisi meskipun Anda hanya memiliki satu subset.

Beberapa Subset

Dataset Anda mungkin memiliki beberapa subset data yang ingin Anda gunakan secara terpisah. Sebagai contoh, setiap subset memiliki dropdown-nya sendiri di Dataset Viewer pada Hugging Face Hub.

Dalam hal itu, Anda dapat mendefinisikan daftar subset di dalam field configs di 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"
---

Perhatikan bahwa urutan subset yang ditampilkan di viewer adalah default terlebih dahulu, kemudian alfabetis.

Anda dapat mengatur subset default menggunakan default: true

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

Hal ini berguna untuk mengatur subset mana yang ditampilkan pertama oleh Dataset Viewer, dan subset mana yang dimuat secara default oleh pustaka data.

Direktori Data

Alih-alih mencantumkan file individual dengan data_files, Anda dapat menggunakan data_dir untuk menunjuk ke sebuah direktori. File di dalam direktori tersebut akan diidentifikasi secara otomatis berdasarkan ekstensi file. Hal ini sangat berguna ketika data Anda diorganisasikan dalam subdirektori:

Sebagai contoh, dalam kasus seperti ini, Anda cukup menggunakan data_dir karena data setiap subset berada di direktori masing-masing:

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"
---

Ketika data_dir diatur, builder akan menyelesaikan file relatif terhadap direktori tersebut. Jika direktori berisi file yang cocok dengan pola penamaan split default (misalnya train.csv, test.csv), split akan ditugaskan secara otomatis tanpa perlu data_files eksplisit.

Anda juga dapat menggabungkan data_dir dengan data_files untuk kontrol yang lebih baik:

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

Dalam kasus ini, pola path di data_files diselesaikan relatif terhadap data_dir.

Parameter builder

Tidak hanya data_files, tetapi parameter spesifik builder lainnya juga dapat dikirimkan melalui YAML, sehingga memberikan fleksibilitas lebih dalam cara memuat data tanpa memerlukan kode khusus. Sebagai contoh, tentukan pemisah yang akan digunakan pada subset mana untuk memuat file csv Anda:

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

Lihat dokumentasi builder tertentu untuk melihat parameter apa yang mereka miliki.

Update on GitHub