Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Oyunda GPT ile AI Davranışları


razzRaziel

Öne çıkan mesajlar

aklıma bi fikir geldi bakalım siz ne diyeceksiniz.

oyunlar etkileşim konusunda çok sığ hissettiriyor genellikle. bunun özünde yapay zekanın elle hazırlanmış olması ve tüm olasılıkların yapımcının düşündüklerinden ibaret olması var. gpt kullanarak ai sandbox tarzı bir yaklaşım gerekiyor her ne kadar bug free olmasa da (hatta fallout'ta main quest char'ın ölmesi gibi game breaking yollara da sapabilir vs.). ama ai diyaloglarındaki gibi bi guardrail benzeri belli başlı kurallar çerçevesinde kalması sağlanabilir.

en serbest hissettirenler beni alıp götürüyor. hitman serilerini, prison architect mahkumları, sims karakterlerini örnek verebilirim. orda da çok limitli ama en azından karakterler bi nebze diğerlerinden daha serbestler ve girilebilecek etkileşim miktarı bunu pekiştiriyor. 

serbest ai dediğim, karakterin yan karakter olmaktan çıkması diyebiliriz. senin oyunun umrumda değil benim kendi hayatım var diyecek npc'ler yani. kendine özgü karakteri, ajandası, gündelik işleri, uzun vade işleri, diğer karakterlerle ilişkileri doğrultusunda değişen yaklaşımları ve benzer şekilde çoğaltılabilecek diğer ona özgü davranışlar bütünü. 

peki neden kolay değil? 

çünkü elle yapıyoruz. genelde behavior tree dediğimiz kondisyonlara göre davranış seçme methodu kullanılıyor. içiçe geçmiş ve birbirlerine göre belli başlı öncelikleri olan zilyon tane if-else blokları esasen. ama basit bir tepki için bile çok fazla kondisyon olduğu için çok hızlı bir şekilde karmaşıklaşabiliyor.

basit bir shooter oyunu davranışı için örnek ve örnek. hatta bunun oyunu da var, ben çok iyi ai yapardım diyene tavsiye, bunu oynayın o zaman anlarsınız neden bu kadar zor olduğunu.

 

velhasıl gelelim benim fikire.

dedim ki tüm bu seçimleri ve kondisyonları elle belirlemek yerine neden hepsini gpt'ye seçtirmeyelim. diyalog konusunda olduğu gibi ama diyalog yerine davranışlara gpt karar verecek.

yani gpt'ye zork oynatıcaz esasen. belki bilenler vardır, adventure oyunlarının atası. text bazlı bir oyun, sana çevrede neler olduğunu söylüyor ve sen komut girerek karakteri yönlendiriyorsun ve sana güncellenmiş halini aktarıyor. işte önüne ağaç çıktı ne yapıcan diyor, etrafından dolaş diyoruz ve tamam şimdi düzlüğe çıktın önünde bi ova var sağda bi külübe göründü diyor. tamam kulübeye git kapıyı çal diyoruz olaylar devam ediyor vs.

biz de gpt'ye karakterin base özelliklerini, önceki yaptıklarının geçmişini, etrafindeki objeleri ve karakterleri, onlarla olan ilişkilerini, ajandasını vs pushlayacaz ve karar vermeyi gpt'ye bırakıcaz. tabii ki belli başlı yapılabilecekler listesiyle. yani bıçak varsa bu bıçağı çantaya atma, birisine saplama, bi objeye atma vs vs tüm yapılabilecek ve oyunun izin verdiği aktiviteleri zaten biliyor olacak custom gpt ile. oyun da tüm bunları gelen komuta göre yapabiliyor olacak.

tüm reasoning gpt'te olacak yani ve verdiği kararlara bakıldığında bizi şaşırtmayı başarabiliyor çoğu zaman. süper random bir gameplay çıkacaktır, bazen oyun kilitlenebilir ama önemli değil sonuçta tekrar tekrar denenebilecek keyifli bir tecrübe sunacaktır.

teknik olarak yapabilite konusuna gelirsek; bende etraftak herşeyle kolaylıkla zilyon çeşit etkileşim kurmayı sağlayacak, karakterleri otomatik olarak bu etkileşimlere götürecek bir sistem hali hazırda var (kendi geliştirdiğim bi tool). geriye bir tek custom gpt ile bilgi alışverişi ve bunun sistematikleştirilmesi kalıyor. o da halledilir çok zor değil. ortaya oyuncuların ilgisini çekecek bir gameplay koymak gerekiyor.

