クリシュ・マニアー、ウィリアム・フー=ヒンソーン著
キューを書くとき、私たちはラージ・ランゲージ・モデル(LLM)に私たちの意図を伝え、複雑なデータに対してその指示を適用できるようにしようとする。しかし、一度にすべてのニュアンスを明確に表現することは容易ではありません。プロンプトエンジニアリングは多くの場合、手作業による試行錯誤、テスト、チューニングによって最適化されるが、DSPyやpromptimのようなツールは、「プロンプトプログラミング」と体系的なプロンプト最適化の価値を実証している。DSPyやpromptimのようなツールは、実データを測定しテストすることで、意図と指示のギャップを埋める。本稿では
- 検証可能な結果を持つ5つのデータセットをベンチマーク用に選択し、最適化を促した。
- プロンプトを体系的に改善する5つの方法が実現し、比較された。
- 3つの異なるモデルが評価された(
ガット
そしてクロード・ソネ
そしてo1
キュー最適化における
結論はこうだ:
- 我々がキューの最適化に推奨するモデルは次の通りである。
クロード・ソネ
(よりも良いo1
) - キュー最適化は、モデルにドメイン知識が欠けているタスクで最も効果的である。
- このような場合、キューを最適化することで、ベースキューよりも200%ほど精度を向上させることができる。
- キュー最適化は、長期記憶の一形態とみなすこともできる。
何をテストしたか
我々は、5つの一般的なキュー最適化方法(詳細は後述)をベンチマークした:
- スモールショット・プロンプティング:望ましい行動のデモンストレーションとしてトレーニング例を使用する。
- メタ・プロンプティング:LLMによるプロンプトの分析と改善
- 振り返りを伴うメタプロンプティング:LLMが更新されたプロンプトを提出する前に、提案された変更点を振り返り、批判的に分析できるようにする。
- プロンプトのグラデーション:各例に対して、改善のための提案として「テキストのグラデーション」を生成し、その提案を別のLLMコールで適用する。
- 進化的最適化:制御された突然変異による手がかり空間の探索
これらの方法を3つのモデル(O1、GPT-4o、Claude-3.5-Sonnet)で実行し、一般的なタスクを表す5つのデータセットでテストして、以下の核心的な質問に答えた:
- 最適化のコツはいつが最も効果的か?
- どのフロンティアモデルがキューの最適化に適しているか?
- どのアルゴリズムが最も信頼できるのか?
算術
それぞれ独自の最適化理論を持つ5つのキュー最適化法をテストした:
数発のプロンプト
このアプローチは最も単純で、トレーニングセットから最大50の例を選択し(複数のトレーニングサイクルに渡ってサンプリングされる)、望ましい振る舞いのデモンストレーションとしてキューに含める。このアプローチは学習コストが低い(変更を提案するためにLLMを呼び出す必要がない)。 トークン コストが高い(通常、デモ例には直接的な指示よりも多くの内容が含まれているため)。
メタ・プロンプティング(メタ催促)
これは命令チューニングの最も基本的な方法の一つである。まず、ターゲットLLMに例題を実行させ、出力の評価を計算します(注:評価器をセットアップする必要があります)。次に、メタキューLLMに、入力、出力、参照出力(もしあれば)、およびそれらの出力に対する現在のキューのスコアを提供し、LLMに、より良いキューを書くように依頼する。このプロセスを小バッチのデータで繰り返し、保持された開発セット(dev set)で定期的に評価し、最もスコアの高いキューを保持します。
メタ・プロンプティング・ウィズ・リフレクション(メタ・プロンプティング・ウィズ・リフレクション)
メタプロンプトの上に "think "と "critique "ツールを提供する。これらのツールは、LLMがキューの更新を提出する前に、ドラフト領域での反省を記録することを可能にするだけであり、より多くの計算能力を、最終版を提出する前に、以前のキューを分析し、データの隠れたパターンを発見するために使用することができる。
プロンプト・グラディエント(プロンプト・グラディエント)
Pryzantらの論文である。自動プロンプト最適化最適化プロセス」に着想を得たこのアプローチは、最適化プロセスを複数のステップに分割する:
- 現在のプロンプトの出力を採点する
- LLMに、失敗例に対する具体的なフィードバック(つまり「勾配」)を生成させる。
- これらの "グラデーション "に基づいて更新を促す
この方法の核となる考え方は、変更を加える前にきめ細かなフィードバックを収集することで、メタプロンプト方式よりも的を絞った改善案を提供できるというものだ。
進化的最適化 (EO)
アルゴリズムは「世代」で実行され、各世代は異なる段階を経て最適化される。各世代において、アルゴリズムはキューに半ランダムな「突然変異」を適用し(この実験では、これらの突然変異は異なるタイプのキューを更新するためにLLMによって生成された)、その後、最もパフォーマンスの良いキューを保持する。
これらの実験では、Cuiらによって提案された最先端の技術を使用した。 フェーズエヴォこれは、"テキスト勾配 "アプローチと、より大きなスケールで手がかり空間を探索する、よりグローバルな変分戦略を組み合わせたもので、局所最適性の問題を克服している。
データセット
ベンチマーク用に5つのデータセットを作成した:
- メール配信のサポート 3受信されたメールはそれぞれ分類され、3つのプロセッサのいずれかに割り当てられます。
- メール配信のサポート 10(1)と似ているが、プロセッサーが10個に増えると、各プロセッサーが持つ「ドメインの専門性」が十分に明らかにならないため、タスクはより難しくなる。
- 多言語数学LLMでは、数学の応用問題を解き、その答えを5つの言語の中から1つ選んで綴る。対象言語は問題のトピックによって決まる(スポーツ→韓国語、宇宙→アラビア語、料理→ドイツ語、音楽→英語、野生動物→ロシア語)。オプティマイザはデータからこの隠れたパターンを発見する必要がある。
- メールアシスタント(簡単なもの)LLMは電子メールを無視すべきか、返信すべきか、ユーザーに通知して対処させるべきかを判断する必要がある。
- メールアシスタント(環境設定)これは前のデータセットと似ているが、タスクルールはより微妙である。多忙で "風変わり "な技術者をEメール嗜好ルールの作成者として設定し、グランドトゥルース・ラベルを提供する。
結局
我々は、OpenAIのGPT-4oとO1を5つのデータセットで使用し、また、次のようなデータセットも使用した。 アンソロピック をメタ手がかり LLM として最適化した。ターゲットLLMはGPT-4o-miniであった(すなわち、GPT-4o-mini手がかりを最適化するために他のモデルを使用した)。
次の図は、異なるデータセットとアルゴリズムに対する最適化結果を示している:
全テストデータセットの平均相対改善値、100%は元の2倍、200%は3倍の精度を表す。
結果よりクロードはより安定したオプティマイザー・モデルである。O1の方が信頼性が高い。さらに、O1には処理時間、コスト、APIの信頼性(OpenAIのエンドポイントがリクエストをToS違反として誤ってマークすることがある)の点で不利な点がある。そのため、現在ヒントの最適化にはClaude-3.5-Sonnetを推奨しています。O3や他の新しいモデルが利用可能になるにつれて、この推奨を更新する予定です。
分かったこと
以上の結果は、ラージ・ランゲージ・モデル(LLM)が入力キュー・エンジニアリングに有効であるという既存の文献を概ね支持するものである。また、これらの実験により、LLMがどのような場合に有効であるか(あるいは有効でないか)も明らかになった。
- メタ・プロンプティング(メタ催促) あるディスカバリー・ルールまたはプリファレンス 特に、この情報がLLMの本来の知識領域外のものである場合、このような明確なパターンが特に有用です。つまり、オプティマイザが他のLLMにこれらの動作を翻訳してくれるのであれば、他のLLMが賢明な指示に従う限り、例によって望ましい動作を定義することができる。これにより、宣言型入力ヒント・プログラミング・モデルが可能になる。
- メタヒント(コマンドによる微調整) の好みを伝える。ニュアンス の側面はあまり役に立たない。例えば、単純な電子メール分類データセットでは、すべての入力キュー微調整法は、少数ショット(few-shot)入力キュー方法を下回る。そのデータセットでは、分類は主に明示的なルールではなく、ファジィルールと条件判断に基づいていた。
- 合体サンプル入力のプロンプトとコマンドの微調整を減らす は補完的な強化をもたらすかもしれない。これは オプサル・オングら 歌で応える Wan et al. 研究結果は一貫している。サンプルは少ないが、単純な指示よりも多くの情報を伝えることができる。複雑な条件と規則 これらはエンタープライズエージェントに必要な重要な部分かもしれない。一方、リフレクション、「テキスト勾配」または進化的アルゴリズムによる入力キューの最適化により、トークンの効率を向上させながら、既存のパフォーマンスとデータセットの特性に基づいて、より的を絞った改善が可能になる。トークンの効率も改善される。
- メタプロンプトはモデルに新しい能力を与えない。 .例えば、Multilingual Mathsデータセットでは、GPT-4o-miniは最適化された構成でも65%の合格率を破ることができませんでした。オプティマイザは、以下のようにモデルを導くことができます。 現れ (時には、例を通して道筋を推論することで、より良い道筋を導き出すことができる。考え方 )が、より強力な推論スキルやより複雑な領域固有の知識を解き放つことはない。
評価を超えて
私たちは、チームがLLMアプリケーションを体系的に評価できるよう、LangSmithを開発してきました。優れた評価を行うことで、問題を特定し、システムの挙動を理解することができます。しかし、評価プロセスで構築されたデータセットとメトリクスは、さらに重要な価値を解き放ちます。
私たちの実験では、データセットが明確であるため、最適化プロセスでうまく機能する、検証可能な結果 ::
- 実ラベルによるルーティング決定
- 検証可能な数学的答え
- プログラムでチェック可能な言語制約
これは重要なことです。なぜなら、ファジーな、あるいは信頼性の低い測定基準に最適化することは、入力キューを良くするのではなく、むしろ悪くする傾向があるからです。LLMがファジーな基準だけでアウトプットを判断すると、実際のニーズを満たすのではなく、自身のバイアスのために最適化する傾向がある。
LangSmithでアプリケーションのパフォーマンスを追跡している場合、すでに効果的なインプットプロンプト最適化の基礎が出来上がっています。同じデータセットは、失敗の理由を理解するのに役立つだけでなく、体系的な改善を促します。データ、メトリクス、学習は閉じたループを形成します。
入力プロンプトの最適化、すなわち長期記憶
最適化は学習であり、入力キューの最適化は、「常時オン」の行動パターンをとらえる長期記憶の特別な形態と考えることができる。
従来の記憶システムがデータベース(ベクトル、グラフ、その他の形式)に情報を保存するのに対して、入力キュー最適化は知能の入力キューに直接情報を保存し、常に利用可能な状態にしてあらゆる意思決定に影響を与える。このアプローチは、行動ルール、スタイルの好み、主要な性格特性などのコアパターンを保存するのに特に適している。
学習と改善」のプロセスは、従来の入力キューの最適化と非常によく似ているが、更新のスケジュール方法と保存場所に若干の違いがある。入力キューの最適化と学習アルゴリズムに使われている技術は、メモリシステムにも応用できるかもしれない。これは我々が積極的に研究している方向性である。
意義
これらの結果は、LLMに基づく入力プロンプトの最適化により、入力プロンプトを系統的に改善し、現在の手作業による試行錯誤に支配された入力プロンプトのエンジニアリングプロセスを自動化することができるという私たち(およびDSPyのような研究者)の見解を裏付けるものである。このアプローチをすべての関係者が利用できるようにすることで、より優れた、より強力なシステムを構築することができる。
しかし、これは万能の解決策ではない。我々が最適化した入力プロンプトは、テストセットでは最適ではなく、タスクによって改善度が異なる。このことから、入力キューの最適化は、唯一のアプローチではなく、LLMアプリケーションの最適化ツールボックスの1つのツールとして考慮されるべきであることが示唆される。
これらの洞察を直接LangSmithに統合し、チームが手作業による入力から迅速なエンジニアリングに移行できるよう支援する予定です。私たちのゴールは人間の判断を排除することではなく、よりシステマティックでデータドリブンな意思決定を行うことです。
さいはつじっけん
を走らせることができる。 GitHubリポジトリ 正鵠を得る all_sweeps.sh
スクリプトでこれらの実験を再現した。
付記
トレーニング・ダイナミクス
前節では究極 テストセットにおける入力キューのパフォーマンス。以下に、開発セットにおける各データセットのトレーニングダイナミクスのグラフを示す。これらのグラフは、異なるアルゴリズムがどのようにデータセットにフィットするかを示しており、最終的なスコアを比較することで、アルゴリズムが不安定な方法でデータセットにフィットしているかどうかを明らかにすることができる。オーバーフィッティング そのため、一貫したアップリフトを提供することができない。
メールルーティングのサポート(3クラス)
ほとんどのオプティマイザは、ベースライン入力キューで改善し、勾配法と進化法は同程度の性能を示した。特筆すべきは、ClaudeがGPT-4oをすべての手法で上回っていることである。しかし、開発セットでは、ClaudeとGPT-4oは、メタキューイング手法を使用した場合に有意な改善が見られなかった。
メールルーティングのサポート(10クラス)
GPT-4oを使ったメタ・キューとメタ・キュー+リフレクションの設定は、データセットの分類ルールの学習に失敗した。曲線が平坦なままであれば、アルゴリズムは学習に失敗している。曲線が急速に満点に近づく場合は、オーバーフィッティングの可能性がある。最高のテストセットの性能は、開発セットで着実な改善を示すアルゴリズムから得られる傾向がある。
多言語数学データセット
このデータセットのトレーニング性能個別 というのも、セッティングによっては、第2戦や第3戦(あるいはそれ以降)にならないと大幅なブーストがかからないものもあるからだ。これは、トラッキング編集履歴 LLMはメタ最適化として機能し、編集履歴に基づいてより効果的な更新戦略を翻訳することができる。
入力プロンプトの比較
最終的には、入力プロンプトの詳細よりも、ダウンストリームのメトリクスを重視することになるが、オプティマイザーが修正について何を学んだか、どの変更が強化につながったかを分析することは価値がある。
電子メールをサポートする10クラス分類データセットを例とした、4つの異なる最適化アルゴリズムの比較:
4つのアルゴリズムはすべて主要な分類ルールを学習した。しかし、勾配法はファジィ境界を見つけることに弱く、他の方法は分類基準を指定するために「優先規則」を定式化するか決定木を構築することを好む。
同じアルゴリズムで異なるオプティマイザー・モデルを比較した場合にも、挙動の違いが見られる。例えば、O1 は異なる技法(例:サンプルの少ない例とステップ・バイ・ステップの指示の合成)を組み合わせたり、特徴的なセパレーター("-")を使ってルールセットを区別したりすることを好むようです。一方 クロード GPT-4oは、より簡潔で直接的でありながら、プライオリティ・ルールとドメイン・マッピングを学習した。一方、GPT-4oは情報密度が最も低い。