← Radar

Konu: Yerel AI3 dk okuma

AnyJev: Elindeki açık modeli eğitmeden Jev gibi karar verdirmek

Bu neden önemli?

Verini dışarı göndermeden, ücretsiz bir karar modeli kurmanın yolu. Daha da önemlisi, dil modellerinin seçeneklerin sırasından neden etkilendiğini ve bir modelin "%99 eminim" demesinin neden her zaman bir şey ifade etmediğini çok somut gösteriyor.

Yazmak yerine karar vermek

Jev yazımızda anlattığımız gibi, karar modeli cevabı kelime kelime yazmaz. Ona bir durum ve net bir soru verirsin, o da her seçenek için bir olasılık döndürür. Jev kapalı bir servis, TypeSafe’in API’si üzerinden çalışıyor. Kev buna açık kaynak bir cevaptı ama bu iş için ayrıca eğitilmiş bir model ailesiydi. AnyJev başka bir yoldan gidiyor: Yeni model eğitmiyor, zaten elindeki açık modelin üstüne ince bir katman koyuyor.

Nasıl çalışıyor?

Nokia’nın uygulamalı araştırma ekibinin Apache 2.0 lisansıyla yayımladığı bu Python kütüphanesi, her seçeneğe bir harf veriyor: A hiciv, B gerçek haber gibi. Sonra modele bir şey yazdırmak yerine, sıradaki kelime parçası (token) olarak hangi harfi seçmeye ne kadar meyilli olduğuna bakıyor. Bu olasılıklar doğrudan cevap oluyor. Çıktıyı ayrıştırmak (parse) gerekmediği için “model saçma bir şey yazdı” diye bir hata da yok. Hugging Face Transformers, vLLM, SGLang ve llama.cpp ile çalışıyor, yani dizüstündeki bir GGUF modelle de kullanabilirsin.

İki gizli önyargı

Bu ham olasılıklarda iki tuzak var:

  • Konum önyargısı: Model bir cevabı sırf listede belli bir yerde durduğu için seçebiliyor. Seçeneklerin yerini değiştirince fikrini de değiştiriyor.
  • Etiket önyargısı: Soru ne olursa olsun, model bazı cevaplara baştan daha yakın duruyor.

AnyJev’in varsayılan seviyesi L0, ikisini de tek bir etiketli örnek olmadan düzeltiyor. Önce soruyu seçeneklerin sırasını kaydırarak birkaç kez soruyor, böylece her seçenek her konuma bir kez geliyor ve sonuçlar birleştiriliyor. Sonra modelin etiketlere olan eğilimini tahmin edip bölerek çıkarıyor. Bu eğilimi iki yoldan ölçebiliyor: Varsayılan batch prior, aynı anda karar verilen girdilerin toplamına bakıyor. Content-free prior ise içi boş deneme girdileriyle modelin neye kaydığını ölçüyor ve tek bir girdiye karar verirken işe yarıyor. Fikir yeni değil: Proje, dayandığı yöntemler olarak “Calibrate Before Use” (2021), Batch Calibration ve çoktan seçmeli sorulardaki konum önyargısını inceleyen çalışmaları gösteriyor.

Testte ne çıktı?

Better Stack, The Onion’ın hiciv başlıkları ile HuffPost’un gerçek başlıklarından oluşan bir Kaggle veri setinden yarısı hiciv, yarısı gerçek 500 başlık seçip üç modeli yarıştırdı. Videoya göre:

  • Jev %80 doğrulukla önde. Aynı dizüstünde çalışan ham Qwen3-8B %68,4, AnyJev L0 ile %68,6, content-free prior ile %66,6.
  • Seçeneklerin yeri değişince ham Qwen 500 başlığın 20’sinde fikrini değiştirdi. L0 hiçbirinde değiştirmedi.
  • Ham Qwen başlıkların yaklaşık %69’una “hiciv” dedi, oysa gerçek oran %50. Content-free prior bu kaymayı sildi ama yerine başka hatalar getirdi.

Küçük ek turlar da aynı dersi verdi. Kulağa şaka gibi gelen gerçek başlıklarda eğilimi düzeltmek AnyJev’e kazandırdı. Dengeli ve yeni başlıklarda ise düzeltme fazla gelip kaybettirdi. Yani eğilimi çıkarmak, verindeki gerçek dağılıma göre ya yardım ediyor ya zarar veriyor.

Kalibrasyon: “%80 eminim” ne demek?

İyi kalibre edilmiş bir model %80 emin olduğunu söylediğinde, bu tür cevapların yaklaşık %80’inde haklı çıkar. Better Stack’in testinde Jev buna yakındı (kalibrasyon hatası 0,07). Ham Qwen ise cevaplarının %87’sini %99’un üstünde bir güvenle verdi ve bunların yaklaşık %30’unda yanıldı. L0 bunu değiştirmedi, hata 0,3 civarında kaldı. Bu beklenen bir sonuç, çünkü belgeler de L0’ın önyargıyı temizlediğini ama güveni gerçek cevaplara göre ayarlamadığını söylüyor. Videoda bunun için etiketli veri isteyen üst seviyelerden söz ediliyor. Ancak 6 Ekim’de çıkan 0.3.0 sürümünde bu seviyeler kaldırıldı (0.2.0’da duruyorlar). Yerine Tacit adlı modeller geldi: Modelin düşünerek vardığı cevapları tek adımda vermeyi öğrenen, kendi kendinden damıtılmış küçük modeller.

Sonuç

AnyJev modeli daha akıllı yapmıyor, belgeleri de doğruluğun modelin bildikleriyle sınırlı olduğunu söylüyor. Yaptığı şey ölçümdeki çarpıklıkları temizlemek. Ücretsiz, yerel çalışıyor ve verin makinenden çıkmıyor. Ama üretime almadan önce kendi etiketli birkaç yüz örneğinle denemen şart. Testi kendin tekrarlamak istersen, videoda kullanılan Onion or Not uygulaması da açık kaynak.

Düşün

  • Bir modele “A mı, B mi?” diye sorarken seçeneklerin sırasını değiştirip hiç denedin mi?
  • Verinde cevapların yüzde kaçı hangi sınıfa düşüyor? Bunu bilmeden bir eğilimi “düzeltmek” neden riskli olabilir?

Videoyu izle

Tıklayınca video YouTube'dan yüklenir; o ana kadar bu sayfa YouTube'a hiçbir istek göndermez.
Kaynaklar (10, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.

Konu: Yerel AI3 dkVideo: Better Stack

10 dolarlık çipte konuşma tanıma: Whistle modeli ESP32-S3'e nasıl sığdı?

Cactus Compute'un 16,9 MB'lık konuşma tanıma modeli Whistle, internet bağlantısı olmayan 10 dolarlık bir mikrodenetleyicide çalıştırıldı. Düğmeye basıp 'ışığı mavi yak' diyorsun, kartın ışığı mavi yanıyor. Modeli sığdırmak için katman kırpmak, 8 bitlik matematik ve birkaç sinsi hata gerekti.