はじめに
PromptWizardはマイクロソフト社によって開発されたオープンソースのフレームワークであり、プロンプトの単語や生成された例をモデルが自ら生成、評価、改善し、継続的なフィードバックによってアウトプットの品質を向上させる自己進化型のメカニズムを採用している。プロンプトの最適化、適切な例文の生成と選択、推論と検証を自律的に行い、最終的に高品質なプロンプトを出力することができ、自動化されたプロセスにより手作業によるプロンプトエンジニアリングの作業負荷を軽減する。特徴としては、タスクの意図と専門家の役割の概念の組み込み、推論を最適化するための思考連鎖アプローチの使用、パフォーマンスを向上させるための肯定例、否定例、合成例の組み合わせなどがある。異なるドメインのタスク要件に適応可能で、性能が安定しており、複数のスケールで複数のLLMをサポートする。
機能一覧
- フィードバック駆動の最適化ヒントや事例を生み出し、批評し、改善することで、タスクのパフォーマンスを継続的に向上させる。
- 多様な実例ロバストでタスクを考慮した合成例を生成し、手がかりと例を最適化する。
- 適応的最適化自己進化メカニズムによる指導と文脈学習例の最適化。
- マルチタスク・サポート複数のタスクや大規模な言語モデルに適用することで、モデルの精度と効率を向上させます。
- 費用対効果計算コストを大幅に削減し、効率的なチップエンジニアリングを可能にします。
ヘルプの使用
設置プロセス
- クローン倉庫::
git clone https://github.com/microsoft/PromptWizard
cd PromptWizard
- 仮想環境の作成と起動::
- ウィンドウズ
バッシュ
python -m venv venv
venvvScriptsactivate
- macOS/Linux:
バッシュ
python -m venv venv
ソース venv/bin/activate
- ウィンドウズ
- インストーラ::
pip install -e .
使用ガイドライン
PromptWizardには3つの主な使用方法があります:
- 例のないプロンプトを最適化する::
- 最適化の手がかりが必要だが、トレーニングデータがない場合に最適。
- 合成例の生成とチップの最適化::
- 例題のサポートが必要なタスクについては、合成例題を生成してプロンプトを最適化します。
- トレーニングデータを使ったヒントの最適化::
- 豊富なデータがサポートするタスクのために、既存のトレーニングデータと組み合わせてキューを最適化する。
コンフィギュレーションと環境変数の設定
- 設定ファイル::
- 利用する
promptopt_config.yaml
ファイルを使用してコンフィギュレーションを設定する。例えば、GSM8kタスクの場合、このファイルを使ってコンフィギュレーションを設定することができる。
- 利用する
- 環境変数::
- 利用する
環境
ファイルで環境変数を設定する。例えば、GSM8kタスクの場合、以下の変数を設定できる:プレーンテキスト
AZURE_OPENAI_ENDPOINT="XXXXX" # Azure OpenAI エンドポイントに置き換える。
OPENAI_API_VERSION="XXXX" # APIバージョンに置き換える。
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="XXXXX" # モデルのデプロイメントを作成し、デプロイメント名を配置します。
- 利用する
ワークフロー
- 利用シーンの選択::
- タスク要件に基づく適切な使用シナリオの選択(例なしの最適化、合成例の最適化、トレーニングデータの最適化)。
- 設定環境::
- API呼び出しのための構成変数と環境変数を設定する。
- オペレーションの最適化::
- PromptWizard を実行して、選択したシナリオに従ってプロンプトを最適化します。
典型例
以下は、PromptWizardを使用してプロンプトを最適化する方法を示す簡単な例です:
from promptwizard import プロンプトウィザード
# PromptWizardの初期化
pw = PromptWizard(config_file="promptopt_config.yaml")
# シナリオの選択と最適化の実行
pw.optimise_scenario_1()
以上の手順により、大規模言語モデルのタスクパフォーマンスを向上させるプロンプト最適化のために、ユーザーは簡単にPromptWizardをインストールして使用することができる。