3 poin oleh GN⁺ 2023-08-15 | 1 komentar | Bagikan ke WhatsApp
  • AI Town adalah desa virtual tempat karakter AI hidup, bercakap-cakap, dan bersosialisasi, sekaligus starter kit yang dapat di-deploy agar pengguna dapat dengan mudah membuat dan menyesuaikan versi AI Town mereka sendiri
  • Terinspirasi oleh makalah Generative Agents: Interactive Simulacra of Human Behavior, dengan tujuan utama menyediakan platform dasar untuk ekspansi serta framework JS/TS
  • Backend mendukung shared global state, transaksi, dan engine simulasi secara bawaan, dengan sasaran penggunaan dari proyek eksperimen sederhana hingga game multiplayer yang skalabel
  • Stack utamanya terdiri dari Convex untuk game engine, database, dan pencarian vektor; Clerk untuk autentikasi opsional; Ollama untuk inferensi lokal; serta PixiJS untuk rendering dan interaksi
  • Model chat default adalah llama3, embedding menggunakan mxbai-embed-large, dan LLM cloud dapat dikonfigurasi melalui API yang kompatibel dengan Together.ai atau OpenAI API
  • Cara menjalankannya mencakup opsi konfigurasi standar Convex, Docker Compose berbasis Convex self-hosted, instalasi sekali klik dari fork komunitas Pinokio, serta deployment ke Fly.io
  • Kustomisasi dilakukan dengan mengubah referensi karakter, cerita, dan spritesheet di data/characters.ts, mengganti peta berbasis data/gentle.js, serta mengonversi JSON Tiled ke format untuk engine menggunakan convertMap.js
  • Pembuatan musik latar secara opsional menggunakan Replicate dan MusicGen, serta memerlukan pengaturan REPLICATE_API_TOKEN dan lingkungan yang dapat menerima webhook Replicate
  • Jika mengganti penyedia LLM atau model embedding, dimensi embedding yang ditulis ke memori harus cocok dengan dimensi database vektor, sehingga data perlu dihapus dan dimulai ulang
  • Instalasi di Windows mensyaratkan Windows 10/11, WSL2, dan koneksi internet, dengan Node.js 18 direkomendasikan sebagai versi stabil