mesela şu örneğe bakalım. şu eleman ünlü bir japon jazz bar'ı mini oyuna çevirmiş. içerde yapılabilecek bi kaç şey var.

https://old.reddit.com/r/Unity3D/comments/197jcac/𝐉𝐚𝐳𝐳_𝐁𝐚𝐫_𝐒𝐨𝐮𝐥_渋谷_based_on_a_real_vinyl_bar_in/

burda kontrolü gpt'ye versek ve etrafta seçilebilecek zilyon tane etkileşim komut bekliyor olsa.

pwrDfRm.png

ictxZV7.png

basit, ama bu sadece bir olasılık. oyuncu pek çok farklı harekette bulunabilir ve NPC aynı hareketlerde bile pek çok farklı davranışları seçebilir. öncelikle tüm yapılabilecekler listesini çıkartmak gerekiyor. sonra NPC'ye doğru düzgün bir karakter yükleyip en iyi sonuçları alacak şekilde gpt'ye aktarmak. geçmişi tutarak oyuncunun bara kaç defa geldiği, öncesinde neler yaptığı vs hepsini hatırlayacak. nasıl bir NPC karakteri olduğu da etkili tabii. şu an için sadece tek bir oda üzerinde konuşuyoruz tabii. o sırada başka bir NPC bara gitmek istediğine karar verdiği için içeri girebilecek vs.

sadece tek bir odada bile olabilecek çılgın olasılıklar var. ve yapılabilirliği konusunda ok görünüyor gözümde. bi minyatür demo lazım 2-3 mekanlık ve bi kaç karakterlik.

sonra düşün oyunda böyle bir yere giriyorsun ve neler olabileceği konusunda hiç bir fikrin yok. deneyimliyorsun, sonra tekrar giriyorsun ve yine ne olacağını bilmiyorsun çılgın sayıda olasılık var ve tüm muhakemeyi gpt yapıyor. random değil, hepsinin mantıklı bir nedeni var.

ne düşünüyonuz bu konuda? demek istediğim, yeterince özgürlük sağlanırsa şu ufak odada bile hatrı sayılı zaman harcanabilir ve oyuncuyu ekrana kitleyebilir. tekrar tekrar girip farklı şeyler denemesini sağlayabilir. 30 farklı obje ve bunların 100'den fazla farklı etkileşim iile kullanılabilir olduğunu düşün sadece şu küçük oda içerisinde.

yapacağımdan değil de bi beyin fırtınası çevirelim belki sarar ya da neden epic fail oldğunu anlarız heh. ne gibi sorunlar çıkabilir? ne kötü olabilir, ne güzel olabilir?

  • Like 1
Link to comment
Sosyal ağlarda paylaş

böyle bir deney anlatılmıştı geçen yıl:

yapılabilir herhalde çünkü bu deney anlattığına çok benzer geldi bana. hatta sanırım auto gpt vardı daha büyük bir hedef için kendini promptlayarak sonuca ulaşan. bence bu işi bir oyunda ilk düzgün yapabilen çığır açacak zaten.

Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici

Bu dediklerinin hepsini yapacak ve oyuna aktaracak teknoloji şu anda var zaten. Daha önce de benzer bir konuda konuşmuştuk. Şu anda görünen temel engeller de ortada:

  1. Alignment: Epey ilerleme var bu hususta ama olay sadece etik ile bitmiyor. Karakterin bildiklerini de sınırlamak gerekli. Şu anda bu tam değil. En etik takılan Claude bile biraz uğraşınca porno yazıyor sana. Uğraşmaya gerek bile yok, internette bakarsan RP yaparlarken kendi kendisine şiddet, cinayet, intihar gibi olaylara giriyor kullanıcı istemeden. Çözümü var ama yine de. LLM'i LLM'e kontrol ettirme gibi şeyler filan var.
  2. Kaynak. Kullanıcı tarafında şu anda GPU kullanamazsın. API gerekli. 7B modeller bu dediklerin için en azından yeterli olanlar. Şimdi merak edip aynı soruyu farklı farklı modellere sordum, Mistral-Tiny yeterli kalitede cevaplar veriyor, o da €0.5 1M token için. Tam immersive kalite için ama Mistral-Small ile yeterli kalite aldım (Local olarak kullandığım da bu), o da 1M token için €1. Bir oyuncu bir oyun boyunca 1M token harcar mı bilmiyorum ama karakterlerin geçmişi, bildikleri, alignment filan dersen harcar büyük ihtimalle. Offline yapsan sorun çözülür ama iş 7B'yi VRAM'a yüklemekle bitmiyor, bunlar çalışırken 4090'da bile %100 kaynak kullanıyorlar. Eğer sınırlarsan da yavaş oluyorlar. Gerektiğinde konuşma hızına indirebilirsin ama.
  3. API olayı var işte, fiyatları söyledim. Bu kaynağı çözer, ama oyunculardan çok tepki alır. En başta oyun hep online olmalı, ikinci olarak büyük ihtimalle oyunları oynamak için ek para ödemen gerekecek. Mistral-Small olsa bile işte ek maliyet yüklüyor. Oyuna özel sunucunun hep online olması gerekmiyor bu arada, AI API online olduğu sürece oynayabilirsin, herşeyi localden yollarsın. Bu da kullanılan token sayısını arttırır ama her şekilde oyuna özel LLM'den daha hesaplı, astronomik daha hesaplı. Ama bu da alttaki riske getiriyor bizi.
  4. Alignment yine. Bu olay modlamayı filan çok etkiler. Senin API'ye erişmene izin vermeleri mümkün değil, bu da DRM gibi şeyleri arttıracaktır.

