İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
DersBaşlangıç45 dakikaKonuşma Arayüzü Geliştirici · 2. ders

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. 1

    Teori

    Kavramın çalışma mantığı

  2. 2

    Örnek

    Gerçek bir senaryo üzerinde gösterim

  3. 3

    Lab

    Uygulamalı alıştırma

  4. 4

    Test

    Kısa ölçüm

  5. 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 rahatKümeyi büyütmek dizine kayıt eklemektir
Yeni niyet eklemekİstemin tamamını yeniden dengelemek gerekirAçıklama yazıp gömmek yeterlidir
Benzer niyetlerin ayrımıİstemde açıkça tarif edilmeliAday listesi daraldıkça ayrım kolaylaşır
Bağlam maliyetiTüm küme her turda istemde taşınırYalnızca birkaç aday istemde taşınır
Tipik başarısızlıkKümeden yakın ama yanlış etiket seçilmesiDoğru niyetin aday listesine hiç girmemesi
Teşhis yoluİstem çıktısını ve gerekçesini okumakAday listesini ve sıraları incelemek
Hibrit kurulum da mümkündür: arama adayları daraltır, istem nihai kararı verir. Bu durumda iki katmanın hatası ayrı ayrı izlenmelidir, yoksa hangi katmanın kaybettirdiği görünmez.

Parametre şeması ve boş alan#

json
{
  "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#

  1. 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.

  2. 2Oturumdan doldurulabileni doldur

    Kimlik, seçili kayıt, dil ve saat dilimi konuşmadan değil bağlamdan gelir; bunlar sorulmaz.

  3. 3Kalan zorunlu alanları sırala

    Birden fazla alan boşsa hepsini tek soruda isteme; işlemi kilitleyen alandan başla, cevap geldikçe ilerle.

  4. 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.

  5. 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

  1. 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.
  2. 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.
  3. 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. 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. 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.
  6. 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.