3 points par GN⁺ 2023-08-15 | 1 commentaires | Partager sur WhatsApp
  • AI Town est un village virtuel où des personnages IA vivent, discutent et socialisent ; c’est un starter kit déployable qui permet aux utilisateurs de créer et personnaliser facilement leur propre version d’AI Town
  • Inspiré par l’article Generative Agents: Interactive Simulacra of Human Behavior, il vise principalement à fournir une plateforme de base extensible et un framework JS/TS
  • Le backend prend en charge nativement un état global partagé, les transactions et un moteur de simulation, avec des usages allant de simples projets expérimentaux à des jeux multijoueurs évolutifs
  • La stack principale se compose de Convex pour le moteur de jeu, la base de données et la recherche vectorielle, de Clerk pour l’authentification optionnelle, de Ollama pour l’inférence locale, et de PixiJS pour le rendu et les interactions
  • Le modèle de chat par défaut est llama3, les embeddings utilisent mxbai-embed-large, et il est possible de configurer un LLM cloud via Together.ai ou une API compatible avec l’OpenAI API
  • Les modes d’exécution proposés incluent la configuration standard de Convex, Docker Compose avec Convex auto-hébergé, l’installation en un clic du fork communautaire Pinokio, ainsi que le déploiement sur Fly.io
  • La personnalisation passe par la modification des références aux personnages, à l’histoire et aux spritesheets dans data/characters.ts, le remplacement de la carte basée sur data/gentle.js, et la conversion du JSON Tiled au format du moteur avec convertMap.js
  • La génération de musique de fond utilise éventuellement Replicate et MusicGen, et nécessite de définir REPLICATE_API_TOKEN ainsi qu’un environnement capable de recevoir les webhooks Replicate
  • Si vous changez de fournisseur LLM ou de modèle d’embeddings, les embeddings utilisés en mémoire et les dimensions de la base de données vectorielle doivent correspondre ; il faut donc supprimer les données et redémarrer
  • L’installation sous Windows suppose Windows 10/11, WSL2 et une connexion Internet ; Node.js 18 est indiqué comme version stable

1 commentaires

 
GN⁺ 2023-08-15
Avis sur Hacker News
  • Si vous n’avez pas encore regardé le projet Generative Agents mentionné par l’OP, il vaut vraiment le détour, et il est open source : https://github.com/joonspk-research/generative_agents
    Ce week-end, Lance Martin a réussi à le faire tourner sur un modèle local avec llama.cpp et ollama.ai ; pour les longues simulations, toute l’inférence peut donc se faire en local et réduire les coûts : https://twitter.com/RLanceMartin/status/1690829179615657985
    La façon dont les agents IA interagissent entre eux est aussi intéressante : par exemple, quand un agent organise une fête, l’invitation se propage à tout le groupe

    • Ça ne fait pas penser à Little Computer People 2 ? https://en.m.wikipedia.org/wiki/Little_Computer_People
    • L’intégrer à Stardew Valley pourrait être vraiment amusant
    • Je me demande quel effet llama aura sur la simulation. llama2 échoue encore souvent sur des tâches de raisonnement simples
      Bien sûr, les humains ne sont pas si rationnels non plus ; ce sera peut-être au contraire une simulation fidèle
  • C’est vraiment génial
    Comme idée de jeu à construire par-dessus, on pourrait imaginer un jeu de bluff sur table où chaque agent essaie de convaincre de vrais utilisateurs qu’il est lui aussi un vrai utilisateur. Autrement dit, chaque agent tente de passer le test de Turing
    Tous les agents IA utilisent l’apprentissage par renforcement pour prompter au mieux leur LLM personnel sur la façon de discuter avec les joueurs humains. Par exemple, ils choisissent s’ils doivent faire accuser une personne donnée, faire semblant d’être idiots, faire du gaslighting, etc.

    • L’inverse pourrait être encore plus intéressant : les joueurs doivent démasquer les autres joueurs, tout en devant faire semblant d’être une IA
      Il devient plus facile pour le maître de jeu IA de jouer son rôle, et la pression se déplace vers les joueurs
    • Il me semble qu’on pourrait gagner assez facilement. Une méthode fiable pour distinguer un LLM d’un humain consiste à entrer une phrase dénuée de sens, et à la répéter plusieurs fois si nécessaire
      Un humain finira par réagir du genre « mais de quoi tu parles ? », alors qu’il est difficile d’obtenir ce genre de réponse d’un LLM
    • Dans leur état actuel, même les LLM puissants sont très limités sur les sujets dont ils peuvent parler. En leur demandant leur avis sur des sujets controversés, il devrait être facile de distinguer les joueurs des IA
    • C’est une structure à la Battlestar Galactica. Qui est un Cylon ? Le Cylon lui-même peut ne pas savoir qu’il n’est pas humain jusqu’à ce que cela soit révélé plus tard
  • Un cas d’usage très intéressant du projet Generative Agents
    Pour l’instant, cela ressemble encore à l’une des premières tentatives de créer une expérience interactive avec cette approche, mais à mesure que la technologie se perfectionnera, le potentiel pour les jeux du futur est énorme. Il suffit de penser à des jeux comme Animal Crossing, où l’interaction avec les PNJ est au cœur du gameplay
    Au lieu de s’appuyer sur des dialogues limités écrits à l’avance, des personnages dotés d’une personnalité entièrement unique pourraient générer de nouvelles répliques ou réagir de manière spécifique aux actions du joueur

    • Cela pourrait être le début d’un genre solo beaucoup plus riche, mêlant langage, images et textures génératifs à une génération de mondes procédurale façon roguelike
      Le monde pourrait être créé à partir de caractéristiques sémantiques définies par un LLM, et les conversations avec les PNJ, entre autres, pourraient être assurées par des agents conscients du contexte, initialisés avec l’environnement et l’historique du joueur
      À l’avenir, les créateurs de contenu produiront probablement des styles, des ControlNets, des corpus linguistiques, ainsi que des éléments de lore écrits par des humains à injecter dans le contexte du jeu via RAG, qui serviront ensuite aux LoRA et au fine-tuning
      Au lieu de fabriquer laborieusement chaque asset du jeu un par un, les artistes pourront sans doute contribuer de façon bien plus riche que simplement en dessinant une image
  • J’avais essayé de faire quelque chose de similaire quand l’article est sorti, et il faut faire attention au cas où GPT génère les deux côtés de la conversation.
    Par exemple, il peut interpréter l’historique de chat inclus dans le prompt comme un exemple du format de sortie, et produire à la fois les répliques de « Jack » et de « Jill ». Le premier échantillon que j’ai vu avait aussi ce problème. Voici une sortie du point de vue de « 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”

    • Sacrée chute, d’une discussion sur l’amour de la nature à « hé, c’est dur de caler un créneau ».
    • J’ai aussi essayé, et l’astuce qui a fonctionné consistait à utiliser le nom de l’autre personne suivi de deux-points comme mot d’arrêt. Dans ce cas, ce serait « Stella: ».
      Ainsi, dès que le modèle essaie de continuer avec la réplique de l’autre interlocuteur, il s’arrête immédiatement.
      J’ai vu ce genre de choses en parcourant le village de démo aussi, et certaines conversations jouaient les deux rôles.
    • Avez-vous trouvé une méthode efficace pour atténuer ce problème ?
  • Avec un ami, nous avons récemment lancé un studio de jeux, en grande partie inspiré par cet article.
    C’est une excellente base, et j’ai hâte de construire dessus des jeux de stratégie plus complexes.
    Si vous travaillez sur une application similaire de ce concept à des jeux grand public, j’aimerais savoir ce que vous faites : dru[at]chromagolem.com

  • AI-town est déjà chouette en soi, mais le vrai avantage, c’est que les frameworks à l’arrière sont déjà intégrés.
    Je compte bien m’en servir comme point de départ pour mon prochain projet LLM.

  • J’ai découvert aujourd’hui que a16z avait un dépôt GitHub rempli de choses intéressantes.

  • Et si nous vivions dans une version plus avancée de ce projet ?

    • Oui. L’argument le plus courant est que, si nous pouvions créer un monde virtuel « complet », nous le ferions ; et des projets comme celui-ci, ainsi que l’enthousiasme qu’ils suscitent, suggèrent que ce serait effectivement le cas.
      Le raisonnement qui suit est que, si nous le faisons, les habitants de notre monde le feront eux aussi un jour, et que ce processus se répétera à l’infini. S’il existe une telle pile, la probabilité que nous soyons encore tout en haut devient très faible.
    • On peut faire une analogie assez directe entre ce projet et le concept d’intellect universel chez Averroès, dont les racines remontent à Aristote.
      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]
      Pour développer un peu, il est intéressant de penser à deux types de connaissance : d’un côté, la connaissance vaste, « universelle » et « intemporelle » stockée dans le réseau neuronal de ChatGPT ; de l’autre, la connaissance propre au contexte de chaque agent, individuelle et locale à la fois dans l’espace et dans le temps.
      L’« intellect » ne peut en réalité rien faire s’il ne reçoit pas un contexte concret dans lequel agir.

    • N’est-ce pas déjà notre cas ?
    • Cela me fait penser à Sam Harris, qui dit que le libre arbitre n’existe pas et que certaines pensées semblent surgir de nulle part. Peut-être que ce sont des LLM qui injectent ces pensées, en quelque sorte.
  • Il est écrit : « un village virtuel où des personnages IA vivent, discutent et socialisent ». La description parle de « vivre », de « discuter » et de « socialiser », mais tout ce que j’ai vu, c’était du chat.
    Ici, que signifient exactement « vivre » et « socialiser » ?

    • Ici, vivre semble vouloir dire exister, et socialiser semble vouloir dire marcher vers quelqu’un d’autre.
  • Combien de temps faudra-t-il avant que les agents reproduisent AI Town dans le monde ? Nous ne pourrons sans doute pas le voir, mais quelqu’un pourrait bien lancer l’histoire ;)