Metlivi Blog

Gizem Oyunlarında Yapay Zeka Karakter Diyaloglarının Sahte İpuçları Uydurması Nasıl Önlenir?

Bir yapay zeka karakteri ipuçlarını tartışabiliyorsa, eyleme dönüştürülebilir her iddiayı önceden yazılmış bir kaynağa ve oyun kontrollü bir keşif durumuna bağlı hale getirin. Modele yalnızca oyuncunun bulduğu kanıtları verin, ipucu niteliğindeki her ifadenin arkasındaki kaynağı belirtmesini zorunlu kılın ve desteklenmeyen ayrıntıları mevcut değil olarak kabul edin. Sohbet ve atmosferi, vaka kaydını güncelleyemeyen veya ilerlemenin kilidini açamayan ayrı bir çeşni/arka plan kanalında tutun. Bu, doğaçlama diyalogların gizemi yeniden yazmasına izin vermeden karakterlerin esnek bir şekilde konuşmasını sağlar.

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

Uydurma ipuçları bir gizemi neden bozar?

Bir gizem oyununda oyuncular bilgi toplar, sonuçlar çıkarır ve öğrendiklerini daha fazla bilgi aramak için kullanır. Bu durum, ipucu ile oyuncu bilgisi arasındaki ilişkiyi diyalog üslubunun bir ayrıntısı olmaktan çıkarıp oyunun ana döngüsünün bir parçası haline getirir. Oyuncunun hiç karşılaşmadığı bir kişiden veya henüz yerleştirilmemiş bir mektuptan kendinden emin bir şekilde bahseden bir karakter, kazara yeni bir ipucu yaratabilir. Oyuncunun bu ayrıntının tasarlanmış bir ipucu mu, kasıtlı bir yalan mı yoksa üretilmiş bir dolgu metni mi olduğunu bilmesinin güvenilir bir yolu yoktur. “Generative Forensics: Procedural Generation and Information Games” adlı makale, bilgi oyunlarını bilgi toplama ve bunu bir gizemi anlamak için kullanma çerçevesinde tanımlar; bu bakış açısı uygulandığında, takip edilmeyen üretilmiş iddialar, oyuncunun akıl yürütmesi gereken bilgileri bulanıklaştırabilir.

Çözüm net bir ayrımla başlar: Bir ipucu, oyuncunun üzerinde işlem yapabileceği bir oyun gerçeğidir; çeşni/atmosfer ise oyun gerçeklerini eklemeyen veya değiştirmeyen dışavurumcu diyalogdur. Bir karakter kararsız, kaçamak, komik veya canlı konuşabilir ancak bir replik sırf ikna edici bir şekilde ifade edildiği için kanıt haline gelmemelidir.

Bölüm 2

Diyalog üretmeden önce yazar tarafından belirlenmiş bir ipucu kaydı oluşturun

Eyleme dönüştürülebilir her ipucu için küçük, açık bir kayıt tutun. Bu kayıt bir veri tabanında, içerik dosyasında veya anlatı aracında bulunabilir; önemli olan modelin bu içeriği uydurmamasıdır. İpucunun ne söylediğini, nereden geldiğini, bunu kimin bilebileceğini ve ne zaman kullanılabilir hale geleceğini yanıtlayan alanlar ekleyin.

Alan: clue_id; Kaydettiği bilgi: Kanıt için kalıcı tanımlayıcı; Örnek (gösterim amaçlı): note_blue_01

Alan: canonical_fact; Kaydettiği bilgi: Oyunun kesinleştirdiği gerçek; Örnek (gösterim amaçlı): “Not M parafı ile imzalanmış.”

Alan: source_id; Kaydettiği bilgi: Bunu destekleyen yazar kaynaklı nesne, sahne veya replik; Örnek (gösterim amaçlı): archive_note_03

Alan: discovery_condition; Kaydettiği bilgi: Tartışılabilmesi için gereken oyun durumu; Örnek (gösterim amaçlı): found_archive_note_03

Alan: allowed_speakers; Kaydettiği bilgi: Bunu bilmesine veya tartışmasına izin verilen karakterler; Örnek (gösterim amaçlı): Mara, Ivo

Alan: certainty; Kaydettiği bilgi: Kaynağın bir gerçeği mi belirttiği yoksa bir yorum mu önerdiği; Örnek (gösterim amaçlı): explicit

Alan: player_facing_label; Kaydettiği bilgi: Varsa, kanıtın günlükte nasıl görüneceği; Örnek (gösterim amaçlı): “İmzasız not”

Yukarıdaki adlar ve değerler, belirli bir oyuna dair bir iddia değil, bir formatı göstermek için oluşturulmuş kurgusal bir örnektir. Kaydın, bir kaynağın açık içeriğini bir yorumdan ayırdığına dikkat edin: İmzalanmış bir paraf, tek başına notu kimin yazdığını kesinleştirmez. Bu ayrım, diyalog sistemine, karakterin spekülasyonunu yeni doğrulanmış bir kanıt gibi sunmadan spekülasyon yapmasına izin verme alanı tanır.

Bölüm 3

İpuçlarını yalnızca konuşmayla değil, keşif durumuyla sınırlandırın

Keşfi, oyunun denetimindeki bir durum olarak temsil edin. Örneğin, found_archive_note_03 yalnızca oyuncu notu gerçekten bulduğunda true haline gelir. Bir konuşmanın başlangıcında karaktere, oyuncunun keşif durumu ve karakterin bilgisiyle filtrelenmiş, tartışmasına izin verilen yazar kaynaklı gerçeklerin bir listesini iletin. Bir ipucu yalnızca her iki denetim de başarılı olduğunda kullanılabilir: Oyuncu ipucunun keşif koşuluna ulaşmıştır ve konuşmacı bunu bilmeye yetkilidir.

Bu, getirmeyle zenginleştirilmiş üretimin (retrieval-augmented generation - RAG) pratik bir uygulamasıdır: İlgili kayıtları getirin, bunları modelin bağlamına yerleştirin ve bu kayıtlardan üretim yapın. Microsoft’un RAG genel bakışı, bu getir-zenginleştir-üret akışını açıklar ve yetersiz veya eksik getirmenin yine de hatalı çıktılara yol açabileceği konusunda uyarır. Bir oyun için getirme işlemi, modele ulaşmadan önce keşif koşullarını gözetmelidir. Modele “hiçbir şeyi açık etme” demek, henüz keşfedilmemiş kanıtları tamamen saklamaktan daha zayıf bir yöntemdir.

İzin denetimini mümkün olduğunca modelin dışında tutun. Bir kanıtın günlüğe girip girmeyeceğini, bir bulmacayı çözüp çözmeyeceğini veya bir etkileşimi ortaya çıkarıp çıkarmayacağını üretilen bir nesir satırı değil, oyun belirlemelidir. Bir model izin verilen bir gerçeği ifade edebilir; bu gerçeğin en başta izinli olup olmadığına oyun durumu karar vermelidir.

Bölüm 4

Modele dar kapsamlı bir sözleşme ve güvenli bir alternatif sunun

Faydalı bir prompt; karakterin ses tonunu, mevcut sahneyi, izin verilen ipucu kayıtlarını ve kanıt ile çeşni/atmosfer arasındaki farkı belirtmelidir. Bir soru sağlanan kanıtları aştığında ne yapılacağını ifade edin: onaylamayı reddetmek, karakterin bilmediğini söylemek veya karakterin kişiliğine uygun eyleme dönüştürülemeyen bir replikle yanıt vermek. Çelişkili veya belirsiz kayıtlar için de talimatlar ekleyin. Microsoft’un RAG prompt mühendisliği kılavuzu; açık dayanak sınırları, alternatif davranışlar, kaynak tanımlayıcıları ve çelişkiler için talimatlar önerir. Bunlar, bilgi asistanlarının yanı sıra kontrollü karakter diyalogları için de kullanışlı tasarım ilkeleridir.

Örneğin oyuncu, M parafının notu Mara’nın yazdığını kanıtlayıp kanıtlamadığını sorarsa, izin verilen yanıt şöyle olabilir: “M orada ama bu tek başına onu kimin imzaladığını bize söylemez.” Sistem bu ifadeye izin verebilir çünkü kaynak gerçek ile bir sonuç arasındaki farkı korur. Cevabı daha tatmin edici kılmak için bir tanık, el yazısı eşleşmesi veya ikinci bir belge uydurmamalıdır.

Modelin spoken_text, claim_type ve source_ids gibi yapılandırılmış alanlar döndürmesini sağlayın. İpucu içeren bir yanıt için en az bir geçerli kaynak tanımlayıcı zorunlu kılın ve bu tanımlayıcıyı o tur için sağlanan kayıtlara göre kontrol edin. Çeşni/atmosfer niteliğindeki diyaloglar için yanıtı kanıt-dışı olarak işaretleyin ve ipucu bayraklarını tetiklemesine izin vermeyin. Yapılandırılmış çıktı, metnin doğru olduğunun kanıtı değildir; oyunun ekranda göstermeden veya durum değişikliği yapmadan önce kontrol edebileceği bir veri yaratır.

Bölüm 5

Oyuncuların ağırlığını anlayabilmesi için çeşni/atmosfer diyaloglarını etiketleyin

Çeşni/atmosfer metni bir karakterin ruh halini, zararsız bir şakayı veya odaya verilen genel bir tepkiyi içerebilir. Oyuncuların haklı olarak bir ipucu sayabileceği bir tarihi, konumu, nesneyi, adı geçen bir tanığı, motifi veya diğer ayrıntıları sessizce araya sokmamalıdır. Spekülatif konuşmalar istiyorsanız belirsizliği ifadelerde anlaşılır kılın ve kanıt listesi, görev durumu ve ipucuna dayalı etkileşimler gibi nesnel sistemlerin dışında tutun.

Bu ayrım hem veriye hem de sunuma yansıtılabilir. Dahili olarak replikleri kanıt, yorum veya çeşni/atmosfer olarak etiketleyin; arayüzde ise kanıt stilini veya günlük kayıtlarını oyun yazarı tarafından oluşturulmuş ipuçlarına ayırın. Bir karakter “Belki de not aceleyle bırakılmıştır” diyebilir, ancak oyun bu olasılığı izin verilen bir yorum olarak tanımlamadığı sürece bu, doğrulanmış bir ipucu olarak görünmemeli veya yeni bir olay örgüsü dalını tetiklememelidir. Bu üç yönlü etiketleme; kaynağın ne söylediğini, birinin ne çıkardığını ve neyin yalnızca dışavurumcu diyalog olduğunu koruma ihtiyacından doğan bir tasarım önerisidir.

Bölüm 6

Durum ve koşulları izlemek için anlatı araçlarını kullanın

Bu yaklaşımı uygulamak için belirli bir oyun motoruna ihtiyacınız yoktur. İnteraktif anlatı araçları yaygın olarak pasajları veya bölümleri, değişkenleri ve koşullu içeriği destekler. Resmi Ink yazarlık dokümantasyonu, hikaye içeriğini kontrol etmek için değişkenleri ve koşullu mantığı açıklar; Twine Cookbook pasaj kılavuzu, pasajları metnin nasıl görüneceğini veya yanıt vereceğini etkileyen kodları da içerebilen içerik bölümleri olarak tanımlar. Bu özellikler, diyaloğun kendisi üretilmiş veya önceden yazılmış olsa da keşif durumunu, konuşmacı bilgisini ve koşullu diyaloğu temsil edebilir.

İpucu kimliklerini ve durum adlarını anlatı kaydı ile oyun mantığı genelinde tutarlı tutun. found_archive_note_03 gibi bir değişkeni denetlemek, özellikle farklı sahneler bunu okuduğunda veya ayarladığında, belirsiz bir clue2 bayrağına göre daha kolaydır. Eyleme dönüştürülebilir üretilmiş her replikten izin verilen kaynak kaydına geri dönen izlenebilir bir bağlantı ekleyin; bir repliğin geçerli bir kaynağı yoksa, çalışma zamanı bunu bir kanıt olarak değerlendirmek yerine reddedebilir veya güvenli bir alternatif yanıt talep edebilir.

Bölüm 7

Sınırları odaklanmış bir oyun testiyle kontrol edin

Konuşmaları, durum kurallarının başarısız olma ihtimalinin en yüksek olduğu keşif sınırlarında test edin. İpucu bulunmadan önce, bulunduktan hemen sonra ve farklı bilgiye sahip bir karakter konuştuktan sonra yeni bir konuşma deneyin. Henüz keşfedilmemiş kanıtlar hakkında doğrudan sorular sorun, kaynağın yalnızca kısmen yanıtladığı bir soru sorun ve oyun destekliyorsa sahneyi yeniden oynatın. Görüntülenen repliği, döndürülen kaynak kimliklerini ve günlükte veya hikaye durumunda yapılan değişiklikleri karşılaştırın.

Kompakt bir test kontrol listesi bu denetimlerin somut kalmasına yardımcı olur:

Eyleme dönüştürülebilir her iddia, yazar tarafından belirlenmiş bir ipucuyla veya açıkça izin verilmiş bir yorumla eşleşir.

İpucunun keşif koşulu, kullanılabilir bir bilgi olarak görünmeden önce true değerindedir.

Konuşmacının o sahnede bu bilgiyi bilmesine izin verilmiştir.

Desteklenmeyen sorular, yeni bir somut gerçek yerine belirlenen alternatif yanıtı alır.

Çeşni/atmosfer replikleri günlük kaydı ekleyemez, ipucu kilitlerini açamaz veya kanıt durumunu değiştiremez.

Belirsiz veya çelişkili kayıtlar, sessizce yeni bir çözüm üretmek yerine belirsizlik veya gözden geçirilebilir bir alternatif yanıt üretir.

Dayanak noktaları belirlemek (grounding), uydurma ipuçlarına ayrılan alanı azaltır ancak üretilen nesrin sağlanan gerçeklere her zaman sadık kalacağını garanti etmez. Microsoft’un RAG sınırlamaları kılavuzunda belirttiği gibi, getirme işlemi ilgili bir kaydı gözden kaçırabilir ve bir model dayanaklara rağmen yine de hatalı metin üretebilir. İpuçları üzerindeki nihai yetkiyi yazar kaynaklı kayıtlarda ve oyun mantığında tutun; üretimi bu sınırların etrafına ses ve üslup eklemek için kullanın.

Pratik kural basittir: Bırakın kelimeleri model seçsin, ancak bu kelimelerin neyi kesinleştirmesine izin verildiğine kurgulanmış gizem ve mevcut oyun durumu karar versin. Eyleme dönüştürülebilir her ipucunun bir kaynağı, bir keşif kilidi ve net bir durumu olduğunda, karakterler oyunculara oyunun hiç yerleştirmediği kanıtları sunmadan daha konuşkan bir tonda konuşabilir.

İlgili okumalar

Bu konuyu keşfetmeye devam et