メインコンテンツへスキップ
モニターは LLM ジャッジを使用して本番トラフィックを受動的にスコアリングし、LLM アプリケーションの傾向や問題を明らかにします。たとえば、アプリケーションの応答を正確性や有用性の観点でモニタリングしたり、エージェントに対してユーザーが何を質問しているかの傾向を把握するためにユーザー入力をモニタリングしたりできます。モニターはすべてのスコアリング結果を自動的に Weave のデータベースに保存するため、過去の傾向やパターンを分析できます。 アプリケーションの入出力に含まれるテキスト、画像、音声をモニタリングできます。 モニターを使うためにアプリケーションのコードを変更する必要はありません。W&B Weave の UI から設定できます。 スコアに基づいてアプリケーションの挙動に積極的に介入する必要がある場合は、代わりに guardrails を使用してください。

Weave でモニターを作成する方法

Weave でモニターを作成するには、次の手順を実行します。
  1. W&B UI を開き、対象の Weave プロジェクトを開きます。
  2. Weave のサイドナビから Monitors を選択し、+ New Monitor ボタンを選択します。Create new monitor モーダルダイアログが開きます。
  3. Create new monitor メニューで、次のフィールドを設定します:
    • Name: 先頭は英字または数字である必要があります。英字、数字、ハイフン、アンダースコアを含めることができます。
    • Description (任意): モニターが何を行うかを説明します。
    • Active monitor トグル: モニターを有効または無効にします。
    • Calls to monitor:
      • Operations: 監視する 1 つ以上の @weave.op を選択します。利用可能な op の一覧に表示されるには、その op を使用するトレースを少なくとも 1 回はログに記録しておく必要があります。
      • Filter (任意): 対象とする呼び出しを絞り込みます(例: max_tokenstop_p など)。
      • Sampling rate: スコアリングする呼び出しの割合 (0% ~ 100%)。
        サンプリングレートを低くすると、各スコアリング呼び出しにコストが発生するため、全体のコストを削減できます。
    • LLM-as-a-judge configuration:
      • Scorer name: 先頭は英字または数字である必要があります。英字、数字、ハイフン、アンダースコアを含めることができます。
      • Score Audio: 利用可能な LLM モデルをオーディオ対応モデルのみに絞り込み、Media Scoring JSON Paths フィールドを表示します。
      • Score Images: 利用可能な LLM モデルを画像対応モデルのみに絞り込み、Media Scoring JSON Paths フィールドを表示します。
      • Judge model: ops をスコアリングするモデルを選択します。メニューには、自分の W&B アカウントで設定済みの商用 LLM モデルおよび W&B Inference models が含まれます。オーディオ対応モデルには名前の横に Audio Input ラベルが付きます。選択したモデルについて、次の設定を行います:
        • Configuration name: このモデル設定の名前。
        • System prompt: 判定用モデルの役割とペルソナを定義します(例: “You are an impartial AI judge.”)。
        • Response format: ジャッジがレスポンスを出力する形式(json_object やプレーンな text など)。
        • Scoring prompt: ops をスコアリングするための評価タスクです。スコアリングプロンプト内で、ops からの 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 は、すべてのスコアラーの結果を Call オブジェクトの feedback フィールドに自動的に保存します。

例: truthfulness モニターを作成する

次の例では、生成された文の真偽を評価するモニターを作成します。
  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. 関数を少なくとも 1 回実行して、プロジェクトにトレースを記録します。これにより、W&B UI でこの op をモニタリングに利用できるようになります。
  2. W&B UI で Weave プロジェクトを開き、サイドナビゲーションから Monitors を選択します。次に New Monitor を選択します。
  3. Create new monitor メニューで、次の値を使ってフィールドを設定します:
    • Name: truthfulness-monitor
    • Description: 生成された文の真偽を評価します。
    • Active monitor: on に切り替えます。
    • Operations: generate_statement を選択します。
    • Sampling rate: すべての呼び出しをスコアリングするために 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
    • Scoring prompt:
      出力された文が、入力された文に基づいて正確かどうかを評価してください。
      
      これは入力文です: {ground_truth}
      
      これは出力文です: {output}
      
      レスポンスは次のフィールドを持つ JSON オブジェクトにしてください:
      - is_true: 出力文が入力文に基づいて真か偽かを示す boolean 値。
      - reasoning: 文が真または偽であると判断した理由。
      
  4. Create Monitor をクリックします。これでモニターが Weave プロジェクトに追加されます。
  5. スクリプト内で、真偽の度合いが異なる文を使って関数を呼び出し、スコアリング関数をテストします:
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