プロンプトとメタプロンプト
プロンプトとメタプロンプト
プログラムとプロンプトの関係について、最近よく考えるようになりました。
コンピュータという便利な道具をうまく使うためには、自分でプログラムを書けることが重要です。細かいプログラミングをしたくない人やできない人はアプリケーションを使いますが、アプリケーションではできないことや、やりにくいこともあります。そこを細やかにプログラミングすることで、自分のやりたいことを実現できるのです。
同じような関係が、AIを搭載したコンピュータとプロンプトの間にもあると思います。つまり、プログラムを書く代わりに適切なプロンプトを書くことで、自分のやりたいことを実現できるかもしれない、ということです。
プログラムにバグがつきものであるように、プロンプトにもバグのようなもの、つまり自分の期待とは違う結果が返ってくる危険性は常につきまといますが、それに注意すれば、なかなか良い時代になってきたと感じます。
これまでも何度かお話ししていますが、単に「便利になった」というだけでなく、AIにプロンプトを与えることで何が実現できるのかというイメージがつかめてくると、「では、この部分をAIに任せてみよう」という発想が生まれます。そこがとても大切な点だと思います。
「自分にできる・できない」という発想から離れ、手元にこういうAIがあることを前提に「AIがこれをできるということは……?」という発想に立つことができる。それは非常にすばらしいことだと思っています。
さらに、メタプログラミングと同様に、メタプロンプトを書くこともできます。プログラムを作ること自体をプログラムで書くように、プロンプトを書くこと自体をAIに命じて作ってもらうことが可能です。プロンプトを作るためのプロンプト、つまり「メタプロンプト」と呼んでもよいでしょう。
たとえば、Midjourneyを使い始めた初期のころ、Midjourneyに与えるプロンプトをAIに作らせるという発想を初めて知ったときには、大変驚きましたし、それはとても納得のいくことだと感じました。
これは何重にも繰り返すことができて、「プロンプトを作るためのプロンプトを作るためのプロンプト」といったように、階層を深めることも可能です。そうなると、初めに与えるメタプロンプトは非常に重要であり、抽象度が高くなるでしょう。
また、最近ではさまざまな生成AIが登場しているため、「どの生成AI向けのプロンプトを、誰に(つまりどの生成AIに)作ってもらうか」も大事になってくると思います。これは、クロスコンパイラのようなものですね。
さらに、複数の生成AIに対して同じプロンプトを出して、その結果をマージして良いプロンプトを作ったり、生成された内容を改善したりすることもできるかもしれません。もちろん、その場合には、それぞれの生成AIが参照しているニュースソースや、考えるアルゴリズムなどが異なっている方が望ましいでしょう。同じ情報源を使って、同じような出力を返してくるだけでは、多様性がなくなってしまうからです。
そんなことを考えていました。
https://link.hyuki.net/mm/
プログラムとプロンプトの関係について、最近よく考えるようになりました。
コンピュータという便利な道具をうまく使うためには、自分でプログラムを書けることが重要です。細かいプログラミングをしたくない人やできない人はアプリケーションを使いますが、アプリケーションではできないことや、やりにくいこともあります。そこを細やかにプログラミングすることで、自分のやりたいことを実現できるのです。
同じような関係が、AIを搭載したコンピュータとプロンプトの間にもあると思います。つまり、プログラムを書く代わりに適切なプロンプトを書くことで、自分のやりたいことを実現できるかもしれない、ということです。
プログラムにバグがつきものであるように、プロンプトにもバグのようなもの、つまり自分の期待とは違う結果が返ってくる危険性は常につきまといますが、それに注意すれば、なかなか良い時代になってきたと感じます。
これまでも何度かお話ししていますが、単に「便利になった」というだけでなく、AIにプロンプトを与えることで何が実現できるのかというイメージがつかめてくると、「では、この部分をAIに任せてみよう」という発想が生まれます。そこがとても大切な点だと思います。
「自分にできる・できない」という発想から離れ、手元にこういうAIがあることを前提に「AIがこれをできるということは……?」という発想に立つことができる。それは非常にすばらしいことだと思っています。
さらに、メタプログラミングと同様に、メタプロンプトを書くこともできます。プログラムを作ること自体をプログラムで書くように、プロンプトを書くこと自体をAIに命じて作ってもらうことが可能です。プロンプトを作るためのプロンプト、つまり「メタプロンプト」と呼んでもよいでしょう。
たとえば、Midjourneyを使い始めた初期のころ、Midjourneyに与えるプロンプトをAIに作らせるという発想を初めて知ったときには、大変驚きましたし、それはとても納得のいくことだと感じました。
これは何重にも繰り返すことができて、「プロンプトを作るためのプロンプトを作るためのプロンプト」といったように、階層を深めることも可能です。そうなると、初めに与えるメタプロンプトは非常に重要であり、抽象度が高くなるでしょう。
また、最近ではさまざまな生成AIが登場しているため、「どの生成AI向けのプロンプトを、誰に(つまりどの生成AIに)作ってもらうか」も大事になってくると思います。これは、クロスコンパイラのようなものですね。
さらに、複数の生成AIに対して同じプロンプトを出して、その結果をマージして良いプロンプトを作ったり、生成された内容を改善したりすることもできるかもしれません。もちろん、その場合には、それぞれの生成AIが参照しているニュースソースや、考えるアルゴリズムなどが異なっている方が望ましいでしょう。同じ情報源を使って、同じような出力を返してくるだけでは、多様性がなくなってしまうからです。
そんなことを考えていました。
https://link.hyuki.net/mm/
この文章は、音声入力を利用して結城浩のマストドンに投稿したものです。