Problem
Bir dil modeli geliştirmek ile bu modeli web üzerinden kullanılabilir hâle getirmek farklı sorumluluklar içerir. Modelin eğitim ve değerlendirme adımlarının yanında, çıkarım isteklerini karşılayan servisin ve bu servise erişimin de ele alınması gerekir.
Amaç
Bu proje, Transformer tabanlı dil modeli geliştirmeyi bir web uygulamasının servis ve güvenlik katmanlarıyla birleştirir. Amaç, model üzerinde yapılan çalışmayı bir API ve JavaScript arayüzü üzerinden kullanılabilen bir uygulama akışıyla buluşturmaktır.
Temel özellikler
PyTorch ile geliştirilen Transformer modeli için eğitim ve değerlendirme adımları bulunur. Metinlerin tokenlara ayrılmasında Hugging Face Tokenizers ile BPE kullanılır. Modelin çıkarım işlevi FastAPI servisi üzerinden sunulur; JavaScript arayüzü bu servise erişen web katmanını oluşturur.
Kimlik doğrulamada JWT ve HttpOnly cookies kullanılır. İstek akışında rate limiting, input validation, CORS ve request logging ele alınır. Bu önlemler, model servisini çevreleyen uygulama katmanının parçalarıdır.
Teknik mimari
Mimari; metinlerin tokenlara dönüştürülmesi, modelin eğitimi ve değerlendirilmesi, çıkarım servisi ve web arayüzü olarak düşünülebilir. FastAPI, modelin işlevini HTTP istekleriyle buluşturur. Kimlik doğrulama ve istek kontrolleri bu servis akışına eşlik eder. Docker, uygulamanın container içinde çalıştırılması için kullanılır.
Geliştirme süreci
Çalışma, model geliştirme ile uygulama geliştirme sorumluluklarını aynı projede ele alır. Eğitim ve değerlendirmeden çıkarıma geçişin yanında, isteklerin nasıl karşılandığı ve web arayüzünün servisle nasıl iletişim kurduğu da kapsam içindedir. Böylece yalnızca model koduna değil, modelin bir uygulama içindeki kullanımına da odaklanılır.
