Modelin Cevabını Uygulamada Kullanmak — Doğrulamadan Kaydetme
Önce şunu oku: Dil Modeli Nasıl Cevap Üretir — Neden Var Olmayan Bir Metot Uydurur?
30 saniyede özet
Uygulaman bir dil modelinden JSON istediğinde, cevap çoğu zaman düzgün gelir ama her zaman değil. Cevabı dışarıdan gelen bir girdi gibi ayrıştır, izinli listeyle doğrula, bir kez hatayla tekrar sor; anlamı ise örneklerle ölç.
Hızlı ve hevesli yeni bir çalışma arkadaşın formları dolduruyor ve çoğu kusursuz. Ama arada bir, formda olmayan bir kutuyu işaretliyor ya da formun üstüne bir selam notu düşüyor.
-
Bayt: Harcamaları modele sınıflandırttık: her biri için JSON dönüyor. Gece toplu işi başladı!
-
Sen: Sabah baktım, iş beşinci harcamada durmuş. Bir de 'TRANSPORT' diye bir kategorimiz olmuş.
-
Bayt: Model cevabın başına 'Tabii! İşte cevap:' yazmış. JSON okuyucu patladı...
-
Bayt: Kullanıcıdan gelen formu kontrol ediyoruz. Modelden gelen cevap neden farklı olsun?
Cevap bir girdidir
Dil modeli cevabı her seferinde yeniden üretir; istediğin biçime uyması büyük ihtimaldir ama garanti değildir. Bazen JSON’u bir cümleyle sarar, bazen listede olmayan bir değer uydurur.
Bu uydurma bir hallucinationBir dil modelinin var olmayan bir API'yi, parametreyi ya da kaynağı kendinden emin bir dille üretmesi. Çıktı akıcı olduğu için fark etmek zordur.Sözlükte gör → örneğidir. Kodun cevaba körü körüne güvenirse ya hata fırlatıp durur ya da uydurmayı sessizce kaydeder.
Kafam karıştı, daha basit anlat
Modelin cevabı, bir formdan gelen kullanıcı girdisi gibidir: kontrol etmeden kullanılmaz.
Uygulama modelden JSON istedi. Cevabın her zaman geçerli JSON olacağına güvenebilir miyiz?
Korumasız bir toplu işte bir cevap JSON.parse'ı patlattı. Ne olur?
Ayrıştır, doğrula, bir kez daha sor
Her cevabı try/catch içinde ayrıştırıyoruz; bozuk olanı atlıyoruz. Model 'EGLENCE' diye listede olmayan bir kategori döndürdü. Ne olur? Cevabı göster
Veritabanına kaydedilir. Ayrıştırma yalnızca biçime bakar: “EGLENCE” geçerli bir JSON değeridir. Değerin izinli listede olduğunu ayrıca kontrol etmek gerekir.
Adım adım oku
- Hızlı bir memur formları dolduruyor.
- Biri listede olmayan bir kutuyu işaretlemiş.
- Kapıdaki kontrol, notla bir kez geri verir.
- Arşive yalnızca kontrolden geçen girer.
yapısal çıktıModelden serbest metin yerine belirli alanları olan bir cevap, genelde JSON istemek. Biçimi kolaylaştırır ama doğrulamanın yerini tutmaz.Sözlükte gör → istemek ilk adımdır: modelden belirli alanları olan bir JSON beklersin. Sonra cevabı bir Java tipine çevirirsin; kategori bir enum ise, listede olmayan değer çevirme sırasında reddedilir.
Geçmeyen cevabı hata mesajıyla birlikte modele bir kez daha gönder. İkinci deneme de geçmezse harcama, toplu işi durdurmadan bir insan kontrolü kuyruğuna gider.
Kafam karıştı, daha basit anlat
Önce biçime, sonra değerin izinli listede olduğuna bak. Geçmezse bir kez düzelttir, yine olmazsa insana bırak.
Cevabı try/catch ile ayrıştırıyoruz. Model listede olmayan 'EGLENCE' kategorisini döndürdü. Ne olur?
Java'da kategori alanı bir enum ise, Jackson listede olmayan bir değerle ne yapar?
Kendin gör
Model harcamaları sınıflandırıyor
Tohum 65826- Migros 245,90 TL
- İSKİ su faturası
- Ekim kirası
- İstanbulkart dolum
- Shell akaryakıt
- Netflix abonelik
- Enerjisa elektrik
- A101 alışveriş
- Kira sertifikası fonu
✓ 0 doğru · ✕ 0 hatalı kayıt · 👤 0 kontrolde
Şu an ne oldu?
Cevaba güven (koruma yok)
9 harcama, beş kategori. Model her biri için JSON döndürüyor.
Görevler0/3
Tek bir cevap bütün toplu işi durdursunaçık
İpucu
Varsayılan ayar yeter.
Listede olmayan hiçbir kategori kaydedilmesinaçık
İpucu
Değeri izinli listeyle karşılaştır.
İnsan kontrolü kuyruğu boş kalsın, uydurma kategori de olmasınaçık
İpucu
Hatayı modele geri gönder.
Olay günlüğü (0)
Henüz olay yok. Oynat veya adımla.
- Varsayılanla oynat. “TRANSPORT” kaydedildi, sonra cümleyle sarılmış cevap hata fırlattı ve dört harcama hiç işlenmedi.
- “Ayrıştır, bozuk olanı atla” seç. İş durmadı, ama iki uydurma kategori kaydedildi ve bir harcama kayboldu.
- “Ayrıştır + listeyle doğrula” seç. Uydurma yok; üç harcama insan kontrolünü bekliyor.
- “Doğrula + hatayla bir kez daha sor” seç. Kuyruk boş. Ama “Kira sertifikası fonu” hâlâ KIRA: bu geçerli bir kategori, yalnızca yanlış.
Doğrulamadan geçemeyen bir cevap için en makul ilk adım nedir?
İkinci deneme de doğrulamadan geçemedi. Ne yapılmalı?
Tuzaklar
Doğrulamayı doğruluk sanmak. Geçerli ama yanlış cevabı hiçbir şema yakalamaz. Doğru etiketlenmiş örneklerden bir değerlendirme setiDoğru cevabı bilinen örneklerden oluşan bir set. İstem ya da model her değiştiğinde modeli bu setten geçirip ne kadar doğru cevap verdiğini ölçersin.Sözlükte gör → tut ve istem ya da model her değiştiğinde ölç.
Sonsuz tekrar. “Doğru cevap gelene kadar sor” döngüsü hem para yakar hem de takılı kalabilir. Bir deneme yeter, sonrası insana.
Cevabı doğrudan eyleme çevirmek. Model “bu harcamayı iade et” derse bile, para hareketini kodundaki kurallar ve gerekirse bir insan onaylar.
Kafam karıştı, daha basit anlat
Anlamı örneklerle ölç, tekrarı sınırla, önemli işlemleri modelin cevabına bırakma.
Model bir müşteri mesajını okuyup 'bu harcamayı iade et' dedi. Kod ne yapmalı?
Derinleş · Harcama sınıflandırma: modelin cevabını doğrulamak 4 dosya · ~84 satır · ilk okumada atlayabilirsin
Kendini sına
Modelden JSON istediysen cevap her zaman geçerli bir JSON olur.
'Kira sertifikası fonu' KIRA olarak sınıflandırıldı. Bu hatayı ne yakalar?
Aklında kalacak üç şey
- 1 Modelin cevabı dışarıdan gelen bir girdidir. Bir cümleyle sarılmış JSON ya da listede olmayan bir kategori, korumasız kodu ya durdurur ya da veritabanına sessizce girer.
- 2 Ayrıştırmak biçimi, izinli listeyle doğrulamak değeri kontrol eder. Geçmeyen cevap hata mesajıyla bir kez daha sorulur, yine geçmezse bir insana gider.
- 3 Doğrulama şekli yakalar, anlamı değil. Geçerli ama yanlış cevapları etiketli örneklerden oluşan bir değerlendirme seti ölçer.
4 kart sonraki derste seni bekliyor
Bu dersin üstüne kurulanlar
Bunlar bu dersi temel alıyor; hazır olduğunda devam edebilirsin.
- Yapay Zekâ ile Geliştirmeİstemi Ölçmek — Yeni Sürüm Gerçekten Daha mı İyi?Yeni istem toplam puanı 8'den 10'a çıkardı. Yine de yayına çıkmamalı. Neden?Derse git
- Yapay Zekâ ile GeliştirmeCevabı Akıtmak — Asistan Yazarken Müşteri Neden Boş Ekrana Bakıyor?Asistan uzun bir cevap yazıyor. Müşteri sıkılıp sekmeyi kapattı. Model yazmaya devam etti mi?Derse git