9 Dolara Kendi Alternatifini Eğiten Gemini: GLiNER ile Verimli NER Mimarisi
İçindekiler
Mutfak bıçaklarına olan merakını Reddit üzerinden takip etmek isteyen bir geliştirici, üst düzey şef bıçakları hakkındaki tartışmalardan marka, model ve çelik türlerini ayıklamak amacıyla klasik bir Varlık İsmi Tanıma (NER) görevi yürütüyor. Başlangıçta her yorum için Gemini 3.1 Pro API çağrısı yaparak kusursuz sonuçlar alsa da ("white #2 Mazaki", "Fibrox" gibi varlıkları başarıyla yakalayarak), sürekli çalışan kazıyıcı nedeniyle API faturası paylaşımlarla doğru orantılı olarak büyüyor. Açık kaynaklı GLiNER modelini sıfır vuruşlu (zero-shot) çalıştırmak maliyeti sıfırlasa da doğruluğu Gemini'ye kıyasla yaklaşık 0.65 F1 seviyesine düşürüyor. Çözüm: Gemini'ye 4.290 yorumu bir kez etiketleterek aradaki başarı farkını kapatacak özel bir GLiNER modeli eğitmek.
Projenin Özeti
- Ne (What): Gemini 3.1 Pro'nun tek seferde etiketlediği Reddit yorumları üzerinde marka, model ve malzemeleri tanımak için GLiNER large v2.5 (459M) modeli fine-tune edildi.
- Neden (Why): Zero-shot GLiNER yaklaşık 0.65 F1 skoru verirken, Gemini yüksek başarım gösteriyor fakat kazıyıcı çalıştığı sürece her yeni yorum için fatura çıkarıyordu.
- Yaklaşım (Approach): Gemini'den ofset yerine doğrudan metin dizgileri istendi; ofsetler kod tarafında hesaplandı. Ürün içermeyen yorumlar negatif örnek olarak eklendi ve ikinci eğitimden önce 225 yorumluk doğrulama seti kilitlendi.
- Sorunlar (Problems): Yapılan on denemenin beşi kullanılabilir bir model üretemedi; üçü yapılandırma hatalarından, ikisi ise dikkat maskesi mantığıyla doldurulan
words_masktensöründen çöktü. - Sonuç (Result): Tesla T4 üzerinde 24 dakikalık eğitimle Gemini etiketlerine karşı 0.83 F1 skoruna ulaşıldı. Toplamda 9 dolarlık etiketleme, 2.50 dolarlık GPU masrafı ve günlerce hata ayıklama gerekti.
Plan ve Maliyet Analizi
Planlanan süreç üç temel adımdan oluşuyordu:
- Gemini'ye birkaç bin Reddit yorumunu bir kez etiketletip marka, model ve çelik türlerini işaretletmek.
- GLiNER'ı bu sentetik etiketlerle eğitmek.
- Eğitilen GLiNER'ı yerel makinede çalıştırıp Gemini API çağrılarını tamamen durdurmak.
Gemini, 4.290 yorumu 9 dolara (yorum başına $0.0021) etiketledi. Bu hesapla eğitilen model, yerel bir GPU kullanıldığında yaklaşık 4.291'inci yorumdan itibaren kendi maliyetini çıkarıyor. Model daha önce görmediği 225 yorum üzerinde test edildi. Ancak burada önemli bir kısıt bulunuyor: Etiketler elle doğrulanmadığı için model gerçeğe göre değil, Gemini'ye göre puanlandı. Gemini'nin yanıldığı yerlerde model bu hatayı kopyalarsa başarılı, gerçeğe uygun düzeltirse hatalı sayıldı.
Teknik Yaklaşım ve Pratik Çıkarımlar
Etiketleme süreci OpenRouter üzerinden 0 sıcaklıkla (temperature) 25 dakikada tamamlandı. Yazılım mimarisi açısından en kritik karar, LLM'den asla karakter ofseti istememekti. Büyük modeller karakter saymada zayıftır ve ofsetleri kaydırır; bu nedenle modelden tam alt metinler istenip ofsetler TypeScript ile hesaplandı. Ayrıca "VG-10" ve "CPM-154" gibi ürün adlarının tokenizer tarafından bölünmemesi için regex ile özel filtreleme uygulandı. Büyük dil modellerini veri etiketleyici olarak kullanıp küçük ve özelleşmiş modelleri yerel ortama taşımak, maliyeti düşürürken bağımsızlık sağlayan ideal bir optimizasyon yöntemidir.
Orijinal kaynağa buradan ulaşabilirsiniz.
Bu konuyu derinlemesine öğrenmek isterseniz: Golden Dataset Oluşturma modülüne göz atın.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →