Skip to main content
Weave には、AI アプリケーションを評価するための事前定義済みスコアラーがいくつか用意されており、たとえば ハルシネーション検出要約品質 があります。これらを使うと、評価をすばやく定義し、アプリケーションの出力をスコアリングできます。
ローカルスコアラーを利用できるのは、Weave Python SDK のみです。Weave TypeScript SDK では、まだ利用できません。TypeScript で Weave スコアラーを使用する場合は、関数ベースのスコアラー を参照してください。

インストール

Weave のあらかじめ用意されている scorer を使用するには、追加の依存関係をいくつかインストールする必要があります。
LLM-evaluators 2025年2月更新: LLMを活用する事前定義済みの scorer は、litellm と自動的に統合されるようになりました。 LLMクライアントを渡す必要はなく、model_idを設定するだけで済みます。 サポートされるモデルはこちらを参照してください。

HallucinationFreeScorer

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

SummarizationScorer

LLM を使用して、要約を元の文章と比較し、その品質を評価します。
仕組み: この scorer は、summary を次の 2 つの方法で評価します。
  1. エンティティ密度: summary 内で言及されている一意のエンティティ (名前、場所、物など) の数を、summary の総語数に対する比率で確認し、summary の「情報密度」を推定します。エンティティの抽出には LLM を使用します。これは、Chain of Density paper における entity density の考え方に類似しています。
  2. 品質評価: LLM evaluator が summary を poorokexcellent のいずれかに判定します。これらの判定は、その後、集計的なパフォーマンス評価のためのスコア (poor は 0.0、ok は 0.5、excellent は 1.0) に対応付けられます。
カスタマイズ:
  • summarization_evaluation_system_promptsummarization_evaluation_prompt を調整して、評価プロセスをカスタマイズします。
メモ:
  • この scorer は内部で litellm を使用します。
  • score method は、元のテキスト (要約対象のテキスト) が input column に含まれていることを前提としています。データセットで別の名を使用している場合は、column_map を使用してください。
以下は、評価の文脈での使用例です。

OpenAIModerationScorer

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

EmbeddingSimilarityScorer

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

ValidJSONScorer

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

ValidXMLScorer

ValidXMLScorer は、AI システムの出力が有効な XML かどうかをチェックします。XML 形式の出力を想定している場合に役立ちます。
以下は、評価における例です:

PydanticScorer

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

RAGAS - ContextEntityRecallScorer

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

RAGAS - ContextRelevancyScorer

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