Datasets documentation
Oluştur ve yükle
Oluştur ve yükle
Neredeyse her derin öğrenme iş akışı bir veri seti yüklemekle başlar; bu da onu en önemli adımlardan biri yapar. 🤗 Datasets ile NLP görevinize başlamanıza yardımcı olacak 900'den fazla veri seti mevcuttur. İlk adımı atmak için yapmanız gereken tek şey load_dataset() fonksiyonunu çağırmaktır. Bu fonksiyon, kullandığınız her veri setini oluşturup yüklediği için her açıdan gerçek bir iş atıdır.
ELI5: load_dataset
Beş yaşındaymışım gibi açıklayalım.
Bir veri seti, şunları içeren bir dizindir:
- Genel formatlarda (JSON, CSV, Parquet, metin vb.) bazı veri dosyaları
- Veri seti hakkında belgelendirme içeren ve veri seti etiketlerini ve yapılandırmalarını tanımlamak için bir YAML başlığı içeren
README.mdadlı bir veri seti kartı
load_dataset() fonksiyonu, istenen veri setini yerel olarak veya Hugging Face Hub'dan alır. Hub, tüm Hugging Face veri setlerinin ve modellerinin depolandığı merkezi bir depodur.
Veri seti yalnızca veri dosyaları içeriyorsa, load_dataset() uzantılarına (json, csv, parquet, tsfile, txt vb.) dayanarak veri dosyalarının nasıl yükleneceğini otomatik olarak çıkarır. Arka planda, 🤗 Datasets, veri dosyalarının biçimine uygun bir DatasetBuilder kullanır. 🤗 Datasets'te her veri dosyası biçimi için bir builder bulunur:
- metin için datasets.packaged_modules.text.Text
- CSV ve TSV için datasets.packaged_modules.csv.Csv
- JSON ve JSONL için datasets.packaged_modules.json.Json
- Parquet için datasets.packaged_modules.parquet.Parquet
- Arrow (akış dosya biçimi) için datasets.packaged_modules.arrow.Arrow
- SQL veritabanları için datasets.packaged_modules.sql.Sql
- TsFile (zaman serisi verileri) için datasets.packaged_modules.tsfile.TsFile
- Görsel klasörleri için datasets.packaged_modules.imagefolder.ImageFolder
- ses klasörleri için datasets.packaged_modules.audiofolder.AudioFolder
Bir veri setini nasıl paylaşacağınızı öğrenmek için Share bölümünü okuyun.
🤗 Datasets, veri seti dosyalarını orijinal URL'den indirir, veri setini oluşturur ve sürücünüzde bir Arrow tablosunda önbelleğe alır. Daha önce veri setini indirdiyseniz 🤗 Datasets, tekrar indirme zahmetinden kurtulmanız için onu önbellekten yeniden yükler.
Veri kümelerinin nasıl oluşturulduğuna dair yüksek düzeyde bir anlayışa sahip olduğunuz için, tüm bunların nasıl işlediğinin temel mekanizmalarına daha yakından bakalım.
Veri seti oluşturma
Bir veri setini ilk kez yüklediğinizde, 🤗 Datasets ham veri dosyasını alır ve satırlardan ve tipli sütunlardan oluşan bir tablo haline getirir. Bir veri setini oluşturmaktan sorumlu olan iki ana sınıf şunlardır: BuilderConfig ve DatasetBuilder.

BuilderConfig
BuilderConfig, DatasetBuilder'in yapılandırma sınıfıdır. BuilderConfig, bir veri setine ilişkin aşağıdaki temel öznitelikleri içerir:
| Öznitelik | Açıklama |
|---|---|
name | Veri setinin kısa adı. |
version | Veri seti sürüm tanımlayıcısı. |
data_dir | Veri dosyalarını içeren yerel bir klasörün yolunu saklar. |
data_files | Yerel veri dosyalarının yollarını saklar. |
description | Veri setinin açıklaması. |
Veri setinize sınıf etiketleri gibi ek öznitelikler eklemek istiyorsanız, temel BuilderConfig sınıfından türetme yapabilirsiniz. Bir BuilderConfig sınıfının veya türetilmiş sınıfının özniteliklerini doldurmanın iki yolu vardır:
Veri kümelerinde
DatasetBuilder.BUILDER_CONFIGS()özniteliğinde, önceden tanımlanmış BuilderConfig sınıfı (veya alt sınıfı) örneklerinin bir listesini sağlayın.load_dataset() çağrıldığında, yönteme özgü olmayan tüm anahtar kelime argümanları, BuilderConfig sınıfının ilgili özniteliklerini ayarlamak için kullanılır. Bu, belirli bir yapılandırma seçildiyse önceden tanımlanmış öznitelikleri geçersiz kılar.
Ayrıca DatasetBuilder.BUILDER_CONFIG_CLASS değerini BuilderConfig'in herhangi bir özel alt sınıfına ayarlayabilirsiniz.
DatasetBuilder
DatasetBuilder, gerçek veri setini oluşturmak için BuilderConfig içindeki tüm özniteliklere erişir.

