メインコンテンツへスキップ
このページでは、W&B Weave でカスタムモニターを設定して、本番トラフィックを受動的にスコアリングし、LLM アプリケーションにおける傾向や問題を明らかにする方法を説明します。本番トレースに対して、Weave のプリセットのシグナルに加えて独自の評価基準を定義したい場合は、このガイドを使用してください。 モニターでは、LLM ジャッジモデルを使用して本番トラフィックを受動的にスコアリングし、LLM アプリケーションにおける傾向や問題を明らかにできます。たとえば、アプリケーションの応答を正確性や有用性の観点でモニタリングしたり、ユーザー入力をモニタリングして、ユーザーがエージェントに何を尋ねているかの傾向を特定したりできます。モニターは、すべてのスコアリング結果を自動的に Weave のデータベースに保存するため、過去の傾向やパターンを分析できます。 モニターでは、アプリケーションの入力と出力に含まれるテキスト、画像、オーディオをモニタリングできます。 モニターを使うために、アプリケーションのコードを変更する必要はありません。Weave UI で設定できます。 スコアに基づいてアプリケーションの動作に能動的に介入する必要がある場合は、代わりに guardrails を使用してください。

シグナル と カスタムモニター

本番環境のモニタリングをすばやく始めるには、まず シグナル を使用します。シグナル は、本番トレース向けにあらかじめ用意された自動 Scorer です。そのうえで、アプリケーション固有の評価基準に合わせて カスタムモニター を追加します。
シグナルCustom monitors
Configurationワンクリックで有効化でき、prompt を作成する必要はありませんスコアリング用の prompt、モデル、パラメーターを完全に制御できます
Scope事前設定済みの品質分類器とエラー分類器自分で定義した任意の評価基準
Trace selection自動 (品質は成功したルートトレース、エラーは失敗したトレース)operations、フィルター、サンプリング率を設定可能
ModelServerless Inference (プリセット)任意の商用モデルまたは Serverless Inference モデル
Use case実績のある分類器を使って本番モニタリングをすばやく開始したい場合アプリケーション固有のカスタム評価基準を使いたい場合

Weave でモニターを作成する

Weave でカスタム モニターを作成するには、次の手順に従います。
  1. W&B UI を開き、Weave プロジェクトを開きます。
  2. Weave のサイドバーで Monitors を選択し、+ New Monitor ボタンをクリックします。Create new monitor モーダル ダイアログが開きます。
  3. Create new monitor メニューで、次のフィールドを設定します。
    • Name: 文字または数値で始める必要があります。使用できるのは、文字、数値、ハイフン、アンダースコアです。
    • Description (Optional): モニターの動作内容を説明します。
    • Active monitor toggle: モニターのオン/オフを切り替えます。
    • Calls to monitor:
      • Operations: モニターする @weave.op を 1 つ以上選択します。使用可能な op の一覧に表示されるには、その op を使用するトレースを少なくとも 1 つログしておく必要があります。
      • Filter (Optional): 対象となる Call を絞り込みます (たとえば max_tokenstop_p に基づいて絞り込めます) 。
      • Sampling rate: スコアリングする Call の割合です (0% ~ 100%) 。
        各スコアリング Call にはコストがかかるため、サンプリング率を下げるとコストを抑えられます。
    • LLM-as-a-judge configuration:
      • Scorer name: 文字または数値で始める必要があります。使用できるのは、文字、数値、ハイフン、アンダースコアです。
      • Score Audio: 使用可能な LLM モデルをフィルターして、音声対応モデルのみを表示します。また、Media Scoring JSON Paths フィールドが表示されます。
      • Score Images: 使用可能な LLM モデルをフィルターして、画像対応モデルのみを表示します。また、Media Scoring JSON Paths フィールドが表示されます。
      • Judge model: op のスコアリングに使用するモデルを選択します。このメニューには、W&B アカウントで設定した商用 LLM モデルに加えて、Serverless Inference models も表示されます。音声対応モデルには、名前の横に Audio Input ラベルが表示されます。選択したモデルについて、次の設定を行います。
        • Configuration name: このモデル設定の名前です。
        • System prompt: 判定モデルの役割とペルソナを定義します。たとえば、“You are an impartial AI judge.” のように指定します。
        • Response format: 判定モデルが応答を出力する形式です。json_object やプレーン テキストの text などがあります。
        • Scoring prompt: op をスコアリングするための評価タスクです。スコアリング プロンプトでは、op の prompt variables を参照できます。たとえば、“Evaluate whether {output} is accurate based on {ground_truth}.” のように指定します。
      • Media Scoring JSON Paths: トレースデータからメディアを抽出する JSONPath 式 (RFC 9535) を指定します。パスを指定しない場合、モニターにはユーザー メッセージ内のスコアリング可能なすべてのメディアが含まれます。このフィールドは、Score Audio または Score Images を有効にすると表示されます。
  4. モニターの各フィールドを設定したら、Create monitor を選択します。モニターが Weave プロジェクトに追加されます。コードがトレースの生成を開始すると、Traces タブでモニター名を選択し、表示されたパネルのデータを確認してスコアをレビューできます。
