3 ポイント 投稿者 GN⁺ 2023-08-15 | 1件のコメント | WhatsAppで共有
  • AI Townは、AIキャラクターが暮らし、会話し、交流する仮想の町であり、ユーザーが自分専用のAI Townバージョンを簡単に作成・カスタマイズできるデプロイ可能なスターターキット
  • Generative Agents: Interactive Simulacra of Human Behavior 論文に着想を得ており、拡張のための基盤プラットフォーム提供とJS/TSフレームワーク提供が主な目標
  • バックエンドは 共有グローバル状態、トランザクション、シミュレーションエンジンを標準サポートし、単純な実験用プロジェクトからスケーラブルなマルチプレイヤーゲームまでの利用を想定
  • 主なスタックは、ゲームエンジン・データベース・ベクトル検索向けの Convex、任意の認証向けの Clerk、ローカル推論向けの Ollama、レンダリングとインタラクション向けの PixiJS で構成
  • デフォルトのチャットモデルは llama3、埋め込みは mxbai-embed-large で、Together.ai または OpenAI API 互換APIでクラウドLLMを設定可能
  • 実行方法は、Convex標準構成、self-hosted ConvexベースのDocker Compose、Pinokio コミュニティフォークのワンクリックインストール、Fly.io デプロイの選択肢で構成
  • カスタマイズは、data/characters.ts のキャラクター・ストーリー・spritesheet参照の修正、data/gentle.js ベースのマップ差し替え、Tiled JSONを convertMap.js でエンジン用形式に変換する流れ
  • BGM生成はオプションで ReplicateMusicGen を使用し、REPLICATE_API_TOKEN の設定とReplicate Webhookを受信可能な環境が必要
  • LLMプロバイダーや埋め込みモデルを変更すると、メモリに書き込まれる埋め込みとベクトルデータベースの次元を一致させる必要があるため、データを削除して再起動する必要がある
  • Windowsインストールの前提条件は Windows 10/11、WSL2、インターネット接続であり、Node.js 18 が安定版として案内されている

