Metlivi Blog

Bir Yapay Zeka Ani Konu Değişikliklerini Doğal Bir Şekilde Nasıl Yönetmeli?

Kullanıcı aniden yeni bir şey sorduğunda, yapay zeka en son isteği yanıtlanacak görev olarak ele almalı, değişikliği kısaca kabul etmeli ve yalnızca net bir şekilde yardımcı olan önceki ayrıntıları ileriye taşımalıdır. Kullanıcının ifadesi hem yeni bir başlangıç hem de bir devam niteliği taşıyabilecek durumdaysa, bu bağlantı hakkında tek bir odaklanmış soru sorun. Bu basit sıra, asistanın yararlı bağlamı kaybetmeden veya ilgisiz bir isteğe eski materyalleri sürüklemeden kullanıcının yönlendirmesini takip etmesine yardımcı olur.

30 Eylül 20266 min readOkuma, sanat ve kültürYazan: Metlivi Editorial Team
Bölüm 1

Konu değişikliği neden doğrudan bir yanıtı hak eder?

İnsanlar günlük konuşmalarda konular arasında geçiş yaparlar ve diyalog araştırmaları, konu geçişlerini daha uzun etkileşimlerin normal bir özelliği olarak ele alır. 215 Switchboard konuşmasını inceleyen bir araştırma, geçişlerin genellikle tek bir katılımcı tarafından başlatıldığını ortaya koymuştur; diğer bir araştırma hattı ise sistemlerin bir değişimi nasıl algıladığını ve buna nasıl yanıt ürettiğini özel olarak test etmiştir. Bu bulgular pratik bir tasarım noktasını desteklemektedir: Konuşmacı bir yapay zekanın, her iletinin bir öncekini devam ettirdiğini varsaymak yerine, kullanıcının aktif görevi ne zaman değiştirdiğini fark etmesi gerekir. (An Empirical Study of Topic Transition in Dialogue; TIAGE: A Benchmark for Topic-Shift Aware Dialog Modeling)

İlk yanıt, değişikliği anlaşılır kılmalı, kullanıcının bunun neden gerçekleştiğini açıklamasını zorunlu kılmamalıdır. Bir kişi hafta sonu yemeği hakkında konuşurken aniden “Kısa bir teşekkür notu yazmama yardımcı olur musun?” diye sorarsa, asistan basitçe “Elbette, nota odaklanalım.” diyebilir. Yemek konuşmasının uzun bir özetini sunmak sürtünme yaratır ve asistanın önceki konuya takılıp kalmış gibi görünmesine neden olabilir.

Bölüm 2

Yeni görevi belirleyerek başlayın

İstenen eylemi anlamak için en son iletiyi okuyun: taslak oluştur, açıkla, karşılaştır, planla, gözden geçir veya yanıtla. Ardından bu eylemin nesnesini ve aynı iletide belirtilen kısıtlamaları belirleyin. “Yağmurlu bir öğleden sonra için bana üç fikir ver” gibi yeni bir istek, önceki turlar farklı bir konuyla ilgili olsa bile net bir görev sunar. Asistan, yalnızca açıkça geçerli olmaları durumunda önceki turlardaki sıradan tercihleri (örneğin daha önce belirtilmiş kapalı alan aktiviteleri tercihi gibi) kullanarak doğrudan yanıt verebilir.

Yararlı bir bildirim kısa ve özdür: “Yağmurlu gün planlarına geçiyoruz: İşte kapalı alanlar için üç fikir.” Çoğu durumda, yanıtın kendisi bu geçişi bildirebilir. Kullanıcının gerekçelerine dair karmaşık yorumlar yapmaktan kaçının; bir konu değişikliği, kullanıcının bunu neden yaptığına değil, farklı bir diyalog görevine işaret eder. Microsoft'un bot navigasyonu rehberi de benzer şekilde, kullanıcı başka bir yöne saptığında mevcut diyalog yolunda ısrar edilmemesi ve alakasız olduğunda geçmiş bilgilerin araya sokulmaması konusunda uyarır. (Design bot navigation)

Bölüm 3

Yalnızca yerini hak eden bağlamı saklayın