DatasetBuilder içinde üç ana yöntem bulunur:
DatasetBuilder._info(), veri seti özniteliklerini tanımlamaktan sorumludur.dataset.infoçağrıldığında, 🤗 Datasets burada saklanan bilgileri döndürür. Benzer şekilde, Features da burada belirtilir. Hatırlatmak gerekir ki Features, veri setinin iskeleti gibidir. Her sütunun adını ve türünü sağlar.DatasetBuilder._split_generator, istenen veri dosyalarını indirir veya alır, bunları bölümlere (splits) ayırır ve üretim süreci için belirli argümanları tanımlar. Bu yöntem, dosyaları indirir veya yerel dosya sisteminizden alır bir DownloadManager içerir. DownloadManager içinde, orijinal veri dosyalarına giden URL'lerin sözlüğünü kabul eden ve istenen dosyaları indiren bir DownloadManager.download_and_extract() yöntemi bulunur. Kabul edilen girdiler şunları içerir: tek bir URL veya yol, ya da URL'lerin veya yolların bir listesi/sözlüğü. TAR, GZIP ve ZIP arşivleri gibi sıkıştırılmış dosya türleri otomatik olarak çıkarılır.Dosyalar indirildikten sonra SplitGenerator onları bölümlere ayırır. SplitGenerator, bölümün adını ve
DatasetBuilder._generate_examplesyöntemine sağlanan tüm anahtar kelime argümanlarını içerir. Anahtar kelime argümanları her bölüm için özel olabilir ve genellikle her bölümün veri dosyalarına yerel yolu en azından içerir.DatasetBuilder._generate_examples, bir bölme için veri dosyalarını okur ve ayrıştırır. ArdındanDatasetBuilder._info()içindekifeaturestarafından belirtilen formata göre veri seti örneklerini üretir.DatasetBuilder._generate_examplesgirdisi, aslında son yöntemin anahtar kelime argümanlarında sağlananfilepath'tir.Veri seti, tüm veriyi belleğe yüklemeyen bir Python üreteciyle oluşturulur. Bu sayede üreteç, büyük veri setleriyle başa çıkabilir. Ancak, üretilen örnekler disktaki veri seti dosyasına yazılmadan önce
ArrowWritertamponunda saklanır. Bu, üretilen örneklerin parti (batch) bazında yazıldığı anlamına gelir. Veri seti örnekleriniz çok fazla bellek kullanıyorsa (görseller veya videolar), DatasetBuilder içindekiDEFAULT_WRITER_BATCH_SIZEözniteliği için düşük bir değer belirtmekten emin olun. 200 MB boyutunu aşmamanızı öneririz.
Bütünlüğün korunması
Bir veri setinin eksiksiz olduğundan emin olmak için load_dataset(), her şeyin yerinde olduğundan emin olmak amacıyla indirilen dosyalar üzerinde bir dizi test gerçekleştirir. Bu sayede, istediğiniz veri seti beklenildiği gibi oluşturulmadığında herhangi bir sürprizle karşılaşmazsınız. load_dataset() aşağıdakileri doğrular:
- Oluşturulan
DatasetDictiçindeki bölme sayısı. - Oluşturulan
DatasetDict'in her bölümündeki örnek sayısı. - İndirilen dosyaların listesi.
- İndirilen dosyaların SHA256 kontrol toplamları (varsayılan olarak devre dışıdır).
Veri seti doğrulamalardan geçemezse, büyük olasılıkla veri seti yazarı veri dosyalarında bazı değişiklikler yapmıştır.
Bu durumda, veri setinin değiştiğine dair bir hata yükseltilir.
Hatanın yok sayılması için load_dataset() içinde verification_mode="no_checks" belirtmek gerekir.
Bir doğrulama hatası gördüğünüzde, ilgili veri setinin “Community” sekmesinde bir tartışma veya pull request açmaktan çekinmeyin; böylece o veri seti için bütünlük denetimleri güncellenir.
Güvenlik
Hub'daki veri seti depoları kötü amaçlı yazılım açısından taranır, daha fazla bilgi için buraya bakın.
Update on GitHub