1 komentar

 
GN⁺ 2023-08-15
Komentar Hacker News
  • Kalau belum melihat proyek Generative Agents yang disebut OP, ini sangat layak dilihat, dan bersifat open source: https://github.com/joonspk-research/generative_agents
    Akhir pekan lalu Lance Martin berhasil menjalankannya pada model lokal dengan llama.cpp dan ollama.ai, sehingga dalam simulasi panjang semua inferensi bisa terjadi secara lokal dan menghemat biaya: https://twitter.com/RLanceMartin/status/1690829179615657985
    Cara agen-agen AI saling berinteraksi juga menarik; misalnya, jika satu agen mengadakan pesta, undangannya menyebar ke seluruh grup

    • Bukankah ini seperti Little Computer People 2? https://en.m.wikipedia.org/wiki/Little_Computer_People
    • Kalau ini dipasang ke Stardew Valley, sepertinya akan sangat menarik
    • Saya penasaran bagaimana llama akan memengaruhi simulasi. llama2 pun sering gagal pada tugas penalaran sederhana
      Tentu manusia juga tidak serasional itu, jadi mungkin justru akan menjadi simulasi yang akurat
  • Ini benar-benar keren
    Sebagai ide game yang bisa dibuat di atasnya, bisa dibayangkan game tipu daya tabletop di mana setiap agen meyakinkan pengguna sungguhan bahwa dirinya juga pengguna sungguhan. Dengan kata lain, strukturnya adalah setiap agen mencoba lolos uji Turing
    Semua agen AI, melalui reinforcement learning, mengoptimalkan prompt untuk LLM pribadi mereka sendiri tentang bagaimana harus mengobrol dengan pemain manusia. Misalnya memilih apakah akan menjebak orang tertentu, pura-pura bodoh, atau melakukan gaslighting

    • Mungkin akan lebih menarik jika dibalik. Para pemain harus mengidentifikasi pemain lain, dan dalam prosesnya harus berpura-pura menjadi AI
      Moderator AI menjadi lebih mudah menjalankan perannya, dan bebannya berpindah ke pemain
    • Sepertinya cukup mudah dimenangkan. Salah satu cara pasti membedakan LLM dari manusia adalah memasukkan kalimat yang tidak masuk akal dan, bila perlu, mengulanginya beberapa kali
      Manusia pada akhirnya akan bereaksi seperti “Sebenarnya kamu ngomong apa?”, tetapi jawaban seperti itu sulit ditemukan pada LLM
    • Dalam kondisi saat ini, bahkan LLM yang kuat pun punya banyak batasan pada topik yang bisa dibicarakan. Jika ditanya pendapat tentang topik kontroversial, sepertinya pemain dan AI bisa dibedakan dengan mudah
    • Strukturnya seperti Battlestar Galactica. Siapa Cylon-nya? Cylon sendiri mungkin tidak tahu bahwa dirinya bukan manusia sampai itu terungkap belakangan
  • Ini adalah kasus penggunaan yang sangat menarik dari proyek Generative Agents
    Untuk saat ini rasanya masih seperti salah satu upaya awal membuat pengalaman interaktif dengan ini, tetapi jika teknologinya semakin dipoles, potensinya untuk game masa depan sangat besar. Bayangkan game seperti Animal Crossing, di mana interaksi dengan NPC menjadi inti gameplay
    Tanpa bergantung pada dialog terbatas yang ditulis sebelumnya, karakter dengan kepribadian yang benar-benar unik bisa menghasilkan dialog baru atau merespons tindakan pemain secara khas

    • Ini bisa menjadi awal dari genre single-player yang jauh lebih kaya, yang memadukan bahasa, gambar, dan tekstur generatif dengan pembuatan dunia prosedural ala roguelike
      Dunia dapat dibuat berdasarkan karakteristik semantik yang didefinisikan LLM, sementara percakapan dengan NPC dan semacamnya dapat menjadi agen sadar konteks yang diinisialisasi dengan lingkungan dan riwayat pemain
      Ke depan, pembuat konten tampaknya akan membuat gaya, controlnet, korpus bahasa, serta materi seperti worldbuilding buatan manusia yang dimasukkan ke konteks game melalui RAG, untuk digunakan dalam LoRA dan fine-tuning
      Alih-alih membuat semua aset game satu per satu secara monoton, para seniman tampaknya bisa berkontribusi jauh lebih kaya daripada sekadar menggambar satu ilustrasi
  • Saat makalahnya keluar, saya pernah membuat sesuatu yang mirip, dan perlu berhati-hati terhadap kasus ketika GPT mengeluarkan kedua sisi percakapan
    Misalnya, prompt yang berisi riwayat chat ditafsirkan sebagai contoh format keluaran, lalu ia mengeluarkan ucapan “Jack” dan “Jill” sekaligus. Sampel pertama yang saya lihat juga punya masalah ini. Berikut ini keluaran dari sudut pandang “Lucky”
    “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”

    • Dari cerita tentang mencintai alam, jatuhnya jadi “hei, susah ya menjadwalkan sesuatu
    • Saya juga pernah mencobanya, dan trik untuk mengatasinya adalah memakai nama lawan bicara plus prefiks titik dua sebagai stop word. Dalam kasus ini, itu berarti “Stella:”
      Dengan begitu, model langsung berhenti saat mencoba melanjutkan percakapan dari sisi lawan bicara
      Saat melihat-lihat desa demo, saya juga melihat hal seperti ini, dan sebagian percakapan malah memainkan kedua peran sekaligus
    • Apakah ada metode yang berhasil untuk memitigasi masalah ini?
  • Baru-baru ini saya dan seorang teman memulai studio game yang sangat terinspirasi oleh makalah ini
    Ini fondasi yang bagus, dan saya antusias membangun game strategi yang lebih kompleks di atasnya
    Kalau ada yang sedang mengerjakan penerapan konsep serupa untuk game konsumen, saya ingin mendengar apa yang sedang Anda buat: dru[at]chromagolem.com

  • AI-town sendiri memang keren, tetapi keunggulan sebenarnya adalah framework-framework di belakangnya sudah terintegrasi
    Saya pasti akan mencobanya sebagai titik awal saat memulai proyek LLM berikutnya

  • Hari ini saya baru tahu bahwa a16z punya repositori GitHub berisi banyak hal keren

  • Mungkinkah kita hidup di dalam versi yang lebih maju dari proyek ini?

    • Benar. Argumen yang paling umum adalah bahwa jika kita bisa membuat dunia virtual yang “sempurna”, maka kita akan membuatnya, dan proyek seperti ini serta antusiasme yang kita tunjukkan mengisyaratkan bahwa kita memang akan melakukannya
      Logika lanjutannya adalah, jika kita melakukan itu, penghuni dunia kita juga suatu hari akan melakukannya, dan proses itu berulang tanpa batas. Jika ada stack seperti itu, kemungkinan kita masih berada di lapisan paling atas menjadi sangat kecil
    • Ada analogi yang cukup langsung antara proyek ini dan konsep intelek universal dari Averroes, yang akarnya ada pada Aristotle
      https://en.wikipedia.org/wiki/Averroes%27s_theory_of_the_uni...

      Averroes berargumen, seperti yang dikemukakan sejarawan filsafat Peter Adamson, bahwa "hanya ada satu kapasitas manusia yang tunggal untuk pengetahuan manusia".[3] Ia menyebutnya—menggunakan terminologi kontemporer—"intelek material", yang satu dan sama bagi semua manusia.[4] Intelek itu abadi dan terus-menerus memikirkan semua yang dapat dipikirkan.[5] Ia menggunakan fakultas (misalnya otak) manusia individual sebagai dasar bagi proses berpikirnya.[5] Proses yang terjadi di otak manusia disebut fikr oleh Averroes (dikenal sebagai cogitatio dalam bahasa Latin, sering diterjemahkan menjadi "cogitation" dalam bahasa Inggris), sebuah proses yang tidak berisi pengetahuan universal, melainkan "pertimbangan aktif atas hal-hal partikular" yang telah dijumpai orang tersebut.[5] Penggunaan fakultas manusia ini menjelaskan mengapa berpikir dapat menjadi pengalaman individual: jika pada suatu saat intelek universal menggunakan otak seseorang untuk memikirkan sebuah objek pikiran, maka orang itu juga mengalami proses berpikir tersebut.[5]
      Jika dijabarkan sedikit lagi, menarik untuk memikirkan dua jenis pengetahuan. Yang satu adalah pengetahuan luas, “universal”, dan “melampaui waktu” yang tersimpan di jaringan saraf ChatGPT; yang lainnya adalah pengetahuan dalam konteks tiap agen, yang bersifat individual dan lokal baik dalam ruang maupun waktu
      “Intelek” sebenarnya tidak bisa melakukan apa pun jika tidak diberi konteks konkret untuk bertindak

    • Bukankah kita sudah seperti itu?
    • Ini mengingatkan saya pada Sam Harris yang mengatakan bahwa kehendak bebas tidak ada dan sebagian pikiran tampak muncul begitu saja dari entah mana. Mungkin LLM-lah yang menyuntikkan pikiran semacam itu
  • Disebut sebagai “desa virtual tempat karakter AI hidup, mengobrol, dan bersosialisasi”, dan dalam penjelasannya tertulis “hidup”, “mengobrol”, dan “bersosialisasi”, tetapi yang saya lihat hanya mengobrol
    Di sini, apa tepatnya yang dimaksud dengan “hidup” dan “bersosialisasi”?

    • Sepertinya hidup di sini berarti ada, dan bersosialisasi berarti berjalan menghampiri orang lain
  • Berapa lama sampai para agen mereproduksi AI Town di dalam dunia itu? Kita mungkin tidak akan bisa melihatnya, tapi seseorang tampaknya bisa mulai menceritakan kisah itu ;)