Datasets documentation
Deponuzu yapılandırın
Deponuzu yapılandırın
Veri setinizi barındırmak ve paylaşmak için Hugging Face Hub üzerinde bir veri seti deposu oluşturun ve veri dosyalarınızı yükleyin.
Bu kılavuz, veri setinizi yüklediğinizde veri seti deposunu nasıl yapılandıracağınızı gösterir.
Desteklenen bir yapıya ve dosya biçimine (.txt, .csv, .parquet, .jsonl, .mp3, .jpg, .zip vb.) sahip bir veri seti, load_dataset() ile otomatik olarak yüklenir ve Hub’daki veri seti sayfasında bir veri seti görüntüleyicisi bulunur.
Ana kullanım senaryosu
En basit veri seti yapısı iki dosyadan oluşur: train.csv ve test.csv (bu, desteklenen herhangi bir dosya biçimiyle çalışır).
Deponuz ayrıca, veri seti sayfanızda görüntülenen veri seti kartı olan bir README.md dosyası da içerecektir.
my_dataset_repository/
├── README.md
├── train.csv
└── test.csvBu basit durumda, iki bölüme sahip bir veri seti elde edersiniz: train (train.csv dosyasındaki örnekleri içeren) ve test (test.csv dosyasındaki örnekleri içeren).
Bölümlerinizi ve alt kümelerinizi YAML'de tanımlayın
Bölümler
Birden fazla dosyanız varsa ve hangi dosyanın hangi bölüme gideceğini tanımlamak istiyorsanız, README.md dosyanızın başındaki YAML configs alanını kullanabilirsiniz.
Örneğin, şuna benzer bir repoya sahip olduğunuzu varsayalım:
my_dataset_repository/
├── README.md
├── data.csv
└── holdout.csvREADME.md dosyasının başındaki YAML bloğuna configs alanını ekleyerek bölümlerinizi tanımlayabilirsiniz:
---
configs:
- config_name: default
data_files:
- split: train
path: "data.csv"
- split: test
path: "holdout.csv"
---Her bölme için bir yol listesi kullanarak birden fazla dosya seçebilirsiniz:
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"
---Veya glob desenlerini kullanarak ihtiyaç duyduğunuz tüm dosyaları otomatik olarak listeleyebilirsiniz:
---
configs:
- config_name: default
data_files:
- split: train
path: "data/*.csv"
- split: test
path: "holdout/*.csv"
---Tek bir yapılandırmanız olsa bile
config_namealanının zorunlu olduğunu unutmayın.
Yapılandırmalar
Veri setiniz, ayrı ayrı yüklemek istediğiniz birkaç veri alt kümesi içerebilir. Bu durumda, YAML içindeki configs alanının içinde bir yapılandırma listesi tanımlayabilirsiniz:
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"
---Her yapılandırma, Hugging Face Hub üzerinde ayrı olarak gösterilir ve adının ikinci parametre olarak geçirilmesiyle yüklenebilir:
from datasets import load_dataset
main_data = load_dataset("my_dataset_repository", "main_data")
additional_data = load_dataset("my_dataset_repository", "additional_data")Oluşturucu parametreleri
Sadece data_files değil, diğer yapılandırıcıya özgü parametreler de YAML üzerinden geçirilebilir; bu da özel kod gerektirmeden verilerin nasıl yükleneceği konusunda daha fazla esneklik sağlar. Örneğin, csv dosyalarınızı yüklemek için hangi yapılandırmada hangi ayırıcının kullanılacağını tanımlayın:
---
configs:
- config_name: tab
data_files: "main_data.csv"
sep: "\t"
- config_name: comma
data_files: "additional_data.csv"
sep: ","
---Hangi yapılandırma parametrelerine sahip olduklarını görmek için belirli oluşturucuların belgelerine başvurun.
default: truekullanarak varsayılan bir yapılandırma ayarlayabilirsiniz; örneğin, bunu ayarlarsanızmain_data = load_dataset("my_dataset_repository")çalıştırabilirsiniz- config_name: main_data data_files: "main_data.csv" default: true
Otomatik bölümlerin algılanması
YAML sağlanmazsa, 🤗 Datasets, veri seti bölümlerini otomatik olarak çıkarabilmek için veri seti deposunda belirli kalıpları arar. Kalıpların bir sırası vardır; özel dosya adı bölme biçimiyle başlar ve hiçbir kalıp bulunamazsa tüm dosyaları tek bir bölüm olarak ele alır.
Dizin adı
Veri dosyalarınız, her bir dizinde ilgili bölüme ait veri dosyalarını içeren train, test ve validation adlı farklı dizinlere de yerleştirilebilir:
my_dataset_repository/
├── README.md
└── data/
├── train/
│ └── bees.csv
├── test/
│ └── more_bees.csv
└── validation/
└── even_more_bees.csvDosya adları bölünmeleri
Geleneksel olmayan bölümleriniz yoksa, bölüm adını veri dosyasının herhangi bir yerine yerleştirebilir ve otomatik olarak çıkarılabilir. Tek kural, bölüm adının test-file.csv gibi, testfile.csv yerine, alt çizgi, tire, boşluk, nokta ve rakamlar gibi kelime dışı karakterlerle sınırlandırılmasıdır.
Örneğin, aşağıdaki dosya adlarının tümü kabul edilebilir:
- eğitim bölümü:
train.csv,my_train_file.csv,train1.csv - doğrulama bölmesi:
validation.csv,my_validation_file.csv,validation1.csv - test bölünmesi:
test.csv,my_test_file.csv,test1.csv
İşte tüm dosyaların data adlı bir dizine yerleştirildiği bir örnek:
my_dataset_repository/
├── README.md
└── data/
├── train.csv
├── test.csv
└── validation.csvÖzel dosya adı bölme
Veri seti bölümleriniz train, test veya validation dışında özel isimlere sahipse, veri dosyalarınızı data/<split_name>-xxxxx-of-xxxxx.csv gibi adlandırabilirsiniz.
Üç bölümlü bir örnek: train, test ve random:
my_dataset_repository/
├── README.md
└── data/
├── train-00000-of-00003.csv
├── train-00001-of-00003.csv
├── train-00002-of-00003.csv
├── test-00000-of-00001.csv
├── random-00000-of-00003.csv
├── random-00001-of-00003.csv
└── random-00002-of-00003.csvTek bölünme
🤗 Datasets yukarıdaki desenlerden hiçbirini bulamazsa, tüm dosyaları tek bir train split olarak ele alır. Veri seti bölümleriniz beklenildiği gibi yüklenmiyorsa, bunun nedeni hatalı bir desen olabilir.
Ad anahtar kelimelerini böl
Split'leri adlandırmak için birkaç yol vardır. Doğrulama split'leri bazen “dev” olarak adlandırılır ve test split'leri “eval” olarak anılabilir. Bu diğer split adları da desteklenir ve aşağıdaki anahtar kelimeler eşdeğerdir:
- eğitim, eğitim
- validation, valid, val, dev
- test, testing, eval, evaluation
Aşağıdaki yapı geçerli bir depodur:
my_dataset_repository/
├── README.md
└── data/
├── training.csv
├── eval.csv
└── valid.csvBölüm başına birden çok dosya
Eğer bölümlerinizden biri birden fazla dosyadan oluşuyorsa, 🤗 Datasets yine de dosya adından bunun eğitim, doğrulama ve test bölümü olup olmadığını çıkarabilir. Örneğin, eğitim ve test bölümleriniz birden fazla dosyaya yayılmışsa:
my_dataset_repository/
├── README.md
├── train_0.csv
├── train_1.csv
├── train_2.csv
├── train_3.csv
├── test_0.csv
└── test_1.csvtrain kümenizdeki tüm dosyaların adlarında train ifadesi olduğundan emin olun (test ve doğrulama için de aynı şekilde).
Dosya adında train için bir önek veya sonek ekleseniz bile (örneğin my_train_file_00001.csv),
🤗 Datasets uygun bölünmeyi yine de çıkarabilir.
Kolaylık olması için veri dosyalarınızı farklı dizinlere de yerleştirebilirsiniz. Bu durumda, bölme adı dizin adından çıkarılır.
my_dataset_repository/
├── README.md
└── data/
├── train/
│ ├── shard_0.csv
│ ├── shard_1.csv
│ ├── shard_2.csv
│ └── shard_3.csv
└── test/
├── shard_0.csv
└── shard_1.csv