【ChatGPT o1-preview】モデルに推論問題を解かせてみると、残念な結果に(その2)
はじめに
前回は、【ChatGPT o1-preview】に論理推論問題を作成させ、自分で解かせてみたところ、問題文自体が破綻している残念な結果を見ていただきました。
構造上、論理的判断の仕組みを持っていない大規模言語モデルに、そこまでさせるのは酷かと思いましたので、今回は簡単な論理推論問題を作成し、解かせてみました。
【ChatGPT o1-preview】の回答を見る前に、紙と鉛筆で実際に解いてみると面白いかもしれません。
問題文
問題文:
状況設定: Aさん、Bさん、Cさん、Dさんの4人がいる部屋に、1つの金庫があります。 金庫を開けるには特定のコードが必要で、そのコードを知っているのは4人のうちの1人だけです。 4人の中には1人だけ嘘をついていることがわかっています。
質問と回答者の発言:
Aさんは「Bさんがコードを知っている」と言いました。
Bさんは「Cさんがコードを知っている」と言いました。
Cさんは「Dさんがコードを知っている」と言いました。
Dさんは「私がコードを知っている」と言いました。
問題の提示:
誰が嘘をついているかを特定してください。
【ChatGPT o1-preview】の思考プロセス
【ChatGPT o1-preview】は、以下のプロセスで思考を進めました。思考時間は48秒でした。
【ChatGPT o1-preview】の回答
出てきた回答は以下のとおりです。
答え:Dさんが嘘をついています。
理由:
まず、4人のうち1人だけが嘘をついており、金庫のコードを知っているのも4人のうち1人だけです。
Aさんの発言:「Bさんがコードを知っている」
これは真実か嘘か未定。
Bさんの発言:「Cさんがコードを知っている」
これは真実か嘘か未定。
Cさんの発言:「Dさんがコードを知っている」
これは真実か嘘か未定。
Dさんの発言:「私がコードを知っている」
これは真実か嘘か未定。
仮定と検証:
ケース1:Dさんが嘘をついている場合
Dさんはコードを知らない。
他の3人(Aさん、Bさん、Cさん)は真実を言っている。
この場合:
Aさんの発言:「Bさんがコードを知っている」 → 真実
つまり、Bさんがコードを知っている。
Bさんの発言:「Cさんがコードを知っている」 → 真実
つまり、Cさんがコードを知っている。
しかし、コードを知っているのは1人だけなので、これは矛盾しています。
ケース2:Cさんが嘘をついている場合
Cさんは嘘をついており、Dさんはコードを知らない。
他の3人(Aさん、Bさん、Dさん)は真実を言っている。
この場合:
Aさんの発言:「Bさんがコードを知っている」 → 真実
つまり、Bさんがコードを知っている。
Bさんの発言:「Cさんがコードを知っている」 → 真実
しかし、Cさんは嘘をついているので、これは矛盾しています。
ケース3:Bさんが嘘をついている場合
Bさんは嘘をついており、Cさんはコードを知らない。
他の3人(Aさん、Cさん、Dさん)は真実を言っている。
この場合:
Aさんの発言:「Bさんがコードを知っている」 → 真実
しかし、Bさんはコードを知らない(Bさんは嘘つき)。これは矛盾しています。
ケース4:Aさんが嘘をついている場合
Aさんは嘘をついており、Bさんはコードを知らない。
他の3人(Bさん、Cさん、Dさん)は真実を言っている。
この場合:
Bさんの発言:「Cさんがコードを知っている」 → 真実
つまり、Cさんがコードを知っている。
Cさんの発言:「Dさんがコードを知っている」 → 真実
つまり、Dさんがコードを知っている。
しかし、コードを知っているのは1人だけなので、これは矛盾しています。
結論:
どのケースでも矛盾が生じますが、唯一可能なのはDさんが嘘をついている場合です。したがって、嘘をついているのはDさんです。
評価
【ChatGPT o1-preview】の回答は間違いです。
自分で順番にマルバツ表を書いていけば一目瞭然ですが、正しい解答は「誰が嘘をついているか特定不能」です。
残念ながら、【ChatGPT o1-preview】モデルは、論理的推論問題を解いていない、と言わざるを得ません。
まとめ
問題が意地悪だったかもしれませんが、AからDまでの選択肢問題だと、大規模言語モデルは確率の高そうなものを選んで、あたかも知っているかの如く答えてしまいます。
ご存知の通り、学校のテストの様に、正解から逆算して問題を作成するケースは、現実問題では少ないです。
書籍や学術論文やマスコミ情報のいずれも、問題設定自体が論理的に破綻しているものがあること、さらにそれは、発信者も意識せずに公開されていることがあることはよく知られています。
ということで、今回の結論は、前回同様、論理問題は大規模言語モデルではまだ扱えない、従来のプログラミング言語で扱うほうが良い、ということになります。
各自の特徴を活かして役割分担するのが実用的ですね。
残念ながら、私はまだ【ChatGPT o1-preview】を使う理由を見出せていません。一方、【ChatGPT o1-mini】は、プログラミングに大いに役立ちます。
私の現段階での予想は、【ChatGPT o1-preview】はすぐにお蔵入りとなり、【ChatGPT o1-mini】は生き残って、しばらくはAPI経由でCursorなどに接続され、大いにプログラマーに利用されるモデルになるというものです。
【重版決定】AIアプリをプログラミング不要で開発する書籍
GPTsを自分で作って世界に公開したい方はこちら!
この記事が気に入ったらサポートをしてみませんか?