Skip to main content
これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます。

Not Diamond を使った LLM プロンプトのカスタムルーティング

このノートブックでは、Weave と Not Diamond のカスタムルーティング を使って、評価結果に基づき、LLM プロンプトを最適なモデルにルーティングする方法を説明します。

プロンプトのルーティング

複雑な LLM ワークフローを構築する際、ユーザーは精度、コスト、または call レイテンシに応じて、異なるモデルにプロンプトを振り分ける必要がある場合があります。 Users は Not Diamond を使用して、こうしたワークフロー内のプロンプトをニーズに合った適切なモデルにルーティングできるため、モデルのコストを抑えつつ精度を最大化できます。 どのようなデータ分布であっても、1 つのモデルがすべてのクエリで他のすべてのモデルを常に上回ることは、ほとんどありません。複数のモデルを組み合わせて、各 LLM をいつ call するかを学習する「メタモデル」を作ることで、個々のモデルそれぞれを上回るパフォーマンスを実現し、さらにコストとレイテンシを削減することもできます。

カスタムルーティング

プロンプト用のカスタムルーターをトレーニングするには、3 つのものが必要です。
  1. LLM プロンプトのセット: プロンプトは文字列である必要があり、アプリケーションで使用するプロンプトを適切に表している必要があります。
  2. LLM 応答: 各入力に対する候補 LLM からの応答です。候補 LLM には、サポート対象の LLM と独自のカスタムモデルの両方を含めることができます。
  3. 候補 LLM による各入力への応答の評価スコア: スコアは数値で、ニーズに合った任意のメトリクスを使用できます。
これらを Not Diamond API に送信すれば、各ワークフローに合わせて調整したカスタムルーターをトレーニングできます。

トレーニングデータのセットアップ

通常は、独自の評価を使用してカスタムルーターをトレーニングします。ただし、このサンプルノートブックでは、コーディングタスク向けのカスタムルーターをトレーニングするために、HumanEvalデータセット に対する LLM の応答を使用します。 まず、この例のために用意したデータセットをダウンロードし、次に LLM の応答を各モデルの EvaluationResults にパースします。

カスタムルーターをトレーニングする

EvaluationResults が揃ったら、カスタムルーターをトレーニングできます。まず、アカウントを作成 し、 APIキーを生成してから、以下に APIキーを入力してください。
APIキーを作成
その後、Not Diamond アプリからカスタムルーターのトレーニングの進行状況を確認できます。
ルーターのトレーニング進捗の確認
カスタムルーターのトレーニングが完了したら、それを使用してプロンプトをルーティングできます。
この例では、Not Diamond の Weave 自動トレースとの互換性も活用しています。結果は Weave UI で確認できます。 カスタムルーティングの Weave UI

カスタムルーターの評価

カスタムルーターをトレーニングしたら、次のいずれかのパフォーマンスを評価できます。
  • トレーニング用プロンプトを送信して、インサンプルのパフォーマンスを評価する
  • 新しいプロンプトまたはホールドアウトしたプロンプトを送信して、アウトオブサンプルのパフォーマンスを評価する
以下では、テストセットをカスタムルーターに送信して、そのパフォーマンスを評価します。
この例では、Not Diamond の “メタモデル” が、複数の異なるモデルにプロンプトを振り分けます。 Weave 経由でカスタムルーターをトレーニングすると、評価も実行され、結果が Weave UI にアップロードされます。カスタムルーターの処理が完了すると、Weave UI で結果を確認できます。 UI では、Not Diamond の “メタモデル” が、プロンプトに正確に回答できる可能性が高い別のモデルへプロンプトを振り分けることで、最高性能のモデルを上回っていることがわかります。
Not Diamond の評価