21 Kasım 2019 Perşembe

Soru 36: Sohbet Programları Nasıl Çalışır? - Alıntı

Turing'in ünlü testini önerdiği o ilk makaleden (23. Soru) bu yana, insanlarla insan dillerinde (bilgisayarcı deyimiyle, “doğal dil”de) iletişim kurabilen programların geliştirilmesi yapay zekâ araştırmacılarının en çok uğraştığı işlerden biri oldu. Ben de gençliğimin en güzel yıllarını bu konuya gömdüğümü söyleyebilirim doğrusu.

Doğal dilde yüksek kalitede iletişim problemini çözmek, yapay zekânın tümünü gerçekleştirmeye denk zorlukta bir iştir. Turing'in test olarak tam da bunu belirlemesi boşa değildir. 1964'te bu testi “hileyle” geçmeye yeltenen ELIZA adlı bir bilgisayar programı yazıldı. Bilgisayarı kullanan kişinin girdiği cümleleri basit bir teknikle “tersyüz” ederek yanıt veren, bazen de okuduğu cümlenin içinde geçen kimi kelimelerin tetiklediği kurallara bağlı olarak stokunda bulunan hazır cümleleri söyleyen ELIZA, bazı saf kullanıcıları öylesine başarılı bir şekilde kandırdı ki, yazarı Joseph Weizenbaum insanlığın henüz yapay zekâya hazır olmadığına karar verip bu işlerden elini eteğini çekti. İşte hocalığımın ilk yıllarında öğrencim Çiğdem Aytekin'e ödev olarak yazdırdığım Türkçe konuşan ELIZA'nın bir diyaloğu:

KULLANICI: Neler düşündüğümü bildiğine inanmak çok zor. ELIZA: Demek neler düşündüğünü bildiğime inanmak çok zor. KULLANICI: Her şeyi tekrarlıyorsun. ELIZA: Demek her şeyi tekrarlıyorum. KULLANICI: Herhangi bir şey hissediyor musun? ELİZA: Ben rahat hissediyorum. KULLANICI: Hissettiğine inanmak ne kadar zor. ELIZA: Benim neler hissettiğimi düşünüyorsun?

Görüldüğü gibi, artık kullanıcılar ELIZA gibi son derece yüzeysel yöntemlerle bir farkındalık yanılsaması yaratmaya çalışan programlara kolay kolay kanmıyor. Bu yüzden, doğal dildeki metinleri önce sözcük, sonra cümle ve giderek anlambilim (semantik) düzeyinde bir dizi çözümlemeden geçiren “ciddi” yazılımlar üretmek gereklidir. “Derin anlama” konusunda varabildiğimiz noktayı sonraki soruya bırakıp günümüzün “sohbot”larının (İngilizce “sohbet” kelimesiyle “robot”un “bot”unun bir araya getirilmesiyle oluşturulmuş “chatbot” sözcüğüne bu karşılığı öneriyorum) nasıl çalıştığına bakalım.

Sohbotları konu açısından dar kapsamlı veya sınırsız olanlar olarak ikiye ayırabiliriz. Dar kapsamlı bir sohbotla kendi konusu dışında konuşursanız sizi anlamaz, cevap veremez, verirse de saçmalayabilir. Kimi dar kapsamlı sohbotlar (yazışma yoluyla çalışıyorlarsa) kullanıcının ne yazacağını bile kısıtlayarak sohbetin raydan çıkmasını engeller. Konuyu bu şekilde çerçevelemek programı yazan kişinin işini kolaylaştırırsa da, kullanıcıda yaratacağı yabancılaşma nedeniyle “doğal dil arayüzü”nden beklenen avantajın büyük kısmının yitirilmesine yol açar.

Sohbotumuza sadece bir mağazanın ürünlerini tanıtmak gibi bir “listeden seçtirme” işi değil de (sözgelimi müşteri destek elemanlığı gibi) daha çok adım gerektiren karmaşık bir görev yükleyeceğiz diyelim. Bu durumda tıpkı insan müşteri temsilcileri gibi sohbotun da önceden hazırlanmış bir “akış diyagramı”nı izlemesi gerekir: Müşteriye önce adını sor, sonra ne istediğini sor, sonra o isteği gerçekleştirmek için diyagramda belirtilen sıradaki adımla ilişkili soruyu sor, tüm bilgileri topladıysan belirtilen işlemi yapıp uygun cevabı ver. Sorun, gerçek hayatta insanların tam bu sırada ve programcının beklediği biçimde bilgi vereceklerinin hiç de garantili olmamasıdır. İnsanlar bir bilgiyi pek çok değişik şekilde ifade edebilir, bu nedenle de sohbotun (daha önce hiç görmediği şekilde ifade edilmiş olabilecek ve yazım veya konuşma tanıma yanlışları da içerebilecek) çok sayıda farklı girdinin kendi anlam dünyasında hangi kategoriye denk geldiğini anlayıp sınıflandırması gerekir. İşler yolunda gider de kullanıcının dedikleri doğru anlaşılırsa ne âlâ, aksi takdirde program anlamaktan umudu keserse kullanıcıyı bir insan operatöre devredebilir. Kimi sohbotlar bu süreç sırasında kullanıcının sarf ettiği kelimelerden “duygu analizi” yapıp duruma uygun olması umulan “Sıkıldığınız için üzgünüm” gibi sözler edebilir. Gün sonunda konuşma kayıtları incelenir (bilgisayarla konuştuklarınızın sadece ikinizin arasında kalacağını asla varsaymamalısınız) ve kullanıcının ne istediği ve bunun için ne dediği saptanarak bir dahaki sefere sohbotun bu sözleri doğru yorumlaması için gerekli değişiklikler yapılır.

