3 Punkte von GN⁺ 2023-08-15 | 1 Kommentare | Auf WhatsApp teilen
  • AI Town ist ein virtuelles Dorf, in dem KI-Charaktere leben, miteinander sprechen und soziale Kontakte pflegen; es ist ein deploybares Starter-Kit, mit dem Nutzer leicht ihre eigene Version von AI Town erstellen und anpassen können
  • Inspiriert vom Paper Generative Agents: Interactive Simulacra of Human Behavior; die Hauptziele sind eine Basisplattform für Erweiterungen und ein JS/TS-Framework
  • Das Backend unterstützt standardmäßig geteilten globalen Zustand, Transaktionen und eine Simulations-Engine und zielt auf Einsatzfälle von einfachen Experimentierprojekten bis hin zu skalierbaren Multiplayer-Spielen ab
  • Der zentrale Stack besteht aus Convex für Game Engine, Datenbank und Vektorsuche, Clerk für optionale Authentifizierung, Ollama für lokale Inferenz sowie PixiJS für Rendering und Interaktion
  • Das standardmäßige Chat-Modell ist llama3, für Embeddings wird mxbai-embed-large genutzt; Cloud-LLMs können über Together.ai oder eine mit der OpenAI API kompatible API konfiguriert werden
  • Für den Betrieb stehen Convex-Standardkonfiguration, Docker Compose auf Basis von self-hosted Convex, One-Click-Installation über den Community-Fork von Pinokio und Deployment auf Fly.io zur Auswahl
  • Die Anpassung erfolgt, indem Charaktere, Storys und spritesheet-Referenzen in data/characters.ts geändert werden, die Map auf Basis von data/gentle.js ausgetauscht wird und Tiled-JSON mit convertMap.js in das Engine-Format konvertiert wird
  • Hintergrundmusik kann optional mit Replicate und MusicGen generiert werden; dafür sind die Konfiguration von REPLICATE_API_TOKEN und eine Umgebung erforderlich, die Replicate-Webhooks empfangen kann
  • Wenn der LLM-Anbieter oder das Embedding-Modell gewechselt wird, müssen die in den Speicher geschriebenen Embeddings und die Dimensionen der Vektordatenbank übereinstimmen; daher müssen die Daten gelöscht und neu gestartet werden
  • Für die Installation unter Windows werden Windows 10/11, WSL2 und eine Internetverbindung vorausgesetzt; Node.js 18 wird als stabile Version empfohlen

