生成AIは「頭が赤い魚を食べる猫」を理解するのが難しい
以前、Twitterで話題となった「頭が赤い魚を食べる猫」という文がある。考案者の中村明裕さんによると、この文は5つの解釈ができるそうです。この5つの解釈をそれぞれ生成AIで描きましたので紹介します。この日本語をAIに理解させるのは、かなり大変でした。
5つの解釈について
(頭の赤い猫)が魚を食べている
猫が(頭の赤い魚)を食べている
頭が(赤い魚)を食べる猫
(猫の頭)の姿をもつ者が(赤い魚)を食べている
(赤い猫の頭)の姿をもつ者が魚を食べている
普通は2を思い浮かべますが、1も猫が魚を食べているイメージなので常識の範囲だと思います。しかし、3から5のイメージは、完全にファンタジーやホラーの要素が含まれています。これを最初からイメージする人は相当にユニークな発想をもっていると思います。3に至っては、頭が魚を食べているバケモノであり、実際、5つの中で最もAIで描くのが大変でした。
なお「頭が赤い魚を食べる猫」の詳細は、中村さんのXでわかりやすく解説されているので参照してください。
DALE-Eで画像を生成してみた
1. (頭の赤い猫)が魚を食べる
原文のままでは生成してもらえないので、見出しのように主語の部分をカッコで括って指示します。
2. 猫が(頭の赤い魚)を食べる
特に何も考えずに原文そのままの指示でも、イメージする画像が生成されました。欲を言えば魚の頭だけが赤ければもっと良かったのですが、これで満足としましょう。
3. 頭が(赤い魚)を食べている猫
これが一番苦労しました。やっぱりこの発想はAIもできないようで色々と試してみましたが最後までしっくりくる画像ができませんでした。グロテスクな表現をDALE-E側で規制しているのかもしれません。それでも幾つかの醜いモンスターが生成されてしまったので、ここでは無難な画像を掲載します。
4. (猫の頭)の姿をもつ者が(赤い魚)を食べている
この解釈を画像生成する場合、猫の頭をもっている人間という原文に隠れている主語を明らかにして入力しないとイメージ通りの生成ができない。
猫の頭をもった人間である点を入力すると比較的容易にイメージ通りの画像を生成することができます。
5. (赤い猫の頭)の姿をもつ者が魚を食べている
これも4と同様に原文に隠れている主語を明らかにすると比較的容易にイメージ通りの画像を生成することができた。
まとめ
日本語は主語を省略したり行間からのイメージを伝える言語なのでAIプロンプト(指示文)に向いていないことが、この例文からもよく理解できます。だからこそプロンプトは明確で簡潔にすることの重要性がよく伝わる事例と言えます。その点、英語はAIプロンプト向きの言語だと言えます。日本語のプロンプトを一度、英語に翻訳し直して指示するテクニックはそういった点で有効なのだと思います。
おまけ
実を言うと、この猫?たちの画像を生成する際、古典プログラム言語であるLISP(リスプ)の記法を使用しました。
タイトルの画像を生成する際のプロンプトは、
「(人間(頭(猫(食べる(魚 赤い)))))」と「(人間(頭(猫(赤い(食べる(魚)))))」をDALE-Eにそれぞれ入力して生成したものです。
AIは自然言語よりプログラム言語をより正確に理解するので、いろいろなプログラム言語の記法を少し拝借するのは有効ですね。
熱狂的な信者のいるLISPを語るのは私には難しいので、興味ある方はWikipediaやわかりやすく解説している動画を参照してください。
これからも、生成AIに関連する情報などデジタル関連の記事を中心に投稿しています。もしよろしければ、スキやフォローしていただければ幸いです。