Weaveでは、Scorerを使用してAI出力を評価し、評価メトリクスを返します。Scorerは、AIの出力を取得して分析し、結果の辞書を返します。必要に応じて入力データを参照として使用でき、評価からの説明や推論などの追加情報も出力できます。Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-feature-automate-reference-docs-generation.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
- Python
- TypeScript
Scorerは
weave.Evaluationオブジェクトに評価中に渡されます。weaveには2種類のScorerがあります:- 関数ベースのScorer:でデコレートされたシンプルなPython関数
@weave.op。 - クラスベースのScorer:より複雑な評価のために
weave.Scorerを継承するPythonクラス。
独自のScorerを作成する
関数ベースのScorer
- Python
- TypeScript
これらは評価が実行されると、
@weave.opでデコレートされ、辞書を返す関数です。以下のような単純な評価に最適です:evaluate_uppercaseはテキストがすべて大文字かどうかをチェックします。クラスベースのScorer
- Python
- TypeScript
より高度な評価、特に追加のスコアラーメタデータを追跡する必要がある場合や、LLM評価者に異なるプロンプトを試したり、複数の関数呼び出しを行ったりする場合は、このクラスは、要約を元のテキストと比較することで、要約の質を評価します。
Scorerクラスを使用できます。Requirements:- 以下から継承します:
weave.Scorer。 scoreメソッドを@weave.opでデコレートして定義します。scoreメソッドは辞書を返す必要があります。
Scorerの仕組み
Scorerのキーワード引数
- Python
- TypeScript
ScorerはAIシステムからの出力とデータセット行からの入力データの両方にアクセスできます。weaveを使用した列名のマッピング
時々、これで、
- Input:Scorerがデータセット行から「label」や「target」列などのデータを使用するようにしたい場合は、Scorerの定義に
labelまたはtargetキーワード引数を追加することで簡単に利用できるようになります。
scoreクラスメソッド)のパラメータリストは次のようになります:Evaluationが実行されると、AIシステムの出力がoutputパラメータに渡されます。Evaluationは自動的に追加のScorer引数名をデータセット列に一致させようとします。Scorer引数やデータセット列のカスタマイズが難しい場合は、列マッピングを使用できます - 詳細は以下をご覧ください。- Output:AIシステムの出力にアクセスするには、Scorer関数のシグネチャに
outputパラメータを含めてください。
を使用した列名のマッピングcolumn_map
時々、scoreメソッドの引数名がデータセットの列名と一致しないことがあります。これはcolumn_mapを使用して修正できます。クラスベースのScorerを使用している場合は、Scorerクラスを初期化するときにcolumn_map属性に辞書を渡します。この辞書はScorerメソッドの引数名をデータセットの列名にマッピングします。順序は:scoreです。{scorer_keyword_argument: dataset_column_name}。Example:textメソッドのscore引数はnews_articleデータセット列からデータを受け取ります。Notes:- 列をマッピングするもう一つの同等のオプションは、
Scorerをサブクラス化し、scoreメソッドをオーバーロードして列を明示的にマッピングすることです。
Scorerの最終要約
- Python
- TypeScript
評価中、Scorerはデータセットの各行に対して計算されます。評価の最終スコアを提供するために、出力の戻り値の型に応じて
auto_summarizeを提供します。- 数値列の平均が計算されます
- ブール列のカウントと割合
- その他の列タイプは無視されます
summarizeメソッドをScorerクラスでオーバーライドして、最終スコアを計算する独自の方法を提供できます。summarize関数は以下を期待します:- 単一のパラメータ
score_rows:これは辞書のリストで、各辞書にはデータセットの単一行に対してscoreメソッドから返されたスコアが含まれています。 - 要約されたスコアを含む辞書を返す必要があります。
この例では、デフォルトのauto_summarizeはTrueのカウントと割合を返していたでしょう。
詳細を知りたい場合は、CorrectnessLLMJudgeの実装をチェックしてください。コールにスコアラーを適用する
Weave opsにスコアラーを適用するには、.call()メソッドを使用する必要があります。これにより、操作の結果とそのトラッキング情報の両方にアクセスできます。これにより、スコアラーの結果をWeaveのデータベース内の特定のコールに関連付けることができます。
メソッドの使用方法の詳細については、.call()ガイドのCalling Opsを参照してください。
- Python
- TypeScript
基本的な例を以下に示します:同じコールに複数のスコアラーを適用することもできます:Notes:
- スコアラーの結果は自動的にWeaveのデータベースに保存されます
- スコアラーはメイン操作の完了後に非同期で実行されます
- UIでスコアラーの結果を表示したり、APIを通じてクエリを実行したりできます
使用preprocess_model_input
評価中にモデルに到達する前にデータセットの例を変更するには、preprocess_model_inputパラメータを使用できます。
使用情報と例については、評価前にデータセット行をフォーマットするためのpreprocess_model_inputの使用を参照してください。
スコア分析
このセクションでは、単一のコール、複数のコール、および特定のスコアラーによってスコアリングされたすべてのコールのスコアを分析する方法を示します。単一のコールのスコアを分析する
単一コールAPI
単一のコールのスコアを取得するには、get_callメソッドを使用できます。
単一コールUI
個々のコールのスコアは、コール詳細ページの「Scores」タブに表示されます。
複数のコールのスコアを分析する
複数コールAPI
複数のコールのスコアを取得するには、get_callsメソッドを使用できます。
複数コールUI
複数のコールのスコアは、トレーステーブルの「Scores」列に表示されます。
特定のスコアラーによってスコアリングされたすべてのコールを分析する
スコアラー別のすべてのコールAPI
特定のスコアラーによってスコアリングされたすべてのコールを取得するには、get_callsメソッドを使用できます。
スコアラー別のすべてのコールUI
最後に、スコアラーによってスコアリングされたすべてのコールを表示したい場合は、UIのScorersタブに移動し、「Programmatic Scorer」タブを選択します。スコアラーをクリックしてスコアラー詳細ページを開きます。
次に、View TracesボタンをScoresの下でクリックして、スコアラーによってスコアリングされたすべてのコールを表示します。
これはデフォルトで選択されたバージョンのスコアラーになります。バージョンフィルターを削除して、スコアラーの任意のバージョンによってスコアリングされたすべてのコールを表示することができます。
