Niyet çıkarımı ve parametre doldurma
Serbest konuşmadan niyet ve parametre çıkarmanın istem tabanlı ve arama tabanlı yollarını, eksik parametrede sorma/varsayma/reddetme kararını ve küçük etiketli bir kümede isabetin nasıl ölçüleceğini öğretir.
Önkoşul: Machine Learning, Evaluation
BU DERSİN SONUNDA
- Niyet kümesini kapalı küme ve 'diğer' kovasıyla birlikte tasarlamak
- İstem tabanlı ve arama tabanlı çıkarımı ödünleşimleriyle karşılaştırmak
- Eksik parametrede sorma, varsayılanla geçme ve reddetme kararını kurala bağlamak
- Niyet doğruluğunu, alan bazında parametre doğruluğunu ve kaçınma oranını ayrı ölçmek
- 1
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 5
Proje
Rotadaki projeye katkı
Kısa cevap
Niyet çıkarımı tek değil iki karardır: kullanıcı ne yapmak istiyor (niyet) ve bu iş için hangi değerler gerekiyor (parametre). İkisini tek adımda çözmeye çalışmak, yanlış niyetin yanlış parametreyi de beraberinde getirmesine yol açar; üstelik hata modelin çıktısında tek bir yapı olarak göründüğü için teşhis edilemez. Sağlam tasarım önce niyeti sabitler, parametreyi sonra ve niyete özel şemayla doldurur.
Teori: iki farklı problem#
Niyet çıkarımı bir sınıflandırma problemidir: sonlu bir kümeden bir etiket seçilir. Parametre doldurma bir çıkarma problemidir: metinden tipi belli değerler okunup şemaya yerleştirilir. İki problemin hata biçimi farklıdır; sınıflandırma komşu sınıfa kayar, çıkarma alanı boş bırakır veya doğru değeri yanlış biçimde yazar. Aynı metrikle izlenmeleri bu yüzden yanıltıcıdır.
İstem tabanlı yol modelden doğrudan şemaya uygun bir yapı ister. Niyet kümesi küçük ve kararlıysa, birkaç örnekle desteklenmiş bir istem yeterlidir. Küme büyüdükçe bu yol iki yerden zorlanır: istem uzar ve her tur için bağlamda taşınır; birbirine benzeyen niyetler arasındaki ayrım ise istemde tarif edilmek zorunda kalır, tarif uzadıkça da tutarlılığı düşer.
Arama tabanlı yol niyet kümesini istemden çıkarıp dizine taşır. Kullanıcının cümlesi gömülür, niyet açıklamalarının gömülü hâlleri arasında en yakın birkaç aday bulunur ve yalnızca bu adaylar şemalarıyla birlikte isteme konur. Burada bir noktaya dikkat edin: gömme benzerliği anlamsal yakınlık ölçer, doğruluk ölçmez. Arama doğru adayı listeye sokmaya çalışır; seçimi hâlâ model ya da bir eşik yapar ve aday listesinde olmayan niyet hiçbir zaman seçilemez.
Uygulamada: iki yolun karşılaştırması#
| Ölçüt | İstem tabanlı | Arama tabanlı |
|---|---|---|
| Niyet sayısı | Küme küçük kaldığı sürece rahat | Kümeyi büyütmek dizine kayıt eklemektir |
| Yeni niyet eklemek | İstemin tamamını yeniden dengelemek gerekir | Açıklama yazıp gömmek yeterlidir |
| Benzer niyetlerin ayrımı | İstemde açıkça tarif edilmeli | Aday listesi daraldıkça ayrım kolaylaşır |
| Bağlam maliyeti | Tüm küme her turda istemde taşınır | Yalnızca birkaç aday istemde taşınır |
| Tipik başarısızlık | Kümeden yakın ama yanlış etiket seçilmesi | Doğru niyetin aday listesine hiç girmemesi |
| Teşhis yolu | İstem çıktısını ve gerekçesini okumak | Aday listesini ve sıraları incelemek |
Parametre şeması ve boş alan#
{
"niyet": "randevu_erteleme",
"parametreler": {
"randevu_kimligi": { "tip": "metin", "zorunlu": true, "kaynak": "oturum" },
"yeni_tarih": { "tip": "tarih", "zorunlu": true, "kaynak": "konusma" },
"yeni_saat": { "tip": "saat", "zorunlu": false, "varsayilan": "onceki_saat" },
"bildirim": { "tip": "secim", "secenekler": ["sms", "eposta"], "varsayilan": "sms" }
},
"geri_alinabilir": true,
"onay_gerekli": true
}Şemadaki üç alan kararı taşır. `zorunlu`, alan boşsa işlemin yürüyemeyeceğini söyler. `kaynak`, değerin konuşmadan mı yoksa oturumdan mı (giriş yapmış kullanıcı, seçili kayıt, saat dilimi) geleceğini belirtir; oturumdan gelebilecek bir değeri kullanıcıya sormak akışı gereksiz uzatır ve hata yüzeyini büyütür. `varsayilan`, kullanıcı söylemediğinde geçerli olacak değeri taşır ve yalnızca geri alınabilir işlemlerde konur — geri alınamaz bir işlemde varsayılan, kullanıcının vermediği bir kararı onun adına vermek demektir.
Karar: sor, varsay, reddet#
- 1Niyet güvenini eşiğe vur
İlk iki aday arasındaki fark belirgin değilse parametreye hiç geçme; iki seçenekli kısa bir netleştirme sorusu sor.
- 2Oturumdan doldurulabileni doldur
Kimlik, seçili kayıt, dil ve saat dilimi konuşmadan değil bağlamdan gelir; bunlar sorulmaz.
- 3Kalan zorunlu alanları sırala
Birden fazla alan boşsa hepsini tek soruda isteme; işlemi kilitleyen alandan başla, cevap geldikçe ilerle.
- 4Geri alınabilirliğe bak
İşlem geri alınabiliyorsa varsayılanla ilerle ve ne varsaydığını açıkça söyle; geri alınamıyorsa sor.
- 5Sınırı çiz
Art arda iki netleştirme sorusu sonuç vermezse turu kapat ve menüye ya da insana devret; sınırı önceden yazmayan sistem kullanıcıyı soru döngüsünde bırakır.
Ölçüm ve sık yapılan hata#
En sık hata, niyet ve parametre isabetini tek sayıda birleştirmek. En az üç sayı ayrı tutulmalı: niyet doğruluğu, alan bazında parametre doğruluğu ve kaçınma oranı — sistemin netleştirme sorduğu veya reddettiği turların payı. Kaçınma sıfıra yaklaşıyorsa sistem emin olmadığı yerde de karar veriyordur ve hatalar sessizce işleme geçer; kaçınma yükseldikçe kullanılabilirlik düşer. Doğru ayar bu üç sayının birlikte okunmasıyla bulunur, tek sayıyı iyileştirerek değil.
LAB · UYGULAMALI ALIŞTIRMA
Etiketli 40 cümlede iki çıkarım yolunu karşılaştırın
- 1Gerçek kullanıcı mesajlarınızdan (yoksa kendi yazacağınız gerçekçi cümlelerden) 40 cümle seçin; en az sekizi birbirine benzeyen iki niyet arasında sınırda olsun.
- 2Her cümle için doğru niyeti ve şemadaki zorunlu alan değerlerini elle yazıp bir referans dosyası oluşturun; belirsiz cümleleri 'netleştirme gerekir' olarak işaretleyin.
- 3Birinci yol: tüm niyet kümesini ve alan şemalarını tek isteme koyup 40 cümleyi koşturun, çıktıları JSON olarak kaydedin.
- 4İkinci yol: her niyet için bir açıklama cümlesi yazıp gömün, kullanıcı cümlesine en yakın üç adayı seçin ve yalnızca bu üç adayın şemasını isteme koyarak tekrar koşturun. Gömme erişiminiz yoksa daraltmayı anahtar sözcük aramasıyla yapın.
- 5İki koşu için niyet doğruluğunu, alan bazında parametre doğruluğunu ve kaçınma oranını ayrı ayrı hesaplayın.
- 6Sınırdaki sekiz cümlede iki yolun nerede ayrıştığını satır satır karşılaştırın ve hangi yolu neden seçtiğinizi tek paragrafta yazın.
Beklenen çıktı
Aynı 40 cümlelik etiketli küme üzerinde iki çıkarım yolunun niyet, parametre ve kaçınma sayıları ile gerekçelendirilmiş bir yol seçimi notu.
Sık sorulan sorular
Niyet kümesine 'diğer' etiketi koymalı mıyım?
Evet, ama onu çöp kutusu değil ölçüm aracı olarak kullanın. Kapalı kümede yer bulamayan cümleler buraya düşer; bu kovadaki cümleleri düzenli olarak okumak, eksik niyeti bulmanın en doğrudan yoludur. 'Diğer'i olmayan bir küme tanımadığı cümleyi en yakın niyete zorlar ve bunu hatayı görünmez kılarak yapar.
Kullanıcı tek cümlede iki iş istiyorsa ne yapmalı?
Şemayı tek niyetli varsaymak bu turu bozar. İki yol var: çıkarımı niyet listesi döndürecek biçimde tanımlayıp işleri sıraya koymak, ya da ilk niyeti yürütüp ikincisini açıkça teyit etmek. İkincisi daha az hata üretir çünkü her adımda tek bir işlem onaylanır; ilki daha akıcıdır ama sıralama ve kısmi başarısızlık durumlarını ayrıca tasarlamayı gerektirir.
Parametre biçimini model mi normalleştirsin, kod mu?
Ayrımı net tutun: model metinden ham ifadeyi çıkarır ('önümüzdeki cuma'), koddaki dönüştürücü bunu takvim değerine çevirir. Tarih ve saat çözümlemesini modele bırakmak, saat dilimi ve hafta başlangıcı gibi belirsizlikleri sessizce modelin varsayımına devretmek olur; aynı cümle farklı turlarda farklı değere çözülebilir ve bu fark kayıtlarda görünmez.
LEARN
Konuşma Arayüzü Geliştirici rotasına devam et
Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.