Ayrıntıları sınırın ötesine taşımadan önce bir ilgi düzeyi testi uygulayın: Bu bilgi, yeni isteğin yanıtını somut bir şekilde değiştirir mi? Yanıt evet ise saklayın. Değilse dışarıda bırakın. Belirtilen bir bütçe, “günübirlik bir gezi seçmeme yardım et”ten “bunun için ne hazırlamalıyım”a geçerken önemli olabilir. İlgisiz bir doğum günü kadeh kaldırma metninin tam ifadesi, kullanıcı bir bavul hazırlama listesi istediğinde muhtemelen bir önem taşımaz.

Bu durum yararlılıkla ilgili bir değerlendirmedir, konuşma geçmişinin silinmesi gerektiği iddiası değildir. Bazı diyalog modelleri önceki turları açıkça konuya duyarlı birimlere bölerken, konuşma arayüzleri de turlar arasında durumu koruyabilir. Bu mekanizmalar, bağlamın farklı seviyelerde yönetilebileceğini gösterir; münferit bir istekle hangi eski ayrıntının alakalı olduğunu belirlemezler. Pratikte asistan, kalıcı kısıtlamaları tek görevlik ayrıntılardan ayırmalı ve devredilen bir bilgiyi yalnızca yanıtı açıklamaya yardımcı olduğunda belirtmelidir. (Topic-Aware Multi-turn Dialogue Modeling; Conversation state)

Kompakt bir çalışma kuralı şudur: Kullanıcının net tercihlerini ve aktif kısıtlamalarını koruyun, kullanıcı geri dönmedikçe önceki görevin tamamlanmamış adımlarını bırakın ve eski konuşma ayrıntılarını sırf hatırlandığını göstermek amacıyla yeniden gündeme getirmekten kaçının. Bu kural, alıntılanmış veya deneysel olarak doğrulanmış bir formülden ziyade, araştırma ve tasarım rehberliğinin editoryal bir sentezidir.

Bölüm 4

Geçişin açık mı yoksa belirsiz mi olduğuna karar verin

Açık bir değişiklik netleştirme gerektirmez. “Yeni soru”, “ayrı bir konu” veya “şimdi şunda bana yardım et…” gibi ifadeler kullanıcının yönünü netleştirir. Önceki konuşmayla anlamlı bir bağımlılığı olmayan eksiksiz bir istek de aynı işlevi görür. Kısaca onaylayın ve devam edin.

Kullanıcı birden fazla önceki öğeye işaret edebilecek bir zamir veya referans kullandığında ya da eski bir çalışmayı uyarlamak mı yoksa yeni bir şeye başlamak mı istediği net olmadığında bir köprü belirsizdir. Örneğin, iki olası hediyeyi tartıştıktan sonra “Bunu daha kişisel yapabilir misin?” demek referansı belirsiz bırakır. Odaklanmış tek bir soru sorun: “Kitap fikrini mi yoksa yemek kursunu mu kastediyorsunuz?” Microsoft'un kullanıcı niyetini netleştirme konusundaki rehberi, hedefe yönelik soruları ve seçenekleri önerirken, çok fazla sorunun etkileşimi bir sorgulama gibi hissettirebileceği konusunda da uyarıda bulunur. (Disambiguate customer intent)

Olası bir yorum güvenliyse ve düzeltilmesi kolaysa, asistan bunu belirtebilir ve devam edebilir: “Teşekkür notunu kastettiğinizi varsayarak, işte daha samimi bir versiyon.” Bunu yalnızca yanlış bir tahminin kullanıcının çabasını boşa çıkarmayacağı veya yanıtı çarpıtmayacağı durumlarda kullanın. Alternatifler önemli ölçüde farklı sonuçlar doğuracaksa, ilerlemeden önce sorun.

Bölüm 5

Pratik bir yanıt sırası

Her ani konu değişikliği için şu kısa sırayı uygulayın:

Yeni görevi dahili olarak adlandırın. Kullanıcının şu anda ne istediğini ve bununla birlikte gelen kısıtlamaları belirleyin.

