# Sorun Giderme

Bu kılavuz, bazı yaygın sorunlarla başa çıkmak için gerekli araçları ve bilgileri sunmayı amaçlar. Bu kılavuzda listelenen öneriler durumunuzu kapsamıyorsa, spesifik sorununuzla ilgili yardım bulabileceğiniz yerleri öğrenmek için [Yardım İsteme](#asking-for-help) bölümüne başvurun.

## `push_to_hub` ile veri setleri yüklerken yaşanan sorunlar

### Kimlik doğrulama sorunları

🤗 Hub üzerinde bir veri setini [Dataset.push_to_hub()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.push_to_hub) ve bir Hugging Face erişim anahtarı kullanarak paylaşırken kimlik doğrulama sorunları yaşıyorsanız:

* Kimlik doğrulama için kullandığınız Hugging Face jetonunun **write** iznine sahip bir jeton olduğundan emin olun.
* OSX'te, `hf auth login` komutunu kullanmadan önce anahtar zinciri erişimindeki tüm huggingface.co parolalarını temizlemenin ve `git config --global credential.helper osxkeychain` yapılandırmasını yeniden ayarlamasının faydalı olabileceğini unutmayın.

Alternatif olarak, kimlik doğrulama için SSH anahtarlarını kullanabilirsiniz - daha fazla bilgi için [🤗 Hub belgelerine](https://huggingface.co/docs/hub/security-git-ssh) göz atın.
 
### Büyük veri seti yüklemesinde bağlantı koptu 

Hub'a büyük veri setleri yüklerken, veri seti parçalarının (shard) sayısı yüksekse, kısa bir sürede Hub için çok fazla commit oluşturulabilir. Bu durum bir bağlantı hatasına yol açar. Bağlantı hatası, Hub'ın iç kullandığı AWS S3 kovasının döndürdüğü bir HTTP 500 hatasından da kaynaklanabilir. Her iki durumda da veri seti yüklemeye devam etmek için [Dataset.push_to_hub()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.push_to_hub) işlemini yeniden çalıştırabilirsiniz. Hub, zaten yüklenmiş parçaların SHA değerlerini kontrol ederek bunların yeniden yüklenmesini önler. Geçici hatalara karşı yükleme sürecini daha dayanıklı hale getirmek için çalışıyoruz, bu nedenle her zaman en güncel kütüphane sürümüne güncellemek iyi bir fikirdir.

### `Too Many Requests`

`push_to_hub()` ile büyük veri setlerinin yüklenmesi bir hataya yol açabilir:

```bash
HfHubHTTPError: 429 Client Error: Too Many Requests for url: ...
You have exceeded our hourly quotas for action: commit. We invite you to retry later.
```

Bu sorunla karşılaşırsanız, `datasets` kütüphanesini en son sürüme (veya en azından `2.15.0` sürümüne) yükseltmeniz gerekir.

## Özel verilerden veri kümeleri oluşturulurken karşılaşılan sorunlar

### Bir klasörden görüntü ve ses yükleme

Bir klasörden veri seti oluştururken en sık karşılaşılan sorunlardan biri, dosya yapısının beklenen biçimi takip etmemesi veya meta veri dosyasında bir sorun bulunmasıdır.

Gerekli klasör yapısı hakkında ayrıntılı bilgiyi ilgili dokümantasyon sayfalarında bulabilirsiniz:

* [AudioFolder](https://huggingface.co/docs/datasets/audio_dataset#audiofolder)
* [ImageFolder](https://huggingface.co/docs/datasets/image_dataset#imagefolder)

### Pickling sorunları 

#### `Dataset.from_generator` kullanırken pickling sorunları

Bir veri seti oluşturulurken, [IterableDataset.from_generator()](/docs/datasets/main/tr/package_reference/main_classes#datasets.IterableDataset.from_generator) ve [Dataset.from_generator()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.from_generator) bir "picklable" üreteç fonksiyonu bekler. Bu, veri setinin diskte önbelleğe alınabilmesi için fonksiyonun [`pickle`](https://docs.python.org/3/library/pickle.html) kullanılarak hash'lenmesi gerektiğinden zorunludur.

Üretici fonksiyonları genel olarak "picklable" olsa da üretici nesnelerinin öyle olmadığını unutmayın. Dolayısıyla bir üretici nesnesi kullanıyorsanız, aşağıdaki gibi bir `TypeError` ile karşılaşacaksınız:

```bash
TypeError: cannot pickle 'generator' object
```

Bu hata, örneğin bir DB bağlantısı gibi "picklable" olmayan bir global nesne kullanan bir üreteç (generator) fonksiyonu kullanıldığında da oluşabilir. Bu durumda, bu hatadan kaçınmak için söz konusu nesneyi doğrudan üreteç fonksiyonunun içinde başlatabilirsiniz.

#### `Dataset.map` ile ilgili pickling sorunları

Pickling hataları, çok işlemli [Dataset.map()](/docs/datasets/main/tr/package_reference/main_classes#datasets.Dataset.map) içinde de oluşabilir - nesneler, alt işlemlere aktarılacak şekilde pickled edilir. Dönüşümde kullanılan nesneler picklable değilse, `map` sonucunun önbelleğe alınması mümkün olmaz ve bu durum bir hatanın yükseltilmesine yol açar.

Bu sorunu çözmek için bazı yollar şunlardır:
* Pickle sorunlarına evrensel bir çözüm, `__getstate__` / `__setstate__` / `__reduce__` yöntemlerini uygulayarak nesnelerin (veya üretici sınıflarının) elle picklenebilir olduğundan emin olmaktır.
* Ayrıca `new_fingerprint` argümanıyla `map` içinde kendinize ait benzersiz bir hash de sağlayabilirsiniz.
* Önbellekleme, `datasets.disable_caching()` çağrılarak da devre dışı bırakılabilir; ancak bu istenmeyen bir durumdur - [önbelleğin önemi hakkında daha fazla bilgi edinin](cache)

## Yardım isteme

Yukarıdaki sorun giderme önerileri sorununuzun çözülmesine yardımcı olmadıysa, topluluğa ve ekibe ulaşarak yardım isteyin.

### Forumlar 

Hugging Face forumlarında yardım isteyin - sorunuzu [🤗Datasets kategorisine](https://discuss.huggingface.co/c/datasets/10) gönderin. Sorununuzun çözülme olasılığını en üst düzeye çıkarmak için, kurulumunuzla ilgili ilgili bağlamı ve yeniden üretilebilir kodu içeren açıklayıcı bir gönderi yazdığınızdan emin olun!

### Discord

[Discord](http://hf.co/join/discord)’da bir soru paylaşın ve ekibin ve topluluğun size yardım etmesine izin verin.

### 🤗 Hub'da Topluluk Tartışmaları

Hub'da özel bir veri seti oluştururken sorun yaşıyorsanız, veri setinizin Community sekmesinde bir tartışma açarak ve aşağıdaki mesajı göndererek Hugging Face ekibinden yardım isteyebilirsiniz:

```text
# Dataset rewiew request for <Dataset name>

## Description

<brief description of the dataset>

## Files to review

- file1
- file2
- ...

cc @lhoestq @albertvillanova
```

### GitHub Sorunları

Son olarak, kütüphanenin kendisiyle ilgili bir hata bulduğunuzu düşünüyorsanız, 🤗 Datasets [GitHub deposu](https://github.com/huggingface/datasets/issues)nda bir Issue oluşturun. Hatanın bağlamını dahil edin: hatayı yeniden oluşturmak için kod parçası, ortamınız ve verilerinizle ilgili ayrıntılar vb. Böylece neyin yanlış olduğunu ve nasıl düzeltebileceğimizi anlamamıza yardımcı olursunuz.

