Jev Büyük Ölçekli Chat Geçmişi Analizini Pratik Hale Getirebilir mi?
Jev yeni çıktı ve ben de bu yeni model sınıfının, generative LLM'lerle zaten yaptığımız şeyleri tekrar etmek yerine gerçekten yeni hangi workflow'ları mümkün hale getirebileceğini deniyorum.
Aklıma gelen ilk kullanım alanı chat history analizi oldu.
Ürünler zaman içinde çok büyük miktarda konuşma verisi biriktiriyor: customer-support chat'leri, assistant session'ları, sales konuşmaları, internal copilot kayıtları, community mesajları ve agent trace'leri. Bu dataya sormak istediğimiz sorular aslında basit: İnsanlar en çok hangi konuları konuşuyor? Hangi topic'ler büyüyor? Konuşmaların yüzde kaçı billing, onboarding, error, cancellation veya belirli product feature'larıyla ilgili? Topic distribution zaman içinde nasıl değişiyor?
Problem ölçek büyüdüğünde başlıyor.
Bugünkü general-purpose LLM'lerle büyük bir chat arşivini message-by-message analiz etmek teknik olarak mümkün; fakat hızla bir inference problemine dönüşüyor: çok sayıda call, yüksek token hacmi, generation latency ve maliyet. Jev'i ilginç yapan tam olarak burada farklı bir computation pattern için tasarlanmış olması: typed probabilistic decisions, parallel output ve high-throughput structured classification. TypeSafe şu anda 1 milyon input token için $0.042, output için ücretsiz fiyatlama ve System One call'ları için 70–500 ms end-to-end response time yayınlıyor; kendi workflow benchmark'larında ise test edilen workflow'larda 193.6× faster ve 444.6× cheaper seviyelerine kadar sonuç raporluyor.8
Dolayısıyla benim sorum yalnızca “Jev text classify edebiliyor mu?” değil.
Jev büyük bir chat history'yi, generative LLM'lerle ağırlaşan bir analizi pratik hale getirecek kadar hızlı ve ucuz biçimde structured topic data'ya çevirebilir mi?
Bu ilk deney hipotezi aynı anda üç boyutta test ediyor: speed, economics ve semantic quality.
Bu run'da 231 mesajlık dataset'in tamamı saniyeler içinde classify edildi. Semantic quality ölçülebiliyor çünkü her mesajın ground-truth topic'i var. Economics tarafındaki avantaj da Jev'in yalnızca input token'ı fiyatlaması ve her classification için pahalı bir generated-text output üretmemesinden geliyor.8
Geriye kalan kritik soru şu: bu hız ve maliyet avantajı, ortaya çıkan topic distribution'ı gerçekten kullanışlı kılacak kadar yüksek bir kaliteyle birlikte geliyor mu?
Neden BANKING77?
BANKING77, Casanueva ve arkadaşları tarafından 77 bankacılık intent'i ve toplam 13.083 etiketli query içeren zorlayıcı bir single-domain intent detection veri seti olarak yayınlandı.1
77 sınıf olması problemi ilginç hale getiriyor. Bir transfer pending, failed, declined veya cancelled olabilir; fee uygulanmış olabilir veya para karşı tarafa ulaşmamış olabilir. Card payment tarafında reversed, duplicated, declined, unrecognized veya wrong exchange rate gibi birbirine çok yakın kategoriler var.
Dolayısıyla görev basit keyword matching değil. Modelin birbirine komşu operasyonel anlamları ayırması gerekiyor.
Ayrıca BANKING77 kusursuz bir ground truth değil. Ying ve Thomas, training split içinde önemli miktarda potansiyel label noise raporladı ve şüpheli örneklerin kaldırılmasının classification performansını değiştirdiğini gösterdi.2 Bu da bizim 231 örneklik çalışmamızı “leaderboard sonucu” değil, kontrollü bir pilot olarak yorumlamamız için ek bir neden.
Bilerek minimal tuttuğumuz zero-shot setup
Prompt engineering'i minimumda tutmak istedim.
Setup:
- 77 intent
- intent başına 3 test örneği
- toplam 231 mesaj
- zero-shot classification
- fine-tuning yok
- few-shot demonstration yok
- retrieval yok
- intent label'larının sadece minimal, okunabilir açıklamaları var
Örneğin card_payment_not_recognised label'ı şu şekilde temsil edildi: “The user's intent is about card payment not recognised.”
Instruction da oldukça basitti: müşteri mesajını tam olarak bir intent'e sınıflandır ve en spesifik uygun intent'i seç.
Bu çalışma full BANKING77 benchmark'ını reproduce etmiyor. Full test split 3.080 örnek içeriyor; bizim 231 örneklik stratified sample'ımız bir pilot.
Sonuç: %79,65 accuracy, %77,83 Macro-F1
Jev 231 mesajın 184'ünü doğru sınıflandırdı.
| Metric | Sonuç |
|---|---|
| Accuracy | %79,65 |
| Macro-F1 | %77,83 |
| Doğru tahmin | 184 / 231 |
| Intent sınıfı | 77 |
Tek başına bu sonuç ilginç. Fakat daha önemli sinyal confidence dağılımında ortaya çıktı.
Confidence ikinci önemli sinyali veriyor
| Tahmin grubu | Adet | Ortalama confidence | Median confidence |
|---|---|---|---|
| Doğru | 184 | %92,03 | %99 |
| Yanlış | 47 | %74,36 | %73 |
Doğru tahminlerin ortalama confidence'ı yanlış tahminlerden yaklaşık 17,7 percentage point daha yüksekti.
Ancak burada dikkat edilmesi gereken şey şu: bu sonuç confidence'ın perfectly calibrated olduğunu kanıtlamıyor. Calibration daha katı bir kavramdır. Örneğin %90 confidence verilen tahminlerin uygun bir popülasyonda yaklaşık %90 oranında doğru olması beklenir. Neural network'lerin confidence değerlerinin sık sık miscalibrated olabildiğini biliyoruz.4
Bizim pilotun söylediği daha sınırlı ama önemli bir şey: confidence correctness ile anlamlı biçimde ilişkiliydi.
İkinci bulgu: confidence accuracy–coverage kontrolü sağlıyor
Tahminlerin tamamını kabul etmek yerine confidence threshold uyguladığımızda:
| Minimum confidence | Coverage | Accuracy | Kabul edilen örnek |
|---|---|---|---|
| 0,50 | %94,81 | %81,74 | 219 |
| 0,70 | %82,68 | %85,86 | 191 |
| 0,80 | %76,19 | %88,07 | 176 |
| 0,90 | %67,10 | %91,61 | 155 |
| 0,95 | %60,61 | %91,43 | 140 |
0,90 confidence threshold ile sistem 231 örneğin 155'ini kabul ediyor. Yani yaklaşık %67,1 coverage sağlıyor ve bu subset içindeki accuracy %91,61'e çıkıyor.
Bu selective classification literatüründeki temel trade-off ile birebir örtüşüyor: sistemin otomatik ele aldığı örneklerdeki riski azaltmak için ne kadar coverage'dan vazgeçmeye razıyız?3
0,95 threshold'un %91,43 ile 0,90'dan hafif düşük çıkması da önemli. Bu kadar küçük bir sample'da local non-monotonicity normal. Production threshold daha büyük bir held-out calibration set üzerinde belirlenmeli.4
Bu nasıl bir chat-history analytics pipeline'a dönüşüyor?
Buradaki en ilginç production pattern chatbot veya autonomous agent değil; conversational data üzerinde çalışan bir semantic map-reduce pipeline.
- Arşivi analysis unit'lerine böl: message, turn, session veya conversation window.
- Jev'den her unit'i predefined taxonomy içindeki bir topic'e atamasını iste.
- Bu typed decision'ları topic distribution, trend, cohort ve dashboard'lara aggregate et.
- Her mesajı zorla aggregate'e katmak yerine confidence ile belirsiz vakaları ayır.
- Yalnızca low-confidence veya stratejik olarak önemli vakaları daha güçlü generative LLM'e ya da human review'a gönder.
Speed ve cost tam burada kritik hale geliyor. Her message için görece pahalı bir generative completion gerekiyorsa archive büyüdükçe exhaustive analysis zorlaşıyor. Hızlı bir decision model economics'i değiştiriyor; pahalı model default path olmaktan çıkıp exception path haline geliyor.
Confidence bulgusu da bu architecture'ı daha kullanışlı yapıyor. Bu yaklaşım selective classification ile benzer: model belirsiz örneklerde abstain ederek kabul edilen subset'in güvenilirliğini artırabilir.3 Aynı zamanda zor vakaların başka bir uzmana devredildiği learning to defer yaklaşımıyla da bağlantılı.5
FrugalGPT ve RouteLLM gibi LLM cascading çalışmalarında da aynı ekonomik prensip var: ucuz computation'ın yeterli olduğu vakalarda onu kullan, daha pahalı modelleri gerçekten gerektiği yerlere ayır.67
Fakat chat-history analytics açısından primary goal daha basit: çok büyük, unstructured bir conversation archive'ını yeterince hızlı ve ucuz biçimde structured, measurable topic data'ya çevirip yalnızca sample değil, datanın tamamını analiz edebilmek.
Tek başına accuracy iki farklı sistemi gizliyor
Şu iki sistemi karşılaştıralım:
Sistem A: request'lerin %100'ünü %79,65 accuracy ile otomatik sınıflandır.
Sistem B: request'lerin yaklaşık %67'sini %91,61 accuracy ile otomatik sınıflandır, geri kalanını escalate et.
Underlying classifier aynı. Ama operasyonel risk profili tamamen farklı.
Low-risk use case'te System A kabul edilebilir olabilir. Banking, legal, healthcare veya security gibi alanlarda ise System B daha mantıklı olabilir; çünkü uncertainty görünmez bir hata olmaktan çıkıp explicit system state haline gelir.
Bu nedenle bir eval dashboard'da accuracy'nin yanında coverage, calibration ve deferral da olmalı.345
Bundan sonra neyi test ederdim?
1. Full 3.080-example test set.
231 örnek per-intent conclusion için küçük.
2. Gerçek calibration analizi.
Reliability diagram, Expected Calibration Error, Brier-style metrics ve class-conditional calibration ile confidence'ın numerik olarak güvenilir olup olmadığını ölçmek gerekir.4
3. Sadece confusion cluster'larını iyileştirmek.
77 class'ın tamamına uzun prompt yazmak yerine hangi intent çiftlerinin karıştığını bulup sadece o sınırları daha iyi tanımlamak.
4. Routing architecture A/B testi.
Jev-only, strong-LLM-only ve Jev → LLM cascade yapılarını accuracy, latency, token ve cost per successful task açısından karşılaştırmak.67
5. High-risk vakalarda human deferral.
Bu durumda ana metric artık model accuracy değil; sistem-level error ile insan workload'unun birlikte optimizasyonu olur.5
Sonuç
Bu pilotun ana sonucu “Jev %79,65 aldı” değil.
Asıl ilginç sinyal şu:
Bounded bir decision model, uncertainty'yi software architecture'ın parçası haline getirdiğimizde çok daha değerli hale gelebilir.
Bizim sample'da confidence threshold, overall %79,65 accuracy'ye sahip classifier'ı, vakaların yaklaşık üçte ikisini %91,61 accuracy ile ele alan selective bir sisteme dönüştürdü.
Bu henüz production threshold kanıtı değil. Bunun için daha büyük calibration dataset'i gerekiyor.
Ama bir sonraki experiment'i hak edecek kadar güçlü bir sinyal.
Pattern oldukça basit:
classify → confidence ölç → selective automation → uncertainty'yi escalate et.
Production AI'da bazen en önemli optimizasyon, hangi büyük modeli çağıracağımızı seçmek değil, büyük modeli ne zaman hiç çağırmamamız gerektiğini bilmektir.
Kaynaklar
- Casanueva, I., Temčinas, T., Gerz, D., Henderson, M., & Vulić, I. (2020). Efficient Intent Detection with Dual Sentence Encoders. NLP4ConvAI / ACL. BANKING77 veri setini 77 intent ve 13.083 etiketli örnekle tanıtır. Paper
- Ying, C., & Thomas, S. (2022). Label Errors in BANKING77. ACL Workshop on Insights from Negative Results in NLP. BANKING77 içindeki olası label hatalarını ve bunların sınıflandırma performansına etkisini inceler. Paper
- Geifman, Y., & El-Yaniv, R. (2017). Selective Classification for Deep Neural Networks. NeurIPS 2017. Modelin belirsiz örnekleri reddedebilmesi durumunda coverage ile prediction risk arasındaki ilişkiyi formüle eder. Paper
- Guo, C., Pleiss, G., Sun, Y., & Weinberger, K. Q. (2017). On Calibration of Modern Neural Networks. ICML 2017. Model confidence değerlerinin otomatik olarak gerçek doğruluk olasılığı şeklinde yorumlanamayacağını ve calibration problemini gösterir. Paper
- Mozannar, H., & Sontag, D. (2020). Consistent Estimators for Learning to Defer to an Expert. ICML 2020. Modelin bazı örneklerde karar vermek yerine downstream uzmana devretmesini inceler. Paper
- Chen, L., Zaharia, M., & Zou, J. (2023). FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance. Farklı LLM'leri cascade içinde kullanarak kalite/maliyet trade-off'unu optimize etmeyi inceler. Paper
- Ong, I. et al. (2024). RouteLLM: Learning to Route LLMs with Preference Data. Daha güçlü ve daha ucuz modeller arasında learned routing yaklaşımını inceler. Paper
- TypeSafe AI (2026). Introducing System One Models & Jev. Jev, typed probabilistic decisions, confidence ve RLCD yaklaşımını açıklayan resmi ürün/araştırma duyurusu. Peer-reviewed akademik paper değildir. Kaynak
- TypeSafe AI (2026). System One API documentation. Choice, Score, Noul ve Jev endpoint'lerinin resmi API dokümantasyonu. Akademik yayın değildir. Kaynak