Skip to main content
プロンプトエンジニアリングに確実な公式はありません。大規模言語モデル (LLM) へのプロンプトを「詳細で正確な要約」から「簡潔な概要」に書き換えると、モデルの応答の仕方は変わりますが、実際の行動に基づいて測定するまでは、その変更がユーザーに本当に役立っているかどうかを知る方法はありません。RAGAS のような評価フレームワークは、LLM アプリケーションが正しく回答しているかどうかをスコアリングします。しかし、プロンプトの変更がユーザーの本来の目的の達成に役立っているかどうかまでは教えてくれません。 Feature Experimentation はこのギャップを埋めます。候補となる各プロンプトをフィーチャー変数として保存し、バリエーション間でトラフィックを分割し、重視するエンゲージメント指標やビジネス指標を追跡します。プロンプトはソースコードではなくフィーチャーフラグの中にあるため、アプリケーションを再デプロイすることなく、Kameleoon プラットフォームからバリエーションを追加、編集、ロールバックできます。

仕組み

フィーチャーフラグは、テストしたいプロンプトごとに1つのバリエーションを設け、各プロンプトをフィーチャー変数の値として保存します。訪問者がアプリケーションにアクセスすると、Kameleoon SDK は訪問者にバリエーションを割り当て、対応するプロンプトを返します。このプロンプトはアプリケーションコードから LLM に送信されます。フィーチャーフラグに紐づけられたゴールは、訪問者が LLM を活用した機能とやり取りしたとき、たとえばフォローアップの質問をしたり、アシスタントの助けを借りてタスクを完了したりしたときに、コンバージョンを記録します。十分なトラフィックを収集したら、各バリエーションのコンバージョン率を比較して、どのプロンプトが最も効果的かを判断します。

前提条件

  • Feature Experimentation 用に設定されたプロジェクトを持つ Kameleoon アカウント。
  • アカウントのクライアント ID とクライアントシークレット。これらの値を確認するには、API認証情報 を参照してください。
  • Kameleoon SDK をインストールできる Python アプリケーション。

Kameleoon でプロンプト実験を設定する

アプリケーションコードに手を加える前に、Kameleoon プラットフォームでフィーチャーフラグ、プロンプトのバリエーション、追跡するゴールを設定します。

フィーチャーフラグを作成する

プロンプトのバリエーションを保持し、実験の展開を制御するフィーチャーフラグを作成します。
  1. Kameleoon アプリで、Features > Flags & Experiments > New feature flag をクリックします。
  2. 名前を入力します (例: LLM prompt test)。フラグを使用するプロジェクトを選択します。
  3. Description フィールドに、フラグが何を制御するかを記録し、チームの他のメンバーがその目的を理解できるようにします。
  4. Validate をクリックします。
詳細については、フィーチャーフラグを作成する を参照してください。

プロンプトをフィーチャー変数に保存する

プロンプトのテキストを保持するフィーチャー変数を追加します。これにより、アプリケーションコードを編集せずに、Kameleoon プラットフォームからプロンプトを変更できます。
  1. フラグのページで、左サイドバーの Set Up > Variables > Add Variable をクリックします。
  2. 変数の TypeString に設定します。
  3. Variable Key を入力します (例: prompt_template)。
  4. Default Value に、アプリケーションが現在使用しているプロンプトを設定します。この値は、実験に含まれていない訪問者に配信されます。
  5. Save をクリックします。
prompt_template という名前の String 型変数と、プロンプトテキストのデフォルト値のプレースホルダーを示す Variables 設定画面。
詳細については、フィーチャー変数の定義 を参照してください。

プロンプトごとにバリエーションを作成する

テストしたいプロンプトごとに1つのバリエーションを作成し、それぞれで prompt_template 変数に対応するテキストを設定します。
  1. 左サイドバーで Set Up > Variations > Add variation をクリックします。
  2. バリエーションの Name を入力します (例: Detailed summary)。
  3. このバリエーションの prompt_template 変数にプロンプトのテキストを設定します。
  4. Save をクリックします。
  5. テストしたい追加のプロンプトごとに、これらの手順を繰り返します。
Detailed summary という名前のバリエーションで、prompt_template 変数がプロンプトの値に設定されている Variations 設定画面。
詳細については、機能のバリエーションを定義する を参照してください。

