一万通りの「見せ算」をChatGPTにやらせて、一万マス見せ算をした。
M-1グランプリ2023決勝で「さや香」が披露した「見せ算」が、現在のChatGPT時代を象徴していると(勝手に)思い、ChatGPTを日々ぶん回しているエンジニア医学生が、10000通りの数字を組み合わせて一万マス見せ算の実験してみました。
見せ算って?
ChatGPTに見せ算はできるのか?
ChatGPTが「単純な計算は苦手」という事は有名で、特に以前のモデルだと割と単純な計算ですら待ちがえる事が指摘されていました。(最近は改善されてきています)
しかし、見せ算のように、単純な計算規則に則らない計算であれば、ChatGPTの得意分野となるはず。その仮説のもとに、「見せ算を行うChatGPT」を作ってみたところ、それなりに面白く見せ算を行ってくれました。
100×100=一万通りで検証してみた
せっかく数字の演算なのであれば、「とにかく大規模で試してみたい」と思うのがエンジニアの性です。「1見せ1は?」「1見せ2は?」…「99見せ100は?」「100見せ100は?」を100×100=10000通り試しました。
エンジニアリング
主要なポイントは以下です。
スプレッドシートで100×100のプロンプトを組み、ChatGPTのAPIであるgpt-3.5-turboに投げた。(gpt-4は高いので妥協しました)
Few-shot-Lerningを採用し、見せ算の例をいくつか与えた。
見せ算の例はニコニコ大百科を参考とした。
その他に特別なプロンプトエンジニアリング技法は採用していない。
数字の感情を考えると、「n見せm」と「m見せn」の眼が一致しない可能性は十分にあるので、どちらも試した。
結果
10000通りの見せ算ができました。
たまに出力が不安定になりましたが、許容の範囲かな と思います。
結果は以下からダウンロードできます。
眼が面白かった組み合わせ(私見)
16見せ34
眼: 29(16歳の少年が、34歳の大人に立ち向かおうとするが、大人にはまだまだ及ばず、29歳の大人に手を引かれることになるため。)
感想: 29歳どこから出てきた
17見せ35
眼: 22(17歳の若者が35歳の経験豊かな大人に相談しに行くが、結局大人も悩みを抱えており、お互いに助言し合いながら成長するため。)
感想: 35歳は退化したのか
7見せ11
眼: 18(7と11は素数同士で、お互いに何か秘密を共有しているような気がして、一緒に何かを企んでいるような気がするため。)
感想: 素数に対する言いがかりがひどい
23見せ51
眼: 37(23と51はともに素数であり、お互いに強い絆で結ばれているため、37という数字が現れた時には、お互いを支え合って前に進むことを決意するため。)
感想: 51は素数。
32見せ49
眼: 42(32と49はともに素数であり、お互いに引き合う魅力を感じ、お互いを求めるが、32は49が素数でないことに気づき、落胆するため。)
感想: 気づいてくれました。
14見せ57
眼: 43(14が57の華麗なダンスに感動してしまい、その場で踊りだしてしまうため。)
感想: 14が躍ると43になるのは自明。57が素数である事には特に触れられてませんでした。※
15見せ51
眼: 25(お互いに反対側を向いているため、お互いの存在に気づかずに通り過ぎてしまうため。)
感想: 数字の気持ちを考えると当然です。
感想
量産はできるが「想像の範囲」は超えないかも
そもそも見せ算自体がお笑いのネタなので、想像を超えて「面白い!」となってくれないと、いくら量産しても意味がないかもしれません。(量産できるお笑いに価値があるとも言えますが)結果を量産できてニヤニヤするのはエンジニアだけな気もします。 この辺りはやはりまだ天才が求められる分野になりそうです。
結果を数値的に見ても、せいぜい小数点と引き算の話あたりから脱却しておらず、例えば「ルートを使う」「分数を使う」「関係性以外に着目する」などの発想の飛躍はできていません。この辺りを考えさせる事で結果を向上する技法もありますが、お笑いという目的であればいったんここまででしょうか。当然、大学院レベルの見せ算もできていません。
普通の人よりは面白そう
チューリングテスト・お笑いシンギュラリティというと大げさですが、例えば全国民からランダムに抽出した人に見せ算の説明をして、大喜利のような事をしても、たぶん平均的な回答は今回ChatGPTから得た回答よりも面白くないものになるかなと思います。(少なくとも自分はChatGPTよりうまく回答できる自信がありません)
なぜ「見せ算」がChatGPT時代を象徴するか?
少しだけ真面目な話をすると、実務上「適当な医療単語が大量に欲しい」みたいなシチュエーションはよくあります。
そういう時に、適当に100個ほどChatGPTに上げさせて
適当に5桁とかの数字つけさせて
こんな感じの、数字と単語が結びついたエクセルをつくり
モデルをファインチューニングして、再度適当な医療単語を量産する。
こんなことをすると、適当な医療単語が量産できます。
OpenAIのfine-tuningのドキュメント上、だいたい80-100個ほどのサンプルを与えれば、あとはいくらでも作り出せます。
ある意味、「数字の感情」を利用している技法かなと思います。
そんな意味で、時代を象徴したネタだなぁと思いながら楽しんでいました。
M-1グランプリ2023、今年も面白かったです!
来年も楽しみにしてます!
※このnoteは収益化していませんが、著作権などの関係で然るべきところからの申し出があった場合、削除します。