Westworld burada! Stanford'un popüler "kasabası" açık kaynaklıdır, 25 yapay zeka ajanı birbirlerine aşıktır ve arkadaş edinirler|Dadı düzeyinde eğitimlerle
Hazır olun, tüm AI topluluğunda bir sansasyon yaratan Stanford Smart Town artık resmi olarak açık kaynak!
proje adresi:
Bu dijital "Batı Dünyası" sanal sanal kasabasında okullar, hastaneler ve aileler var.
25 AI ajanı burada çalışmak, sohbet etmek, sosyalleşmek, arkadaş edinmek ve hatta aşık olmakla kalmaz, aynı zamanda her Ajanın kendi kişiliği ve arka plan hikayesi vardır.
Ancak bir simülasyonda yaşadıklarından haberleri yoktur.
Nvidia Kıdemli Bilim Adamı Jim Fan yorum yaptı -
Stanford Agent Town, 2023'teki en heyecan verici AI Agent deneylerinden biridir. Sıklıkla tek bir büyük dil modelinin ortaya çıkan yeteneklerinden bahsediyoruz, ancak şimdi birden çok AI aracısıyla durum daha karmaşık ve büyüleyici.
Bir yapay zeka grubu, tüm uygarlığın evrim sürecini anlayabilir.
Şimdi, etkilenecek ilk şey oyun alanı olabilir.
Kısacası, ileride sonsuz sayıda yeni olasılık var!
Netizen: Oyun üreticileri, ne demek istediğimi anlıyor musunuz?
Pek çok insan bu Stanford makalesinin AGI'nin başlangıcı olduğuna inanıyor.
Çeşitli RPG ve simülasyon oyunlarının bu teknolojiyi kullanacağı düşünülebilir.
Netizenler de çok heyecanlıydı ve beyinleri sonuna kadar açıktı.
Bazıları Pokémon izlemek ister, bazıları cinayet dedektif hikayeleri izlemek ister ve bazıları aşk varyete şovları izlemek ister...
"Yapay zeka ajanları arasındaki aşk üçgenini görmek için sabırsızlanıyorum."
"Animal Crossing'in tekrarlayan, kasvetli diyalogları ve tüm köylüler tarafından paylaşılan tek boyutlu kişilik sistemi çok hayal kırıklığı yaratıyor. Nintendo, öğren şunu!"
"Sim'ler bunu aktarabilir mi?"
"God Realm" gibi klasik bir RPG oyununda AI'nın NPC'de çalıştığını görürseniz, tüm oyun deneyimi alt üst olur! "
Bazı insanlar ayrıca, bu teknolojinin, çalışanların farklı çalışma ortamları/süreç değişiklikleri ile nasıl etkileşime girdiği gibi kurumsal alanda birçok uygulama senaryosuna sahip olduğunu da hayal eder.
Tabii bazı insanlar dedi ki, neden heyecanlanıyorsun? Aslında böyle bir simülasyonda yaşıyoruz ama dünyamız daha fazla bilgi işlem gücüne sahip.
Evet, bu sanal dünyayı yeterince büyütürsek kesinlikle kendimizi görebiliriz.
### Karpathy: AI ajanları bir sonraki sınırdır
Daha önce, eski Tesla direktörü ve OpenAI gurusu Karpathy, AI ajanlarının artık geleceğin en ileri yönü olduğunu söylemişti.
OpenAI ekibi son beş yılını başka yerlerde geçirdi, ancak Karpathy artık "Ajanların yapay zeka için bir tür geleceği temsil ettiğine" inanıyor.
Bir makale büyük bir dil modelini eğitmenin farklı bir yolunu önerirse, OpenAI içindeki Slack grubundan biri şöyle diyecektir: "İki buçuk yıl önce denediğim bu yöntem işe yaramadı."
Bununla birlikte, bir makaleden ne zaman bir AI ajanı çıksa, tüm meslektaşlar çok ilgilenir.
Karpathy bir zamanlar AutoGPT'yi hızlı mühendisliğin bir sonraki sınırı olarak adlandırmıştı.
"Westworld"de 25 yapay zeka ajanı
Amerikan dizisi "Western World" de, önceden belirlenmiş bir hikayesi olan bir robot bir tema parkına konur, insan gibi davranır ve ardından hafızasını sıfırlar ve yeni bir günde kendi ana hikayesine konur.
Ve bu yılın Nisan ayında, Stanford ve Google'dan araştırmacılar, aslında 25 yapay zeka ajanının hayatta kalabileceği ve karmaşık davranışlarda bulunabileceği sanal bir kasaba inşa ettiler.
Kağıt adresi:
Mimari
Aracılar oluşturmak için araştırmacılar, büyük dil modelini genişleten ve aracının deneyimini doğal dilde depolayabilen yeni bir mimari önermektedir.
Zamanla bu anılar, aracının eylemlerini planlamak için dinamik olarak geri alabileceği daha yüksek düzeyli yansımalar halinde sentezlenir.
Sonunda, kullanıcılar kasabadaki 25 Temsilcinin tümü ile etkileşim kurmak için doğal dili kullanabilirler.
Yukarıdaki gibi, üretici aracının mimarisi bir "geri alma" işlevi uygular.
Bu işlev, aracının mevcut durumunu girdi olarak alır ve dil modeline geçmek için bellek akışının bir alt kümesini döndürür.
Öte yandan geri alma, aracının nasıl hareket edeceğine karar verirken göz önünde bulundurduğu önemli faktörlere bağlı olarak birçok olası uygulamaya sahiptir.
Üretken aracı mimarileri için merkezi bir zorluk, saklanması gereken çok sayıda olayın ve hatıranın nasıl yönetileceğidir.
Bu sorunu çözmek için, mimarinin çekirdeği, aracının tüm deneyimini kaydeden bir veritabanı olan bellek akışıdır.
Ajan, eylemleri planlamasına, doğru yanıt vermesine yardımcı olan bellek akışından ilgili anıları alabilir ve her eylem, gelecekteki eylemleri tekrar tekrar iyileştirmek için bellek akışına geri beslenir.
Buna ek olarak, çalışma aynı zamanda ikinci bir bellek türü olan yansımayı da tanıttı. Yansıtma, son deneyimlere dayanan bir ajan tarafından üretilen üst düzey soyut düşüncedir.
Bu çalışmada, yansıtma periyodik olarak tetiklenen bir süreçtir ve yansıtma mekanizması yalnızca aracı bir dizi son olayın önem puanlarını yargıladığında ve birikim belirlenen eşiği aştığında etkinleştirilecektir.
Üretken etmenler, makul planlar oluşturmak için yukarıdan aşağıya yinelemeli olarak daha fazla ayrıntı üretir.
Ve bu planlar başlangıçta sadece kabaca o gün ne yapılacağını anlatıyordu.
Planın uygulanması sırasında, üretici etmen sürekli olarak çevredeki ortamı algılar ve algılanan gözlemleri bellek akışında depolar.
Gözlemleri ipucu olarak kullanarak, dil modelinin aracının bir sonraki hamlesine karar vermesine izin verin: mevcut planla devam edin veya başka türlü yanıt verin.
Deneysel değerlendirmede, araştırmacılar uçtan uca bir değerlendirmenin yanı sıra bu çerçevenin kontrollü bir değerlendirmesini gerçekleştirdiler.
Kontrol değerlendirmesi, aracının bağımsız olarak makul bireysel davranış üretip üretemeyeceğini anlamaktır. Uçtan uca değerlendirme, ajanın ortaya çıkma kabiliyetini ve kararlılığını anlamaktır.
Örneğin, Isabella bir Sevgililer Günü partisi planlar ve herkesi davet eder. 12 ajandan 7'si hala değerlendiriliyor (3'ünün başka planları var ve 4'ünün hiçbir fikri yok).
Bu bağlantı, insan etkileşimi moduna çok benzer.
### Gerçek bir insan gibi etkileşim kurun
Smallville adındaki bu sandbox dünya kasabasında alanlar işaretlenmiştir. Kök düğüm tüm dünyayı, alt düğümler alanları (evler, kafeler, dükkanlar) ve yaprak düğümler nesneleri (masalar, kitap rafları) tanımlar.
Temsilci, dünyanın gördüğü kısımlarını yansıtan bir alt grafiği hatırlar.
Araştırmacılar, her ajanın kimliğini, meslekleri ve diğer ajanlarla ilişkileri de dahil olmak üzere bir tohum hafızası olarak tanımlamak için doğal bir dil programladılar.
Örneğin, ajan John Lin'in tohum hafızası şöyledir -
John Lin, her zaman ilaçları müşteriler için daha erişilebilir hale getirmenin yollarını arayan yardımsever bir eczane sahibidir.
John Lin'in eşi Mei Lin üniversitede profesör ve oğlu Eddy Lin müzik teorisi okuyor.Birlikte yaşıyorlar.John Lin ailesini çok seviyor.
John Lin, yan taraftaki yaşlı çift Sam Moore ve Jennifer Moore'u birkaç yıldır tanıyor ve John Lin, Sam Moore'un nazik bir insan olduğunu düşünüyor.
John Lin, komşusu Yuriko Yamamoto'ya çok yakındır. John Lin komşuları Tamara Taylor ve Carmen Ortiz'i tanıyordu ama onlarla hiç tanışmamıştı.
John Lin ve Tom Moreno, yerel siyaseti vb. tartışmayı seven eczacı meslektaşları ve arkadaşlarıdır.
Aşağıdakiler John Lin'in bir sabahıdır: saat 6'da uyanır, dişlerini fırçalamaya başlar, duş alır, kahvaltı eder ve işe gitmeden önce karısı Mei ve oğlu Eddy ile tanışır.
Bu sayede simülasyon başladığında her etmen kendi tohum hafızasına sahip olur.
Bu ajanlar birbirleriyle sosyal olarak etkileşime girerler. Birbirlerini fark ettiklerinde bir konuşma başlayabilir.
Zamanla, bu aracılar yeni ilişkiler kurar ve diğer aracılarla olan etkileşimlerini hatırlar.
İlginç bir hikaye, simülasyonun başlangıcında, bir ajanın bir Sevgililer Günü partisi vermek üzere başlatılmasıdır.
Sonrasında yaşananlar silsilesinde başarısızlık noktaları olabilir, vekil bu niyetinde ısrar etmeye devam etmeyebilir, başkalarına anlatmayı unutmayabilir, hatta gelmeyi bile unutabilir.
Şans eseri, simülasyonda, Sevgililer Günü partisi gerçekten gerçekleşti ve birçok ajan bir araya geldi ve ilginç etkileşimler yaşadı.
Dadı Seviyesi Eğitimi
Yapılandırma Ortamı
Ortamı yapılandırmadan önce, OpenAI API anahtarını içeren bir utils.py dosyası oluşturmanız ve gerekli paketleri indirmeniz gerekir.
1. Adım. Yardımcı Programlar dosyası oluşturun
reverie/backend_server klasöründe (reverie.py'nin bulunduğu klasör), yeni bir utils.py dosyası oluşturun ve aşağıdaki içeriği kopyalayıp dosyaya yapıştırın:
OpenAI API Keyopenai_api_key = ""# Put your namekey_owner = ""maze_assets_loc = "../../environment/frontend_server/static_dirs/assets"env'yi kopyalayıp yapıştırın _matrix = f"{labirent_assets_loc}/the_ville/matrix"env_visuals = f"{labirent_assets_loc}/the_ville/visuals"fs_storage = "../../ ortam/frontend_server/storage"fs_temp_storage = "../../environment/frontend_server/temp_storage"collision_block_id = "32125"# Ayrıntılı hata ayıklama = True
OpenAI API anahtarınız ile değiştirilecek ve adınızla değiştirilecektir.
2. Adım.quirements.txt dosyasını yükleyin
Gereksinimler.txt dosyasında listelenen her şeyi kurun (önce bir sanal ortam kurmanızı önemle tavsiye ederiz).
Ekip şu anda Python 3.9.12 üzerinde test yapmıştır.
Simülasyonu çalıştırın
Yeni bir simülasyon çalıştırmak için aynı anda iki sunucu başlatmanız gerekir: ortam sunucusu ve aracı simülasyon sunucusu.
Adım 1. Ortam sunucusunu başlatın
Ortam bir Django projesi olarak uygulandığından, bir Django sunucusunun başlatılması gerekir.
Bunu yapmak için önce komut satırında ortam/ön uç_sunucuya (manage.py'nin bulunduğu yer) gidin. Ardından aşağıdaki komutu çalıştırın:
python manager.py çalıştırma sunucusu
Ardından, favori tarayıcınızda ziyaret edin.
"Ortam sunucunuz çalışıyor ve çalışıyor" istemini görürseniz, sunucu normal çalışıyor demektir. Simülasyonu çalıştırırken ortam sunucusunun çalışmaya devam ettiğinden emin olun, bu nedenle bu komut satırı sekmesini açık tutun.
(Not: Chrome veya Safari önerilir. Firefox bazı ön uç hatalarıyla karşılaşabilir, ancak gerçek simülasyonu etkilememelidir.)
2. Adım. Sahte sunucuyu başlatın
Başka bir komut satırı penceresi açın (1. adımda kullandığınız ortam sunucusu hala çalışıyor ve dokunulmaması gerekiyor). Reverie/backend_server konumuna gidin ve sahte sunucuyu başlatmak için reverie.py'yi çalıştırın:
piton rüya.py
Bu noktada, aşağıdakileri soran bir komut satırı istemi görünecektir: "Çatallı simülasyonun adını girin: ".
Örneğin, şimdi üç ajan, Isabella Rodriguez, Maria Lopez ve Klaus Mueller içeren bir simülasyon başlatmak istiyoruz ve ardından şunu giriyoruz:
base_the_ville_isabella_maria_klaus
Ardından komut istemi soracaktır: "Yeni simülasyonun adını girin: ".
Şu anda, mevcut simülasyonu temsil etmek için yalnızca isteğe bağlı bir ad girmeniz gerekir ("test simülasyonu" gibi).
test simülasyonu
Öykünücü sunucusunu çalışır durumda tutun. Bu aşamada, aşağıdaki istemi gösterecektir: "Seçeneği girin"
Adım 3. Simülasyonu Çalıştırın ve Kaydedin
Tarayıcınızda simulator_home'a gidin ve sekmeyi açık tutun.
Artık şehrin bir haritasını ve haritada aktif olan ajanların bir listesini göreceksiniz ve haritada hareket etmek için klavye oklarını kullanabilirsiniz.
Simülasyonu çalıştırmak için, simülasyon sunucusunda "Seçeneği girin" isteyen aşağıdaki komutu girmeniz gerekir:
koşmak
Yukarıdakilerin, simüle edilecek oyun hamlelerinin sayısını temsil eden bir tamsayı ile değiştirilmesi gerektiğini unutmayın.
Örneğin, 100 adımlık bir oyunu simüle etmek istiyorsanız, run 100'e girersiniz. Burada bir oyun adımı, oyundaki 10 saniyeyi temsil eder.
Şimdi simülasyon çalışacak ve ajanın harita üzerinde hareket etmesini tarayıcıda izleyebilirsiniz.
Çalıştırma tamamlandığında, "Seçeneği girin" istemi tekrar görünecektir. Bu noktada run komutuna tekrar girip istediğiniz oyun adımı sayısını belirterek veya kaydetmeden çıkmak için exit, kaydedip çıkmak için fin yazarak simülasyona devam edebilirsiniz.
Simülasyon sunucusunu bir sonraki çalıştırışınızda, kaydedilen simülasyona sadece simülasyonun adını vererek erişebilirsiniz. Bu şekilde, simülasyonu kaldığınız yerden yeniden başlatabilirsiniz.
Adım 4. Tekrar Simülasyonu
Çalışan bir simülasyonu tekrar oynatmak için ortam sunucusunu çalıştırın ve tarayıcınızda şu adrese gidin: replay//.
nerede, yeniden oynatılmakta olan simülasyonun adıyla değiştirilmelidir ve yeniden oynatmanın başlatılacağı tamsayı zaman adımı değiştirilecektir.
Adım 5. Demo Simülasyonu
Tekrarda tüm karakter spritelarının aynı göründüğünü görebilirsiniz. Bunun nedeni, yeniden oynatma özelliğinin öncelikle hata ayıklama amaçlı olması ve sahte klasörün boyutunu veya görsellerini optimize etmeye öncelik vermemesidir.
Karakter sprite'ları olan bir simülasyonu düzgün bir şekilde göstermek için, önce simülasyonu sıkıştırmak gerekir. Bunu yapmak için, hayal dizininde yer alan sıkıştır_sim_storage.py dosyasını açmak için bir metin düzenleyici kullanın. Ardından, sıkıştırma işlevi, girdi olarak hedef modelin adıyla yürütülür. Bu şekilde simülasyon dosyası sıkıştırılacak ve böylece sunuma hazır olacaktır.
Demoyu başlatmak için lütfen tarayıcınızda şu adresi açın: demo///.
Dikkat edin ve yukarıda belirtilenle aynı anlama sahiptir. 1'in en yavaş ve 5'in en hızlı olduğu sunum hızını kontrol etmek için kullanılabilir.
Özel Simülasyon
Taklitleri özelleştirmek için iki seçeneğiniz var.
Yöntem 1: Aracı geçmişini yazın ve yükleyin
Birincisi, aracıyı simülasyonun başında benzersiz bir geçmişle başlatmaktır.
Bunu yapmak için 1) temel simülasyonlardan biriyle başlamanız, 2) ajan geçmişini yazıp yüklemeniz gerekir.
Adım 1. Temel simülasyonu başlatın
Depoya iki temel simülasyon dahildir: base_the_ville_n25 (25 aracı) ve base_the_ville_isabella_maria_klaus (3 aracı). Yukarıdaki adımlar takip edilerek temel simülasyonlardan biri yüklenebilir.
Adım 2. Geçmiş dosyasını yükleyin
Ardından, "Seçeneği girin" istendiğinde, ajan geçmişini aşağıdaki komutla yüklemeniz gerekir:
call -- yükleme geçmişi the_ville/.csv
burada, mevcut geçmiş dosyasının adıyla değiştirilmesi gerekiyor.
Depoya iki örnek geçmiş dosyası dahildir: agent_history_init_n25.csv (base_the_ville_n25 için) ve agent_history_init_n3.csv (base_the_ville_isabella_maria için) _klaus). Bu dosyalar, her aracı için bellek kayıtlarının bir listesini içerir.
Adım 3. Daha fazla özelleştirme
Kendi geçmiş dosyalarınızı yazarak başlatmayı özelleştirmek için dosyaları şu klasöre yerleştirin: ortam/frontend_server/static_dirs/assets/the_ville.
Özel geçmiş dosyasının sütun biçimi, ekli örnek geçmiş dosyasıyla eşleşmelidir. Bu nedenle yazar, depoda bulunan dosyaları kopyalayıp yapıştırarak işleme başlamanızı önerir.
2. Yöntem: Yeni bir temel model oluşturun
Daha derinlemesine özelleştirme için kendi temel simülasyon dosyanızı yazmanız gerekir.
En basit yol, mevcut temel öykünme klasörünü kopyalayıp yapıştırmak, ardından yeniden adlandırıp gereksinimlerinize göre düzenlemektir.
Referans malzemeleri:
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Westworld burada! Stanford'un popüler "kasabası" açık kaynaklıdır, 25 yapay zeka ajanı birbirlerine aşıktır ve arkadaş edinirler|Dadı düzeyinde eğitimlerle
Kaynak: "Xinzhiyuan" (ID: AI_era), yazar: Xinzhiyuan
Hazır olun, tüm AI topluluğunda bir sansasyon yaratan Stanford Smart Town artık resmi olarak açık kaynak!
Bu dijital "Batı Dünyası" sanal sanal kasabasında okullar, hastaneler ve aileler var.
25 AI ajanı burada çalışmak, sohbet etmek, sosyalleşmek, arkadaş edinmek ve hatta aşık olmakla kalmaz, aynı zamanda her Ajanın kendi kişiliği ve arka plan hikayesi vardır.
Ancak bir simülasyonda yaşadıklarından haberleri yoktur.
Şimdi, etkilenecek ilk şey oyun alanı olabilir.
Kısacası, ileride sonsuz sayıda yeni olasılık var!
Netizen: Oyun üreticileri, ne demek istediğimi anlıyor musunuz?
Pek çok insan bu Stanford makalesinin AGI'nin başlangıcı olduğuna inanıyor.
Netizenler de çok heyecanlıydı ve beyinleri sonuna kadar açıktı.
Bazıları Pokémon izlemek ister, bazıları cinayet dedektif hikayeleri izlemek ister ve bazıları aşk varyete şovları izlemek ister...
"Yapay zeka ajanları arasındaki aşk üçgenini görmek için sabırsızlanıyorum."
Daha önce, eski Tesla direktörü ve OpenAI gurusu Karpathy, AI ajanlarının artık geleceğin en ileri yönü olduğunu söylemişti.
OpenAI ekibi son beş yılını başka yerlerde geçirdi, ancak Karpathy artık "Ajanların yapay zeka için bir tür geleceği temsil ettiğine" inanıyor.
Bununla birlikte, bir makaleden ne zaman bir AI ajanı çıksa, tüm meslektaşlar çok ilgilenir.
"Westworld"de 25 yapay zeka ajanı
Amerikan dizisi "Western World" de, önceden belirlenmiş bir hikayesi olan bir robot bir tema parkına konur, insan gibi davranır ve ardından hafızasını sıfırlar ve yeni bir günde kendi ana hikayesine konur.
Mimari
Aracılar oluşturmak için araştırmacılar, büyük dil modelini genişleten ve aracının deneyimini doğal dilde depolayabilen yeni bir mimari önermektedir.
Zamanla bu anılar, aracının eylemlerini planlamak için dinamik olarak geri alabileceği daha yüksek düzeyli yansımalar halinde sentezlenir.
Sonunda, kullanıcılar kasabadaki 25 Temsilcinin tümü ile etkileşim kurmak için doğal dili kullanabilirler.
Bu işlev, aracının mevcut durumunu girdi olarak alır ve dil modeline geçmek için bellek akışının bir alt kümesini döndürür.
Öte yandan geri alma, aracının nasıl hareket edeceğine karar verirken göz önünde bulundurduğu önemli faktörlere bağlı olarak birçok olası uygulamaya sahiptir.
Üretken aracı mimarileri için merkezi bir zorluk, saklanması gereken çok sayıda olayın ve hatıranın nasıl yönetileceğidir.
Bu sorunu çözmek için, mimarinin çekirdeği, aracının tüm deneyimini kaydeden bir veritabanı olan bellek akışıdır.
Ajan, eylemleri planlamasına, doğru yanıt vermesine yardımcı olan bellek akışından ilgili anıları alabilir ve her eylem, gelecekteki eylemleri tekrar tekrar iyileştirmek için bellek akışına geri beslenir.
Buna ek olarak, çalışma aynı zamanda ikinci bir bellek türü olan yansımayı da tanıttı. Yansıtma, son deneyimlere dayanan bir ajan tarafından üretilen üst düzey soyut düşüncedir.
Üretken etmenler, makul planlar oluşturmak için yukarıdan aşağıya yinelemeli olarak daha fazla ayrıntı üretir.
Ve bu planlar başlangıçta sadece kabaca o gün ne yapılacağını anlatıyordu.
Gözlemleri ipucu olarak kullanarak, dil modelinin aracının bir sonraki hamlesine karar vermesine izin verin: mevcut planla devam edin veya başka türlü yanıt verin.
Deneysel değerlendirmede, araştırmacılar uçtan uca bir değerlendirmenin yanı sıra bu çerçevenin kontrollü bir değerlendirmesini gerçekleştirdiler.
Kontrol değerlendirmesi, aracının bağımsız olarak makul bireysel davranış üretip üretemeyeceğini anlamaktır. Uçtan uca değerlendirme, ajanın ortaya çıkma kabiliyetini ve kararlılığını anlamaktır.
Örneğin, Isabella bir Sevgililer Günü partisi planlar ve herkesi davet eder. 12 ajandan 7'si hala değerlendiriliyor (3'ünün başka planları var ve 4'ünün hiçbir fikri yok).
Bu bağlantı, insan etkileşimi moduna çok benzer.
Temsilci, dünyanın gördüğü kısımlarını yansıtan bir alt grafiği hatırlar.
Araştırmacılar, her ajanın kimliğini, meslekleri ve diğer ajanlarla ilişkileri de dahil olmak üzere bir tohum hafızası olarak tanımlamak için doğal bir dil programladılar.
Örneğin, ajan John Lin'in tohum hafızası şöyledir -
Aşağıdakiler John Lin'in bir sabahıdır: saat 6'da uyanır, dişlerini fırçalamaya başlar, duş alır, kahvaltı eder ve işe gitmeden önce karısı Mei ve oğlu Eddy ile tanışır.
Bu ajanlar birbirleriyle sosyal olarak etkileşime girerler. Birbirlerini fark ettiklerinde bir konuşma başlayabilir.
Zamanla, bu aracılar yeni ilişkiler kurar ve diğer aracılarla olan etkileşimlerini hatırlar.
İlginç bir hikaye, simülasyonun başlangıcında, bir ajanın bir Sevgililer Günü partisi vermek üzere başlatılmasıdır.
Sonrasında yaşananlar silsilesinde başarısızlık noktaları olabilir, vekil bu niyetinde ısrar etmeye devam etmeyebilir, başkalarına anlatmayı unutmayabilir, hatta gelmeyi bile unutabilir.
Şans eseri, simülasyonda, Sevgililer Günü partisi gerçekten gerçekleşti ve birçok ajan bir araya geldi ve ilginç etkileşimler yaşadı.
Dadı Seviyesi Eğitimi
Yapılandırma Ortamı
Ortamı yapılandırmadan önce, OpenAI API anahtarını içeren bir utils.py dosyası oluşturmanız ve gerekli paketleri indirmeniz gerekir.
1. Adım. Yardımcı Programlar dosyası oluşturun
reverie/backend_server klasöründe (reverie.py'nin bulunduğu klasör), yeni bir utils.py dosyası oluşturun ve aşağıdaki içeriği kopyalayıp dosyaya yapıştırın:
OpenAI API Keyopenai_api_key = ""# Put your namekey_owner = ""maze_assets_loc = "../../environment/frontend_server/static_dirs/assets"env'yi kopyalayıp yapıştırın _matrix = f"{labirent_assets_loc}/the_ville/matrix"env_visuals = f"{labirent_assets_loc}/the_ville/visuals"fs_storage = "../../ ortam/frontend_server/storage"fs_temp_storage = "../../environment/frontend_server/temp_storage"collision_block_id = "32125"# Ayrıntılı hata ayıklama = True
OpenAI API anahtarınız ile değiştirilecek ve adınızla değiştirilecektir.
2. Adım.quirements.txt dosyasını yükleyin
Gereksinimler.txt dosyasında listelenen her şeyi kurun (önce bir sanal ortam kurmanızı önemle tavsiye ederiz).
Ekip şu anda Python 3.9.12 üzerinde test yapmıştır.
Simülasyonu çalıştırın
Yeni bir simülasyon çalıştırmak için aynı anda iki sunucu başlatmanız gerekir: ortam sunucusu ve aracı simülasyon sunucusu.
Adım 1. Ortam sunucusunu başlatın
Ortam bir Django projesi olarak uygulandığından, bir Django sunucusunun başlatılması gerekir.
Bunu yapmak için önce komut satırında ortam/ön uç_sunucuya (manage.py'nin bulunduğu yer) gidin. Ardından aşağıdaki komutu çalıştırın:
python manager.py çalıştırma sunucusu
Ardından, favori tarayıcınızda ziyaret edin.
"Ortam sunucunuz çalışıyor ve çalışıyor" istemini görürseniz, sunucu normal çalışıyor demektir. Simülasyonu çalıştırırken ortam sunucusunun çalışmaya devam ettiğinden emin olun, bu nedenle bu komut satırı sekmesini açık tutun.
(Not: Chrome veya Safari önerilir. Firefox bazı ön uç hatalarıyla karşılaşabilir, ancak gerçek simülasyonu etkilememelidir.)
2. Adım. Sahte sunucuyu başlatın
Başka bir komut satırı penceresi açın (1. adımda kullandığınız ortam sunucusu hala çalışıyor ve dokunulmaması gerekiyor). Reverie/backend_server konumuna gidin ve sahte sunucuyu başlatmak için reverie.py'yi çalıştırın:
piton rüya.py
Bu noktada, aşağıdakileri soran bir komut satırı istemi görünecektir: "Çatallı simülasyonun adını girin: ".
Örneğin, şimdi üç ajan, Isabella Rodriguez, Maria Lopez ve Klaus Mueller içeren bir simülasyon başlatmak istiyoruz ve ardından şunu giriyoruz:
base_the_ville_isabella_maria_klaus
Ardından komut istemi soracaktır: "Yeni simülasyonun adını girin: ".
Şu anda, mevcut simülasyonu temsil etmek için yalnızca isteğe bağlı bir ad girmeniz gerekir ("test simülasyonu" gibi).
test simülasyonu
Öykünücü sunucusunu çalışır durumda tutun. Bu aşamada, aşağıdaki istemi gösterecektir: "Seçeneği girin"
Adım 3. Simülasyonu Çalıştırın ve Kaydedin
Tarayıcınızda simulator_home'a gidin ve sekmeyi açık tutun.
Artık şehrin bir haritasını ve haritada aktif olan ajanların bir listesini göreceksiniz ve haritada hareket etmek için klavye oklarını kullanabilirsiniz.
Simülasyonu çalıştırmak için, simülasyon sunucusunda "Seçeneği girin" isteyen aşağıdaki komutu girmeniz gerekir:
koşmak
Yukarıdakilerin, simüle edilecek oyun hamlelerinin sayısını temsil eden bir tamsayı ile değiştirilmesi gerektiğini unutmayın.
Örneğin, 100 adımlık bir oyunu simüle etmek istiyorsanız, run 100'e girersiniz. Burada bir oyun adımı, oyundaki 10 saniyeyi temsil eder.
Şimdi simülasyon çalışacak ve ajanın harita üzerinde hareket etmesini tarayıcıda izleyebilirsiniz.
Çalıştırma tamamlandığında, "Seçeneği girin" istemi tekrar görünecektir. Bu noktada run komutuna tekrar girip istediğiniz oyun adımı sayısını belirterek veya kaydetmeden çıkmak için exit, kaydedip çıkmak için fin yazarak simülasyona devam edebilirsiniz.
Simülasyon sunucusunu bir sonraki çalıştırışınızda, kaydedilen simülasyona sadece simülasyonun adını vererek erişebilirsiniz. Bu şekilde, simülasyonu kaldığınız yerden yeniden başlatabilirsiniz.
Adım 4. Tekrar Simülasyonu
Çalışan bir simülasyonu tekrar oynatmak için ortam sunucusunu çalıştırın ve tarayıcınızda şu adrese gidin: replay//.
nerede, yeniden oynatılmakta olan simülasyonun adıyla değiştirilmelidir ve yeniden oynatmanın başlatılacağı tamsayı zaman adımı değiştirilecektir.
Adım 5. Demo Simülasyonu
Tekrarda tüm karakter spritelarının aynı göründüğünü görebilirsiniz. Bunun nedeni, yeniden oynatma özelliğinin öncelikle hata ayıklama amaçlı olması ve sahte klasörün boyutunu veya görsellerini optimize etmeye öncelik vermemesidir.
Karakter sprite'ları olan bir simülasyonu düzgün bir şekilde göstermek için, önce simülasyonu sıkıştırmak gerekir. Bunu yapmak için, hayal dizininde yer alan sıkıştır_sim_storage.py dosyasını açmak için bir metin düzenleyici kullanın. Ardından, sıkıştırma işlevi, girdi olarak hedef modelin adıyla yürütülür. Bu şekilde simülasyon dosyası sıkıştırılacak ve böylece sunuma hazır olacaktır.
Demoyu başlatmak için lütfen tarayıcınızda şu adresi açın: demo///.
Dikkat edin ve yukarıda belirtilenle aynı anlama sahiptir. 1'in en yavaş ve 5'in en hızlı olduğu sunum hızını kontrol etmek için kullanılabilir.
Özel Simülasyon
Taklitleri özelleştirmek için iki seçeneğiniz var.
Yöntem 1: Aracı geçmişini yazın ve yükleyin
Birincisi, aracıyı simülasyonun başında benzersiz bir geçmişle başlatmaktır.
Bunu yapmak için 1) temel simülasyonlardan biriyle başlamanız, 2) ajan geçmişini yazıp yüklemeniz gerekir.
Adım 1. Temel simülasyonu başlatın
Depoya iki temel simülasyon dahildir: base_the_ville_n25 (25 aracı) ve base_the_ville_isabella_maria_klaus (3 aracı). Yukarıdaki adımlar takip edilerek temel simülasyonlardan biri yüklenebilir.
Adım 2. Geçmiş dosyasını yükleyin
Ardından, "Seçeneği girin" istendiğinde, ajan geçmişini aşağıdaki komutla yüklemeniz gerekir:
call -- yükleme geçmişi the_ville/.csv
burada, mevcut geçmiş dosyasının adıyla değiştirilmesi gerekiyor.
Depoya iki örnek geçmiş dosyası dahildir: agent_history_init_n25.csv (base_the_ville_n25 için) ve agent_history_init_n3.csv (base_the_ville_isabella_maria için) _klaus). Bu dosyalar, her aracı için bellek kayıtlarının bir listesini içerir.
Adım 3. Daha fazla özelleştirme
Kendi geçmiş dosyalarınızı yazarak başlatmayı özelleştirmek için dosyaları şu klasöre yerleştirin: ortam/frontend_server/static_dirs/assets/the_ville.
Özel geçmiş dosyasının sütun biçimi, ekli örnek geçmiş dosyasıyla eşleşmelidir. Bu nedenle yazar, depoda bulunan dosyaları kopyalayıp yapıştırarak işleme başlamanızı önerir.
2. Yöntem: Yeni bir temel model oluşturun
Daha derinlemesine özelleştirme için kendi temel simülasyon dosyanızı yazmanız gerekir.
En basit yol, mevcut temel öykünme klasörünü kopyalayıp yapıştırmak, ardından yeniden adlandırıp gereksinimlerinize göre düzenlemektir.
Referans malzemeleri: