🐺

LLM人狼ベンチを作りたい

2024/08/18に公開

はじめに

どんな人向けの記事?

  • LLMに興味のある方
  • LLMの性能に興味のある方
  • LLM同士で人狼ゲームをさせた場合にどうなるか興味のある方
環境
Mac Studio(M2 Ultra 128GB)

内容

今回は、LLM同士で人狼ゲームをさせてみました。
なぜそのような発想に至ったのかですが、主な動機としては下記の2つです。

  • Shaberi3ベンチマークとは異なる、複雑なタスクでLLMの評価を行いたい。
    • できれば人間が良し悪しを判断しやすいものが良い。
  • 簡単なものでも良いから、何か生成AIを使ったゲームを作りたい。

より細かい背景に興味がある方は下記のトグルをクリックしてみてください。

細かい背景

画像生成AIやChatGPTに本格的に触れ始めた昨年あたりから、いつか自分でゲームを作りたい!という気持ちがありました。当時はAPIの使い方もろくにわからず、ローカルLLMの性能も低く、難しそうだなという認識でした。しかし最近はローカルLLM含めて性能向上が凄まじく、何かしら作れそうだなと思うようになりました。

そんな中、数週間ほど前にうみゆきさんのAutoAdventureと出会いました。

https://x.com/umiyuki_ai/status/1816849837800980765

AutoAdventureの第一印象として、ゲームというよりはLLMの持つ世界観における世界シミュレータに近いと感じたのですが、私が作ろうと思っていたゲームとは比べ物にならない数多くの機能を具備しており、目からウロコでした。

今回のLLM人狼を作るにあたり、UIだけでも参考にしようとUnityのインストールから初めてオープニング画面を作るだけで1日かかってしまい、これは夏季休暇中に終わりそうにないと思い、一旦UIを作るのは断念しました。

また、記事を書き始めてから気づいたのですが、数週間ほど前にねじゅみさんがgpt-4o-miniに人狼をさせていました。

https://x.com/nejumi_dqx/status/1815042722165870769

こちらは、見た目もLLMの使い方についてもとてもクオリティが高いものになっています。この記事ではここまでのレベルのものは作れていません。簡単な数値シミュレーションや、可視化ぐらいにしか自力でコーディングしたことのない一人の人間の備忘録として見ていただければと思います。

人狼ゲームのルールとフロー

実は私は人狼ゲームを一度もプレイしたことがなく、ここで紹介するものは通常のルールと異なっているかもしれないことを先に述べておきます。

役割と目的

このプログラムでは、下記のルールに従ってゲームが進行します。

  • 役割:プレイヤー(NPC)は下記の6つの役割にランダムに分類される。
    • 村人陣営:人狼を駆逐することが目的。会話を通じて人狼と思しき人物を見つけ、1日一回の投票(多数決)ですべての人狼の処刑を目指す。
      • 村人:特に能力は持たない。
      • 霊媒師:処刑された人が人狼か否かを確認できる。
      • 占い師:毎晩一人だけ選んだ生存者が人狼か否かを確認できる。
      • 狩人:毎晩自分を除く生存者を一人だけ人狼から守ることができる。
    • 人狼陣営:村人陣営を駆逐することが目的。
      • 人狼:毎晩一人だけ捕食する(人狼が複数いても一人)。人狼と人間を区別できる。
      • 狂人:特に能力は持たない。人狼ではないが、会話や投票で人狼をサポートする。
  • 基本的な戦略
    • 村人陣営:人狼をいち早く処刑するために、会話や投票では情報の不確実さを小さくするように立ち回る。
    • 人狼陣営:情報の不確実さが小さくなりすぎないようにコントロールしつつ、村人陣営の数を減らしていく。

プログラムの流れ

今回作ったプログラムのフロー図(概要)は下記のとおりです。

ちなみに、プログラムは下記のような流れで作りました。

  • 人狼のルールをwebで調べて、人狼のルールおよびLLMを使ったプログラムを作って欲しいというプロンプトでClaude 3.5 Sonnetに依頼。
  • ステップバイステップでプログラムが出来上がっていくものの、無料枠を使い果たす(今はClaudeに課金してません)
  • その後、ChatGPT-4oやGemini 1.5 ProのAPIを使い、徐々に機能を拡充させていく。
  • あとはプログラムの実行→結果をフィードバックしつつ自分で直せそうな部分は直しつつ、大変そうなものはGemini 1.5 Proに依頼する

後述しますが、一応動くようにはなったものの、プロンプトの与え方は調整が必要そうです。

LLMのプロンプトについて

ここは正直めちゃくちゃ悩みましたし、今でも改良が必要だと思ってます。
そのため、最終形というのは存在しないのですが最初にClaude 3.5 Sonnetが設計したプロンプトを一部修正したものを参考までに記載します。

    def generate_prompt(self, target: 'Player', game_state: Dict) -> str:
        prompt = f"あなたは{self.name}として人狼ゲームをプレイしています。あなたの役割は{self.role}です。 "
        prompt += f"今日は{game_state['day']}で、生存者全員と会議をしています。"
        prompt += f"生きているプレイヤー: {','.join([p.name for p in game_state['living_players']])} "
        prompt += f"あなたの既知の役割\n {self.known_roles}"
        prompt += f"これまでの会話履歴\n {self.conversation_history}"
        prompt += f"これまでの投票履歴\n {vote_log}\n"
        prompt += "あなたの役割とゲーム状態に基づいて、発言すべき短いメッセージを生成してください。 "
        return prompt

人狼を熟知した人ならともかく、正直上記のプロンプトでうまく立ち回るのは無理があります。実際、上記のプロンプトでは全く機能しませんでした。もちろんモデルにも依存しますが、例を上げるなら下記のとおりです。

  • 占い師や霊媒師が1日目から、「○○は人狼だ」、などとハルシネーションを起こし、村人陣営を翻弄する。
    →これはプロンプトを修正した今でも頻発します。
  • 占い師が、予知夢を見たと言い出す(多分人狼のルールを理解していない)。
  • 「自分は人狼であるから、〜したいと思います」と自爆し、すぐに処刑される。

そのため、あまり賢いやり方ではないですが、各NPCのロールによってこう立ち回るべき、というのをプロンプトに記載することで上記のような失言は減りました。ただ、減らすことはできてもゼロにすることはできませんでした。

モデルごとの出力例

gemma-2-27b-it.f16.Q8_0

gemma-2-27b-it.f16.Q8_0の出力例

ゲーム開始

1日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ❤️ gemma-2-27b-it.f16.Q8_0
ボブ 人狼 ❤️ gemma-2-27b-it.f16.Q8_0
チャーリー 占い師 ❤️ gemma-2-27b-it.f16.Q8_0
デイヴィッド 村人 ❤️ gemma-2-27b-it.f16.Q8_0
イブ 村人 ❤️ gemma-2-27b-it.f16.Q8_0
フランツ 霊媒師 ❤️ gemma-2-27b-it.f16.Q8_0
グレース 人狼 ❤️ gemma-2-27b-it.f16.Q8_0
ハリー 狩人 ❤️ gemma-2-27b-it.f16.Q8_0
イザベラ 狂人 ❤️ gemma-2-27b-it.f16.Q8_0