Ben bu kitap üzerinde çalışırken Google insandan ayırt edilemez bir ses ve tarzla insanlarla telefonda “sahibi” adına rezervasyon yapma konusunda konuşur gibi görünen bir programın çok etkileyici birkaç örnek diyalog kaydını yayınladı. Henüz kendim incelemediğim bu sistemi bir “reklam” videosu üzerinden değerlendirmem doğru olmaz, ama örneklerin yukarıdaki sınıflandırmama göre yine dar kapsamlı sohbetler olduklarını vurgulayayım.

Sınırsız bir sohbet ise (insan taklidi kısmı haricinde) tam Turing'in sözünü ettiği şeydir ve mühendislik açısından olağanüstü zordur. Apple şirketinin dijital asistan programı Siri gibi iddialı konuşma sistemleri, görevleri gereği anlayıp karşılayabildikleri işlevsel komutların (Siri birçok kez eliyle telefona uzanamayan insanlar için ambulans çağırarak hayatlar kurtarmıştır) yanı sıra, kulİanıcılarına olabildiğince az defa “Üzgünüm, seni anlayamadım” diyebilmeleri için her gün yeni cevaplarla zenginleştirilmektedir. Bu sohbotların evlenme tekliflerinden küfürlere, din ve siyaset sorularından “yarın sabah intihar etmemi hatırlat” gibi sorunlu isteklere “doğru” ve bir kişiliğe sahipmişçesine kendi içinde tutarlı cevaplar verebilmesi amacıyla birçok şair ve yazar istihdam edilmektedir. Amazon şirketinin Alexa asistanını popüler konular hakkında en az 20 dakika boyunca insanları sıkmayan tutarlı sohbetler gerçekleştirebilecek şekilde programlayacak ekibe vaat ettiği bir milyon dolarlık büyük ödülü alabilen henüz çıkmamıştır.

ELIZA gibi hilelere kaçmadan herhangi bir konuda açılabilecek her sohbete katılabilmek için herhangi bir insanın hakkında konuşabileceği her şeyi bilmeniz gerekir. Eğitimsiz olanlar da dahil olmak üzere tüm insanların dünya hakkındaki ortak bilgilerine “sağduyu” adı verilir. Diyelim ki bildiğiniz bir konu hakkında bir ansiklopedi maddesi yazıyorsunuz. Konunun anlaşılması için gereken, ama “Nasılsa herkes bunu bilir” diyerek yazınızda açıklamadığınız her şey, sağduyunun içindedir. İnsanların birbirleriyle genellikle fazla konuşmadan anlaşabilmesinin de, bazen farklı kültürlerden gelen kişilerin aynı dili konuşmalarına karşın yanlış anlaşmasının da nedeni, ortak olduğunu varsaydıkları bu bilgi kümelerindeki benzerlik ve farklılıklardır. Eğer programımızın okuduğu veya duyduğu bir metinden normal insanların ne anlam çıkaracağını anlamasını istiyorsak, bir şekilde bu bilgilere sahip olması gerekir.

Eski moda yapay zekâcılar bu probleme “O zaman tüm bu bilgileri teker teker ve açık açık yazalım” diye yaklaştı. Yaklaşık yüz milyon cümlelik bir bilgi tabanının amaca ulaşmak için yeterli olacağı tahmin ediliyordu. Bu devasa işi gerçekleştirmek (ve yazdıkları program parçasını diğer yapay zekâcılara satarak kâra geçmek) isteyen grubun başını 30. Soru'da tanıştığımız Douglas Lenat çekti. 1984'ten beri “İnsanlar önce doğar, sonra ölür”, “Bardağın açık tarafı üste tutulur” vs. türünden milyonlarca bilgiyi kodlayarak insan sağduyusunu bilgisayarlara kazandırmayı amaçlayan CYC projesi üzerinde çalışıyor. Yeni moda YZ'cilerin çoğu ona bir tür Don Kişot gözüyle bakarak doğal olanın bu bilgilerin artık elimizin altında olan büyük veriden otomatik öğrenilmesi olacağını söylüyorlar. Son gülen kim olacak, göreceğiz. Daha anlayışlı programlar üretme çabasının öyküsü önümüzdeki soruda sürecek.

50 Soruda Yapay Zeka

Hiç yorum yok:

Yorum Gönder