trainlint: Machine Learning Kodundaki Sessiz Hataları Yakalayan Araç

Makine öğrenmesi kodunda en zor hataları bulmak olanlar değil; kodun çalışmasına rağmen sonuçları bozanlar. Bir geliştirici, veri ön işlemesinde öznitelik seçimini tüm veri seti üzerinde yaptığında, hiçbir uyarı almaz ama model eğitiminde veri sızıntısı meydana gelir. Tam da bu tür sorunları yakalamak için trainlint yazılmış.

Araç, Python AST (Abstract Syntax Tree) kullanarak kodu statik olarak analiz ediyor ve 14 farklı hata desenini arıyor. Örneğin, rastgele 5 bin öznitelik ve etiket üzerinde yapılan bir deney gösteriyor: öznitelik seçimini tüm veri seti üzerinde yapıp 5 katlamalı çapraz doğrulama uygulandığında %85 doğruluk elde ediliyor. Aynı işlem Pipeline içinde yapıldığında doğruluk %48'e düşüyor. Rastgele veriler üzerinde %50'den iyi sonuç olamayacağı için, bu %37'lik fark tamamen sızıntı.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

trainlint'in bulduğu hatalar arasında şunlar var: eğitim sırasında eval() aktif bırakılması, no_grad kullanılırken eval() çağrılmaması, softmax'in CrossEntropyLoss öncesinde uygulanması, zero_grad'ın backward ve step arasına yerleştirilmesi, loss'un tensor olarak tutulması, y_true ve y_pred'in yer değiştirmesi, eğitim veri yükleyicisinin karıştırılmaması, veri bölünmeden önce veri seti istatistikleriyle yeniden ölçeklendirme ve daha pek çoğu.

Araç özellikle PyTorch ve scikit-learn kullanan projeler için tasarlanmış. Statik kontrol sayesinde çalışma zamanında sorun yaşamadan hataları önceden tespit edebilirsin.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz