ベンチマークのスコアリング - Entity Enricher ドキュメント

ベンチマークのスコアリング

スコアリングは、ベンチマークを「JSONを目視で確認する」ものから客観的な数値へと変えます。各モデルの結果はゴールドリファレンス(期待される出力)に対して評価され、完全性、正確性、そして並べ替え可能な総合品質スコアを算出します。

ゴールドリファレンス

スコアリングには、スコアリングの対象となるものが必要です。各シナリオはリファレンス出力、つまり固定された1つのエンティティに対する正解を保持します。強力なモデルで生成(Web検索+信頼できる情報源のドキュメント)したり、既知の正しい結果を貼り付けたりして作成し、手作業で編集してください — そして信頼できると判断したら検証済みとしてマークします。検証済みのリファレンスはシナリオをベンチマークするために必須であり、常に評価対象が存在するようにします。後でリファレンスを編集した場合、またはシナリオのスコアリング設定を変更した場合、既存のスコアは再スコアリングするまで古いとしてフラグが立てられます。

値の比較方法

中心的な問題:2つの正しい答えでも、書き方が異なる場合があります。俳優を「Robert Downey Jr.」ではなく「R. Downey Jr.」と表記するモデルが間違っているわけではありません。そのため、各フィールドは段階的なラダーで比較されます — 最も安価で確実なものを最初に、必要な場合にのみエスカレーションします:

1
厳密&正規化

同一の値は一致します。大文字・小文字、前後の空白、数値の精度のみが異なる値も一致します(「Acme」=「ACME」、4.0=4)。無料かつ完全に決定的です。

2
埋め込み類似度

テキストの場合、候補と参照は埋め込みに変換され、コサイン類似度で比較されます。しきい値を超えると同一とみなされるため、「R. Downey Jr.」と「Robert Downey Jr.」のような正当な表記ゆれはエラーではなく一致となります。日付は例外で、類似度ではなく暦上の値として比較されるため、近いけれど誤った日付(「1972-03-14」と「1972-03-24」)は、見かけ上高いコサイン値ではなく明確な不一致として扱われます。ブール値も同様に、完全一致か不一致かのいずれかです。

3
LLMジャッジ

類似度では判定しきれない値(要約や説明などのすべての自由記述フィールド、および完全一致しないすべての数値)は判定モデルに送られ、回答が参照の意味をどれだけ捉えているかを0〜100で採点します。言い回しが異なっていても、あるいはより簡潔でも正しい回答には報酬を与え、フィールドが許容する場合には数値に部分点を与えます(分子量273.37 対 273.35、半減期12 対 15)。一方で、厳密さが重要な場合には不正解とします(リリース年2020 対 2023)。判定モデルがない場合、自由記述は連続的な類似度スコアにフォールバックし、完全一致しない数値は単に不一致とみなされます。

厳密度の設定は埋め込みしきい値を制御します。値が高いほど、異なる書き方の2つの値が同一とみなされるには、より高い類似度が必要になります。厳密度、オプションのジャッジモデル、埋め込みモデルはいずれもシナリオ側で設定され、採点のたびに選ぶわけではありません。そのため、すべてのモデルが同一に採点され、スコアの比較可能性が保たれます。

配列(項目リスト)のスコアリング

リスト(映画のキャスト、薬の副作用など)は、モデルによって最も差が出る部分です。小さなモデルが4人の俳優しか見つけられないところで、強力なモデルは15人を見つけることがあります。順序は問題ではなく、正しい項目をより多く見つけたほうが優れています。そのため、配列は位置ごとではなく集合として採点されます:

結果の行を展開すると、どの項目が一致、欠落、またはハルシネーションされたかを正確に確認できます。

スコアの読み方

単一の数値では隠れてしまう情報が多すぎるため、すべての結果にはサブスコアが付随します:

展開可能な行には、フィールドごとの内訳が表示されます。候補と参照の比較、どの段階(ラング)で判定されたか、そして該当する場合は類似度が示されます。

scenarioが同じmodelを複数回(繰り返し)実行する場合、各実行は個別に採点され、行には平均品質と一貫性の幅(各実行の最低〜最高)が表示されます。これにより、平均的には正しくても挙動が不安定なmodelを簡単に見分けられます。表示される出力は品質で中央値となる実行です。

コストと実行内容

スコアリングは、すでに保存された結果に対する別個のパスであり、再エンリッチメントは行われないため、テスト対象のモデルに再び課金されることはありません。値を比較するためにテキストを埋め込み(シナリオにジャッジがある場合はそれも実行)、これにより使用量に応じてクレジットが消費されます。これは各実行の最後に自動的に行われ、再スコアリングのたびに再度実行されます。組織に埋め込みモデルが設定されていない場合(かつシナリオでオーバーライドが設定されていない場合)、スコアリングは実行されますが完全一致のみにフォールバックし(別の綴りは不一致として扱われます)、その旨が表示されます。

見つかる場所

Model Management → Benchmarksで、シナリオエディターで参照を設定・検証します(判定モデル、埋め込みモデル、厳格さもそこで選択します)。それ以降、すべての実行がその成功結果を自動採点します。ソート可能なQuality列が追加の手順なしで埋まっていきます。参照やスコアリング設定を編集した後に再採点するには、Re-score results(ヘッダーボタンまたは···メニュー)を使用します。