Net bir sinyal arayın. Kullanıcı açıkça başka bir konuya geçtiyse veya bağımsız yeni bir istek sunduysa, geçişi kabul edin.

Önceki bağlamı filtreleyin. Yalnızca yeni yanıtı doğrudan etkileyen bir tercihi, bilgiyi veya kısıtlamayı ileriye taşıyın.

Gerçek bir belirsizliği tek seferde çözün. Olası yorumları birbirinden ayıran kısa ve öz tek bir soru sorun; yanıtlamayı kolaylaştıracaksa seçenekler sunun.

Seçilen görevi yanıtlayın. Kullanıcı geri dönmeyi istemedikçe eski konuyu tekrar açmayın.

Şu örneği ele alalım: Bir kullanıcı önce basit bir piknik menüsü ister ve bir misafirin kuruyemiş tüketmediğini belirtir. Daha sonra “Farklı bir soru: Komşum için küçük bir hediye öner” der. Açık geçiş, yeni niyeti netleştirir. Kuruyemiş kısıtlamasının hediye fikirleriyle hiçbir ilgisi yoktur, bu nedenle bunu tekrarlamak veya uygulamak bir parazit oluşturacaktır. Eğer bunun yerine kullanıcı “Onlar için daha güvenli hale getirebilir misin?” derse ve önceki turlar birden fazla makul öğe veya kişiyi içeriyorsa, asistan “bunu” ile neyin kastedildiğini ve “onlar”ın kim olduğunu sormalıdır.

Bölüm 6

Geçişin garip hissedilmesine neden olan yaygın hatalar

Terk edilmiş göreve devam etmek. Kullanıcı yeni ve eksiksiz bir soru sorarsa, önceki kontrol listesini bitirmekte ısrar etmeyin veya geçiş yapmak istediğinden emin olup olmadığını sormayın. Örneğin, Dialogflow CX tasarım rehberi, açık iptal niyetlerini (cancel intents) insanların aktif bir diyalog konusunu terk etmelerine izin vermenin bir yolu olarak tanımlar. Daha geniş tasarım dersi, kullanıcının yönlendirmesine alan açmaktır. (Intents | Dialogflow CX)

Her yeni cümleye sıfırdan bir sayfa gibi yaklaşmak. Bazı kısa iletiler önceki bağlama bağlıdır: “İkincisini daha kısa yap” ifadesi, az önce verilen liste olmadan anlaşılamaz. Daha geniş konu değişse bile, referansları çözümlemek için gereken anlık bağlamı koruyun.

Bir bağlantı uydurmak. İki konunun yan yana görünmesi, kullanıcının bunların birleştirilmesini istediği anlamına gelmez. Bağlantı onların ifadeleriyle desteklenmiyorsa, yeni isteği kendi şartları içinde yanıtlayın.

Niyet zaten netken soru sormak. Netleştirme, yanıtı değiştirdiğinde faydalıdır. Aksi takdirde görevi geciktirir. Sırf kullanıcının konu değiştirdiği gerçeği hakkında değil, eksik olan bağlantı hakkında soru sorun.

Bölüm 7

Tek bir cümlede doğal bir aktarım

Kullanışlı bir kalıp şudur: “Elbette—[yeni görev]. Hâlâ geçerliyse [ilgili önceki ayrıntı] bilgisini kullanacağım; [tek bir özel soru]?” Son soruyu yalnızca yanıtı etkileyen gerçek bir belirsizlik olduğunda kullanın. Kendi kendine yeten bir istek için bunu atlayın: “Elbette—işte yağmurlu bir öğleden sonra için düşük maliyetli üç kapalı alan aktivitesi.”

Amaç basittir: Kullanıcının belirttiği yönü takip edin, bağlamı yalnızca yerini hak ettiğinde saklayın ve bağlantı gerçekten belirsiz olduğunda tek bir odaklanmış netleştirme sorusu sorun. Bu yaklaşım, ani bir konu değişikliğinin konuşmanın normal bir akışı gibi hissedilmesini sağlarken, yanıtın kullanıcının şu anda istediği şeye odaklanmasını korur.

İlgili okumalar

Bu konuyu keşfetmeye devam et