1件のコメント

 
GN⁺ 2023-08-15
Hacker News の意見
  • OP が言及している Generative Agents プロジェクトをまだ見ていないなら、ぜひ見る価値がある。オープンソースでもある: https://github.com/joonspk-research/generative_agents
    週末に Lance Martin が llama.cpp と ollama.ai を使ってローカルモデル上で動かすことに成功したので、長いシミュレーションではすべての推論をローカルで行い、コストを抑えられる: https://twitter.com/RLanceMartin/status/1690829179615657985
    AI エージェント同士の相互作用の仕方も興味深い。たとえば、あるエージェントがパーティーを開くと、招待がグループ全体に広がっていく。

    • Little Computer People 2 みたいでは? https://en.m.wikipedia.org/wiki/Little_Computer_People
    • これを Stardew Valley に組み込んだら本当に面白そう。
    • llama がシミュレーションにどんな影響を与えるのか気になる。llama2 も単純な推論タスクで失敗し続けることがある。
      もちろん人間もそこまで合理的ではないので、むしろ正確なシミュレーションになるのかもしれない。
  • これは本当にすごい。
    この上に作れるゲームのアイデアとして、各エージェントが実在のユーザーに「自分も実在のユーザーだ」と信じ込ませる テーブルトーク系のだまし合いゲーム が考えられる。つまり、各エージェントがチューリングテストに合格しようとする構造だ。
    すべての AI エージェントは、強化学習によって、自分専用の LLM に対して人間プレイヤーとどうチャットすべきかを最適にプロンプトする。たとえば、特定の人に罪をなすりつけるか、愚かなふりをするか、ガスライティングするか、といった選択をする。

    • 逆にした方がもっと面白いかもしれない。プレイヤーたちが他のプレイヤーを見つけ出さなければならず、その過程で AI のふり をしなければならない構造だ。
      AI の進行役は役割をこなしやすくなり、負担はプレイヤー側に移る。
    • かなり簡単に勝てそうだ。LLM と人間を見分ける確実な方法の一つは、意味不明な文を入力し、必要なら何度も繰り返すことだ。
      人間なら最終的に「いったい何を言っているの?」のような反応をするだろうが、LLM ではそういう答えはなかなか見られない。
    • 現状では、強力な LLM でも話せるトピックはかなり制限されている。議論を呼ぶテーマについて意見を聞けば、プレイヤーと AI を簡単に見分けられそうだ。
    • Battlestar Galactica のような構造だ。誰が Cylon なのか? Cylon 自身も、後で明かされるまでは自分が人間ではないことに気づいていないかもしれない。
  • Generative Agents プロジェクトの非常に興味深い活用例だ。
    まだこれでインタラクティブな体験を作る初期の試みの一つという印象だが、技術がさらに洗練されれば、将来のゲームにとって大きな可能性がある。Animal Crossing のように、NPC との相互作用がゲームプレイの中心にあるゲームを思い浮かべればいい。
    限られた事前作成済みのセリフに頼らず、完全に固有の性格を持つキャラクターが新しいセリフを生成したり、プレイヤーの行動に独自に反応したりできるようになる。

    • これは、生成型の言語・画像・テクスチャと、手続き型ローグライク的な世界生成を組み合わせた、はるかに豊かなシングルプレイヤージャンルの始まりかもしれない。
      LLM が定義した意味論的な特性に基づいて世界が作られ、NPC との会話などは、環境とプレイヤー履歴で初期化された文脈認識エージェントになり得る。
      今後、コンテンツ制作者は、ゲーム資産として使われるスタイル、ControlNet、言語コーパス、人間が書いた世界設定を RAG でゲーム文脈に取り込むための資料などを作り、それを LoRA やファインチューニングに活用するようになると思う。
      ゲームのすべてのアセットを単調に一つずつ作る代わりに、アーティストは単に一枚の絵を描くよりも、はるかに豊かな形で貢献できるようになりそうだ。
  • 論文が出たときに似たものを作ってみたのですが、GPTが会話の両側を両方とも出力してしまう場合には注意が必要です
    たとえば、チャット履歴を含むプロンプトを出力形式の例として解釈して、「Jack」と「Jill」の発言を両方出してしまうようなケースです。最初に見たサンプルにもこの問題がありました。以下は「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”

    • 自然を愛する話から「やあ、予定を合わせるのは難しいよね」へ落ちていく急降下ですね
    • 私も試しましたが、解決のコツは相手の名前とコロンの接頭辞を停止語として使うことでした。この場合なら「Stella:」です
      そうすると、モデルが相手側の会話まで続けようとした瞬間に止まります
      デモの町を見て回ったときにもこういうものを見かけましたし、一部の会話では両方の役を演じてしまっていました
    • この問題をうまく緩和できた方法はありましたか?
  • 友人と最近、この論文に大きく触発されてゲームスタジオを始めました
    これは素晴らしい土台で、その上により複雑なストラテジーゲームを作るのが楽しみです
    同じようにこのコンセプトをコンシューマー向けゲームに応用する取り組みをしているなら、何をしているのかぜひ聞きたいです: dru[at]chromagolem.com

  • AI-town自体も素晴らしいですが、本当の利点は背後のフレームワーク群がすでに統合されている点にあります
    次のLLMプロジェクトを始めるときの出発点として、ぜひ使ってみるつもりです

  • 今日知ったのですが、a16zは素晴らしいものがたくさん入ったGitHubリポジトリを持っていたんですね

  • 私たちはこのプロジェクトの、もっと発展したバージョンの中で生きているのではないだろうか?

    • その通り。最も一般的な論拠は、私たちが「完全な」仮想世界を作れるなら作るだろう、という点であり、このようなプロジェクトや私たちが示す熱狂は、実際にそうすることを示唆している
      続く論理は、私たちがそうするなら、私たちの世界の住人たちもいつかそうするだろうし、そのプロセスが無限に繰り返される、というもの。そのようなスタックがあるなら、私たちがいまだに最上位の層にいる確率は非常に小さくなる
    • このプロジェクトと Averroes の普遍知性の概念の間には、かなり直接的な類比が成り立ち、その根は Aristotle にある
      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]
      もう少し噛み砕くと、2種類の知識を考えてみるのは興味深い。ひとつは ChatGPT のニューラルネットワークに保存された、広範で「普遍的」かつ「時間を超越した」知識であり、もうひとつは各エージェントのコンテキストにある知識で、場所と時間の両方において個別的かつ局所的なもの
      「知性」は、行動するための具体的なコンテキストを与えられなければ、実際には何もできない

    • 私たちはすでにそうなのでは?
    • Sam Harris が、自由意志は存在せず、ある考えはどこからともなく浮かんでくるように見える、と言っていたのを思い出す。おそらく LLM がそうした考えを注入しているということなのだろう
  • 「AI キャラクターが暮らし、チャットし、交流する仮想の村」とあるが、説明では「暮らし」「チャットし」「交流する」と言っているものの、私が見たのはチャットだけだった
    ここで「暮らすこと」と「交流すること」は正確には何を意味するのか?

    • ここで暮らすというのは存在するという意味で、交流するというのは他の人のところへ歩いて行くという意味のようだ
  • エージェントたちが世界の中で AI Town を再現するまで、どれくらいかかるだろう? 私たちには見られないだろうが、誰かがその話を始めることはできそうだ ;)