メタプロンプトとは、プロンプトについてのプロンプトです。タスクをするようモデルに頼む代わりに、そのタスクのためのプロンプトを書かせたり、手元のプロンプトを改善させたり、ほかのモデル呼び出しが実行する小さなプロンプトにタスクを分割させたりします。最初の2つは ChatGPT、Claude、Gemini で使える日常的な技です。3つ目は研究から生まれた手法で、1つのモデルのインスタンスがほかのいくつかのインスタンスの指揮者として働きます。
3つとも同じ事実に頼っています。現在のモデルはモデルへの指示についてのテキストを大量に見てきているので、プロンプトに欠けているものを見つけるのが得意です。そして同じくらい、その穴を推測で埋めるのも得意です。主に気をつけるべきなのはそこです。
モデルにプロンプトを書かせる
プロンプトを生成するいちばん弱い方法は「X のためのプロンプトを書いて」です。モデルはあなたの X について何も知らないので、その仕事の平均的な版に向けたありきたりなプロンプトを書きます。解決策は、先に質問させることです。質問によって足りないコンテキストが表に出て、あなたの答えがプロンプトの中身になります。
- メールを読むのは誰ですか?会議に出た人だけですか、それともマネージャーやほかのチームも含みますか?
- どの要約にも必ず入れるべきものは何ですか?たとえば決定事項、担当者と期限つきのアクションアイテム、未解決の疑問点などです。
- 長さはどれくらいにすべきですか?箇条書きと短い段落ではどちらが好みですか?
- チームのメールのトーンはどれですか?かしこまった、中立、くだけた、のどれでしょう。
- 雑談、個人的な発言、社外秘の数字など、絶対に入れてはいけないものはありますか?
質問に1通のメッセージで答えれば、モデルのデフォルトではなくあなたの判断が入ったプロンプトが手に入ります。保存しておきましょう。プレースホルダーのあるプロンプトは、毎週使えるプロンプトテンプレートです。
手元のプロンプトを改善する
「このプロンプトを改善して」は最もよく使われるメタプロンプトの1つで、その典型的な失敗は下の1つ目のタブに表れています。モデルは詳細をでっち上げることで、プロンプトを長く自信ありげにします。読み手、文字数、行動の呼びかけ。どのでっち上げももっともらしく、どれもあなたが下していない判断です。2つ目のタブでは、書き直しのルールをモデルに与えています。
改善したプロンプトはこちらです:
「あなたは、デジタル出版で長年の経験を持つ優秀なコンテンツライター兼編集者です。以下の記事を、テクノロジー業界で働く忙しいビジネスパーソンが読むニュースレター向けに要約してください。親しみやすくもプロフェッショナルなトーンで、300〜400字の魅力的な要約を書いてください。読者を引きつける導入から始め、最も重要な3つのポイントを強調し、最後に記事全文を読むよう促す一文で締めくくってください。」
この版では役割、読み手、長さ、トーン、明確な構成が加わっているので、より焦点の定まった役に立つ要約が得られます。
1つ目の返答は間違ってはいません。ただ出すぎています。ニュースレターの読者が園芸好きの人たちなら、「テクノロジー業界で働く忙しいビジネスパーソン」がすべての要約を知らないうちに方向づけてしまいます。2つ目の返答はやることが少なく、重要な判断をあなたにまかせています。プレースホルダーは、元のプロンプトにどんなコンテキストが欠けていたかも示してくれるので、書き直しを捨てたとしても役に立ちます。
生成されたプロンプトを信じる前に確認する
モデルが書いたプロンプトは読みやすいので、かえって問題を見落としやすくなります。使う前に次の点を探してください。
- でっち上げの要件。 頼んでいない長さ、読み手、トーン、ルール。削除するか、本当の答えに置き換えてください。
- 漠然とした役割。 「あなたは世界トップクラスの専門家です」は長さを足すだけで、ほかにはほとんど何もしません。役割が役立つのは、読み手と基準を示すときです。ロールプロンプティングを参照してください。
- 繰り返し。 生成されたプロンプトは、同じ指示を3通りに言っていることがよくあります。明確な1文で同じように機能し、矛盾の余地も減ります。
- テストしていない。 プロンプトを読んでも、その結果についてはほとんどわかりません。扱いにくいものを1つ含む3〜4個の本物の入力で実行し、古いプロンプトの出力と比べてください。自分をだまさずにこれを行う方法はプロンプトの反復改善で説明しています。
モデルは、失敗したプロンプトの診断も手伝えます。プロンプトが悪い結果を出したら、プロンプト、入力、悪い出力を貼り付けて、「この出力の原因になった可能性が最も高いのは、このプロンプトのどの部分ですか?それを直す最小限の変更を提案してください」と尋ねます。的を絞った診断は全面的な書き直しより役に立ちます。どの指示が悪かったのかがわかるからです。
指揮者方式(Suzgun と Kalai、2024年)
研究の世界では、「メタプロンプティング」は Suzgun と Kalai の2024年の論文「Meta-Prompting: Enhancing Language Models with Task-Agnostic Scaffolding」の特定の手法も指します。1つのモデルのインスタンス(指揮者)が、どのタスクでも同じ決まった上位の指示とともにタスクを受け取ります。指揮者はタスクを部分に分け、部分ごとに「専門家」のためのプロンプトを書きます。専門家とは、同じモデルへの新しい呼び出しで、その部分のために指揮者が書いた指示を持っています。専門家は履歴全体ではなく、指揮者が送ったものだけを見るので、新鮮な目で作業を確認します。指揮者は専門家の答えを読み、疑わしいものがあれば検証を頼み、最終的な答えを組み立てます。一部の実験では、専門家の1つが Python のコードを実行できました。
著者たちはこれを GPT-4 で、24ゲームのパズル、チェスで1手詰めを見つける問題、Python のプログラミングパズル、ソネットの作成などを混ぜたタスクで試しました。タスク全体の平均で、Python インタプリタ付きの指揮者方式は、通常のプロンプトや、比較したほかのプロンプトの枠組みを上回りました。
これは1通のチャットメッセージではなく、プログラムです。各専門家の呼び出しは、プロンプトチェーンがステップのあいだで出力を受け渡すのと同じように、あなたのコードが行う別々のリクエストです。違いは、チェーンではステップをあなたが前もって設計するのに対し、指揮者は実行時にステップを決めることです。その柔軟さのぶん呼び出しが増え、デバッグも難しくなるので、ステップがすでにわかっているタスクなら、たいていは固定のチェーンのほうが良い選択です。
よくある質問
メタプロンプトとは何ですか?
メタプロンプトとは、言語モデルをタスクそのものではなくプロンプトに取り組ませることです。プロンプトを書かせる、より良い結果が出るように書き直させる、タスクをほかのモデル呼び出し用のサブプロンプトに分割させる、などです。最後の意味は Suzgun と Kalai の2024年の論文「Meta-Prompting」の手法で、1つのモデル呼び出しが、同じモデルへの新しい呼び出しを取りまとめます。
ChatGPT にプロンプトを書かせるための良いプロンプトは?
プロンプトを何の仕事に使うのかを説明し、何かを書く前に質問するようモデルに頼みます。「プロンプトを書く前に、知る必要があることについて最大5つ質問してください」。それに答えたら、毎回変わる部分をプレースホルダーにした最終版のプロンプトを、コードブロックで頼みます。価値の大半は質問から生まれます。伝え忘れていたコンテキストが浮かび上がるからです。
AI が作ったプロンプトは自分で書いたものより良いですか?
たいていはより整理されていて漏れが少なく、そしてたいてい必要以上に長くなります。モデルはあなたの読み手も、データも、基準も知りえないので、生成されたプロンプトはその穴をもっともらしい推測で埋めます。下書きとして扱い、頼んでいないものは削ってから、本物の入力で試してください。
改善を頼むと、モデルが毎回「あなたは専門家です」を足すのはなぜですか?
おそらく、公開されているプロンプトの多くがそう始まっているので、モデルはそれを改善されたプロンプトの特徴の一部とみなしているのでしょう。漠然とした専門家の役割で変わることはほとんどありませんが、読み手と基準を示した具体的な役割なら変わります。改善を頼むときは、どんな種類の追加が欲しいかを伝え、あなたが言っていない要件は足さないよう指示してください。