Context precision scorer
createContextPrecisionScorer() 関数は、期待される出力の生成に対して、取得したコンテキストの各部分がどの程度関連し、適切な位置にあるかを評価するスコアラーを作成します。**Mean Average Precision(MAP)**を使用し、関連するコンテキストをシーケンスの早い位置に配置するシステムを高く評価します。
特に次のユースケースに役立ちます。
RAG システムの評価RAG システムの評価への直接リンク
次のような、RAG パイプラインで取得したコンテキストの評価に適しています。
- コンテキストの順序がモデルの性能に影響する
- 基本的な関連性だけでなく、検索品質を測定する必要がある
- 後方にある関連コンテキストより、前方にある関連コンテキストの価値が高い
コンテキストウィンドウの最適化コンテキストウィンドウの最適化への直接リンク
次の条件でコンテキスト選択を最適化する場合に使用します。
- 制限されたコンテキストウィンドウ
- トークン予算の制約
- 複数ステップの推論タスク
パラメーターパラメーターへの直接リンク
model:
MastraModelConfig
コンテキストの関連性を評価するために使用する言語モデル
options:
ContextPrecisionMetricOptions
スコアラーの設定オプション
context または contextExtractor のいずれかを指定する必要があります。両方を指定した場合は、contextExtractor が優先されます。
.run() の戻り値run-returnsへの直接リンク
score:
number
0から scale までの Mean Average Precision スコア(デフォルト:0〜1)
reason:
string
コンテキスト精度の評価について、人が読める形式で示した説明
スコアリングの詳細スコアリングの詳細への直接リンク
Mean Average Precision(MAP)Mean Average Precision(MAP)への直接リンク
Context Precision は、Mean Average Precision を使用して関連性と配置の両方を評価します。
- コンテキストの評価:期待される出力の生成に対し、各コンテキスト部分を「関連あり」または「関連なし」に分類します
- Precision の計算:位置
iにある関連コンテキストごとに、precision =relevant_items_so_far / (i + 1)として計算します - Average Precision:すべての precision 値を合計し、関連項目の総数で割ります
- 最終スコア:倍率を掛け、小数点以下2桁に丸めます
スコアリング式スコアリング式への直接リンク
MAP = (Σ Precision@k) / R
Where:
- Precision@k = (relevant items in positions 1...k) / k
- R = total number of relevant items
- Only calculated at positions where relevant items appear
スコアの解釈スコアの解釈への直接リンク
- 0.9〜1.0:非常に高い精度 — すべての関連コンテキストがシーケンスの前方にある
- 0.7〜0.8:高い精度 — ほとんどの関連コンテキストが適切に配置されている
- 0.4〜0.6:中程度の精度 — 関連コンテキストと無関係なコンテキストが混在している
- 0.1〜0.3:低い精度 — 関連コンテキストが少ないか、配置が不適切
- 0.0:関連コンテキストが見つからない
理由の分析理由の分析への直接リンク
reason フィールドでは、次の内容を説明します。
- どのコンテキスト部分が関連あり/なしと判断されたか
- 配置が MAP の計算にどのように影響したか
- 評価で使用された具体的な関連性基準
最適化のヒント最適化のヒントへの直接リンク
結果を次の用途に使用できます。
- 検索の改善:ランキング前に無関係なコンテキストを除外する
- ランキングの最適化:関連コンテキストが前方に現れるようにする
- チャンクサイズの調整:コンテキストの詳細度と関連性の精度のバランスを取る
- Embedding の評価:検索を改善するため、異なる Embedding モデルをテストする
計算例計算例への直接リンク
context:[relevant, irrelevant, relevant, irrelevant]
- 位置0:関連あり → Precision = 1/1 = 1.0
- 位置1:スキップ(関連なし)
- 位置2:関連あり → Precision = 2/3 = 0.67
- 位置3:スキップ(関連なし)
MAP = (1.0 + 0.67) / 2 = 0.835 ≈ 0.83
スコアラーの設定スコアラーの設定への直接リンク
コンテキストの動的抽出コンテキストの動的抽出への直接リンク
const scorer = createContextPrecisionScorer({
model: 'openai/gpt-5.6-sol',
options: {
contextExtractor: (input, output) => {
// Extract context dynamically based on the query
const query = input?.inputMessages?.[0]?.content || ''
// Example: Retrieve from a vector database
const searchResults = vectorDB.search(query, { limit: 10 })
return searchResults.map(result => result.content)
},
scale: 1,
},
})
大規模なコンテキストの評価大規模なコンテキストの評価への直接リンク
const scorer = createContextPrecisionScorer({
model: 'openai/gpt-5.6-sol',
options: {
context: [
// Simulate retrieved documents from vector database
'Document 1: Highly relevant content...',
'Document 2: Somewhat related content...',
'Document 3: Tangentially related...',
'Document 4: Not relevant...',
'Document 5: Highly relevant content...',
// ... up to dozens of context pieces
],
},
})
例例への直接リンク
さまざまなクエリに対する RAG システムのコンテキスト検索精度を評価します。
src/example-context-precision.ts
import { runEvals } from '@mastra/core/evals'
import { createContextPrecisionScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'
const scorer = createContextPrecisionScorer({
model: 'openai/gpt-5.6-sol',
options: {
contextExtractor: (input, output) => {
// Extract context from agent's retrieved documents
return output.metadata?.retrievedContext || []
},
},
})
const result = await runEvals({
data: [
{
input: 'How does photosynthesis work in plants?',
},
{
input: 'What are the mental and physical benefits of exercise?',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
reason: scorerResults[scorer.id].reason,
})
},
})
console.log(result.scores)
runEvals の詳細は、runEvals リファレンスを参照してください。
このスコアラーを Agent に追加する方法については、スコアラーの概要ガイドを参照してください。
Context relevance との比較Context relevance との比較への直接リンク
用途に適したスコアラーを選択してください。
| ユースケース | Context Relevance | Context Precision |
|---|---|---|
| RAG の評価 | 使用状況が重要な場合 | ランキングが重要な場合 |
| コンテキストの品質 | 段階的なレベル | 二値の関連性 |
| 欠落の検出 | ✓ 不足を特定 | ✗ 評価しない |
| 使用状況の追跡 | ✓ 使用率を追跡 | ✗ 考慮しない |
| 位置への感度 | ✗ 位置に依存しない | ✓ 前方への配置を高く評価 |
関連項目関連項目への直接リンク
- Answer Relevancy Scorer:回答が質問に対応しているかを評価します
- Faithfulness Scorer:回答がコンテキストにどの程度根拠を持つかを測定します
- カスタムスコアラー:独自の評価指標を作成します