エンゲージメントを測定するゴールを紐づける

フィーチャーフラグにゴールを紐づけて、どのプロンプトのバリエーションがより多くのエンゲージメントを生み出すかを Kameleoon が測定できるようにします。Kameleoon は統合されたプラットフォームであるため、他のチームが定義したトランザクションのゴールなど、組織内に既に存在するゴールを紐づけることも、LLM を活用した機能専用のゴールを新たに作成することもできます。
  1. フラグのページで、Set Up メニューの Goals > Add goal をクリックします。
  2. 既存のゴールを選択するか、Create a new goal をクリックして、訪問者が LLM を活用した機能とやり取りしたときに発火するカスタムゴールなどを定義します。
  3. Save をクリックします。
フィーチャーフラグに紐づけられたゴールと、既存のゴールを追加するか新しいゴールを作成するオプションを示す Goals 設定画面。
バックエンドからカスタムゴールを発火させる方法など、ゴールの種類の詳細については、ゴールの作成 を参照してください。

実験を展開する

プロンプトのバリエーション間でトラフィックを分割する実験ルールを作成し、環境を有効化してデータの収集を開始します。
  1. Rollout Planner で、対象としたい環境 (例: Production) を選択します。
  2. Add a rule > Experiment をクリックします。
  3. Variations to serve の下で、各プロンプトのバリエーションを追加し、それぞれの露出率を設定します。たとえば、2つのバリエーションにトラフィックを均等に50%ずつ振り分けます。
  4. テストしたい訪問者 (例: アプリケーションに到達するすべての訪問者) を含むように、ルールのターゲティングを設定します。
  5. 環境の ON/OFF トグルを ON に切り替えます。
  6. Save をクリックします。
すべての訪問者をターゲットとし、トラフィックを2つのバリエーションに50/50で振り分ける実験ルールを示す、Production 環境の Rollout Planner。
詳細については、フィーチャー実験を作成する を参照してください。 ルールを保存すると、Kameleoon は訪問者にバリエーションを割り当て、対応するプロンプトの配信を開始します。後でプロンプトを変更したりバリエーションを追加したりする場合は、Kameleoon プラットフォーム上で直接編集します。これらの変更を適用するために、アプリケーションを再デプロイする必要はありません。

アプリケーションでプロンプトを取得する

Kameleoon の Python SDK をインストールし、訪問者に割り当てられたプロンプトを取得して、訪問者が LLM を活用した機能とやり取りしたときにコンバージョンを追跡します。同じパターンは、Node.js、Java、Go を含む、任意の Kameleoon サーバーサイド SDK にも当てはまります。
  1. SDK を依存関係としてインストールします。
  2. サイトコードと認証情報を使ってクライアントを初期化します。
  3. LLM を呼び出す前に割り当てられたプロンプトを取得し、訪問者が LLM を活用した機能とやり取りしたときにコンバージョンを追跡します。
    LLM にリクエストを送る前に、訪問者の visitor_code を指定して get_prompt_for_visitor() を呼び出し、返された値をプロンプトとして使用します。訪問者が質問を送信したり応答を受け取ったりするなど、LLM を活用した機能とやり取りしたときに track_llm_interaction() を呼び出します。
各訪問者に一意の ID を割り当てるには get_visitor_code() を使用します。データを追跡する前に訪問者の同意が必要なアプリケーションでは set_legal_consent() を使用します。クライアントの初期化と構成に関する完全なリファレンスについては、Python SDK 開発者ガイド を参照してください。

モニタリングと改善

フィーチャーフラグの結果ページを開き、紐づけたゴールに対する各プロンプトのバリエーションのコンバージョン率を比較します。アプリケーションが get_variation()track_conversion() を呼び出すたびに、Kameleoon は露出とコンバージョンを自動的に追跡するため、追加の計測は必要ありません。 詳細については、フィーチャーフラグの全体的な結果を表示する を参照してください。

次のステップ

  • カスタムデータ、クロスデバイス実験、ターゲティング条件などの高度なオプションについては、Python SDK リファレンス を参照してください。
  • 実験を特定のオーディエンスにターゲティングするには、高精度なセグメンテーション条件 を紐づけます。
  • モデルパラメータや検索設定など、LLM を活用した機能の他の部分を変数化するには、フィーチャー変数 を確認してください。