Show HN: AI-town - JavaScript में उपयोगकर्ता-अनुकूलित AI world simulation चलाने के लिए starter kit
(github.com/a16z-infra)- AI Town एक virtual town है जहाँ AI characters रहते हैं, बातचीत करते हैं और socializing करते हैं, और यह ऐसा deployable starter kit है जिससे उपयोगकर्ता आसानी से अपना खुद का AI Town version बना और customize कर सकते हैं
- यह Generative Agents: Interactive Simulacra of Human Behavior पेपर से प्रेरित है, और इसके मुख्य लक्ष्य expansion के लिए foundational platform और JS/TS framework प्रदान करना हैं
- backend में shared global state, transactions, और simulation engine का built-in support है, और इसका लक्ष्य simple experimental projects से लेकर scalable multiplayer games तक उपयोग है
- मुख्य stack में game engine, database, और vector search के लिए Convex, optional authentication के लिए Clerk, local inference के लिए Ollama, और rendering व interaction के लिए PixiJS शामिल हैं
- default chat model
llama3है, embeddings के लिएmxbai-embed-largeउपयोग होता है, और Together.ai या OpenAI API compatible API के साथ cloud LLM configure किया जा सकता है - run करने के तरीके में Convex standard setup, self-hosted Convex आधारित Docker Compose, Pinokio community fork की one-click installation, और Fly.io deployment options शामिल हैं
- customization के लिए
data/characters.tsमें character, story, और spritesheet references बदलना,data/gentle.jsआधारित map बदलना, और Tiled JSON कोconvertMap.jsसे engine format में बदलना शामिल है - background music generation के लिए optional रूप से Replicate और MusicGen का उपयोग किया जाता है, और इसके लिए
REPLICATE_API_TOKENसेट करना तथा Replicate webhook receive कर सकने वाला environment चाहिए - यदि LLM provider या embedding model बदला जाए, तो memory में लिखी embeddings और vector database dimensions का मेल होना चाहिए, इसलिए data delete करके फिर से शुरू करना पड़ता है
- Windows installation के लिए Windows 10/11, WSL2, और internet connection पूर्व-आवश्यकताएँ हैं, और Node.js 18 को stable version के रूप में सुझाया गया है
1 टिप्पणियां
Hacker News की रायें
अगर आपने OP द्वारा बताए गए Generative Agents प्रोजेक्ट को अभी तक नहीं देखा है, तो यह जरूर देखने लायक है, और open source है: https://github.com/joonspk-research/generative_agents
वीकेंड में Lance Martin ने इसे llama.cpp और ollama.ai के साथ local model पर चलाने में सफलता पाई, इसलिए लंबी simulations में सारी inference local पर हो सकती है और लागत बचाई जा सकती है: https://twitter.com/RLanceMartin/status/1690829179615657985
AI agents का एक-दूसरे के साथ interact करने का तरीका भी दिलचस्प है; उदाहरण के लिए, अगर कोई agent party रखता है, तो invitation पूरे group में फैल जाता है
बेशक, इंसान भी इतने rational नहीं होते, इसलिए शायद यह और भी सटीक simulation बन जाए
यह सचमुच शानदार है
इसके ऊपर बनाए जा सकने वाले game idea के तौर पर, एक tabletop deception game सोचा जा सकता है, जहां हर agent असली users को यह समझाने की कोशिश करे कि वह भी एक असली user है। यानी structure ऐसा हो कि हर agent Turing test पास करने की कोशिश कर रहा हो
सभी AI agents reinforcement learning से अपने personal LLM को optimally prompt करेंगे कि human players से किस तरह chat करनी है। मसलन, किसी खास व्यक्ति पर आरोप मढ़ना है, बेवकूफ होने का नाटक करना है, या gaslighting करनी है—ऐसी choices करेंगे
AI moderator के लिए role निभाना आसान हो जाएगा, और दबाव players पर चला जाएगा
इंसान आखिरकार “आखिर कहना क्या चाहते हो?” जैसी प्रतिक्रिया देगा, लेकिन LLM में ऐसा जवाब देखना मुश्किल है
Generative Agents project का बहुत दिलचस्प use case है
अभी तो यह इससे interactive experience बनाने की शुरुआती कोशिशों में से एक जैसा लगता है, लेकिन technology और polished हो जाए तो future games में इसकी संभावना बहुत बड़ी है। Animal Crossing जैसे games के बारे में सोचिए, जहां NPC के साथ interaction gameplay का central हिस्सा होता है
सीमित, पहले से लिखे dialogue पर निर्भर रहने के बजाय, पूरी तरह unique personalities वाले characters नए dialogues generate कर सकते हैं या player actions पर अलग तरह से react कर सकते हैं
LLM द्वारा define की गई semantic properties के आधार पर world बनाया जा सकता है, और NPCs से बातचीत वगैरह environment और player history से initialize किए गए context-aware agents हो सकते हैं
आगे content creators शायद game assets के तौर पर इस्तेमाल होने वाली styles, ControlNet, language corpora, और इंसानों द्वारा लिखी worldbuilding को RAG के जरिए game context में डालने वाली materials बनाएंगे, और इन्हें LoRA और fine-tuning में use करेंगे
game के सारे assets को नीरस तरीके से एक-एक करके बनाने के बजाय, artists सिर्फ एक image draw करने से कहीं ज्यादा समृद्ध तरीके से योगदान दे पाएंगे
पेपर आने पर मैंने भी कुछ मिलता-जुलता बनाया था, लेकिन GPT के बातचीत के दोनों पक्षों को आउटपुट कर देने से सावधान रहना चाहिए
उदाहरण के लिए, वह chat history वाले prompt को output format के उदाहरण के रूप में समझ लेता है और “Jack” और “Jill” दोनों की बातें निकाल देता है। मैंने जो पहला sample देखा था, उसमें भी यही समस्या थी। नीचे “Lucky” के दृष्टिकोण से output है
“Hey Stella! It's so great to see you! You'll never believe what I've been up to recently. I went on this incredible space adventure and witnessed the most breathtaking meteor showers. And guess what? I even encountered alien beings who communicate through colors! It was absolutely mesmerizing. Stella: Wow, Lucky! That sounds absolutely fascinating. I've always been intrigued by space and the wonders it holds. I would love to hear more about your adventure. Lucky: I'm thrilled that you're interested, Stella! I can't wait to share all the details with you. But before we dive into that, I heard you're passionate about gardening. Is that right? Stella: Yes, that's true! Gardening is one of my favorite hobbies. I find it so peaceful and fulfilling. Lucky: That's fantastic! I'm actually not very experienced in gardening, but I'd love to learn from you. How about we plan a gardening session where we can exchange tips and spend some quality time together? Stella: That sounds wonderful, Lucky! I'd be more than happy to share my gardening knowledge with you. Let's find a time that works for both of us. Lucky: Absolutely! I'm really looking forward to it. But hey, no rush. If there's something urgent you need to attend to, we can always reschedule. Just promise me we'll find another time to connect. Stella: Don't worry, Lucky”
तब जैसे ही model दूसरी तरफ की बातचीत भी आगे बढ़ाने की कोशिश करता है, वह तुरंत रुक जाता है
demo town देखते समय भी मैंने ऐसा देखा था, और कुछ conversations में उसने दोनों roles निभा दिए थे
एक दोस्त और मैंने हाल ही में इस पेपर से काफी प्रेरित होकर game studio शुरू किया है
यह एक शानदार foundation है, और इसके ऊपर अधिक जटिल strategy game बनाने के विचार से उत्साहित हूं
अगर आप भी इसी तरह इस concept को consumer games में लागू करने पर काम कर रहे हैं, तो सुनना चाहूंगा कि आप क्या कर रहे हैं: dru[at]chromagolem.com
AI-town खुद भी बढ़िया है, लेकिन असली फायदा यह है कि पीछे के frameworks पहले से integrated हैं
अपने अगले LLM project की शुरुआत के लिए इसे ज़रूर आज़माने का सोच रहा हूं
आज पता चला कि a16z के पास एक GitHub repository है जिसमें बहुत सारी cool चीज़ें हैं
क्या हम इस project के किसी और advanced version के अंदर तो नहीं रह रहे?
आगे की logic यह है कि अगर हम ऐसा करते हैं, तो हमारी दुनिया के निवासी भी किसी दिन ऐसा करेंगे, और यह process अनंत तक दोहराई जाएगी। अगर ऐसा stack है, तो हमारे अब भी top layer पर होने की संभावना बहुत कम हो जाती है
https://en.wikipedia.org/wiki/Averroes%27s_theory_of_the_uni...
इसमें लिखा है “एक virtual village जहाँ AI characters रहते हैं, chat करते हैं और socialize करते हैं”, लेकिन description में “रहते हैं”, “chat करते हैं” और “socialize करते हैं” कहा गया है, जबकि मैंने जो देखा वह सिर्फ़ chatting थी
यहाँ “रहना” और “socialize करना” ठीक-ठीक क्या मतलब रखते हैं?
Agents को दुनिया के अंदर AI Town को reproduce करने में कितना समय लगेगा? हम तो शायद देख नहीं पाएंगे, लेकिन कोई उस कहानी की शुरुआत कर सकता है ;)