Skip to content

mtkaya/advanced-dataset-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

title Advanced Dataset Tutorial - Hugging Face Datasets İleri Seviye
emoji
colorFrom blue
colorTo purple
sdk gradio
sdk_version 4.44.0
app_file space/app.py
pinned false
license mit
tags
datasets
tutorial
nlp
machine-learning
data-processing
Turkish

Advanced Dataset Tutorial - Hugging Face Datasets İleri Seviye

Hugging Face Datasets kütüphanesi ile ileri seviye veri işleme teknikleri için kapsamlı Türkçe eğitim materyali.

Proje Hakkında

Bu proje, Hugging Face Datasets kütüphanesini profesyonel düzeyde kullanmak isteyenler için hazırlanmış kapsamlı bir eğitim serisidir. 4 ana modül ve 20+ pratik örnek içerir.

Modüller

1⃣ Büyük Ölçekli Datasets

  • Streaming ile büyük veri işleme (750GB+ datasets)
  • Memory-efficient preprocessing
  • Batch processing optimizasyonu (2.3x hızlandırma)
  • Multi-process parallelization (64x hızlandırma)
  • Cache yönetimi (12.1x hızlandırma)
  • Dataset sharding ve distributed training

Performans Kazanımları:

  • Batch processing: 2.3x daha hızlı
  • Cache kullanımı: 12.1x daha hızlı
  • Multi-processing: 64x daha hızlı
  • Generator pattern: Minimal RAM kullanımı

2⃣ Domain-Specific Datasets

  • Bilimsel makaleler (arXiv, PubMed style)
  • Kod datasets (6 programlama dili)
  • Finansal analiz (sentiment + market data)
  • Tıbbi/sağlık (PHI anonymization)
  • Cross-domain integration (3 çözüm yöntemi)

Üretilen Datasets:

  • 2,000 bilimsel makale
  • 2,000 kod örneği
  • 2,000 finansal kayıt
  • 2,000 tıbbi kayıt

3⃣ İleri Teknikler

  • Custom Data Collators (3 farklı tip)
  • Advanced Feature Extraction (10+ feature)
  • Preprocessing Pipelines (modular & reusable)
  • Data Augmentation (3x veri artışı)
  • Stratified Sampling (balanced splits)
  • Dynamic Batching (40% padding azalması)
  • Active Learning integration

Teknikler:

  • Simple, Padding, Advanced Collators
  • Feature Engineering Pipeline
  • Smart Data Augmentation
  • Diversity & Uncertainty Sampling

4⃣ Özel Görevler İçin Datasets

  • Question Answering (SQuAD-style)
  • Summarization (CNN/DailyMail)
  • Named Entity Recognition (BIO tagging)
  • Sentiment Analysis (aspect-based)
  • Text Classification (multi-class)
  • Multi-Task Learning

Task-Specific Datasets:

  • 200 QA pairs + 100 multiple choice
  • 100 summarization pairs
  • 100 NER annotated sentences
  • 300 sentiment reviews
  • 200 topic classification

Hızlı Başlangıç

Online Demo (Gradio)

# Space'i çalıştır
python space/app.py

Manuel Kullanım

from datasets import load_dataset

# Örnek: Büyük dataset streaming
dataset = load_dataset("tugrulkaya/advanced-dataset-tutorial")

Kurulum

# Gerekli kütüphaneler
pip install datasets transformers numpy pandas

# Opsiyonel
pip install gradio  # İnteraktif demo için

Proje Yapısı

advanced-dataset-tutorial/
├── 📊 datasets/                    # Örnek dataset'ler
│   ├── large_scale_example/       # Büyük ölçekli örnekler
│   ├── domain_specific_example/   # Domain-specific örnekler
│   ├── advanced_techniques_example/ # İleri teknik örnekleri
│   └── task_specific_example/     # Task-specific örnekler
│
├── 🌐 space/                       # Gradio Space
│   ├── app.py                     # Ana uygulama
│   ├── modules/                   # Tüm modül scriptleri
│   │   ├── 01_buyuk_olcekli_datasets_complete.py
│   │   ├── 02_domain_specific_datasets.py
│   │   ├── 02b_cross_domain_fix.py
│   │   ├── 03_ileri_teknikler_part1.py
│   │   ├── 03_ileri_teknikler_part2.py
│   │   └── 04_ozel_gorevler.py
│   └── README.md
│
└── README.md                       # Bu dosya

Öğrenme Yolu

Başlangıç Seviyesi

  1. Bölüm 1: Büyük Ölçekli Datasets
  • Streaming basics
  • Batch processing
  • Memory management

Orta Seviye

  1. Bölüm 2: Domain-Specific Datasets
  • Scientific data
  • Code datasets
  • Cross-domain integration

İleri Seviye

  1. Bölüm 3: İleri Teknikler
  • Custom collators
  • Pipeline patterns
  • Advanced sampling

Uzman Seviye

  1. Bölüm 4: Özel Görevler
  • Task-specific preprocessing
  • Quality metrics
  • Multi-task learning

Performans Metrikleri

Teknik Performans Artışı Kullanım Senaryosu
Batch Processing 2.3x daha hızlı Tüm preprocessing
Cache Kullanımı 12.1x daha hızlı Tekrarlanan işlemler
Multi-Processing 64x daha hızlı CPU-intensive tasks
Dynamic Batching 40% padding azalması Training efficiency
Data Augmentation 3x veri artışı Class imbalance

Best Practices

Memory Efficiency

# ✅ DOĞRU: Streaming ile büyük veri
dataset = load_dataset("huge_dataset", streaming=True)

# ❌ YANLIŞ: Tüm veriyi RAM'e yükleme
dataset = load_dataset("huge_dataset")  # 100GB RAM!

Batch Processing

# ✅ DOĞRU: Batched operations
dataset.map(process_fn, batched=True, batch_size=1000)

# ❌ YANLIŞ: Tek tek işleme
dataset.map(process_fn, batched=False)  # 10x-100x yavaş!

Cross-Domain Integration

# ✅ DOĞRU: Ortak schema'ya normalize et
def normalize(example, domain):
    return {
        'text': example.get('text') or example.get('content'),
        'domain': domain,
        'metadata': json.dumps(example.get('meta', {}))
    }

# ❌ YANLIŞ: Farklı schema'ları direkt birleştirme
combined = concatenate_datasets([ds1, ds2])  # ArrowTypeError!

Kullanım Örnekleri

1. Büyük Dataset İşleme

from datasets import load_dataset

# Streaming mode
dataset = load_dataset("c4", "en", split="train", streaming=True)

# İlk 1000 örneği işle
for i, example in enumerate(dataset.take(1000)):
    process(example)

2. Custom Collator

class CustomCollator:
    def __call__(self, batch):
        texts = [ex['text'] for ex in batch]
        labels = [ex['label'] for ex in batch]
        return {'texts': texts, 'labels': labels}

# DataLoader ile kullan
collator = CustomCollator()
dataloader = DataLoader(dataset, collate_fn=collator)

3. Data Augmentation

def augment(example):
    # Word deletion
    words = example['text'].split()
    augmented = ' '.join(random.sample(words, k=len(words)-2))
    return {'text': augmented, 'label': example['label']}

augmented_dataset = dataset.map(augment)

İstatistikler

  • Toplam Kod Satırı: 5,000+
  • Örnek Sayısı: 20,000+
  • Teknik Sayısı: 50+
  • Best Practices: 100+

Katkıda Bulunma

Bu proje açık kaynaklıdır ve katkılara açıktır!

  1. Fork edin
  2. Feature branch oluşturun (git checkout -b feature/amazing)
  3. Commit edin (git commit -m 'Add amazing feature')
  4. Push edin (git push origin feature/amazing)
  5. Pull Request açın

Lisans

MIT License - detaylar için LICENSE dosyasına bakın.

‍ Yazar

Bu eğitim materyali, Hugging Face Datasets kullanıcıları için pratik ve uygulanabilir bilgi sağlamak amacıyla hazırlanmıştır.

Teşekkürler

  • Hugging Face ekibine harika datasets kütüphanesi için
  • Açık kaynak topluluğuna sürekli katkıları için

Kaynaklar

Bağlantılar


⭐ Beğendiyseniz yıldız vermeyi unutmayın!

** Güncellemeler için takip edin!**

** Sorularınız için Discussion açın!**

About

Hugging Face Datasets - İleri Seviye Türkçe Eğitim Materyali

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages