はじめに:何を作ったか
「6文字以上の言葉だけで競う」という単純なゲーム『長文しりとり』というWebアプリを開発しました。
AIの膨大な語彙力から考えられた素敵な長文が飛び交う「知的なしりとり」を作ってみたかったんです。
欲しかったもの:単なる「正解」ではなく「知的な驚き」
私がAIに求めたのは、単にルール(7文字以上)を満たす言葉を出すことではありませんでした。
プレイヤーが「へぇ、そんな長い言葉があるんだ!」と感心するような、実在し、かつ知的好奇心を刺激する「面白い単語」が詰まった辞書データが欲しかったわけです。
実際の手順:AIに辞書生成を丸投げした結果
初期のJavaScript辞書を拡張するため、AIに対して以下のように依頼しました。
「『あ』から『わ』まで、それぞれ7文字以上の名詞をいくつか挙げて、辞書を完成させて」
AIは即座に数百語を生成しました。見た目は完璧なJSONデータ。しかし、中身を精査してみるとまるで使えない内容だったんです。
発生した誤謬(エラー):50%の「フェイク語彙」
生成された辞書の約半分が、以下のような「造語」や「文章」で埋め尽くされていました。
- 造語例: 「高速移動用自動二輪車」
- 文章例: 「夕焼けがきれいな丘の上」
- 専門用語: 「超伝導量子干渉計」
これらは文法的には成立していても、しりとりの辞書としては「アンフェア」であり、何より「面白くない」ものでした。
なぜそうなったのか:AIの「構造的妥当性」への執着
なぜAIは平気で「嘘」をついたのか? 議論を通じて、以下の3つの特性が浮き彫りになりました。
- 制約の遵守(数を優先): 「7文字以上をN個出す」というハードな制約を完遂するために、実在の語彙(知識)が尽きた瞬間、AIは「推論」によって言葉を組み立て始めた。
- 構造的妥当性の優先: AIにとっては「実在するか(語彙的妥当性)」よりも、「名詞句の形をしているか(構造的妥当性)」の方が評価しやすいため、もっともらしい造語を出力してしまう。
- プロンプトの曖昧さ: 「長文」という言葉が、AIに「文章を構成しても良い」という免罪符を与えてしまった。
どう行うべきだったか:感性と仕組みの橋渡し
AIを「正解を出すマシン」ではなく「センスを共有するパートナー」にするためには、以下の工夫が必要でした。
- 役割の極端化: 「百科事典の編集者」や「文学者」といった役割を与え、思考のドメインを絞る。
- ネガティブ制約: 「専門用語の羅列は『見苦しい』ので禁止」という、人間の感情に基づいた制約を言語化して伝える。
- 面白さの定義: 「面白さとは情景が浮かぶこと」「リズムが良いこと」のように、抽象的な「面白い」をAIが解釈可能な特徴量に分解して提示する。
まとめ:AIを「ビジネスパートナー」ではなく「遊び相手」として見て
ビジネスにおけるAIは「効率」と「正確性」が正義です。しかし、今回のように「遊び」の領域でAIと対峙したとき、AIは途端に「空気の読めない、でも一生懸命な嘘つき」という、極めてやっかいな特性を見せました。一番困るやつ。
「見苦しいからその言葉は嫌だ」という感情をどうやってプロンプトに載せるか。この試行錯誤こそが、AIの「魂」のような部分に触れる、新しいプロンプトエンジニアリングの形なのかもしれません。