# 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()](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.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.md` adlı bir veri seti kartı

[load_dataset()](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.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()](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DatasetBuilder) kullanır. 🤗 Datasets'te her veri dosyası biçimi için bir builder bulunur:

* metin için [datasets.packaged_modules.text.Text](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.text.Text)
* CSV ve TSV için [datasets.packaged_modules.csv.Csv](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.csv.Csv)
* JSON ve JSONL için [datasets.packaged_modules.json.Json](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.Json)
* Parquet için [datasets.packaged_modules.parquet.Parquet](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.parquet.Parquet)
* Arrow (akış dosya biçimi) için [datasets.packaged_modules.arrow.Arrow](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.arrow.Arrow)
* SQL veritabanları için [datasets.packaged_modules.sql.Sql](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.sql.Sql)
* TsFile (zaman serisi verileri) için [datasets.packaged_modules.tsfile.TsFile](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.tsfile.TsFile)
* Görsel klasörleri için [datasets.packaged_modules.imagefolder.ImageFolder](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.imagefolder.ImageFolder)
* ses klasörleri için [datasets.packaged_modules.audiofolder.AudioFolder](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.packaged_modules.audiofolder.AudioFolder)

> [!TIP]
> Bir veri setini nasıl paylaşacağınızı öğrenmek için [Share](./upload_dataset) 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. Veri setini daha önce 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ğumuza göre, tüm bunların nasıl işlediğinin inceliklerine 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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.BuilderConfig) ve [DatasetBuilder](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DatasetBuilder).

   

### BuilderConfig[[datasets-builderconfig]]

[BuilderConfig](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.BuilderConfig), [DatasetBuilder](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DatasetBuilder)'in yapılandırma sınıfıdır. [BuilderConfig](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.BuilderConfig) sınıfından türetme yapabilirsiniz. Bir [BuilderConfig](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.BuilderConfig) sınıfı (veya alt sınıfı) örneklerinin bir listesini sağlayın.

- [load_dataset()](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.load_dataset) çağrıldığında, yönteme özgü olmayan tüm anahtar kelime argümanları, [BuilderConfig](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.BuilderConfig) değerini [BuilderConfig](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.BuilderConfig)'in herhangi bir özel alt sınıfına ayarlayabilirsiniz.

### DatasetBuilder[[datasets-datasetbuilder]]

[DatasetBuilder](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DatasetBuilder), gerçek veri setini oluşturmak için [BuilderConfig](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.BuilderConfig) içindeki tüm özniteliklere erişir.

   

[DatasetBuilder](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DatasetBuilder) içinde üç ana yöntem bulunur:

1. `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](/docs/datasets/v5.2.0/tr/package_reference/main_classes#datasets.Features) da burada belirtilir. Hatırlatmak gerekir ki [Features](/docs/datasets/v5.2.0/tr/package_reference/main_classes#datasets.Features), veri setinin iskeleti gibidir. Her sütunun adını ve türünü sağlar.

2. `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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DownloadManager) içerir. [DownloadManager](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DownloadManager) içinde, orijinal veri dosyalarına giden URL'lerin sözlüğünü kabul eden ve istenen dosyaları indiren bir [DownloadManager.download_and_extract()](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.SplitGenerator) onları bölümlere ayırır. [SplitGenerator](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.SplitGenerator), bölümün adını ve `DatasetBuilder._generate_examples` yö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.

3. `DatasetBuilder._generate_examples`, bir bölme için veri dosyalarını okur ve ayrıştırır. Ardından `DatasetBuilder._info()` içindeki `features` tarafından belirtilen formata göre veri seti örneklerini üretir. `DatasetBuilder._generate_examples` girdisi, aslında son yöntemin anahtar kelime argümanlarında sağlanan `filepath`'tir.

   Veri seti, tüm veriyi belleğe yüklemeyen bir Python üreteciyle oluşturulur. Bu nedenle üreteç, büyük veri setleriyle başa çıkabilir. Ancak üretilen örnekler disktaki veri seti dosyasına yazılmadan önce `ArrowWriter` tamponunda 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](/docs/datasets/v5.2.0/tr/package_reference/builder_classes#datasets.DatasetBuilder) içindeki `DEFAULT_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()](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.load_dataset), her şeyin yerinde olduğundan emin olmak için 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()](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.load_dataset) şunları doğrular:

- Oluşturulan `DatasetDict` iç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çmezse, veri seti yazarının veri dosyalarında bazı değişiklikler yapmış olma olasılığı yüksektir.

Bu durumda, veri setinin değiştiğine dair bir hata yükseltilir. Hatanın yok sayılması için [load_dataset()](/docs/datasets/v5.2.0/tr/package_reference/loading_methods#datasets.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](https://huggingface.co/docs/hub/security#malware-scanning) bakın.