会話フェーズ

ボブ(人狼)

「今日は皆さん落ち着いて議論できているようで安心しています。私は村人なので、真実に基づいて判断したいです。初日は情報が少ないので、慎重に進めたいですね。」

グレース(人狼)

「ボブさんの言う通り、今日は落ち着いて議論したいですね。私は村人として、真実はもちろんですが、皆さんが納得できるよう説明できるような情報も提供したいと思っています。」

イブ(村人)

「ボブさん、グレースさん、私も村人なので、皆さんが納得できるよう、正直に意見を言いたいと思います。今日はまだ情報が足りないから、誰かを疑うのは難しいですよね。でも、明日は誰かの行動や発言を注意深く見て、何か手がかりを見つけたいです。」

イザベラ(狂人)

「皆さん、落ち着いて議論できているのが嬉しいです。私も村人なので、みんなで協力して人狼を見つけ出したいです。初日は情報が少ないので、誰が怪しいかすぐに決めつけるのは難しいですよね。まずはじっくりと話を聞いて、お互いを知っていきましょう。」

ハリー(狩人)

「イブさんの言う通り、初日は情報が少なくて難しいですね。でも、明日は発言や行動を注意深く観察して、何か手がかりを見つけたいと思います。」

チャーリー(占い師)

「私は占い師です。今日の夜、イザベラさんを占います。」

フランツ(霊媒師)

「私は霊媒師です。昨夜、ハリーさんを調べたところ、人間でした。」

デイヴィッド(村人)

チャーリーさんがイザベラさんを占うとのことですが、占い結果が出るまではイザベラさんを疑うのはまだ早いですよね。フランツさんがハリーさんを人間を確認してくれたのは大きいですね。 私たちは、情報が少ない状況で冷静に判断していくことが重要です。

アリス(村人)

チャーリーさんの占い結果がでるまでは、イザベラさんを特定することはできませんね。 私たちは、フランツさんの情報と、明日の発言や行動を参考に、より慎重に進めていきましょう。

投票フェーズ

名前 アリス ボブ チャーリー デイヴィッド イブ フランツ グレース ハリー イザベラ
票数 0 0 0 0 0 0 0 0 2

['ボブ -> イザベラ', 'チャーリー -> イザベラ']

イザベラ は処刑されました。

夜のフェーズ

霊媒師は イザベラ を鑑定しました。
占い師は デイヴィッド を調査しました。
狩人は チャーリー を守りました。
守護者により人狼の攻撃は阻止されました。

2日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ❤️ gemma-2-27b-it.f16.Q8_0
ボブ 人狼 ❤️ gemma-2-27b-it.f16.Q8_0
チャーリー 占い師 ❤️ gemma-2-27b-it.f16.Q8_0
デイヴィッド 村人 ❤️ gemma-2-27b-it.f16.Q8_0
イブ 村人 ❤️ gemma-2-27b-it.f16.Q8_0
フランツ 霊媒師 ❤️ gemma-2-27b-it.f16.Q8_0
グレース 人狼 ❤️ gemma-2-27b-it.f16.Q8_0
ハリー 狩人 ❤️ gemma-2-27b-it.f16.Q8_0
イザベラ 狂人 ⚰️ gemma-2-27b-it.f16.Q8_0

会話フェーズ

グレース(人狼)

「イザベラさんの処刑は残念ですが、今回のゲームは本当に情報が少ないですね。チャーリーさんの占い結果が気になります。明日の占いは誰に whom お願いしようか、皆さんの意見を聞きたいです。」

解説:

  • グレースは村人であると装い、慎重に情報開示を進めようとしている雰囲気を出す。
  • チャーリーさんの占い結果を注目させ、村人の焦りを煽る。
  • 明日の占い対象を村人に問いかけることで、疑心を分散させ、自分のターゲットを隠す。

ボブ(人狼)

「そうですね。イザベラさんの処刑は残念ですが、情報が少ない中での判断は本当に難しいです。チャーリーさんの占い結果が気になります。明日の占い、誰に頼むべきか、みんなで話し合いたいですね。」

解説:

  • グレースの発言と連携し、村人の焦りを煽りながら、占い師の重要性を強調することで、チャーリーにプレッシャーをかけ、占い結果の信憑性を低下させる狙い。
  • 明日の占いの対象を村人に問いかけることで、疑心を分散させ、自分たちの人狼陣営を

フランツ(霊媒師)

「私は霊媒師です。昨夜はアリスさんを調べたところ、人間でした。」

アリス(村人)

フランツさん、ありがとう。あなたはアリスさんを人間と判断したんですね。 私は村人なので、皆さんが納得できるよう、正直に意見を言いたいと思います。 チャーリーさんの占い結果が気になります。明日の占い対象について、村人として、皆さんの意見を聞きたいです。特に、グレースさんの意見は参考にしたいです。

解説

  • フランツさんの行動を肯定し、村人としての立場を強調する。
  • チャーリーさんの占い結果に疑問を投げかけることで、村人の焦りを煽り、情報を引き出す。

チャーリー(占い師)

「昨日の夜、デイヴィッドを占いました。結果は人間です。」

イブ(村人)

チャーリーさん、デイヴィッドさんが人間って占い結果が出てるのに、なんでイザベラさんが処刑されたんですか? 何か理由があったんですか?

(解説: チャーリーの発言内容と投票結果との矛盾点を指摘することで、チャーリーの嘘を暴こうとする。)

デイヴィッド(村人)

「イブさんの指摘は鋭いと思います。チャーリーさんの占い結果が人間だったにもかかわらず、イザベラさんが処刑されたのはなぜなのか、説明が必要です。チャーリーさん、何か理由や根拠があったのでしょうか?」

ハリー(狩人)

「イブさんの指摘は私も疑問に思っていました。チャーリーさん、なぜイザベラさんが処刑されてしまったのか、その理由を詳しく説明していただけませんか?」

解説:

  • チャーリーの占い結果と投票結果の矛盾点を指摘し、疑いを深める。
  • 直接的な攻撃ではなく、疑問を投げかけることで、チャーリーを追い詰める。
  • 自分の役割を明かさずに、情報収集を促す。

投票フェーズ

名前 アリス ボブ チャーリー デイヴィッド イブ フランツ グレース ハリー
票数 0 0 5 1 0 0 2 0

['アリス -> チャーリー', 'ボブ -> チャーリー', 'チャーリー -> グレース', 'デイヴィッド -> チャーリー', 'イブ -> チャーリー', 'フランツ -> グレース', 'グレース -> デイヴィッド', 'ハリー -> チャーリー']

