Giriş: Problemi Tanımlamak
Günümüz dijital dünyasında dezenformasyon ve sahte haberler (fake news) her zamankinden daha hızlı yayılıyor. Bu problemden yola çıkarak, metin tabanlı içeriklerin doğruluğunu analiz edebilecek bir makine öğrenmesi modeli geliştirmeye karar verdim. “CheckMate” adını verdiğim bu proje, sahte haberleri tespit etmek için sıfırdan inşa ettiğim bir derin öğrenme modelini ve bu modelin bir API olarak sunulmasını kapsıyor.
Projenin Amacı ve Kapsamı
CheckMate projesinin temel amacı, kullanıcılardan alınan bir metin girdisinin “gerçek” mi yoksa “sahte” mi olduğunu yüksek bir doğruluk oranıyla sınıflandırmaktır. Projenin ana hedefleri şunlardı:
- Güvenilir bir veri seti bulmak ve model eğitimi için hazırlamak.
- Hazır modeller yerine, metin sınıflandırma görevine özel bir modeli sıfırdan eğitmek.
- Eğitilen modeli, herkesin erişebileceği bir REST API servisine dönüştürmek.
- Bu servisi, Docker ve Hugging Face kullanarak ölçeklenebilir ve taşınabilir bir yapıda deploy etmek.
Teknik Detaylar: Modelin Geliştirilmesi
Veri Seti ve Ön İşleme
Modelin eğitimi için Kaggle Fake and Real News Dataset kullandım. Veri setindeki metinlere tokenization, stop-words temizliği ve noktalama işaretlerinin kaldırılması gibi ön işleme adımları uygulandı.
Modelin Sıfırdan Eğitilmesi
Projede scikit-learn Random Forest mimarisi kullanıldı. Eğitim ve veri işleme adımlarında scikit-learn, pandas ve NumPy kütüphanelerinden yararlanıldı. Eğitim sonucunda test verisi üzerinde yüksek doğruluk elde edildi.
REST API Oluşturma
Eğitilen model, FastAPI kullanılarak bir REST API haline getirildi. Bu API, metin girdisi alıp JSON formatında bir tahmin sonucu döndürmektedir.
Deployment (Dağıtım)
Uygulamanın tüm bağımlılıkları bir Docker container içinde toplandı. Oluşturulan bu Docker imajı, Hugging Face Spaces platformuna deploy edilerek proje canlıya alındı.
Karşılaşılan Zorluklar ve Öğrenimler
Bu proje sayesinde sıfırdan bir derin öğrenme modelini eğitmenin inceliklerini, API geliştirmenin temellerini ve bir modeli Docker ile konteynerleştirip bulut platformlarda (Hugging Face) nasıl yayınlayacağımı uygulamalı olarak öğrendim.