Skip to content

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

License

Notifications You must be signed in to change notification settings

mtkaya/advanced-dataset-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

title emoji colorFrom colorTo sdk sdk_version app_file pinned license tags
Advanced Dataset Tutorial - Hugging Face Datasets İleri Seviye
📚
blue
purple
gradio
4.44.0
space/app.py
false
mit
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

No packages published

Languages