Yapay Zeka Yanlış Cevap Verdiğinde Ne Oluyor: Microsoft'un Bana Öğrettiği Kural
Yapay Zeka Yanlış Cevap Verdiğinde Ne Oluyor:
Microsoft'un Bana Öğrettiği Kural
Aylardır verinin nereye gittiğini düşünüyordum.
Hangi sunucuya çıkıyor, orada saklanıyor mu, bir gün başka bir modelin eğitiminde kullanılır mı, hangi ülkenin yargı yetkisinden geçiyor. NeonCore'u geliştirirken en çok vakit harcadığım konu buydu. Dosyanın cihazdan çıkmaması, gönderilen metnin imha edilmesi, sağlayıcı tarafında veri toplamanın kapatılması. Bunların hepsini kurdum, test ettim, belgeledim.
Sonra uygulamayı Microsoft Store'a gönderdim ve reddedildi.
Gerekçe veriyle ilgili değildi. Gizlilikle de ilgili değildi. Tek bir madde yazıyordu: politika 11.16, Live Generative AI Content.
Kural şu: üretken yapay zeka çıktısı üreten bir uygulama yayınlıyorsanız, kullanıcının uygunsuz bir çıktıyı size bildirebileceği bir mekanizma sunmak zorundasınız. Uygulamanın içinde olacak, görünür olacak, tek tıkla ulaşılacak.
Bunu bilmiyordum. Daha kötüsü, hiç düşünmemiştim.
Sorduğum soru ve sormadığım soru
Yapay zekayı ürüne koyarken şunu sordum: bu ne yapabilir.
Dosya okuyabilir mi, uzun bir sözleşmeyi anlayabilir mi, Excel üretebilir mi, mevzuatta arama yapabilir mi, Türkçeyi düzgün konuşabilir mi. Aylarca bu soruların cevabını iyileştirdim.
Şunu hiç sormadım: yanlış yaparsa kullanıcı ne yapacak.
Bu iki soru arasındaki fark, bir ürünü işlevsel olmakla sorumlu olmak arasında ayıran şey. Birincisi mühendislik sorusu. İkincisi tasarım ve etik sorusu ve genellikle sonradan akla geliyor, çünkü ürün çalışırken kimse hata anını düşünmüyor.
Microsoft bu soruyu benim yerime sordu. Cevabım olmadığı için de gönderimim reddedildi.
Neden bu kural var
İlk tepkim savunmacıydı. Model zaten büyük bir sağlayıcının modeli, filtreleri var, ben ne yapabilirim ki diye düşündüm. Birkaç saat sonra bu düşüncenin ne kadar zayıf olduğunu gördüm.
Kullanıcı sizin uygulamanızı kullanıyor. Sizin arayüzünüzde, sizin markanız altında. Modelin arkada kimin olduğu onu ilgilendirmiyor. Yanlış, taraflı, uygunsuz ya da zararlı bir cevap aldığında karşısında sizin ürününüz var.
O anda kullanıcının üç seçeneği var. Görmezden gelir, uygulamayı siler, ya da size söyler. İlk ikisi sizin için sessiz kayıp. Üçüncüsü ise ancak ona bir kapı açtıysanız mümkün.
Kapı yoksa, kullanıcı hatayı bildiremez. Siz de o hatanın varlığından haberdar olmazsınız. Ürününüz yanlış cevap üretmeye devam eder ve siz her şeyin yolunda gittiğini sanırsınız. Sessizlik başarı sanılır.
Microsoft'un kuralı tam olarak bunu engelliyor. Yapay zeka ürünlerinde geri bildirim kanalı bir nezaket değil, temel bir güvenlik bileşeni.
Yarım günlük iş
Reddi aldıktan sonra çözümü kurmak yarım günümü aldı.
Her yanıtın altına bir buton koydum. Kopyala ve Sesli Oku'nun yanına, aynı sıraya, aynı görsel ağırlıkta. Gizli bir menünün içine değil, ayarlar sayfasının derinine değil, tam da hatanın olduğu yere.
Tıklayınca uygulama içinde bir pencere açılıyor. Kullanıcı ne olduğunu kendi cümleleriyle yazıyor ve gönderiyor. Dışarı çıkmıyor, mail istemcisi açılmıyor, form doldurmak için siteye yönlendirilmiyor.
Arka tarafta iki şey oluyor. Bildirim veritabanına kaydediliyor ve destek adresine mail düşüyor. Yani hem geçmişe dönük analiz edilebilir bir kayıt oluşuyor hem de ben anında haberdar oluyorum.
Bir de bilinçli bir karar verdim: bu işlem kredi harcamıyor.
NeonCore kredi tabanlı çalışıyor, her işlem bir yakıt tüketiyor. Ama bir sorunu bildirmenin kullanıcıya maliyeti olamaz. Hatalı bir cevap aldı, bunun bedelini zaten ödedi, bir de şikayet etmek için ödemesi saçma olurdu. Ücretsiz olmalı, çünkü ücretli bir şikayet kanalı gerçekte bir şikayet kanalı değildir.
Yeniden gönderdim. 24 saat sonra onay geldi.
Reddedilmek kötü bir şey değil
Bu süreçten çıkardığım en net sonuç bu.
Reddin gerekçesi tek satırdı ve nettti. Ne yapmam gerektiğini tarif ediyordu. Belirsiz bir "politikalara uygun değil" cümlesi değil, uygulanabilir bir talep. Yarım günde çözdüm ve ürün daha iyi hale geldi.
Kendi başıma o özelliği hiç eklemezdim. Aylarca eklemedim zaten. Çünkü kendi ürününüze bakarken kör noktalarınızı göremiyorsunuz, tanım gereği kör noktalar. Dışarıdan bir kural, kendi kendinize soramadığınız soruyu sormanızı sağlıyor.
Türkiye'de yazılım geliştiren çoğu kişi mağaza politikalarını aşılması gereken bürokratik engel olarak görüyor. Bazıları öyle. Ama 11.16 öyle değildi. Kullanıcı lehine yazılmış, gerekçesi anlaşılır ve haklı bir kural.
Bu konu sadece Microsoft'la sınırlı değil
Aynı yöne giden başka düzenlemeler var ve bunların çoğu yakında zorunlu hale geliyor.
AB Yapay Zeka Yasası, yapay zeka sistemlerinde şeffaflık ve insan gözetimi konusunda somut yükümlülükler getiriyor. Türkiye'de yazılım geliştirenler için de geçerli olan tarafları var, çünkü Avrupa'ya ürün sunuyorsanız kural sizi bağlıyor. Bu konuyu daha önce detaylı yazmıştım: AB Yapay Zeka Yasası 2026: Türk Geliştiriciler İçin Zorunluluklar ve Tarihler
KVKK tarafında da benzer bir mantık var. Verinin nasıl işlendiği kadar, hatalı işlenmesi durumunda ne olacağı da önemli. Veri sorumlusunun yükümlülüğü, sistemin doğru çalıştığını varsaymakla bitmiyor.
Yani Microsoft'un koyduğu kural izole bir mağaza şartı değil. Yapay zeka ürünlerine dair genel bir yönelimin parçası ve bu yönelim tek bir cümleyle özetlenebilir: modeli sen üretmemiş olabilirsin ama kullanıcıya sunan sensin.
Geri bildirim mekanizması nasıl olmalı
Kendi kurduğum sistemden ve sonrasında düşündüklerimden çıkardığım ilkeler şunlar.
Hatanın olduğu yerde olmalı. Kullanıcı yanlış cevabı gördüğü anda tepki verir. O anı kaçırırsanız bir daha geri gelmez. Ayarlar menüsünün içindeki bir bildirim formu, hiç olmaması ile aynı şeydir.
Tek tıkla ulaşılmalı. Arada onay ekranı, giriş yapma zorunluluğu, kategori seçimi olmamalı. Kullanıcı zaten sinirlenmiş durumda, sürtünme eklerseniz vazgeçer.
Bedava olmalı. Kredi, kota, sınır olmamalı. Şikayet etmenin bedeli olduğu anda şikayet sayısı düşer ve siz bunu memnuniyet sanırsınız.
Uygulamadan çıkarmamalı. Mail istemcisi açan, web sitesine yönlendiren, harici forma atan çözümler kayıp oranı çok yüksek. Bildirim uygulamanın içinde başlayıp içinde bitmeli.
Kayıt tutmalı. Sadece mail göndermek yetmez. Bildirimleri veritabanında saklarsanız zamanla desen görürsünüz. Aynı tür hata tekrar ediyorsa bu bir sistem sorunudur, tek bir kullanıcının şanssızlığı değil.
Kullanıcıya ne olduğunu söylemeli. Gönder butonuna bastıktan sonra kullanıcı bir onay görmeli. Boşluğa konuşmadığını bilmeli.
Serbestlik ve sorumluluk arasındaki denge
Burada dikkat edilmesi gereken bir denge var ve ben de üzerinde düşündüm.
Aşırıya kaçmak mümkün. Her cevabın altına üç uyarı, her işlemde onay kutusu, sürekli "bu yapay zeka çıktısıdır, doğruluğunu kontrol edin" ikazı. Bu noktada ürün kullanılamaz hale geliyor ve daha kötüsü, uyarılar anlamsızlaşıyor. İnsan sürekli gördüğü uyarıyı okumayı bırakır.
Doğru nokta şurası: uyarıyı azalt, kanalı aç. Kullanıcıya her adımda "dikkat et" demek yerine, bir şey ters gittiğinde nereye gideceğini net göster. Birincisi gürültü, ikincisi altyapı.
NeonCore'da tercih ettiğim yaklaşım bu. Sohbet ekranında sürekli uyarı yok. Ama her yanıtın altında, sessizce duran bir buton var.
Bunun gizlilikle ilişkisi
İlk bakışta bu iki konu ayrı görünüyor. Biri verinin nereye gittiğiyle, diğeri çıktının doğruluğuyla ilgili. Ama aynı sorunun iki yüzü.
Her ikisi de şu soruya çıkıyor: kullanıcı bu ürüne neye dayanarak güvenecek.
Verinin saklanmadığını söylemek kolay. Yapılandırmayı gösterip nasıl çalıştığını anlatmak zor ama mümkün, ben de NeonCore sayfasında bunu yapmaya çalıştım. Detayları daha önce ayrıca yazmıştım: Yapay Zekaya Dava Dosyası Yükler misiniz? KVKK, ZDR ve NeonCore'un Cevabı
Çıktı tarafında ise iddia kurmak imkansız. Hiçbir yapay zeka ürünü "her zaman doğru cevap verir" diyemez. Bu yüzden burada güven, doğruluk vaadiyle değil, hata anındaki davranışla kuruluyor.
Yanılabilen ama yanıldığında haber alabildiğiniz bir sistem, yanılmaz olduğunu iddia eden bir sistemden daha güvenilirdir. Çünkü ilki gerçeği söylüyor.
Kendi ürününüzü kırmak
Bu, daha önce başka bir bağlamda da yaşadığım bir şey. Kredi sistemini istemci tarafında tutuyordum, sonra kendi uygulamamı hackleyip bunun ne kadar kolay olduğunu gördüm ve mimariyi baştan kurdum. O süreci de yazmıştım: Kendi Uygulamamı Hackledim: Kredi Sistemini İstemciden Sunucuya Taşıma Rehberi
İkisinin ortak noktası şu: kendi ürününüze saldıran gözle bakmadığınız sürece zayıf noktalarını göremiyorsunuz.
Kredi sisteminde bu saldırgan bendim. Bildirim mekanizmasında Microsoft oldu. İkisinde de sonuç aynı: ürün eskisinden daha sağlam çıktı.
Tek fark, birincisini kendim buldum, ikincisi bana söylendi. Ve bu, ikincisini daha değersiz yapmıyor. Aksine, kendi başınıza bulamayacağınız şeyler için dışarıdan bakan bir göze ihtiyacınız olduğunu gösteriyor.
Sonuç
Yapay zeka ürünü geliştiriyorsanız, şu soruyu ürünü yayınlamadan önce cevaplayın: kullanıcı yanlış bir cevap aldığında ne yapacak.
Cevabınız "bize mail atar" ise, gerçekte cevabınız yok demektir. Kimse mail atmaz.
Cevabınız "modelin filtreleri var" ise, sorumluluğu başkasına devretmiş oluyorsunuz. Kullanıcı sizin ürününüzü kullanıyor.
Cevabınız "böyle bir şey olmaz" ise, ürününüzü yeterince kullanmamışsınız demektir.
Doğru cevap basit: hatanın olduğu yerde, tek tıkla ulaşılan, bedava bir kanal. Yarım günlük iş. Ve o yarım gün, ürününüzün kullanıcıyla kurduğu ilişkiyi kökten değiştiriyor.
Bir yapay zeka ürününün şikayet edilecek yeri yoksa, o ürün eksiktir. Reddedilmeden önce bunu bilmiyordum. Şimdi biliyorum.
NeonCore'un bildirim mekanizması ve gizlilik mimarisini görmek isterseniz: NeonCore ürün sayfası