Scorer de précision du contexte
La fonction createContextPrecisionScorer() crée un scorer qui évalue la pertinence et le positionnement des éléments de contexte récupérés pour générer les sorties attendues. Elle utilise la précision moyenne (Mean Average Precision, MAP) pour favoriser les systèmes qui placent les éléments de contexte pertinents plus tôt dans la séquence.
Elle est particulièrement utile dans les cas suivants :
Évaluation des systèmes RAGLien direct vers Évaluation des systèmes RAG
Idéal pour évaluer le contexte récupéré dans les pipelines RAG où :
- L'ordre du contexte influe sur les performances du modèle
- Vous devez mesurer la qualité de la récupération au-delà de la simple pertinence
- Un contexte pertinent placé tôt a plus de valeur qu'un contexte pertinent placé plus tard
Optimisation de la fenêtre de contexteLien direct vers Optimisation de la fenêtre de contexte
Utilisez ce scorer pour optimiser la sélection du contexte lorsque vous avez :
- Des fenêtres de contexte limitées
- Des contraintes de budget de tokens
- Des tâches de raisonnement en plusieurs étapes
ParamètresLien direct vers Paramètres
model:
options:
Vous devez fournir context ou contextExtractor. Si les deux sont fournis, contextExtractor est prioritaire.
Valeur renvoyée par .run()Lien direct vers run-returns
score:
reason:
Détails du calcul du scoreLien direct vers Détails du calcul du score
Précision moyenne (Mean Average Precision, MAP)Lien direct vers Précision moyenne (Mean Average Precision, MAP)
Le scorer de précision du contexte utilise la précision moyenne pour évaluer à la fois la pertinence et le positionnement :
- Évaluation du contexte : chaque élément de contexte est classé comme pertinent ou non pertinent pour générer la sortie attendue
- Calcul de la précision : pour chaque contexte pertinent à la position
i, précision =relevant_items_so_far / (i + 1) - Précision moyenne : additionnez toutes les valeurs de précision, puis divisez le résultat par le nombre total d'éléments pertinents
- Score final : multipliez le résultat par le facteur d'échelle et arrondissez-le à deux décimales
Formule de calcul du scoreLien direct vers Formule de calcul du score
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
Interprétation du scoreLien direct vers Interprétation du score
- 0.9-1.0 : excellente précision : tous les éléments de contexte pertinents figurent au début de la séquence
- 0.7-0.8 : bonne précision : la plupart des éléments de contexte pertinents sont bien positionnés
- 0.4-0.6 : précision moyenne : les éléments de contexte pertinents sont mêlés aux éléments non pertinents
- 0.1-0.3 : faible précision : le contexte pertinent est rare ou mal positionné
- 0.0 : aucun contexte pertinent trouvé
Analyse de la justificationLien direct vers Analyse de la justification
Le champ reason explique :
- Quels éléments de contexte ont été jugés pertinents ou non pertinents
- Comment leur positionnement a influencé le calcul de la MAP
- Quels critères de pertinence précis ont été utilisés lors de l'évaluation
Pistes d'optimisationLien direct vers Pistes d'optimisation
Utilisez les résultats pour :
- Améliorer la récupération : filtrer le contexte non pertinent avant le classement
- Optimiser le classement : veiller à ce que le contexte pertinent apparaisse tôt
- Ajuster la taille des chunks : trouver un équilibre entre le niveau de détail du contexte et la précision de sa pertinence
- Évaluer les embeddings : tester différents modèles d'embedding afin d'améliorer la récupération
Exemple de calculLien direct vers Exemple de calcul
context : [relevant, irrelevant, relevant, irrelevant]
- Position 0 : pertinent → Précision = 1/1 = 1.0
- Position 1 : ignoré (non pertinent)
- Position 2 : pertinent → Précision = 2/3 = 0.67
- Position 3 : ignoré (non pertinent)
MAP = (1.0 + 0.67) / 2 = 0.835 ≈ 0.83
Configuration du scorerLien direct vers Configuration du scorer
Extraction dynamique du contexteLien direct vers Extraction dynamique du contexte
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,
},
})
Évaluation d'un contexte volumineuxLien direct vers Évaluation d'un contexte volumineux
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
],
},
})
ExempleLien direct vers Exemple
Évaluez la précision de la récupération du contexte d'un système RAG pour différentes requêtes :
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)
Pour en savoir plus sur runEvals, consultez la référence de runEvals.
Pour ajouter ce scorer à un agent, consultez le guide de présentation des scorers.
Comparaison avec la pertinence du contexteLien direct vers Comparaison avec la pertinence du contexte
Choisissez le scorer adapté à vos besoins :
| Cas d'utilisation | Pertinence du contexte | Précision du contexte |
|---|---|---|
| Évaluation RAG | Lorsque l'utilisation compte | Lorsque le classement compte |
| Qualité du contexte | Niveaux nuancés | Pertinence binaire |
| Détection des éléments manquants | ✓ Identifie les lacunes | ✗ Non évaluée |
| Suivi de l'utilisation | ✓ Suit l'utilisation | ✗ Non prise en compte |
| Sensibilité à la position | ✗ Indépendante de la position | ✓ Favorise un placement précoce |
Voir aussiLien direct vers Voir aussi
- Scorer de pertinence des réponses : évalue si les réponses traitent la question
- Scorer de fidélité : mesure l'ancrage des réponses dans le contexte
- Scorers personnalisés : créez vos propres métriques d'évaluation