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.
- Tek dosya:
deneme_model.pyveri ü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.Transformerbileş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
Adamoptimizer’ındaweight_decaykullanılarak aşırı uyum azaltılmaya çalışılır.
pip install torch scikit-learnKod Python 3.11 üzerinde test edilmiştir.
python deneme_model.pyÇalışma sırası:
- Cümleler tokenize edilir, sabit uzunlukta tensörlere dönüştürülür.
- %80 eğitim / %20 test split’i uygulanır.
- Model 100 epoch boyunca eğitilir, her epokta loss yazdırılır.
- Eğitim bitince train ve test doğrulukları raporlanır.
| 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.
- 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ı.
- Ön işleme:
proprocessfonksiyonu dönüş değerini kullanmadığı içinlower()ve noktalama temizliği tam uygulanmıyor; ayrıca stop-word, lemma vb. işlemler eksik. - Model mimarisi:
nn.Transformerencoder 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. - 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ı.
- Model yaşam döngüsü: Ağırlık kaydetme, inference script’i veya basit servis katmanı bulunmuyor.
- Hiperparametre yönetimi: Parametreler kod içine gömülü; CLI argümanları, YAML/JSON konfigürasyonu ve erken durdurma gibi kontroller eklenebilir.
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.