Laya mı, Jev mi? Açık Kaynak Tipli Karar Modelini Kendi Sunucumuza Kurup Türkçede Test Ettik
Tipli karar modelleri iki haftada bir kategoriden bir yarışa dönüştü. Önce kapalı kaynak Jev çıktı, ardından Laya aynı işi Apache 2.0 lisansıyla ve açık ağırlıklarla yapacağını iddia ederek geldi. İnternette dolaşan karşılaştırmalar ise çoğunlukla tek bir grafikten ibaret: yerel modelin milisaniyeleri, bulut modelinin ağ gidiş-dönüşüyle yan yana konuyor.
Bu karşılaştırma bize bir şey söylemiyor. Yerelin ağdan hızlı olması zaten beklenen şey. Asıl merak ettiğimiz üç soru vardı: Türkçede işe yarıyor mu? Kendi sunucumuzda gerçekten çalışır mı? Ve hangi işte hangisi?
İkisini de kurduk, kendi etiketli verimizle ölçtük. Sonuçta beklemediğimiz bir şey bulduk: soru biçimini değiştirmek, aynı modelin aynı veri üzerindeki isabetini 8/20'den 20/20'ye çıkardı. Modelden çok bu bulgu önemli, çünkü aynı tuzak tipli karar kullanan herkesin başına gelebilir.
İki Model, Tek Cümlede Fark
İkisi de aynı şeyi yapar: metin üretmezler, sorduğunuz soruya tipli ve olasılıklı cevap dönerler. Üç soru tipi ortaktır — noul (evet/hayır olasılığı), choice (seçenek + güven), score (açıklamalı seviyeler arası puan).
| Laya | Jev | |
|---|---|---|
| Lisans | Apache 2.0 (kod + ağırlıklar) | Kapalı, API üzerinden |
| Boyut | 421M / 322M parametre | Açıklanmadı |
| Çalışma yeri | Kendi donanımınız | Sağlayıcının bulutu |
| Mimari | Kodlayıcı tabanlı, tek geçiş | Açıklanmadı |
| Dil | Çok dilli sürüm 100+ dil | İngilizce öncelikli (kendi dokümanı uyarıyor) |
Laya'nın üç ayrı kontrol noktası var: genel İngilizce, çok dilli ve tipli-kararlara özel eğitilmiş olan. Bu ayrım ilk tuzağı da beraberinde getiriyor — birazdan geleceğiz.
Kurulum: 16 Çekirdek, 1,2 GB, Sıfır Sürpriz
Laya'yı paylaşımlı bir web sunucusuna kurmanın mümkün olmadığını düşünüyorduk. Yanılmışız. Kurulum için yönetici yetkisi (root) gerekmiyor; Python sanal ortamı kullanıcı alanına kuruluyor.
Kendi sunucumuzdaki gerçek rakamlar:
| Kalem | Değer |
|---|---|
| Kurulum boyutu (CPU sürümü PyTorch dahil) | 1,2 GB |
| Model belleğe yüklenme süresi | 17 saniye (tek kontrol noktası) |
Üç kontrol noktası birden (preload=True) | 5,3 GB bellek |
| Kurulum sırasında site yanıt süresi | 0,49 sn (değişmedi) |
Dikkat edilecek nokta: deponun bahsettiği ~1 GB, tek kontrol noktası içindir. preload=True üçünü birden yükler ve bellekte 5,3 GB tutar. Sunucuda servis olarak çalıştıracaksanız yalnız kullanacağınız kontrol noktasını yükleyin.
CPU üzerinde ölçülen gecikmeler (GPU yok, 16 çekirdek):
| Kontrol noktası | Soru başına süre |
|---|---|
| Çok dilli (322M) | 52 ms |
| Tipli kararlar (421M) | 444 ms |
İlk Tuzak: Yönlendirici Görevi Değil, Dili Bakıyor
Laya'nın Router sınıfı "her isteği doğru kontrol noktasına gönderir" diye tanıtılıyor. İlk ölçümümüzü varsayılan ayarla çalıştırdık ve sonuçlar felaketti: 446 modellik bir sınıflandırma görevinde model, modellerin 399'una aynı etiketi verdi.
Sebep basit ve dokümantasyonda yazılı ama gözden kaçıyor: yönlendirici varsayılan olarak yalnız dile bakar, göreve değil (auto_task_detection varsayılan olarak kapalıdır). Yani İngilizce bir metin gönderdiğinizde, tipli-kararlara özel eğitilmiş kontrol noktası yerine genel İngilizce kontrol noktasına gider.
Doğrusu, kontrol noktasını açıkça söylemektir:
from laya import Router
router = Router(default="multilingual", max_loaded=1)
router.load("multilingual")
# Kontrol noktasini ACIKCA belirt
sonuc = router.predict(metin, sorular, model="multilingual")Bu, ölçüm yaparken kendi hatamızı fark ettiğimiz yerdi ve bir kez daha aynı dersi verdi: bir model kötü sonuç verdiğinde, önce onu doğru kullanıp kullanmadığınızı kontrol edin.
Asıl Bulgu: Soru Biçimi İsabeti 8/20'den 20/20'ye Çıkardı
Gerçek işimizle test ettik: destek taleplerinde "bu müşteri insan desteği mi istiyor?" sorusu. 20 Türkçe destek mesajı hazırladık, beşi açıkça insan talebi içeriyordu, on beşi içermiyordu. Etiketleri elle koyduk.
Aynı model, aynı 20 mesaj, yalnızca sorunun yazılış biçimi farklı:
| Soru biçimi | Doğru sonuç |
|---|---|
Türkçe talimat + criteria tanımlı | 8 / 20 |
Türkçe talimat, criteria yok | 14 / 20 |
İngilizce talimat, criteria yok | 20 / 20 |
Bu, ince bir iyileşme değil; kullanılamaz bir sonuçla kusursuz bir sonuç arasındaki fark. Üstelik son satırdaki 20/20 0,5 ile 0,9 arasındaki her eşikte geçerli, çünkü olasılıklar net ayrışıyor: insan talebi içeren beş mesaj 0,976–0,996 aralığında, diğer on beşi 0,000–0,166 aralığında.
İki pratik kural çıkıyor:
- Metniniz Türkçe olsa bile talimatı İngilizce yazın. Model çok dilli, ama talimatı İngilizce okuduğunda belirgin biçimde daha isabetli.
- İkili sorularda
criteriaalanını boş bırakın. Sezgiye aykırı ama ölçüm net: kriter yazmak doğruluğu düşürdü. Talimatın kendisi yeterince açıksa model onu kullanıyor; ek kriterler gürültü yaratıyor.
Başarısızlık kalıbı da öğreticiydi. Yanlış biçimde model, "Teşekkürler, sorun çözüldü" mesajına insan talebi olasılığı 0,88, saf bir teknik hata bildirimine 0,97 veriyordu. Doğru biçimde ikisi de 0,04'ün altına indi.
Laya ve Jev Yan Yana
Aynı 20 Türkçe mesaj, her iki modele de kendi en iyi biçimiyle soruldu:
| Ölçüm | Laya (çok dilli) | Jev |
|---|---|---|
İkili karar (noul) isabeti | 20 / 20 | 20 / 20 |
Kategori (choice) isabeti | 9 / 20 | 13 / 20 |
Memnuniyetsizlik puanı (score) sapması | 0,91 / 3 | 0,21 / 3 |
| Soru başına gecikme | 52 ms | 1.059 ms |
| Çalışma yeri | Kendi sunucumuz | Sağlayıcı bulutu |
Tablo açık bir hikâye anlatıyor: ikili kararda ikisi de kusursuz, ama Laya bunu 20 kat hızlı ve kendi donanımınızda yapıyor. Diğer iki soru tipinde ise Jev belirgin biçimde daha iyi.
Puan sorusundaki fark özellikle keskin. Laya, hangi mesaj olursa olsun puanı 1,06 ile 1,96 arasına sıkıştırdı: "Teşekkürler, sorun çözüldü" 1,29 aldı, "Bu ne rezalet!" 1,81. Aradaki 0,5'lik fark bir eşik koymaya yetmez. Jev aynı testte 0,21 sapmayla ölçtü; yani gerçekten ayırt ediyor.
Laya'nın Yapamadığı İş: Metinde Yazmayanı Bilmek
İkinci bir gerçek görevle de denedik: kataloğumuzdaki 446 modelin açıklamasına bakıp "bu model kurumsal bir katalogda listelenmeli mi?" sorusunu yanıtlamak. Elimizde elle hazırlanmış 15 modellik bir etiket seti vardı.
| Laya | Jev | |
|---|---|---|
| Etiketli 15 modelden yakalanan | ayrışma yok | 14 / 15 |
| 431 normal modelde yanlış alarm | — | 0 |
Laya bu görevde riskli grubu (ortalama 1,77) normal gruptan (ortalama 1,73) ayıramadı. Ama bunu Laya'nın kusuru saymıyoruz, çünkü görev haksız: bir modelin yetişkin içerik için konumlandırılıp konumlandırılmadığı çoğu zaman açıklama metninde yazmaz, yayıncının itibarında saklıdır. 421 milyon parametrelik bir kodlayıcıda o dünya bilgisi yok.
Doğru ayrım şu: Laya metnin kendisini sınıflandırır, Jev metnin dışındaki bilgiyle de karar verebilir. Niyet, duygu, kategori, aciliyet gibi işler birinci gruba; dünya bilgisi gerektiren yargılar ikinci gruba girer.
Maliyet: Ücretsiz Olmak Her Zaman Ucuz Değildir
Laya'yı çalıştırmanın token maliyeti yok — ama bedava da değil. Gerçek maliyet kalemleri şunlar:
- Bellek. Tek kontrol noktası için ~1,7 GB, üçü birden için 5,3 GB. Bu bellek sürekli ayrılmış durumda durur.
- Soğuk başlangıç. Model yüklenmesi 17 saniye. Yani isteği karşılayan bir süreçte modeli bellekte tutmanız, o süreci de canlı tutmanız gerekir.
- İşletme. Süreç ölürse uç 503 döner. Biz dakikada bir kontrol eden bir bekçi yazdık; testte süreci zorla öldürdüğümüzde 16,7 saniyede geri geldi.
Yani "açık kaynak = bedava" denklemi yalnız küçük hacimlerde doğru. Kararınız günde birkaç yüz taneyse bulut modeli daha ucuza gelir. Günde on binlerceyse yerel model belirgin biçimde öne geçer.
Kendi kataloğumuzdaki güncel satış fiyatları:
| Model | Girdi (1M token) | Çıktı | Desteklenen tipler |
|---|---|---|---|
convai/laya-multilingual | $0,042 | Ücretsiz | noul |
typesafe/jev | $0,063 | Ücretsiz | noul, choice, score |
Hangisini Ne Zaman Kullanmalı
Ölçümlerin sonunda kendi kullandığımız ayrım:
| İş | Seçim | Neden |
|---|---|---|
| Evet/hayır kapısı, yüksek hacim | Laya | 20/20 isabet, 52 ms, token maliyeti yok |
| Kullanıcıyı bekleten akışta karar | Laya | Ağ gidiş-dönüşü yok; en yavaş istek bile yarım saniyenin altında |
| Çok seçenekli sınıflandırma | Jev | Ölçümde 13/20'ye karşı 9/20 |
| Derece/şiddet ölçmek | Jev | Laya'nın puan başlığı ayrışmıyor |
| Metinde yazmayan bilgi gerektiren yargı | Jev | Küçük kodlayıcıda dünya bilgisi yok |
| Verinin sunucudan çıkmaması şart | Laya | İstek dışarı gitmez |
Pratikte ikisi birbirini dışlamıyor. Bizim kurduğumuz desen şu: ucuz ve hızlı ikili kapı önce çalışır, belirsiz kalan ya da derece gerektiren durumlar ikinci aşamaya gider.
Onysoft Üzerinde Kullanmak
Her iki model de katalogda ve aynı uçtan çalışıyor. Ayrı bir sağlayıcıyla sözleşme yapmanız veya sunucu kurmanız gerekmiyor:
curl https://api.onysoft.com/v1/decisions \
-H "Authorization: Bearer sk-ony-ANAHTARINIZ" \
-H "Content-Type: application/json" \
-d '{
"model": "convai/laya-multilingual",
"state": "Botla degil gercek bir yetkiliyle gorusmek istiyorum.",
"questions": {
"insan_istiyor": {
"type": "noul",
"instructions": "Does the user ask to talk to a human agent instead of the bot?"
}
}
}'Yanıt, ayrıştıracağınız bir metin değil, doğrudan kullanabileceğiniz bir sayıdır:
{
"success": true,
"data": {
"model": "convai/laya-multilingual",
"answers": {
"insan_istiyor": { "type": "noul", "noul": 0.9626, "confidence": 0.9626 }
},
"usage": { "input_tokens": 65, "output_tokens": 0 },
"latency_ms": 52
}
}Tek istekte 32 soruya kadar sorabilirsiniz; hepsi tek geçişte yanıtlanır. Yalnız girdi tokeni faturalanır. Ayrıntılı kullanım için tipli karar API dokümanına bakabilirsiniz.
Özet
İki modeli kendi verimizle ölçtüğümüzde tablo şöyle çıktı:
- İkili kararda ikisi de 20/20. Fark isabette değil; Laya bunu 20 kat hızlı ve kendi donanımınızda yapıyor.
- Seçenek ve puan sorularında Jev açık ara önde. Laya'nın puan başlığı bizim testimizde hiç ayrışmadı.
- En önemli bulgu modelle ilgili değil: Türkçe metinde talimatı İngilizce yazmak ve
criteriaalanını boş bırakmak, aynı modelin isabetini 8/20'den 20/20'ye çıkardı. - Kurulum sanıldığı kadar ağır değil (1,2 GB, root gerekmiyor) ama bellek sanıldığından ağır (üç kontrol noktası 5,3 GB).
- Küçük kodlayıcı, metinde yazmayanı bilemez. Dünya bilgisi gerektiren yargılarda büyük model şart.
Serinin diğer yazıları: tipli karar modelleri nedir ve tipli karar modeli mi, sohbet modeli mi.
Katalogdaki modelleri /models sayfasından inceleyebilir, denemek için ücretsiz hesap oluşturabilirsiniz.
Bu yazıyı paylaş
Denemeye hazır mısınız?
754+ AI modeline tek API ile erişin. TL bakiye yükleyin, kullandıkça ödeyin — abonelik yok.