promptオプティマイザーとは?
promptオプティマイザーは、粗く不完全なpromptを、どのAIからもはるかに良い結果を引き出せる、明確で構造化されたpromptに変換する無料ツールです。大まかなアイデアを貼り付けると、この無料のpromptオプティマイザーが、実際に重要な要素を加えて書き直します。AIの役割、タスク、コンテキスト、要件、そして希望する出力形式です。曖昧な依頼と構造化されたpromptの違いは、ありきたりな出力と、本当に役立つ出力の違いです。
promptエンハンサーやChatGPT promptオプティマイザーとしても機能します。生成される構造化promptはそのまま使えるため、Claude、ChatGPT、Gemini、その他のAIチャットに直接貼り付けられます。promptエンジニアリングの知識は不要です。やりたいことを自然な言葉で説明すれば、オプティマイザーが構造を整えます。
promptを一から作成する必要がありますか?上のpromptを生成に切り替えてください。目標を1文で説明すると、promptジェネレーターが、役割、手順、制約、出力形式、そしてあなただけが知っている詳細を入力するための[placeholders]を含む、完全で再利用可能なpromptを作成します。
定型作業で毎回のprompt入力を完全になくしたいですか?KissMySkillsのすぐ使えるpromptパックまたはSkillファイルを使えば、ClaudeやChatGPTが特定の仕事に特化したスペシャリストになり、promptを一から書かなくても専門家レベルの出力を得られます。prompt入力が初めてですか?Claude Skillsとは何かを読んで、毎回promptを入力し直すより、保存したSkillが優れている理由をご覧ください。
promptの中で物事を置く場所が答えを変える
位置は、promptの構造の中で最も議論されておらず、最も測定しやすい部分であり、大手モデルベンダー3社のうち2社が同じ助言を公開しています。
Anthropicのpromptingガイダンスでは、20,000トークン程度以上の入力について、「長い文書や入力を、クエリ、指示、例より上、promptの冒頭近くに配置する」よう指示しており、末尾にクエリを置くと「テストでは、特に複雑な複数文書の入力で、応答品質が最大30パーセント向上する可能性がある」と述べています。この割合は公表された方法論のない社内の数値として扱うべきですが、順序に関する助言自体は明確です。GoogleもGeminiについて同じ指示を出しています。「大量のコンテキスト(例:文書やコード)を提供する場合は、まずコンテキストをすべて入力してください。具体的な指示や質問はpromptの最後に置いてください」。さらに、「上記の情報に基づくと…」のようなつなぎのフレーズを使う便利な方法も加えています。
この直感には研究の裏付けがあります。Lost in the Middle(Liu et al., arXiv:2307.03172)は、モデルの性能について、「関連情報が入力コンテキストの冒頭または末尾にある場合に最も高くなることが多く、長いコンテキストに明示的に対応したモデルであっても、長いコンテキストの中間にある関連情報へアクセスしなければならない場合には大幅に低下する」と報告しています。必要な事実が貼り付けた文書の途中に埋もれているなら、質問の言い換えよりも、その事実を移動するほうが確実な修正です。
OpenAIの現在のガイダンスでは、developerメッセージの順序が異なり、Identity、Instructions、Examples、そしてContextとなっています。また、Contextについては「通常、promptの末尾近くに配置するのが最適」と注記されています。これは矛盾というより、配置しているものの違いです。つまり、リクエスト固有の参照資料と、大量の文書は別物です。実務上の要点は、万人に通用する単一のレイアウトは存在せず、あるモデルで位置を調整したpromptは、別のモデルでも再確認する必要があるということです。
形容詞より構造
ベンダーが実際に文書化しているテクニックは構造に関するものであり、モデルに自分が世界クラスの専門家だと伝えるものは一つもありません。
Anthropicが明確さのために示している指針は、規則ではなくテストです。「タスクについての背景情報をほとんど与えずに、同僚にあなたのpromptを見せて、それに従ってもらうよう頼んでみてください。相手が混乱するなら、Claudeも混乱します。」同じ指針では、制約をただ述べるのではなく、なぜその制約が存在するのかを説明することも推奨しています。その理由は、モデルが「説明から一般化できるほど賢い」からです。理由を添えた指示は、列挙していないケースにも適用されます。
区切り文字についても、一貫した推奨があります。Anthropicは、XMLタグが「Claudeによる複雑なプロンプトの曖昧さのない解析を助ける」とし、各種類のコンテンツを、それぞれ専用のタグで囲むことを提案しています。例: <instructions>, <context>, <input> 「誤解釈を減らします。」OpenAIは「Markdownの見出しやリストは、プロンプトの異なるセクションを示すのに役立ちます」とし、「XMLタグは、あるコンテンツの一部分がどこで始まり、どこで終わるかを区切るのに役立ちます」と述べています。Googleは例について別の方向から注意を促しています。few-shotの例全体で一貫した形式を保つことが重要であり、「例を多く含めすぎると、モデルが例に合わせて応答を過剰適合させ始める可能性があります。」Anthropicは3~5個を、次のように囲むことを提案しています <example> タグ。
役割設定の効果はインターネットで言われているほど大きくありませんが、無意味ではありません。Anthropicの立場は控えめで具体的です。「system promptで役割を設定すると、用途に合わせてClaudeの振る舞いとトーンを集中させられます。たった1文でも違いが生まれます。」system promptに入れるのは1文であり、user messageに創作した経歴を段落で書くのではありません。
今では正しくない、標準的なプロンプトアドバイス2つ
プロンプトガイドは古びるのが早く、特に繰り返し語られてきた2つのヒントは、ベンダー自身のドキュメントによって追い越されています。
「常に、step by stepで考えるように指示する。」 OpenAIの推論に関するガイダンスは、推論モデルについては反対のことを述べています。「chain-of-thought promptsは避けてください。これらのモデルは内部で推論を行うため、『step by stepで考えて』や『推論を説明して』と促す必要はありません。」また別の箇所では、こうした手法は「パフォーマンスを向上させない可能性があり(場合によっては妨げることもある)」としています。同じページでは、まずzero-shotを試し、必要な場合にのみ例を追加することを推奨しています。OpenAIのたとえは覚えておく価値があります。推論モデルは「上級の同僚のようなものです。達成してほしい目標を伝え、細部は任せることができます。GPTモデルは初級の同僚のようなものです。」Chain-of-thoughtが廃れたわけではありません - Anthropicは今も<thinking>タグと<answer>タグを使った手動のCoTを記載しています - ただし現在は、組み込みの推論が無効な場合のフォールバックであり、デフォルトではないと説明されています。
元の論文が何を主張していたのかを知っておく価値もあります。Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(Wei et al., arXiv:2201.11903)は、こうした能力が「十分に大規模な言語モデルでは自然に発現する」と報告しました。有名な「let's think step by step」という結果(Kojima et al., arXiv:2205.11916)は、2022年のモデルで測定されたものです。どちらも時代を超えた法則ではありません。
「assistantの最初の言葉をあらかじめ入力する。」 Anthropicの現在のドキュメントには、最近のClaudeモデル以降、最後のターンにおけるassistantメッセージの事前入力は「もはやサポートされておらず」、それを含むリクエストは「400エラーを返す」と記載されています。文書化されている代替手段は、構造化出力、前置きなしで応答するよう直接指示すること、またはツール呼び出しです。今もprefillを書式設定のテクニックとして教えているガイドは、現在では失敗するリクエストについて説明しています。
もう1つ、区別しておく価値のあるものがあります。self-consistency(Wang et al., arXiv:2203.11171)は、複数の推論経路をサンプリングし、最も多い回答を採用するデコーディング戦略です。複数回の生成が必要なため、promptを書き換えるだけでは実現できません。
このオプティマイザーにできないこと
モデルが持っていない知識を補うことはできません。 OpenAIがコンテキストを追加する理由として示しているのは、モデルに「独自データ、またはモデルの学習に使われたデータセット以外のあらゆるデータへのアクセス」を与えることです。欠けている事実への対処法は、質問の表現を改善することではなく、その事実を貼り付けることです。
ハルシネーションを排除することはできません。 Anthropicは、先進的なモデルでさえ「事実として誤ったテキストを生成することがある」と明言しています。また、「わかりません」と答えられるようにすること、長い文書に回答する前に逐語的な引用を抽出すること、モデルを提供された情報源に限定することといった緩和策は「ハルシネーションを大幅に減らす」ものの、「完全に排除するわけではない」と説明しています。
promptインジェクションから保護することはできません。 Anthropicは2つの脅威モデルを挙げています。1つはユーザー自身が攻撃者となる直接的なインジェクション、もう1つは、信頼できるユーザーのpromptによって、モデルが敵対的な指示を含む第三者コンテンツ(Webページ、メール、ドキュメント、ツールの結果)を処理することになる間接的なインジェクションです。文言はセキュリティ対策ではありません。
サンプリングパラメータは設定できません。 Temperatureとtop-pはpromptではなくAPI呼び出しで指定します。また、これらはベンダー間で比較できるものでもありません。Anthropicは0.0-1.0の範囲を示し、「temperatureが0.0であっても、結果は完全には決定論的にならない」と警告しています。一方、OpenAIは0-2を示し、「temperatureまたはtop_pのどちらか一方だけを変更する」ことを推奨しています。
出力が良いかどうかは判断できません。 Anthropicのpromptエンジニアリング文書は、成功の定義と、それに照らしてテストする方法をあらかじめ用意していることを前提としています。それがなければ、より長く、より構造化されたpromptは、より長く、より構造化された推測を生み出すだけです。