1 Kommentare

 
GN⁺ 2023-08-15
Hacker-News-Kommentare
  • Falls ihr das vom OP erwähnte Projekt Generative Agents noch nicht gesehen habt: Es ist definitiv einen Blick wert und Open Source: https://github.com/joonspk-research/generative_agents
    Am Wochenende hat Lance Martin es geschafft, es mit llama.cpp und ollama.ai auf lokalen Modellen laufen zu lassen, sodass bei langen Simulationen die gesamte Inferenz lokal stattfinden und Kosten sparen kann: https://twitter.com/RLanceMartin/status/1690829179615657985
    Interessant ist auch, wie die AI-Agenten miteinander interagieren: Wenn zum Beispiel ein Agent eine Party veranstaltet, verbreitet sich die Einladung durch die ganze Gruppe.

    • Erinnert das nicht an Little Computer People 2? https://en.m.wikipedia.org/wiki/Little_Computer_People
    • Das in Stardew Valley einzubauen, wäre wirklich spannend.
    • Ich frage mich, welchen Einfluss llama auf die Simulation haben wird. Auch llama2 scheitert bei einfachen Schlussfolgerungsaufgaben immer wieder.
      Andererseits sind Menschen natürlich auch nicht so rational; vielleicht wird es dadurch sogar eine genauere Simulation.
  • Das ist wirklich cool.
    Als Spielidee, die man darauf aufbauen könnte, wäre ein Tabletop-Täuschungsspiel denkbar, bei dem jeder Agent versucht, echte Nutzer davon zu überzeugen, dass er ebenfalls ein echter Nutzer ist. Die Struktur wäre also, dass jeder Agent versucht, den Turing-Test zu bestehen.
    Alle AI-Agenten prompten per Reinforcement Learning ihr eigenes persönliches LLM optimal dazu, wie es mit menschlichen Spielern chatten soll. Zum Beispiel treffen sie Entscheidungen wie, ob sie einer bestimmten Person etwas anhängen, sich dumm stellen oder Gaslighting betreiben sollen.

    • Umgekehrt könnte es noch interessanter sein: Die Spieler müssen andere Spieler enttarnen und dabei so tun, als seien sie eine AI.
      Für einen AI-Spielleiter wäre es einfacher, die Rolle auszufüllen, und die Last läge bei den Spielern.
    • Es dürfte ziemlich leicht zu gewinnen sein. Eine zuverlässige Methode, LLMs von Menschen zu unterscheiden, ist, unsinnige Sätze einzugeben und sie bei Bedarf mehrfach zu wiederholen.
      Ein Mensch würde irgendwann mit etwas wie „Was zum Teufel soll das heißen?“ reagieren, aber bei einem LLM sieht man solche Antworten kaum.
    • Im aktuellen Stand sind selbst leistungsfähige LLMs bei den Themen, über die sie sprechen können, stark eingeschränkt. Wenn man nach Meinungen zu kontroversen Themen fragt, dürfte man Spieler und AI leicht unterscheiden können.
    • Die Struktur erinnert an Battlestar Galactica: Wer ist ein Cylon? Selbst der Cylon weiß möglicherweise nicht, dass er kein Mensch ist, bis es später enthüllt wird.
  • Ein sehr interessanter Anwendungsfall des Projekts Generative Agents.
    Noch fühlt es sich wie einer der frühen Versuche an, damit interaktive Erlebnisse zu bauen, aber wenn die Technik weiter ausgereift ist, hat sie enormes Potenzial für zukünftige Spiele. Man denke an Spiele wie Animal Crossing, in denen die Interaktion mit NPCs im Zentrum des Gameplays steht.
    Statt sich auf begrenzte, vorab geschriebene Dialogzeilen zu stützen, könnten Charaktere mit vollständig eigenen Persönlichkeiten neue Dialoge erzeugen oder auf einzigartige Weise auf Spielerhandlungen reagieren.

    • Das könnte der Anfang eines deutlich reicheren Singleplayer-Genres sein, das generative Sprache, Bilder und Texturen mit prozeduraler, roguelike-artiger Weltgenerierung kombiniert.
      Die Welt könnte auf Basis semantischer Eigenschaften entstehen, die von einem LLM definiert wurden, und NPC-Gespräche sowie Ähnliches könnten von kontextbewussten Agenten übernommen werden, die mit Umgebung und Spielerhistorie initialisiert werden.
      Künftig werden Content-Ersteller vermutlich Stile, ControlNets, Sprachkorpora und Materialien erstellen, die von Menschen geschriebene Weltbeschreibungen per RAG in den Spielkontext einbringen und für LoRA sowie Fine-Tuning genutzt werden können.
      Statt jedes Asset eines Spiels monoton einzeln zu erstellen, könnten Künstler auf eine Weise beitragen, die weit reichhaltiger ist, als nur ein einzelnes Bild zu malen.
  • Als das Paper herauskam, habe ich etwas Ähnliches gebaut; man muss dabei aufpassen, dass GPT beide Seiten eines Gesprächs ausgibt.
    Zum Beispiel interpretiert es einen Prompt mit Chatverlauf als Beispiel für das Ausgabeformat und gibt dann sowohl die Aussagen von „Jack“ als auch von „Jill“ aus. Das erste Sample, das ich gesehen habe, hatte dieses Problem auch. Unten ist eine Ausgabe aus der Perspektive von „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”

    • Was für ein Absturz: von einer Geschichte über die Liebe zur Natur zu „hey, Termine zu finden ist schwierig“.
    • Ich habe es auch ausprobiert; der Trick zur Lösung war, den Namen des Gegenübers plus Doppelpunkt-Präfix als Stoppwort zu verwenden. In diesem Fall wäre das „Stella:“.
      Dann stoppt das Modell sofort, wenn es versucht, den Dialog der anderen Seite fortzusetzen.
      Das habe ich auch gesehen, als ich mir das Demo-Dorf angesehen habe; manche Gespräche haben einfach beide Rollen übernommen.
    • Gab es eine Methode, mit der ihr dieses Problem erfolgreich abmildern konntet?
  • Ein Freund und ich haben vor Kurzem, stark inspiriert von diesem Paper, ein Game Studio gegründet.
    Das ist eine hervorragende Grundlage, und ich freue mich darauf, darauf komplexere Strategiespiele aufzubauen.
    Falls ihr ähnlich daran arbeitet, dieses Konzept auf Consumer-Games anzuwenden, würde ich gern hören, was ihr macht: dru[at]chromagolem.com

  • AI-town selbst ist schon cool, aber der eigentliche Vorteil ist, dass die Frameworks im Hintergrund bereits integriert sind.
    Ich werde es definitiv als Ausgangspunkt für mein nächstes LLM-Projekt verwenden.

  • Heute erfahren: a16z hat ein GitHub-Repository mit einer Menge cooler Sachen.

  • Könnte es sein, dass wir in einer weiterentwickelten Version dieses Projekts leben?

    • Ja. Das gängigste Argument ist, dass wir, wenn wir eine „vollständige“ virtuelle Welt erschaffen könnten, es auch tun würden; und Projekte wie dieses sowie die Begeisterung, die wir zeigen, deuten darauf hin, dass wir es tatsächlich tun würden.
      Die anschließende Logik lautet: Wenn wir das tun, werden die Bewohner unserer Welt es eines Tages ebenfalls tun, und dieser Prozess wiederholt sich endlos. Wenn es einen solchen Stack gibt, wird die Wahrscheinlichkeit, dass wir immer noch auf der obersten Ebene sind, sehr klein.
    • Zwischen diesem Projekt und Averroes’ Konzept des universellen Intellekts lässt sich eine recht direkte Analogie ziehen, deren Wurzeln bei Aristoteles liegen.
      https://en.wikipedia.org/wiki/Averroes%27s_theory_of_the_uni...

      Averroes argues, as put by the historian of philosophy Peter Adamson, that "there is only one, single human capacity for human knowledge".[3] He calls it—using contemporary terminology—the "material intellect", which is one and the same for all human beings.[4] The intellect is eternal and continuously thinking about all that can be thought.[5] It uses faculties (e.g. the brain) of individual humans as a basis for its thinking process.[5] The process that happens in the human brain is called fikr by Averroes (known as cogitatio in Latin, often translated to "cogitation" in English), a process which contains not universal knowledge but "active consideration of particular things" that the person has encountered.[5] This use of human faculty explains why thinking can be an individual experience: if at one point the universal intellect is using one's brain to think about an object of thought, then that person is also experiencing the thinking.[5]
      Etwas weiter ausgeführt ist es interessant, über zwei Arten von Wissen nachzudenken: einerseits das breite, „universelle“ und „zeitlose“ Wissen, das im neuronalen Netz von ChatGPT gespeichert ist, und andererseits das Wissen im Kontext jedes einzelnen Agenten, das sowohl räumlich als auch zeitlich individuell und lokal ist.
      Der „Intellekt“ kann tatsächlich nichts tun, wenn ihm kein konkreter Handlungskontext bereitgestellt wird.

    • Sind wir das nicht schon?
    • Das erinnert mich daran, dass Sam Harris sagt, freien Willen gebe es nicht und manche Gedanken schienen einfach aus dem Nichts aufzutauchen. Vermutlich läuft es darauf hinaus, dass LLMs solche Gedanken injizieren.
  • Es heißt „ein virtuelles Dorf, in dem KI-Figuren leben, chatten und Kontakte knüpfen“, und in der Beschreibung steht zwar „leben“, „chatten“ und „Kontakte knüpfen“, aber ich habe nur Chatten gesehen.
    Was genau bedeuten hier „leben“ und „Kontakte knüpfen“?

    • Leben heißt hier wohl existieren, und Kontakte knüpfen heißt wohl, zu jemand anderem hinzugehen.
  • Wie lange wird es wohl dauern, bis die Agenten innerhalb der Welt AI Town nachbilden? Wir werden es nicht sehen können, aber irgendjemand kann diese Geschichte wohl anstoßen ;)