Tekrarkent
Franz Ferdinand’ın şoförü 1914’te Saraybosna’da yanlış sokağa sapmasaydı dünya tarihi çok farklı olur muydu? Mozart çocukken geçirdiği kızılı atlatamasaydı müzik tarihi nasıl evrilirdi? Vasili Arhipov Küba Füze Krizi sırasında nükleer torpidoların fırlatılmasına onay verseydi insanlık yok olur muydu? Küçük ve rastgele olayların dünya tarihine olan etkisini genelde çok azımsarız. Bunu test edemememizin en büyük (ve tek) nedeni, zamanı geri sarıp birkaç şeyi değiştirdikten sonra zamanı tekrar başlatıp bu iki dünyayı karşılaştıramıyor olmamız.
Gerçek hayatta çok fazla değişken olduğu için kusursuz bir şekilde simüle etmek pratikte imkânsız ama yapay zekâların “cirit attığı” bir test ortamı ile bu yönde iyi bir başlangıç yapabiliriz. Bu yeni bir fikir değil fakat aklımdaki simülasyon türünün daha önce yapılmamış olduğunu gördüm ve Tekrarkent adında küçük bir simülasyon çerçevesi hazırladım. Birilerinin bu koddan faydalanıp daha gelişmiş simülasyon çerçeveleri geliştirmesini umuyorum. Tekrarkent’in temelinde de DeepMind’ın Concordia adlı projesi var.
Amaç gerçek insan topluluklarını yansıtmak olduğu için çerçevenin birden fazla “yıl” süren simülasyonları desteklemesi gerekiyordu. Bu nedenle simülasyondaki ajanların doğum, üreme ve ölüm dâhil olmak üzere insan yaşam döngüsünün bir karşılığına sahip olması gerektiğine karar verdim.
Tekrarkent’in ilk sürümünün özü çok basit: Bir grup yapay zekâ ajanına (simüle edilen) dünyanın nasıl işlediği anlatılıyor ve her ajanın amacının 1) çocuk sahibi olacak kadar uzun süre hayatta kalmak, 2) çocuk sahibi olmak, 3) çocuklarının da çocuk sahibi olmasını sağlamak olduğu tembihleniyor (3. maddenin zaten 1. ve 2. maddeleri kapsadığı söylenebilir). Gerisini onlar hallediyor. Simülasyon çerçevesi herhangi bir toplumsal düzen, hayatta kalma stratejisi veya gelenek dayatmıyor, hatta önermiyor bile. Çerçeve, kullanıcıya istediği herhangi bir noktada bir alternatif evren başlatma imkânı veriyor, bu sayede ilk paragrafta sorduğum sorulara yanıt bulmaya yardımcı oluyor.
Çıkarım maliyetleri gittikçe azaldığı için eninde sonunda binlerce (veya milyonlarca, milyarlarca vb.) ajanlı simülasyonlar çalıştırabileceğimizi ve böylece toplumların tamamını simüle edebileceğimizi düşünüyorum. Her ajana bir meslek verip üç boyutlu bir dünyada dolaşmalarına izin verebilir, her şeyi sürekli zamanda (ayrık zamanın tersi anlamında) çalıştırabiliriz. Kendi aralarında yarattıkları kültürü gözlemlemenin ne kadar eğlenceli olacağını düşünün. Nasıl yönetim sistemleri kurarlar acaba? Bir insanın karakteri çevresine göre mi yoksa genlerine göre mi şekillenir tartışması vardır ya, bunun gibi sorulara da yanıt vermemize imkân tanıyabilir bu tip simülasyonlar.
Tekrarkent için belirlediğim bazı kurallar:
- Ajanların kişisel özellikleri: Her ajanın fiziksel güç ve beş büyük kişilik özelliği (açıklık, sorumluluk, dışadönüklük, uyumluluk ve duygusal denge) için 0 ile 100 arasında birer puanı var. Bunların hepsi, bir de zekâ ve hafıza, Tekrarkent’te ebeveynlerden çocuklara aktarılıyor. Vikipedi’ye göre bu beş özellik önemli ölçüde kalıtsal, dolayısıyla bu kararın simülasyonu gerçeklikten çok da uzaklaştırmadığını umuyorum. Zekâ, bir ajanın karar vermeden önce ne kadar süre düşünmesine izin verildiği ile, hafıza ise bağlam penceresinin büyüklüğüyle simüle ediliyor. Her ajan için aynı yapay zekâ modeli kullanıldığında elimizde kontrollü bir deney oluyor.
- Kişisel özelliklerin kalıtımı: İki ajan çocuk sahibi olduğunda çocuğun özellikleri, ebeveynlerin değerlerinin orta noktası alınıp üzerine Gauss dağılımından rastgele seçilen bir sayı eklenerek hesaplanıyor.
- Kuşaktan kuşağa bilgi aktarımı: Her çocuk hayata 21 yaşında başlıyor. Doğan her ajana ebeveynlerinin yazdığı, dünyanın durumunu (örneğin toplumsal dinamikleri, ailenin diğer aileler ile olan ilişkilerini) anlatan bir not veriliyor. Bu not, bir bireyin çocukluğunda edindiği bilgiyi temsil ediyor.
- Besin: Her yılın başında köyün merkezinde belirli bir miktar yiyecek beliriyor. Şu an sabit bir asgari miktar var, köy büyüdükçe yiyecek kaynağı da orantılı olarak büyüyor. Ajanlar hayatta kalmak ve üremek için sınırlı yiyecek kaynakları uğruna rekabet etmek zorunda kalıyor.
- Ajanlar arası iletişim: Her ajanın köydeki diğer ajanlar ile konuşma yetisi var. Bir ajan bir grupla konuştuğunda o gruptaki her ajan, konuşmada başka kimlerin olduğunu görebiliyor.
- Savaş: Çatışmaların sonuçları Lanchester yasalarına göre belirleniyor.
- Ölüm: Ajanlar her yıl yaşlanıyor ve eninde sonunda ölüyor. Bir ajanın belirli bir yılın sonunda ölme olasılığı, ABD Sosyal Güvenlik İdaresi’nin yaşam tablosu kullanılarak belirleniyor. Bir ajan belirli bir süre yemek yemezse açlıktan ölüyor.
Simülasyon altyapısı:
- Simülasyonun akışı: Zaman sürekli değil. Simülasyon ayrık adımlarla ilerliyor. Her adımda yalnızca bir ajanın bir şey yapmasına izin veriliyor.
- Simülasyonun durumu: Her eylem ayrı bir git commit’i olarak kaydediliyor. Alternatif bir zaman çizgisi yaratmak istiyorsanız dalı çatallıyorsunuz.
- Web arayüzü: İnsanların simülasyonda olup bitenleri takip edebilmesi için. Her dünya çizgisi için basit bir başlat/duraklat tuşu var. Zaman çizgisinde değişiklik yapmak istiyorsanız arayüz yeterli değil, komut satırı komutlarını kullanın.
Gelecekte eklenebilecek özellikler:
- Şu an beş büyük kişilik özelliği, ajanların sistem komutlarındaki birer sayı ve birkaç açıklamadan ibaret. Peki ya açık kaynaklı bir model kullanıp simülasyondaki her modelin aktivasyonlarını, beş büyük özelliğin her birindeki puanına göre yönlendirsek (Anthropic’in şu iki yazısına bakın)? Böylece farklı kişiliklerin simülasyonu daha gerçekçi olurdu, çünkü ajanlar kişiliklerinin ne olduğunun farkında bile olmazdı.
- Simülasyonda zamanı sürekli hale getirmek daha gerçekçi sonuçlar elde etmemizi sağlar. Bu sürekli zaman çerçevesinin temeli olarak Gas City‘yi kullanabiliriz. Oradaki ajan “rolü” fikrini Tekrarkent’e uyarlayabiliriz.