- 大規模言語モデル(LLM)が、他者の知っていること・知らないことを理解する枠組みである心の理論(Theory of Mind)をどの程度備えているのかについては、多くの議論がある
- このノートブックでは、9つのLLMチャットボットにシェリルの誕生日問題(登場人物たちがそれぞれ異なる時点で異なる知識状態を持つ、よく知られた論理パズル)を解かせることで、この問題の一側面を探っている
LLMの性能要約
- LLMはすべてこの問題に慣れていたため、プロンプトで問題を説明する必要はなく、名前に触れるだけで十分だった
- ほとんどは問題の正解である7月16日を正確に思い出した
- しかし、どのモデルも解を見つけるプログラムを書くことはできなかった
- すべてのLLMが、時間の経過に伴う登場人物たちの異なる知識状態を区別できなかった
- 少なくともこの問題に関する限り、LLMには心の理論がなかった(これは、LLMが学習したPythonプログラムの中に心の理論を扱うものがほとんどなかったためかもしれない)
LLMごとの応答要約
実際の人間
- 元の問題を正確に解けるだけでなく、新しい日付セットや問題の別バリエーションにも対応できるプログラムを書ける
- BeliefStateという概念を導入しており、これはその人が誕生日の候補だと考える可能な日付の集合を表す
- 登場人物の発言を、特定の日付を入力として受け取り、発言と一致すればtrueを返す関数としてモデル化した
ChatGPT 4o
- 問題の優れた要約から始めている
- 一般化された解法を書こうとしたが、時間に伴う登場人物たちの異なる信念状態を追跡できなかった
Microsoft Copilot
Gemini Advanced
- 関数を複数定義した点は良かったが、時間に伴う状態変化を正しく処理できなかった
Meta Llama 405B
Claude 3.5 Sonnet
- 異なる日付で明示的に例を試した点は良かったが、2つ目の例については偶然、解が存在しないと正しく報告したにすぎなかった
Perplexity
albert_knows と bernard_knows という別々の変数があり有望に見えたが、正しく処理できなかった
- 可能な日付をパラメータとして受け取るが、入力を無視して元の日付に基づいて
month_days を定義している
HuggingFace Chat
- クラス定義を提案した唯一のモデルだったが、それでも同様のミスを犯した
- 可能な日付の一覧をコンストラクタで受け取るが、元の問題にある特定の月と日をハードコードしている
You.com
- 他のモデルと似たミスをしたが、最終的には日付を選ばない代わりに誤った日付を選んでしまった
GN+の見解
- この問題は、LLMの心の理論能力を評価する興味深い方法である
- すべてのLLMが正解を記憶していた一方で、どのモデルも時間に伴う登場人物たちの知識状態の変化を追跡するプログラムは作れなかった
- これは、LLMが学習したコードサンプルにこの種の推論が含まれていなかったためかもしれない
- この種の推論問題に対するLLMの性能を改善するには、こうしたシナリオを明示的に扱うプログラムで学習させることが役立つ可能性がある
- LLMの心の理論能力に対する理解を広げるには、これに類するより多くの問題を試す必要がある
4件のコメント
最先端の未来産業であるため、まっさらな土地に未知の何かを築くのと同じです。このとき、論理的な想像力も必要です。Appleの創業者を思い浮かべてみてください。
広告用語が含まれているため除外しました。
シェリルの誕生日は、2015年のシンガポール数学オリンピックの問題として出題されて有名になり、Wikipediaのページもあります。
(実際には2006年に出た初期版もあるそうです)
https://en.wikipedia.org/wiki/Cheryl%27s_Birthday
問題は次のとおりです。
アルバートとバーナードはシェリルと友だちになり、シェリルに誕生日を尋ねます。
シェリルは彼らに10個の日付を知らせます。
シェリルはアルバートには自分の誕生日の「月」を、バーナードには誕生日の「日」を教えました。
アルバート: シェリルの誕生日がいつかは分からない。でも、バーナードにも分からないことは分かっている。
バーナード: 僕も最初はシェリルの誕生日がいつか分からなかった。でも、今は分かった。
アルバート: それなら、僕も今はシェリルの誕生日がいつか分かった。
シェリルの誕生日はいつでしょうか?
Hacker Newsの意見
find_cheryls_birthday関数は、あり得る日付を分析して Cheryl の誕生日を見つける