また、Weave UI でモニターのトレースデータを 比較 して可視化したり、Traces タブのダウンロード ボタン () を使って CSV や JSON などの形式でダウンロードしたりすることもできます。 Weave は、すべての Scorer の結果を Call オブジェクトの feedback フィールドに自動的に保存します。

例: 真実性モニターを作成する

次のエンドツーエンドの例では、生成された文の真実性を評価するモニターを作成します。完了すると、Weave プロジェクト内のサンプル op をスコアするアクティブなモニターが作成され、スコア付きのトレースが W&B UI に表示されます。
  1. 文を生成する関数を定義します。生成される文には、正しいものと正しくないものがあります。
import weave
import random
import openai

weave.init("my-team/my-weave-project")

client = openai.OpenAI()

@weave.op()
def generate_statement(ground_truth: str) -> str:
    if random.random() < 0.5:
        response = client.chat.completions.create(
            model="gpt-4.1",
            messages=[
                {
                    "role": "user",
                    "content": f"Generate a statement that is incorrect based on this fact: {ground_truth}"
                }
            ]
        )
        return response.choices[0].message.content
    else:
        return ground_truth

generate_statement("The Earth revolves around the Sun.")
  1. project にトレースをログするために、関数を少なくとも 1 回実行します。これにより、その op を W&B UI でモニタリングできるようになります。
  2. W&B UI で Weave プロジェクトを開き、サイドバーから Monitors を選択します。次に、New Monitor を選択します。
  3. Create new monitor メニューで、次の値を使用して各フィールドを設定します。
    • Name: truthfulness-monitor
    • Description: Evaluates the truthfulness of generated statements.
    • Active monitor: オン に切り替えます。
    • Operations: generate_statement を選択します。
    • サンプリング率: すべての call をスコアするため、100% に設定します。
    • Scorer name: truthfulness-scorer
    • Judge model: o3-mini-2025-01-31
    • System prompt: You are an impartial AI judge. Your task is to evaluate the truthfulness of statements.
    • Response format: json_object
    • スコアリング プロンプト:
      出力文が入力文に基づいて正確かどうかを評価してください。
      
      これは入力文です: {ground_truth}
      
      これは出力文です: {output}
      
      応答は次のフィールドを含む JSON オブジェクトにしてください。
      - is_true: 出力文が入力文に基づいて真か偽かを示す boolean。
      - reasoning: その文が真または偽である理由についての推論。
      
  4. Create monitor を選択します。これで、モニターが Weave プロジェクトに追加されます。
  5. スクリプトで、真実性の度合いが異なる文を使って関数を呼び出し、scoring function をテストします。
generate_statement("The Earth revolves around the Sun.")
generate_statement("Water freezes at 0 degrees Celsius.")
generate_statement("The Great Wall of China was built over several centuries.")
  1. 複数の異なる文でスクリプトを実行した後、W&B UI を開いて Traces タブに移動します。任意の LLMAsAJudgeScorer.score トレースを選択して、結果を確認します。
Monitor trace これで、generate_statement の各呼び出しをスコアし、その結果を元のトレースとともに保存する、動作する真実性モニターを利用できます。結果は Weave UI での分析や比較に使用できます。