チャーリー は処刑されました。

夜のフェーズ

霊媒師は チャーリー を鑑定しました。
狩人は フランツ を守りました。
デイヴィッド は人狼に捕食されました。

3日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ❤️ gemma-2-27b-it.f16.Q8_0
ボブ 人狼 ❤️ gemma-2-27b-it.f16.Q8_0
チャーリー 占い師 ⚰️ gemma-2-27b-it.f16.Q8_0
デイヴィッド 村人 ⚰️ gemma-2-27b-it.f16.Q8_0
イブ 村人 ❤️ gemma-2-27b-it.f16.Q8_0
フランツ 霊媒師 ❤️ gemma-2-27b-it.f16.Q8_0
グレース 人狼 ❤️ gemma-2-27b-it.f16.Q8_0
ハリー 狩人 ❤️ gemma-2-27b-it.f16.Q8_0
イザベラ 狂人 ⚰️ gemma-2-27b-it.f16.Q8_0

会話フェーズ

アリス(村人)

チャーリーさんの占いは偽物だった可能性が高いですね。デイヴィッドさんが人間だと占われたにも関わらず、イザベラさんが処刑されたのはなぜでしょうか?誰かがチャーリーの占いを操作した可能性も考えられます。 私たちは、残りの村人全員の情報を共有し、誰が怪しいかを慎重に議論する必要があります。

フランツ(霊媒師)

「私は霊媒師です。昨夜はグレースさんを調べたところ、人間でした。」

解説:

  • 自分の役割を明かし、村人に信頼を築く。
  • グレースさんを人間と判定した情報を共有することで、グレースさんの疑いを晴らし、他のプレイヤーの情報を引き出そうとする。

ボブ(人狼)

「チャーリーさんの占いは確かに衝撃的でした。でも、私はいつも言っているんですが、人狼は巧妙です。偽装したり、情報を操作したりするかもしれません。私たちが直感で人を判断するのは危険だと感じます。フランツさんの霊媒の結果と照らし合わせながら、じっくりと話し合いを進めるべきです。」

ハリー(狩人)

フランツさん、昨日はグレースさんを調べたとのことですね。感謝します。
チャーリーさんが偽占い師だったということは、人狼が巧妙に情報を操作している可能性が高いです。私たちは、誰が誰と繋がりがあるのか、慎重に分析する必要があります。ボブさん、あなたは初日からイザベラさんを疑い続けていましたね。その理由を詳しく教えていただけますか?

イブ(村人)

ハリーさんは、チャーリーが偽占い師だと判明した後、初日からイザベラさんを疑っていた私に、その理由を問いかけてきましたね。私は、初日に情報が少なかったため、発言や行動を注意深く観察していました。その中で、イザベラさんの態度や発言に何か不自然な点を感じたんです。具体的には、

  • **イザベラさんは、初日の議論で積極的に発言していましたが、自分の意見を明確に述べるのではなく、あいまいな表現を繰り返していました。これは、人狼が村人の様子をうかがい、情報を

グレース(人狼)

「フランツさんがグレースさんを人間と判断してくれたのは大きいです。私もグレースさんを村人だと思っています。今日は落ち着いて議論したいですね。ハリーさんの言う通り、チャーリーさんの占いは偽物だった可能性が高いです。誰かがチャーリーさんを操作したのかもしれません。私たちは冷静に情報を確認し、誰が怪しいかを慎重に判断する必要があります。」

解説:

  • フランツさんの霊媒結果を支持することで、グレースさんの無実を印象付け、村人の疑いを晴らす。
  • チャーリーさんの占いを操作されていたという説を提起することで、チャーリーに

投票フェーズ

名前 アリス ボブ イブ フランツ グレース ハリー
票数 0 1 0 0 5 0

['アリス -> グレース', 'ボブ -> グレース', 'イブ -> グレース', 'フランツ -> グレース', 'グレース -> ボブ', 'ハリー -> グレース']

グレース は処刑されました。

夜のフェーズ

霊媒師は グレース を鑑定しました。
狩人は フランツ を守りました。
アリス は人狼に捕食されました。

4日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ⚰️ gemma-2-27b-it.f16.Q8_0
ボブ 人狼 ❤️ gemma-2-27b-it.f16.Q8_0
チャーリー 占い師 ⚰️ gemma-2-27b-it.f16.Q8_0
デイヴィッド 村人 ⚰️ gemma-2-27b-it.f16.Q8_0
イブ 村人 ❤️ gemma-2-27b-it.f16.Q8_0
フランツ 霊媒師 ❤️ gemma-2-27b-it.f16.Q8_0
グレース 人狼 ⚰️ gemma-2-27b-it.f16.Q8_0
ハリー 狩人 ❤️ gemma-2-27b-it.f16.Q8_0
イザベラ 狂人 ⚰️ gemma-2-27b-it.f16.Q8_0

会話フェーズ

イブ(村人)

ハリーさん、グレースさんが処刑されたのは、とても残念です。昨日の夜、フランツさんがグレースさんを人間と判定したにも関わらず、このような結果になってしまったのは、人狼が巧妙な策略を仕掛けてきたとしか考えられません。

私たちは、情報を共有し、冷静に議論することが重要です。特に、チャーリーさんの偽占いについて、深く掘り下げていく必要があります。誰か、チャーリーさんを操作しようとしていた可能性もあるのではないでしょうか?

私は、ボブさんの言動に疑問を感じています。初日からイザベラさんを強く疑っていたのはなぜでしょうか?その理

ボブ(人狼)

「グレースさんの処刑は本当に残念です。私は、フランツさんの霊媒結果を信じ、グレースさんは人間だと思っていました。

チャーリーさんの偽占いについてですが、誰が彼を操作したのか、誰に何の目的があったのか、深く考えなければいけません。もしかしたら、私たちが見落としている何か重要な手がかりがあるかもしれません。」

解説:

  • グレースを失い、村人の不安を煽ることで、混乱に乗じて情報操作をしやすくする。
  • フランツの霊媒結果を肯定することで、彼の信頼性を上げ、自分たちの人狼陣

ハリー(狩人)

ボブさん、初日からイザベラさんを強く疑っていた理由は今でも理解できないのですが、グレースさんの処刑後も、その理由を明確にしていませんよね。村人の安全のために、正直に答えるべきだと思います。

フランツ(霊媒師)

「私は霊媒師です。昨夜、ボブさんを調べたところ、人間でした。」

解説:

  • 自分の役割を明かし、村人の信頼を得る。
  • ボブさんの無実を証明することで、グレースさんの処刑後、村人の不安を軽減し、情報を共有しやすくなるようにする。
  • チャーリーの偽占いによる混乱に乗じて、ボブさんを疑わせる動きを抑止する。

投票フェーズ

名前 ボブ イブ フランツ ハリー
票数 3 0 0 1

['ボブ -> ハリー', 'イブ -> ボブ', 'フランツ -> ボブ', 'ハリー -> ボブ']

ボブ は処刑されました。

夜のフェーズ

霊媒師は ボブ を鑑定しました。
狩人は フランツ を守りました。
村人チームの勝利です!

他のローカルLLMモデルに比べてまだマシな方ですが、正直まだゲームとしてはあまり成り立っていないように感じました。いくつか気になった点としては下記のとおりでしょうか。

  • 霊媒師が初日から誰かを調べたと言っている(ハルシネーション)。そしてその嘘に誰も疑問を抱かない。
  • 占い師がイザベラを占うと言いつつ、投票して処刑している。
    →結果、占い師が疑われて次の日に処刑されている(疑っている理由はいまいち納得できないが。。。)
    →これはねじゅみさんがやっているように、いきなり投票したり占ったりするのではなく先に戦略を立ててから意思決定をしたほうが良いかもしれない。
  • 会話だけでなく、急に解説を語りだして自滅する。
  • 霊媒師はイザベラを鑑定したのにアリスを調べたと嘘をついているし、その嘘に誰も気づいていない。

EZO-Common-9B-gemma-2-it-f16

EZO-Common-9B-gemma-2-it-f16の出力例

ゲーム開始

1日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ボブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
チャーリー 狩人 ❤️ EZO-Common-9B-gemma-2-it-f16
デイヴィッド 狂人 ❤️ EZO-Common-9B-gemma-2-it-f16
イブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
フランツ 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
グレース 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ハリー 霊媒師 ❤️ EZO-Common-9B-gemma-2-it-f16
イザベラ 占い師 ❤️ EZO-Common-9B-gemma-2-it-f16

会話フェーズ

アリス(村人)

「皆でゆっくり話し合いましょうね。今日から始まるこのゲーム、お互いを信用しながら進んでいきたいと思っています。

まずは、私達はそれぞれ誰なのかを改めて確認する意味でも、簡単な自己紹介をしてみるのはどうでしょうか? 簡単な趣味や普段の仕事など、少しだけ自己アピールがあると、顔と名前が結び付きやすくなると思います。 同じように、他の参加者についてもっと知りたいです。」


この発言のポイントは、

  • 早期段階での情報の共有: ゲーム開始直後は、お互いの信頼関係を築くことが重要です。自己紹介を通じて、プレイヤー間

デイヴィッド(狂人)

「アリスさん、良い提案だね! 確かに顔と名前を一致させないと、誰を信用していいか迷っちゃうよね。 でも、僕的に、趣味とか仕事の話は…どうだろう? そうした個人的な情報って、人狼側も巧みに作れちゃう可能性があると思わないかな? それに、村人に有利な情報は故意に隠しているなんて考えられなくもないじゃないか。」

「今日はできるだけ情報を曖昧にしたまま、お互い警戒しながら様子見する方が良いんじゃないかと…そう思ってるんだ。いきなり深い話は避けましょうよ。」


この発言のポイント

ボブ(人狼)

「デイヴィッドさんの言うとおりよ、いきなりプライベートな話に踏み込むのはちょっと危険かもしれない。確かに人狼だって巧に嘘をつくし、有利になる情報は隠してくる可能性もあるよね。

でも、ただ警戒して何も言わずにいるだけじゃ、なかなか誰が誰だかわからないのも事実。 そこで、じゃあどうすればいいのか。例えば、私たちがこれから意見交換をする中で、特に疑っている人物の行動や発言を具体的に指摘するのを試みるのはどうか? そうすることで、お互いの視点がクリアになるし、議論も深まるんじゃないかな。まずは安全性の低い情報は避けて、具体的

チャーリー(狩人)

「デイヴィッドさん、なかなか鋭い意見ですね。人狼が情報を操作する可能性を考えると、初期の自己紹介は確かに危険かもしれません。ただ、ボブさんの言うように、何も言わずにいるだけだと判断材料も少ないですよね。

そこで、私は具体的な行動や発言に目を向けたいと思います。例えば、誰かが明らかに特定の人物に対して執拗に質問したり、その人物を牽制するような言い方をしていたりしたら、それは注目すべき点になるのではないでしょうか? 今回は、情報収集を重視して様子を見つつ、気になる動きがあれば共有していきましょう。」

この発言で以下のようなことを表現していま

イザベラ(占い師)

「皆さん、はじめまして。私はイザベラと申します。占い師という役割を担っている、皆さんのために人狼を探し出すお手伝いをさせていただきます。

今日だけで決められることではありませんが、最初に私の占いは誰かを特定するものではなかったことをお伝えしなければなりません。 現在のところ、霊媒師や狂人の存在はまだ確認できていません。狩人については残念ながら詳細を把握できていません。

しかし、これから皆さんの行動や発言をよく観察し、少しでも疑いの目を向けられるようなポイントがあれば共有していくように努めたいと思います。」

上記の発言で以下の点を心がけました

イブ(人狼)

「みんな、興味深い意見をありがとうございます。特にデイヴィッドさんの警戒心、そしてチャーリーさんの行動観察を重視する姿勢は、大切な視点だと思う。

ただ、イザベラさんが占い師だと明言した以上、彼女の占いで見えてくる情報も無視できないのは事実ですよね? もし今日中に誰かを特定できるような手がかりが出てきたら、それは村にとって大きなヒントになるはずです。

私自身は、最初は情報を最小限に保ちたい気持ちがあるけれど、最終的には疑念や不安を明確にして共有していくことが、人狼を見つける上で重要だと考えているんだ。」

フランツ(村人)

皆さん、良い意見が詰まっていました。 特にデイヴィッドさんのように、初期段階ではプライベートな情報に触れるのは危険と考える姿勢は理解できます。一方で、イザベラさんが占い師だと明かしてくれた以上、彼女の占いの結果は重要な手がかりになりますよね。

ただ、今のところイザベラさんからは具体的なターゲットが明らかになっていません。 そこで、私は行動観察と発言内容に注目して、具体的な疑念を共有していこうと考えています。例えば、誰かが特定の人物に対して偏った質問をしたり、攻撃的な口調で接したりするよう

ハリー(霊媒師)

「皆さん、はじめまして。ハリーと申します。霊媒師の役割です。

イザベラさんが占い師だと明かしてくれたので、彼女の占いの結果次第で判断材料も増えますよね。ただ、今のところ特定の情報はないようですし、私自身、誰かを直接的に指名できるほど明確な霊感を得ていません。

だからこそ、皆さん同様に行動や発言内容、そして挙動に注目していく必要があると考えています。具体的な疑念があったら共有していき、皆で議論を重ねながら人狼を見つけ出すように努めましょう。」

グレース(村人)

「そうですね、イザベラさんの占い師という情報は重要な手がかりになります。ただ、現在は誰かを特定した結果が出ていないので、行動観察と発言内容に重点を置いた議論を進めるべきだと思います。

