Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 2.87 KB

File metadata and controls

45 lines (36 loc) · 2.87 KB

Basit Transformer Cümle Sınıflandırıcı

Bu depo, çok basit ve tamamen eğitim amaçlı bir PyTorch Transformer denemesini içerir. Amaç, elle oluşturulmuş küçük bir cümle veri seti üzerinde Encoder tabanlı bir modelin uçtan uca nasıl kurulacağını göstermek; gerçek ürün senaryosu hedeflenmemiştir.

Genel Bakış

  • Tek dosya: deneme_model.py veri üretimi, ön işleme, model tanımı, eğitim ve değerlendirmeyi aynı skripte toplar.
  • Veri: Kodlama temalı ~200 cümle ile seyahat temalı ~120 cümlenin manuel olarak etiketlenmiş hâli kullanılır; veri sentetiktir ve gerçek dünyayı temsil etmez.
  • Model: PyTorch nn.Transformer bileşeni encoder gibi çalışacak biçimde konfigüre edilir, ardından tam bağlantılı katman ve sigmoid çıkışla ikili sınıflandırma yapılır.
  • Düzenlileştirme: Dropout katmanları ile Adam optimizer’ında weight_decay kullanılarak aşırı uyum azaltılmaya çalışılır.

Kurulum

pip install torch scikit-learn

Kod Python 3.11 üzerinde test edilmiştir.

Çalıştırma

python deneme_model.py

Çalışma sırası:

  1. Cümleler tokenize edilir, sabit uzunlukta tensörlere dönüştürülür.
  2. %80 eğitim / %20 test split’i uygulanır.
  3. Model 100 epoch boyunca eğitilir, her epokta loss yazdırılır.
  4. Eğitim bitince train ve test doğrulukları raporlanır.

Son Ölçümler

Veri Seti Doğruluk
Eğitim 0.9858
Test 0.8750

Tek bir train/test bölünmesine dayalıdır; veri küçük olduğu için farklı çalıştırmalarda kayda değer dalgalanmalar beklenmelidir.

Eksikler ve Yol Haritası

  1. Veri hacmi: Sentetik veri çok kısıtlı; gerçek kullanım için yeni cümleler eklenmeli veya veri artırma (parafraz, kelime çıkarma/ekleme) yapılmalı.
  2. Ön işleme: proprocess fonksiyonu dönüş değerini kullanmadığı için lower() ve noktalama temizliği tam uygulanmıyor; ayrıca stop-word, lemma vb. işlemler eksik.
  3. Model mimarisi: nn.Transformer encoder gibi kullanılıyor fakat mask’ler ve padding dikkate alınmıyor. nn.TransformerEncoder, hazır dil modelleri veya daha hafif RNN/CNN mimarileri denenebilir.
  4. Değerlendirme: Sadece accuracy ölçülüyor. K-katlı doğrulama, F1/precision/recall ve karışıklık matrisi ile daha güvenilir raporlar hazırlanmalı.
  5. Model yaşam döngüsü: Ağırlık kaydetme, inference script’i veya basit servis katmanı bulunmuyor.
  6. Hiperparametre yönetimi: Parametreler kod içine gömülü; CLI argümanları, YAML/JSON konfigürasyonu ve erken durdurma gibi kontroller eklenebilir.

Durum

Repo “örnek/öğrenme projesi” statüsündedir; üretim ortamında kullanılması tavsiye edilmez. Katkıda bulunmak isterseniz README’deki yol haritası maddeleri iyi bir başlangıç noktasıdır.