Çözümü söyleyeyim: PS6 çıkarken Nvidia yeni GPU'larına sırf LLM çalıştırmak için chip koyar, render işine dokunmayacak. Oyunlar da onu kullanır. Yani sorun donanım işte şu anda, ve alignment tabii.

  • Like 1
Link to comment
Sosyal ağlarda paylaş

@Sam hatırladım o video, evet aynı o şekil. onların demoda karakterler etrafta geziniyo sadece ama. tam etkisini gösteremiyor. 3d karakterlerin etraftaki objelerle etkileşime geçtiğini görürsek etkisi baya bi katlar kendini.

 

@GERGE aslında benim esas amacım diyaloglar değil o yüzden bunların bir kısmına gerek yok (diyaloglar da olsa tuzu biberi olur tabii). LLM'i hizaya sokmaya gerek yok ve çok hızlı çalışmasına da gerek yok. Yani hızlı tepki yine gerekiyor karakterin bir olaydan sonra hemen harekete geçmesini gerektirecek durumlarda ama bunlar işin anca yarısı, geri kalan kısımda karakterler kendi idle aktiviteleri ile uğraşıyo olacakları için kısa gecikmeler önemsiz olacak. anca işte oyuncu bir olay yapıp hemen tepki görmek istediği durumlarda hız gerekli. ne bileyim oyuncu huzursuzluk çıkardığında npc hemen kızıp gelip tokatı basması gerektiğinde mesela. hele ki oyuncu etraflarında değilse eski model geleneksel AI'a geçiş yaparlar ve yaptıklarını log tutarlar LLM versiyon için. bu hem API kullanımını da optimize eder.

alignment konusunda dediğim gibi zaten sadece oyunun izin verdiği etkileşimler olacağı için LLM otomatikman kısıtlamış olacak. Diyalog olmazsa yani.

 

zaman ve motivasyon bulursam bi deneyesim var.

Link to comment
Sosyal ağlarda paylaş

GERGE, 29.01.2024 00:26 tarihinde dedi ki:

Çözümü söyleyeyim: PS6 çıkarken Nvidia yeni GPU'larına sırf LLM çalıştırmak için chip koyar, render işine dokunmayacak. Oyunlar da onu kullanır. Yani sorun donanım işte şu anda, ve alignment tabii.

Ben de bunu diyecektim. Yani düz GPU'lar yerine daha purpose built AI modülleri üzerinden bir çalışma olacağını düşünüyorum ileride. PC'lerde eskiden GPU accelerator kartları vardı ya onun gibi AI kartları olabilir. Keza mobilde de yine sadece AI kasan ve o işe bakan modüller çıkacaktır. Onlar olmadan local LLM'in halka inmesi çok zor görünüyor.

Lokal olmasın remote olsun dersek de sıkıntı şu: oyunu oynadığın kadar masraf çıkan bir iş modelinden bahsediyorsun. Adam 50 dolara oyunu aldı, 1 tur bitirdi atıyorum 10 dolarlık API call çıktı. 10 kere tekrar oynamaya karar verirse 50 dolar zarardasın. Tüm metriklerin "oyuncuya mümkün olduğunca oyunda vakit geçirtmek" olan bir sistemde bu kabul edilemez bir veri.

Yoksa fikir güzel bir fikir. Mesela half life oynarken hacı abi ne deneyi yapıyonuz siz diye muhabbete girmek isterdim. Amma velakin işte etiği çözsek bile teknik altyapıda tıkanıyoruz şu an için.

  • Like 1
Link to comment
Sosyal ağlarda paylaş

diğer başlıkta da yazmıştım da buradaki durum henüz teknolojinin en başı, llm'lerin kompleksitesinin mevcut düzeyde seyretmesi kafi olur mu yoksa daha da büyümesi gerekir mi teknik kapasitesinin, ana mesele o bence. oyunlarda midi değil de wav filan ekleyebilmek için yıllar geçti ama o noktaya gelindikten sonra daha da şişmesi gerekmedi, 25 yıldır aynı teknoloji yettiği için bugün artık bilgisayar tırnağının ucuyla yapıyor. bugünkü birkaç gb'lık modeller yeterse bu yeni çıkmaya başlayan cpu'ların ai accelerator kısımları bilgisayarın ram'iyle yapabilir hale gelir birkaç yıla. nvidia physx filan gpu kullanacak diyorduk hop o iş aradan çıktı kimse farketmeden, cpu hallediyor bildiğim modern fizik motorlarını. bu llm kısmı da öyle olabilir bu onyıl sonu itibariyle.

ha yok büyümeye devam etmesi gerekirse o zaman cloud'a bağımlı kalır ama oyun için gerekecek bir modelin günümüzdeki genel maksatlı modelden çok daha büyümesi veya ağırlaşması gerekeceğini sanmıyorum. mevcut halindeki kabiliyeti bile günümüzün önceden scriptli oyunlarının pabucunu dama atmaya yeterli olur. ben uzun vadede teknolojik olarak sıkıntı çıkacağını sanmam ama abonelikle söğüşleme temelli iş anlayışı yapay sorun çıkarabilir.

Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici

GB olayı çözülemez. O GB aletin bildiği bilgilerin toplamı, sadece Transformer değil, şu anda bilgi olmadan çalışabilecek bir sistemin teorisi bile yok. İnsan beyni gibi zaten, anlamak için bilgiye ihtiyacı var.

Ama NES 2kb RAM ile geldi, SNES 128kb. İlk nesil biri, biri ilk modern kalitede oyun sunan ikinci nesil (A Link to the Past, Chrono Trigger, Earthbound, Castlevania IV... bunlar bugün bile çıksa oynanacak oyunlar. Sadece grafikleri ve çözünürlükleri daha iyi olur.). Transformer olayının başındayız daha dediğin gibi. Benim düşündüğüm ama hala aynı. 7B bir LLM oyunlar için özel olarak eğitilirse yeterli olur, CPU'lar filan da bunu çalıştıracak şekilde gelir. Ama local versiyonunu her oyun kullanma olmaz, çoğu firma online çalışır, oyuncuya kontrolü bırakmak istemezler.

Ama online olayı daha farklı gidecek gibi düşünüyorum. Ubisoft'taki adamın geçen dediği yola gidiyoruz gibi. Oyunlar zaten yavaş yavaş üyelik tabanlı olmaya başladı. Her oyun için ayrı LLM de gerekmiyor, tek bir tane oyun konsepti için eğitilmiş 7B şu anda bile yeterli. Yani Ubisoft+ aldığımızda sadece oyuna değil, AI API'ye de erişim alacağız gibi düşünün.

Satın alınan oyunlar için de local LLM çalışabilir, ama standardizasyon lazım onun için. DRM de lazım tabii.

Niye gideceğiz belli değil. Ama en mantıklı bana gelecekte cloud gaming ile birleştilen üyelikler gibi geliyor. Cloud gaming olmasa da üyelik olayı gelir gibi. Firmaların istediği gibi tam.

Link to comment
Sosyal ağlarda paylaş

  • 2 hafta sonra ...

bunu dün deneyeyim dedim ve chatgpt'nin api'yı elimdeki projelerden birine entegre ettim.

elimdeki projede karakter tüm etkileşimlere kendisi gidip kullanabiliyor ama etkileşimi bizim seçip kontrol etmemiz gerekiyordu.

entegrasyon sonrası chatgpt'ye etraftaki bu etkileşimlerin neler olduğunu söylüyorum ve verdiğim komuta göre bunlardan birini seçip karaktere başlatma komutu veriyor. tek yaptığımız bişeyler yazmak (tabii bi de player karakter olduğu için kamerayı kontrol etmek), geriye kalan tüm kontrol gpt'de.

https://streamable.com/sd57wl

açıkçası son derece hızlı çalışıyor şaşırttı. istersem diyalog da ekleyebilirim, bişiler yaparken karakterin ne düşündüğünü belli bir rol ile verebilir falan.

 

şimdi bundan 3-5 karakter koysak baya baya npc karakterler olur otonom takılan.

aklımda sürekli güncelleme çekmek var, mesela 10sn'de bir tüm npc'ler son durumu güncelleyecekler. bi yandan da player'ın ne yaptıkları hakkında bilgi sahibi de olmaları gerekiyor. işte ortamda nereye gitti, şu an napiyor, hangi objeyi kullanıyor vs. bir yandan da çevre bilgisi de vermek gerekiyor, işte hangi obje nereden alındı, kim aldı, ne yapıyor, nereye götürülüyor vs.

ama hep koordinatlar falan da gerekiyor. yani aslında biraz daha kompeks ilk düşündüğümden. en basitinden gpt bi etkileşimi kullanmaya karar verdiğinde etrafta ondan kaç tane var, hangisini ve neden onu kullanacağını falan da bilmeli. yani işin özü, çevre farkındalığı token ve dolayısıyla masrafı da arttırıyor. diğer npc'ler de tüm bunları bilgileri alıyor olacak tabii her seferinde, o da katlıyor bir yandan. e tabii etkileşim miktarı da aynı şekilde.

neyse bi gazlanırsam bi ara belli bi tema ile ufak bi demo çakabilirim. bi kaç npc ve özel rolleriyle ilginç bişi çıkabilir.

  • Like 1
Link to comment
Sosyal ağlarda paylaş

@DoruK

senin şu yazdığın mesela 19 token. gpt4 için $0.01 (1k token), benim kullandığım gpt3.5turbo $0.0005 (1k token).

ser sorguda 300-400 token yiyor ama şu an tüm etkileşimleri her seferinde gönderiyorum. tek sefer gönderip sonra ekle çıkart yapılmalı falan.

ama yine de baya basit bir test bu

  • Tesekkurler 1
Link to comment
Sosyal ağlarda paylaş

o daha pahalıya geliyor o zaman. gpt3.5 1m token için $0.5

ama yok ya kasmıcam muhtemelen şu şartlarda. npc ai'ı için sürekli 2-3k token ile sorgulamak gerekecek. bi de normal ai da olması lazım, oyuncu 10 metre falan yaklaşırsa gpt'ye geçecek.

yani hem kendin traditional ai kasacaksın, hem de gpt için adam gibi sistem hazırlıcaksın.

Link to comment
Sosyal ağlarda paylaş

GERGE, 29.01.2024 21:51 tarihinde dedi ki:

GB olayı çözülemez. O GB aletin bildiği bilgilerin toplamı, sadece Transformer değil, şu anda bilgi olmadan çalışabilecek bir sistemin teorisi bile yok. İnsan beyni gibi zaten, anlamak için bilgiye ihtiyacı var.

Bunu compression ile falan çözmek mümkün olmaz mı acaba diye düşünüyorum bazen. Olsa yaparlardı kesin ama neden olmuyor acaba teknik açıklaması nedir merak ettim. Sonuçta text based bir şeyden bahsediyoruz.

Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici

Yapılıyor, quantization var. Ama dediğin gibi compression değil. LLM'in beyninin bazı kısımlarını kesip atıyorlar, en gereksiz bağlantıları. Daha iyi yöntemleri de bulunur ilerde, yeni her şey. Ama compression değil işte bu, lobotomy.

Link to comment
Sosyal ağlarda paylaş

roket adam, 11.02.2024 00:01 tarihinde dedi ki:

Bunu compression ile falan çözmek mümkün olmaz mı acaba diye düşünüyorum bazen. Olsa yaparlardı kesin ama neden olmuyor acaba teknik açıklaması nedir merak ettim. Sonuçta text based bir şeyden bahsediyoruz.

Information theory.

Bir bilgiyi, bilginin özünü kaybetmeden sıkıştırabileceğin boyut belli. Daha fazlasına küçültmek = bilgi kaybı.

Başlığın istediğini de yaparsın GPT'ye falan para vermeye gerek yok. Open source/bedava olanları kullanın (llama2). Hatta 3.5 kullanacağınıza dialog ağacı falan hazırlayın daha iyi. GPT-3.5 ulaşabileceğiniz, paralı ve aynı zamanda en rezil LLM.

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...