メインコンテンツへスキップ
W&B Weave には、AI アプリケーションを評価するための事前定義済みScorerがいくつか用意されており、たとえば ハルシネーション検出要約品質 があります。これらを使うと、評価をすばやく定義し、アプリケーションの出力をスコアリングできます。このページでは、各組み込みScorer、それが何を測定するのか、評価での使い方について説明します。
ローカルScorerを利用できるのは、Weave Python SDK のみです。Weave TypeScript SDK では、まだ利用できません。TypeScript で Weave Scorerを使用する場合は、関数ベースのScorer を参照してください。

インストール

Weave の事前定義済みScorerを使用するには、追加の依存関係をいくつかインストールする必要があります。
LLM-evaluators LLMを活用する事前定義済みScorerは、litellm と自動的に統合されます。LLMクライアントを渡す必要はなく、model_idを設定するだけで済みます。 サポートされるモデルを参照してください。

HallucinationFreeScorer

この Scorer は、入力データに基づいて、AI システムの出力にハルシネーションが含まれていないかどうかを確認します。
カスタマイズ
  • Scorer の system_prompt フィールドと user_prompt フィールドをカスタマイズして、自分にとって “hallucination” が何を意味するかを定義します。
メモ
  • score メソッドは、context という名前の入力列を想定しています。データセットで別の名前を使用している場合は、column_map 属性を使用することで、context をデータセット内の列にマッピングできます。
次の例では、評価で HallucinationFreeScorer を使用します。

SummarizationScorer

LLM を使用して、要約を元のテキストと比較し、その品質を評価します。
仕組み この Scorer は、要約を次の 2 つの観点から評価します。
  1. エンティティ密度: 要約内で言及されている一意のエンティティ (名前、場所、オブジェクトなど) の数が、要約全体の単語数に対してどの程度の割合を占めるかを確認し、要約の「情報密度」を推定します。エンティティの抽出には LLM を使用します。これは、Chain of Density paper で使われているエンティティ密度の考え方に似ています。
  2. 品質評価: LLM 評価器が要約を poorokexcellent のいずれかに分類します。その後、集計用のパフォーマンス評価に使えるよう、これらの評価をスコア (poor は 0.0、ok は 0.5、excellent は 1.0) に変換します。
カスタマイズ
  • summarization_evaluation_system_promptsummarization_evaluation_prompt を調整して、評価プロセスを目的に合わせてカスタマイズします。
メモ
  • この Scorer は内部で litellm を使用しています。
  • score メソッドでは、元のテキスト (要約対象のテキスト) が input 列に含まれている必要があります。データセットで別の名前を使用している場合は、column_map 属性を使用してください。
次の例では、評価のコンテキストで SummarizationScorer を使用します。

OpenAIModerationScorer

OpenAIModerationScorer は OpenAI の Moderation API を使用して、AI システムの出力にヘイトスピーチや露骨な性的表現などの禁止コンテンツが含まれているかどうかを確認します。
仕組み
  • AI の出力を OpenAI Moderation エンドポイントに送信し、コンテンツにフラグが立てられているかどうかを示す構造化されたレスポンスを返します。
次の例では、評価のコンテキストで OpenAIModerationScorer を使用します。

EmbeddingSimilarityScorer

EmbeddingSimilarityScorer は、AI システムの出力の埋め込みと、データセット内のターゲット テキストの埋め込みとのコサイン類似度を計算します。AI の出力が参照テキストにどの程度近いかを測定するために使用します。
パラメーター
  • threshold (float): 2 つのテキストが類似していると見なすために必要な最小コサイン類似度スコアです (-1 から 1 の範囲。デフォルトは 0.5) 。
次の例では、評価のコンテキストで EmbeddingSimilarityScorer を使用します。

ValidJSONScorer

ValidJSONScorer は、AI システムの出力が有効な JSON かどうかを確認します。出力が JSON 形式であることを想定しており、その妥当性を検証する必要がある場合に便利なScorerです。
以下の例では、評価のコンテキストで ValidJSONScorer を使用します。

ValidXMLScorer

ValidXMLScorer は、AI システムの出力が有効な XML かどうかを確認します。XML 形式の出力が想定される場合に使用してください。
次の例では、評価においてValidXMLScorerを使用します。

PydanticScorer

PydanticScorer は、AI システムの出力を Pydantic モデルに照らして検証し、指定されたスキーマまたはデータ構造に準拠していることを確認します。

RAGAS - ContextEntityRecallScorer

ContextEntityRecallScorer は、AI システムの出力と与えられたコンテキストの両方からエンティティを抽出し、リコールスコアを計算することで、コンテキスト再現率を推定します。Retrieval Augmented Generation Assessment (RAGAS) 評価ライブラリに基づいています。
仕組み
  • LLM を使用して、出力とコンテキストから一意のエンティティを抽出し、再現率を計算します。
  • 再現率 は、コンテキスト内の重要なエンティティのうち、出力で捉えられている割合を示します。
  • 再現率スコアを含む辞書を返します。
メモ

RAGAS - ContextRelevancyScorer

ContextRelevancyScorer は、提供されたコンテキストが AI システムの出力とどの程度関連しているかを評価します。これは RAGAS 評価ライブラリに基づいています。
仕組み
  • LLM を使用して、コンテキストが出力にどの程度関連しているかを 0 から 1 のスケールで評価します。
  • relevancy_score を含む辞書を返します。
メモ
  • データセットに context 列があることを前提としています。列名が異なる場合は、column_map 属性を使用してください。
  • relevancy_prompt をカスタマイズして、関連性の評価方法を定義します。
次の例では、評価で ContextEntityRecallScorerContextRelevancyScorer を一緒に使用します。
注: 組み込みの Scorer は、openai/gpt-4oopenai/text-embedding-3-small などの OpenAI モデルを使って調整されています。別の provider を使用する場合は、model_id フィールドを更新してください。たとえば、Anthropic のモデルを使用するには次のようにします。