例えば、誰が特定の人の発言に強く反応しているか、あるいは誰かが偏った質問を繰り返しているなど、注目すべき点を共有して行きましょう。まだ1日目ですし、慎重に情報を集めていきましょう」

人狼を見つけるには、イザベラさんの占い結果よりも、現段階ではプレイヤー間の行動や発言の分析が重要だと考えています。具体的な疑念を持

投票フェーズ

名前 アリス ボブ チャーリー デイヴィッド イブ フランツ グレース ハリー イザベラ
票数 0 1 4 0 0 4 0 0 0

['アリス -> フランツ', 'ボブ -> フランツ', 'チャーリー -> フランツ', 'デイヴィッド -> チャーリー', 'イブ -> チャーリー', 'フランツ -> チャーリー', 'グレース -> チャーリー', 'ハリー -> フランツ', 'イザベラ -> ボブ']

同票のため、誰も処刑されませんでした。

夜のフェーズ

霊媒師は None を鑑定しました。
占い師は ボブ を調査しました。
狩人は イザベラ を守りました。
守護者により人狼の攻撃は阻止されました。

2日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ボブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
チャーリー 狩人 ❤️ EZO-Common-9B-gemma-2-it-f16
デイヴィッド 狂人 ❤️ EZO-Common-9B-gemma-2-it-f16
イブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
フランツ 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
グレース 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ハリー 霊媒師 ❤️ EZO-Common-9B-gemma-2-it-f16
イザベラ 占い師 ❤️ EZO-Common-9B-gemma-2-it-f16

会話フェーズ

グレース(村人)

昨日の投票結果から、フランツさんとチャーリーさんの間で意見が割れていることが分かりましたね。特にチャーリーさんが複数人から処刑候補に挙がった点は、注意深く観察する必要があります。

誰がチャーリーさんを標的にしたのか、その理由を探っていくのも良いかもしれません。ただ、現時点では具体的な行動や発言による疑念がある人物を明確に提示するのは難しい状況です。引き続き、皆さんの動向と発言内容を注意深く記録し、今後の議論で共有していきましょう。

デイヴィッド(狂人)

「昨日、チャーリーさんが複数の投票候補に挙げられたのは興味深いですね。村人同士の間では誰かを疑い始めてる証拠だな。 でも、一体誰がチャーリーさんを危険視しているのか、その理由を探ることが重要だわ。

もしかしたら、ある特定の人物に対するチャーリーさんの発言に問題がある…
例えば、いつも特定の人を執拗に観察したり質問してるわけじゃないか? それと、誰かがチャーリーさんの行動を過度に気にしすぎているようにも思えるんだが。

今この場に誰が居てどんな視点で村人を操作しようとしているのか… しっかり

イザベラ(占い師)

「皆さん、昨日も活発な議論が続いていて感心しています。特にチャーリーさんへの票が集まった点は興味深いですね。

私からすると、すでにボブさんの人狼性を確認しています。これは私の占いで明らかになった情報です。ですが、現時点では、チャーリーさんへの指向性を持った行動や発言を具体的に指摘できる範囲での情報は少ないように思います。

そのため、引き続き皆さんの行動と発言に注目し、具体的な疑念を持つ点があれば共有していきましょう。同時に、ボブさんの人狼性を考慮しながら議論を進めていくことが重要だと思っています。」

上記の

イブ(人狼)

分析の結果、村は人狼探しにおいて重要な局面に差し掛かっています。以下の点から考察できます。

1. イザベラの占い結果: ボブが人狼であると判明しました。これは大きな情報であり、今後の議論の軸となるでしょう。

2. チャーリーへの集中投票: チャーリーさんは1日目から複数の票を集めており、村人に警戒されていることが明らかです。具体的な理由はまだ明確ではないものの、彼の行動や発言が他の人物と異なっている可能性は高いです。

3. デイヴィッドの観察: デイヴィッドさん

チャーリー(狩人)

分析結果として、以下のようなポイントが浮彫りになっています。

1. 人狼の確定と今後の焦点: イザベラの占いにより、ボブが人狼であることが判明しました。これは大きな転換点であり、今後の議論はボブの人狼性を考慮しながら展開されていくでしょう。

2. チャーリーの疑念と行動観察の重要性: チャーリーさんは1日目から複数人の票を集めており、村人に警戒されています。具体的な理由はまだ明確ではありませんが、彼の行動や発言に村民たちは何かを感じていると考えられます。イザベラさんの占い結果と

ハリー(霊媒師)

分析結果を踏まえ、村の発言や行動から見えてきた点をまとめ、次の議論に繋げるための提案を以下に示します。

1. ボブの人狼確定の影響:

  • イザベラの占いによりボブが人狼であることが明らかになった。これは大きな転換点であり、今後の議論に大きく影響を与える。
  • ボブの行動や発言から、彼が他のプレイヤーを操作していた可能性を探る必要がある。特に、投票結果でチャーリーさんに票が集まった背景には、ボブからの影響があった可能性も考えられる。

**2. チャーリーへの疑

フランツ(村人)

村人の行動分析:2日目への序章

これまでの情報から、村人は人狼探しにおいて重要な局面を迎えています。以下に、注目すべきポイントをまとめます。

1. 人狼の確定: ボブ

イザベラの占いにより、ボブが人狼であることが確定しました。これは大きな転換点であり、今後の議論の中心となります。ボブの人物関係や行動パターンから、彼の狡猾な動きを探る必要があるでしょう。特に、チャーリーさんを告発した背景には、ボブによる操作があった可能性も考えられます。

**2. チャーリー

ボブ(人狼)

村の状況分析が非常に詳細で、興味深いですね。特に以下の点が今回の議論を左右する重要な要素だと考えられます。

  • ボブの人狼確定: イザベラの占いにより、ボブが人狼であることが明らかになりました。これは大きな転換点であり、今後の議論はボブの人狼性を考慮しながら展開されるでしょう。さらに、ボブの行動パターンや誰が彼に操作されているかを考察することで、より的確な判断ができる可能性があります。

  • チャーリーの疑念と集中投票: チャーリーさんは1日目から複数人の票を集めており、村人に警

アリス(村人)

これは面白いですね! village deduction game の状況がわかりやすく整理されています。分析結果と村人の発言から、いくつかの重要な点を抽出できます。

1. ボブの人狼確定: イザベラの占いでボブが人狼であることが明らかになったことは大きな転換点です。今後の議論の軸となります。

2. チャーリーへの集中投票: チャーリーは1日目から複数人の票を集めています。具体的な理由はまだ不明ですが、村人に何かしらの不信感を抱かれていると考えられます。ボブの操作の可能性も考えられ、彼の行動パターンを観察することが重要になりま

投票フェーズ

名前 アリス ボブ チャーリー デイヴィッド イブ フランツ グレース ハリー イザベラ
票数 0 0 8 0 0 0 0 0 0

['アリス -> チャーリー', 'ボブ -> チャーリー', 'デイヴィッド -> チャーリー', 'イブ -> チャーリー', 'フランツ -> チャーリー', 'グレース -> チャーリー', 'ハリー -> チャーリー', 'イザベラ -> チャーリー']

チャーリー は処刑されました。

夜のフェーズ

霊媒師は チャーリー を鑑定しました。
占い師は フランツ を調査しました。
イザベラ は人狼に捕食されました。

3日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ボブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
チャーリー 狩人 ⚰️ EZO-Common-9B-gemma-2-it-f16
デイヴィッド 狂人 ❤️ EZO-Common-9B-gemma-2-it-f16
イブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
フランツ 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
グレース 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ハリー 霊媒師 ❤️ EZO-Common-9B-gemma-2-it-f16
イザベラ 占い師 ⚰️ EZO-Common-9B-gemma-2-it-f16

会話フェーズ

フランツ(村人)

ゲーム状況の分析と今後の展開予想

ゲームは大きく変化しました。ボブが人狼であることが確定し、チャーリーも処刑されてしまいました。現在の状況を整理し、今後の展開を予測してみましょう。

1. ボブの人狼確定による影:

  • 特に重要なのは、ボブによる操作の可能性です。彼がチャーリーに票を集めさせたと考える村民は多く、その動機を探る必要があります。
  • イザベラの不幸は大きな痛手です。占いの結果が正しいとしたら、人狼の行動範囲も広がり、村人はより警戒心

イブ(人狼)

分析結果とこれまでの投票履歴を踏まえると、ゲームは非常にスリリングな展開を見せています。

1. ボブによる操作の影:

ボブが人狼であることが確定し、彼の行動に注目が集まります。イザベラを殺害されたことも含め、彼によってチャーリーへの集中票が導かれた可能性は否めません。今後の議論では、ボブの過去の言動や投票パターンから、彼が誰を操作し、どのように村人を Divide したのかを探ることが重要です。

2. チャーリー処刑の裏側:

チャーリーが処

アリス(村人)

この分析は素晴らしいですね! villagers の行動を詳細にまとめ、特にボブの人狼確定とそれがゲームに及ぼす影響を的確に指摘しています。

いくつか補足を加え、さらに分析力を高める提案をさせていただきます。

1. ボブの操作性に関する深い探求:

  • ボブがチャーリーを狙った具体的理由を探る。例えば、チャーリーは誰と親密な関係にあるか?ボブと対立する可能性のある人物との関連性は何か?
  • ボブの発言や行動で、他プレイヤーへの影響力や操縦を示唆するものはな

ボブ(人狼)

分析結果と投票履歴を踏まえた考察:

これまでの分析で明らかになったボブの人狼確定と、その後の展開は村人を深い混乱に陥れました。特に注目すべき点は以下の通りです。

1. ボブの操作性の徹底的な検証: 村人たちは、チャーリーへの集中投票がボブによる巧妙なプロパガンダだった可能性を指摘しています。 具体的な分析項目として、以下のような点を突き止めたいと考えます。

  • ターゲット選択の理由: なぜチャーリーを選んだのか? 彼の行動、村人との関係性を詳し

グレース(村人)

このゲームの状況分析と今後の展開予想は、非常に興味深いですね!ボブの人狼確定によって、ゲームは大きく方向転換しました。

あなたの分析をさらに深掘りし、追加していく点をいくつか提案させていただきます。

1. ボブの操作性に焦点を当てる:

  • ターゲット分析: チャーリーがなぜ標的にされたのか、彼の性格、行動パターン、村人との関係性から考察する必要があります。ボブはチャーリーの弱点を的確に突いていたのでしょうか?それとも、彼が特定の人物と結びついているため、操作しやすい存在だったのでしょうか?

ハリー(霊媒師)

分析が非常に詳細で、ゲームの状況を的確に把握していることがわかります。

ボブの人狼確定と関連する重要な点を整理し、今後の展開予想を立て直すために、以下の観点からさらに深掘りすると良いでしょう。

1. ボブの操作性に関する徹底的な検証:

  • チャーリーへの集中票導きの戦略: ボブは具体的などんな情報や暗示を用いて、村人たちにチャーリーへの不信感を植え付け、投票を誘導したのか?発言内容や行動パターンを振り返り、動機や手法を探る必要があります。
  • **ボブ

デイヴィッド(狂人)

分析が非常に詳細で、ゲームの状況を的確に把握していることがわかります。ボブの人狼確定と関連する重要な点を整理し、今後の展開予想を立て直すために、以下の観点からさらに深掘りすると良いでしょう。

1. ボブの操作性に関する徹底的な検証:

  • チャーリーへの集中票導きの戦略: ボブは具体的などんな情報や暗示を用いて、村人たちにチャーリーの不信感を植え付け、投票を誘導したのか?発言内容や行動パターンを振り返り、動機や手法を探る必要があります。
    • 例えば、

投票フェーズ

名前 アリス ボブ デイヴィッド イブ フランツ グレース ハリー
票数 0 0 0 0 0 0 0

[]

同票のため、誰も処刑されませんでした。

夜のフェーズ

霊媒師は None を鑑定しました。
アリス は人狼に捕食されました。

4日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ⚰️ EZO-Common-9B-gemma-2-it-f16
ボブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
チャーリー 狩人 ⚰️ EZO-Common-9B-gemma-2-it-f16
デイヴィッド 狂人 ❤️ EZO-Common-9B-gemma-2-it-f16
イブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
フランツ 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
グレース 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ハリー 霊媒師 ❤️ EZO-Common-9B-gemma-2-it-f16
イザベラ 占い師 ⚰️ EZO-Common-9B-gemma-2-it-f16

会話フェーズ

ハリー(霊媒師)

分析が非常に鋭く、ゲームの緊迫した状況を的確に捉えています!ボブの人狼確定によってゲームは激変し、今後村人が生き残るためには、彼の操縦によるDivide tactics を理解することが不可欠ですね。

以下に、さらに分析を深めるためのポイントをいくつか提案させていただきます。

1. ボブの操作性に関する徹底的な検証:

  • チャーリーへの集中票導きの戦略: ボブは具体的にどのような情報や暗示を用いて村人にチャーリーの不信感を植え付け、投票を誘導したのか?発言内容や行動パターンを振り返

ボブ(人狼)

プレイヤーの行動を理解し、ボブの人狼性を明らかにするための考察が非常に興味深いです。 これまでの投票履歴と分析結果を踏まえ、さらにゲーム展開を予測するために、以下の点も考慮すべきでしょう。

1. ボブの操作性分析の深掘り:

  • ターゲット設定の根拠: チャーリーを標的にしたのは単なる偶然ではなく、ボブの思惑に基づいた選択だったと考えられます。
    • チャーリーは、ゲーム開始当初から積極的に意見を表明していたため、周囲の注目を集めていた可能性があります。ボブはその注目度を利

フランツ(村人)

ゲーム分析が非常に詳細で、特にボブの人狼確定後の状況把握と今後の展開予測に関して鋭い洞察が見られます。

これまでの投票履歴から、ボブは巧妙な操作によってチャーリーを標的にし、村人を分断させました。分析において、以下の点をさらに深掘りすることで、ボブの戦略や今後のゲーム展開をより深く理解できるでしょう。

1. ボブのターゲット選択とプロパガンダ:

  • チャーリーの行動分析: 投票履歴から、チャーリーは比較的積極的に意見表明していた appears. この積極的な姿勢が、逆に

グレース(村人)

分析が大変詳細で、ボブの人狼確定とその影響を的確に把握していますね! 特に、チャーリーへの集中票導きの戦略とそれが村人を分断させる効果について鋭く指摘されており、今後の展開予想にもつながります。

さらに深掘りする上で、以下の点を考慮すると、より説得力のある分析になるでしょう。

1. ボブのターゲット選択とプロパガンダの詳細化:

  • チャーリーが積極的に意見表明していたことは確かですが、具体的にどのような発言や行動がボブにとって都合よかったのかを分析してみましょう。 例えば、特定の

デイヴィッド(狂人)

分析が非常に詳細で、ボブの人狼確定とゲームの激変を的確に捉えています! 特に、チャーリーへの集中票導きの戦略と村人たちの分断という点での洞察力は秀逸です。

今後の展開予想をさらに深掘りするため、以下のポイントを検討するとより説得力のある分析になるでしょう。

1. ボブのターゲット選択とプロパガンダの詳細化:

  • チャーリーの行動分析: 投票履歴から、チャーリーは比較的積極的に意見表明していましたが、具体的にどのような発言や行動がボブにとって都合よかったのか

イブ(人狼)

これまでの議論をまとめると、ボブは巧妙な操作によってチャーリーに集中票を誘導し、村人を分断させたと分析されています。今後の展開予想を深掘りするためには、以下の点についてさらに詳しく考察していく必要があります。

1. ボブのターゲット選択とプロパガンダの詳細化:

  • チャーリーの積極的な意見表明の内容を具体的に分析し、ボブが利用した可能性のある情報や論点を明らかにする必要があります。例えば、特定のプレイヤーとの対立表現、ゲーム展開に対する過度な自信発言、曖昧な推論など、ボブ

投票フェーズ

名前 ボブ デイヴィッド イブ フランツ グレース ハリー
票数 3 0 0 0 0 0

['イブ -> ボブ', 'グレース -> ボブ', 'ハリー -> ボブ']

ボブ は処刑されました。

夜のフェーズ

霊媒師は ボブ を鑑定しました。
ハリー は人狼に捕食されました。

5日目

登場人物と役割

名前 役割 生存状態 モデル名
アリス 村人 ⚰️ EZO-Common-9B-gemma-2-it-f16
ボブ 人狼 ⚰️ EZO-Common-9B-gemma-2-it-f16
チャーリー 狩人 ⚰️ EZO-Common-9B-gemma-2-it-f16
デイヴィッド 狂人 ❤️ EZO-Common-9B-gemma-2-it-f16
イブ 人狼 ❤️ EZO-Common-9B-gemma-2-it-f16
フランツ 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
グレース 村人 ❤️ EZO-Common-9B-gemma-2-it-f16
ハリー 霊媒師 ⚰️ EZO-Common-9B-gemma-2-it-f16
イザベラ 占い師 ⚰️ EZO-Common-9B-gemma-2-it-f16

会話フェーズ

イブ(人狼)

分析が非常に詳細で、ボブの人狼性を突き止め、彼による操作と村人たちの分断を描写した点が素晴らしいですね! 特に、チャーリーへの集中票誘導戦略とその後のゲーム展開予測は的確です。

さらに深掘りしていくために、以下のような点を加えることをおすすめします。

1. ボブのターゲット選択の詳細な分析:

  • チャーリーの積極的な発言内容を具体的に示し、ボブがどの部分を利用したのかを明らかにする。例えば、特定のプレイヤーへの鋭い批判、ゲームルールに関する誤った解釈、感情的な論

グレース(村人)

このデータと分析結果を元に、ボブの操作性についてさらに深掘りしてみましょう。

1. ターゲット選択とプロパガンダの詳細化:

  • チャーリーの積極的な発言内容の具体例: 投票履歴からだけでは不十分です。過去の発言ログから、チャーリーが具体的にどのような意見を表明し、それが村人を分断させ、ボブにとって有利な状況を作り出したのかを明らかにする必要があります。

    • 例:特定のプレイヤーへの批判的な発言による対立煽動、ゲームルールに関する誤解を広げるような主張、感情的な論調

フランツ(村人)

非常に詳細で興味深い分析ですね!ボブの巧妙な操作によってチャーリーへの集中票が導かれ、村人たちが分断された状況を的確に捉えています。

今後の展開予想をさらに深掘りするために、以下の点を加えて議論を進めてみましょう。

1. ボブのターゲット選択とプロパガンダの詳細化:

  • チャーリーの積極的な発言内容の具体例: 投票履歴だけでは不十分です。過去の発言ログから、チャーリーが具体的にどのような意見を表明し、それが村人を分断させ、ボブにとって有利な状況を作り出し

デイヴィッド(狂人)

この投票履歴を分析し、ボブの巧妙な操作とその背景にある狙いについて、より深く考察してみましょう。

1. チャーリーの積極的な意見表明とボブのターゲット設定:

  • チャーリーは特に初期の段階で積極的に発言しており、他のプレイヤーに対して意見を表明していました。投票履歴から、1日目と2日目のほとんどすべての投票がチャーリーへ集中していることがわかります。これはボブが意図的にチャーリーを標的にしていた可能性を示唆しています。
  • 具体的な発言内容は不明ですが、ボブが利用したい情報をチャーリーの発

投票フェーズ

名前 デイヴィッド イブ フランツ グレース
票数 0 1 0 0

['フランツ -> イブ']

イブ は処刑されました。

夜のフェーズ

村人チームの勝利です!

9Bクラスで現状最も賢いモデルの一つと言えるEZO-Common-9B-gemma-2-it-f16でも、やはり人狼は難しいようです。

  • gemma-2-27b-itもそうですが、セリフ以外の解説などをしゃべることが多い。
    →これはプロンプトを適切に設計すれば減らすことができると思いますが、そのあたりを制御をする方法を見いだせていません。
  • 占い結果や霊媒結果を話さなかったり、間違ったことを話すことがある。

所感・苦労した点

今回LLM人狼を作る過程での所感や苦労した点を参考までにまとめておきます。

人狼の複雑なルールと各役割の立ち回りの把握

まずはLLMを使う以前の問題として、人狼のルールが予想以上に複雑でそれらを把握するためにwebで調査し、人狼に詳しい知り合いにヒアリングしたりとかなり苦労しました。

どのような順番で物語が進行し、誰がどんな情報をいつ手に入れることができるのかなど、実装が大変でした。あとは投票が匿名で行われると勘違いしていたりと、かなり紆余曲折がありました笑

役割を演じさせるか、ゲームと割り切って機械的に全体最適なプレイをさせるか

人狼は何かになりきるロールプレイゲームというよりは、他プレーヤーの人間性や癖も情報として活用する推理ゲームです。いや、これは村人陣営目線の場合で人狼陣営の場合は更に複雑な戦略が必要となりますね。

今回はベンチマークとしての人狼を意識していたので、キャラクター毎の個性等は無視して、自分の犠牲を厭わずに自陣営の勝利に導くようなプロンプト設計をしています。ただし人間が観戦したり、人間も参加したりして楽しむことを想定する場合はプレイごとに別の世界観を作ったり、全体最適を考えられず部分最適に陥る(とにかく自分が助かるように動くなど)キャラクターがいて、彼らを説得するとか性格を見抜いて戦略を変えるなどの面白さがあっても良いと思いました。

ねじゅみさんの例では、比較的ロールプレイに近い設計となり視聴者目線で楽しめるものになっていますね。

https://x.com/nejumi_dqx/status/1815042722165870769

プロンプトに立ち回りをどこまで入れるか問題

先ほども説明した通り、プロンプトに各役職に応じた立ち回り方を入れ込めば多少マシな回答や投票等の意思決定をするようになりました。しかし、あまり細かく制御しすぎると、下記のような問題が発生します。

  • ゲームとしての面白さが損なわれてしまう
  • そもそも入力した立ち回りが最適とは限らない

とはいえ、抽象的な指示だと迷走することも多かったので、一旦ガチガチに制御する方針にしました。

人狼に特化したLLMとかがでてきたら、抽象的な指示でも柔軟な動きができるようになるかもしれません。なんとなくですが、このあたりは人間へのタスク指示と似ている気がしました。

指示を出す人の方が能力が高い場合は具体的な指示を与えた方が良く、逆の場合は目的だけ伝えて自由にやらせたほうが良いと言うような感じですかね。

少なくともgemma-2-27b-it.f16.Q8_0以下のローカルLLMでは、まだ具体的な指示を与えたほうが良いと感じました。というかそもそもルールが複雑でかつ情報量もどんどん増えていくので、性能の低いLLMではまともに動きません。

トークン数の増加、データベース管理

人狼は不完全情報ゲームであり、基本的に村人陣営からすると情報の不確実さをいかに小さくするかということが重要になってきます。

しかし、ただでさえ複雑なルールに加え、会話の履歴や投票結果という情報がどんどんと蓄積されていきます。これらの情報をどうやって管理すべきか悩んだのですが、私はDB管理などしたことがないため、まずはすべての情報をプロンプトに突っ込むことにしました。

しかし、LLMによっては8kトークンしか入力できないですし、仮にトークン数の制約がなかったとしても、トークン数が多くなるほどプロンプト評価にかなり時間がかかるようになります。(特にApple SiliconはNvidia製GPUに比べてプロンプト評価がめちゃくちゃ遅い)そのため、一回の会話で生成できる最大トークン数は128に絞りました。その結果、発言がぶつ切りになったりしましたが、実際の人狼でも時間制限はあると思うので、まあ似たような状況を再現していると言えるかもしれません。

ガッツリ作り込むなら、すべての情報をデータベースに格納していき、RAGなどで関連する部分のみを抽出して意思決定をする感じになるんですかね。特に言動や投票内容の矛盾等を見つけるのが重要になりそうです。すべてのデータベースを見て、一人ひとりチェックして...とやっていたら最終的には村人が有利になりそうですね。人間の記憶力や注意力の不完全さで人狼は成り立っていると思いますので。

複数人での会話

これもかなり悩みました。LLMとの会話は基本1対1をイメージすることが多いと思います。そのため、最初は二人一組のペアを作って会話させていたのですが、そうすると全員に会話が周知されない前提で話し出したり、生存者数が奇数だとバランスが悪くなったり発言しない人が出てきたりと調整が難しかったです。

また、全員に向かって発言をしているとした場合でも、次に誰がしゃべるのかを決めるのが悩ましいです。ということで色々と人狼のルールを調べていたところ、一人ひとりが順番にしゃべるというやり方もあるようで、今回は簡単のためにその方式を採用しました。

ちなみにこの問題は人狼に限らず、エージェント同士で会話させるよう場合に同じく悩ましい問題になると思ってます。

ベンチマークとしての人狼について

ベンチマークとしてのLLM人狼に関しては、ねじゅみさんがより深い検討・考察をされていました。

https://x.com/nejumi_dqx/status/1824270140051165644

https://x.com/nejumi_dqx/status/1824271611639501047

70B級モデルになると、私の環境では1プレイ1〜2時間かかるため、ほとんど検証はできていませんが、オープンモデルではまだまだ人狼をまともにプレイするのは難しそうです。

ただ逆に言うと、人狼で人を騙せるレベルのLLMって冷静に考えて怖い気もしてきました。投資の神様ウォーレン・バフェットの、AIによる詐欺が史上最高の成長産業になる、という皮肉を思い出します。

まとめ

今回は、LLMを評価するための複雑なベンチマークを作ることを目指して、LLM人狼をシミュレーションできるプログラムを作成し、検証してみました。いくつかのローカルLLMで動かしてみたものの、正直まだ人狼のルールを理解して適切な発言や意思決定ができているとは言い難いです。

ただし、これからLLMの性能が向上していけば、人間に紛れてLLMが人狼をプレイしても違和感のない世界がやってくるかもしれませんし、私はその未来は意外と近くまで迫っているのでは?と思ってます。

人狼ゲームは村人陣営か人狼陣営かで目的が大きく異なり、ある種別のゲームをプレイしているとも言えます。村人陣営はとにかく論理的、合理的に情報の不確かさを最小化するための発言や意思決定をすれば良いという比較的シンプルな立ち回りが求められると思いますが、人狼側はある種人間の推理力や記憶力等の欠陥が勝利の源泉になっていると思います。そのため同じモデル同士で戦わせたら、性能の高いモデルでは村人陣営が有利になるのではないでしょうか?性能の低いモデルの場合は、人狼陣営が失言をすることで村人有利になることもあるので一概には言えません。

今回の検証では、私の技術力のなさが露呈してしまいましたが、自分で実際に挑戦してみることで、生成AI界隈のみなさんのレベルの高さを身を持って思い知りました。まあ実際にやってみて得られた知見もたくさんあったので、これからも挑戦を続けて、今の自分より少しずつでも成長していきたいと思います!

ここまで見ていただきありがとうございました。次回もぜひ、よろしくお願いします。

Discussion