Les bibliothèques Microsoft.Extensions.AI.Evaluation

Les bibliothèques Microsoft.Extensions.AI.Evaluation simplifient le processus d'évaluation de la qualité et de la sécurité des réponses générées par des modèles d'IA dans les applications intelligentes .NET. Diverses mesures de qualité mesurent des aspects tels que la pertinence, la vérité, la cohérence et l’exhaustivité des réponses. Les mesures de sécurité mesurent les aspects tels que la haine et l’injustice, la violence et le contenu sexuel. Les évaluations sont cruciales dans les tests, car elles permettent de s’assurer que le modèle IA s’exécute comme prévu et fournit des résultats fiables et précis.

Les bibliothèques d’évaluation, qui s’appuient sur les abstractions Microsoft.Extensions.AI, sont composées des packages NuGet suivants :

Intégration de test

Les bibliothèques s’intègrent en douceur aux applications .NET existantes, ce qui vous permet d’utiliser l’infrastructure de test existante et la syntaxe familière pour évaluer les applications intelligentes. Vous pouvez utiliser n’importe quelle infrastructure de test (par exemple, MSTest, xUnit ou NUnit) et tester le flux de travail (par exemple, l’Explorateur de tests, le test dotnet ou un pipeline CI/CD). La bibliothèque offre également des moyens simples d’effectuer des évaluations en ligne de votre application en publiant des scores d’évaluation dans les tableaux de bord de télémétrie et de surveillance.

Métriques d’évaluation complètes

Les bibliothèques d’évaluation ont été créées en collaboration avec des chercheurs en science des données de Microsoft et de GitHub, et ont été testées sur des expériences populaires Microsoft Copilot. Les sections suivantes montrent la qualité intégrée, les NLP et les évaluateurs de sécurité et les mesures qu’ils mesurent.

Pour ajouter vos propres évaluations, implémentez l’interface IEvaluator .

Évaluateurs de qualité

Les évaluateurs de qualité mesurent la qualité de la réponse. Ils utilisent un LLM pour effectuer l’évaluation.

Type d’évaluateur Unité de mesure Descriptif
RelevanceEvaluator Relevance Évalue la pertinence d’une réponse à une requête
CompletenessEvaluator Completeness Évalue l'exhaustivité et la précision d'une réponse.
RetrievalEvaluator Retrieval Évalue les performances dans la récupération d’informations pour un contexte supplémentaire
FluencyEvaluator Fluency Évalue la précision grammaticale, la plage de vocabulaire, la complexité des phrases et la lisibilité globale
CoherenceEvaluator Coherence Évalue la présentation logique et ordonnée des idées
EquivalenceEvaluator Equivalence Évalue la similarité entre le texte généré et sa vérité de base par rapport à une requête
GroundednessEvaluator Groundedness Évalue la façon dont une réponse générée s’aligne sur le contexte donné
RelevanceTruthAndCompletenessEvaluator Relevance (RTC), Truth (RTC) et Completeness (RTC) Évalue la pertinence, la véracité et la complétude d’une réponse
IntentResolutionEvaluator Intent Resolution Évalue l’efficacité d’un système IA lors de l’identification et de la résolution de l’intention de l’utilisateur (axée sur l’agent)
TaskAdherenceEvaluator Task Adherence Évalue l’efficacité d’un système IA en respectant la tâche qui lui est affectée (axée sur l’agent)
ToolCallAccuracyEvaluator Tool Call Accuracy Évalue l’efficacité d’un système IA à l’aide des outils fournis à celui-ci (axé sur l’agent)

† Cet évaluateur est marqué comme expérimental.

évaluateurs NLP

Les évaluateurs NLP évaluent la qualité d'une réponse LLM en la comparant à une réponse de référence à l'aide de techniques de traitement automatique du langage naturel. Ces évaluateurs ne sont pas basés sur LLM ou sur l’IA ; Au lieu de cela, ils utilisent des techniques de NLP plus anciennes pour effectuer des comparaisons de texte.

Type d’évaluateur Unité de mesure Descriptif
BLEUEvaluator BLEU Évalue une réponse en la comparant à une ou plusieurs réponses de référence à l’aide de l’algorithme d’évaluation bilingue (BLEU). Cet algorithme est couramment utilisé pour évaluer la qualité des tâches de traduction automatique ou de génération de texte.
GLEUEvaluator GLEU Mesure la similarité entre la réponse générée et une ou plusieurs réponses de référence à l’aide de l’algorithme Google BLEU (GLEU), une variante de l’algorithme BLEU optimisé pour l’évaluation au niveau de la phrase.
F1Evaluator F1 Évalue une réponse en la comparant à une réponse de référence à l’aide de l’algorithme de scoring F1 (rapport du nombre de mots partagés entre la réponse générée et la réponse de référence).

Évaluateurs de sécurité

Les évaluateurs de sécurité vérifient la présence de contenu dangereux, inapproprié ou dangereux dans une réponse. Ils s’appuient sur le service d’évaluation Foundry, qui utilise un modèle affiné pour effectuer des évaluations.

Type d’évaluateur Unité de mesure Descriptif
GroundednessProEvaluator Groundedness Pro Utilise un modèle affiné hébergé derrière le service d’évaluation Foundry pour évaluer la façon dont une réponse générée s’aligne sur le contexte donné
ProtectedMaterialEvaluator Protected Material Évalue la réponse pour la présence de matériel protégé
UngroundedAttributesEvaluator Ungrounded Attributes Évalue une réponse pour déterminer la présence de contenu qui indique l'inférence non fondée des attributs humains.
HateAndUnfairnessEvaluator Hate And Unfairness Évalue une réponse pour la présence de contenu haineux ou injuste
SelfHarmEvaluator Self Harm Évalue une réponse pour la présence de contenu indiquant l’automutilation.
ViolenceEvaluator Violence Évalue une réponse pour la présence de contenu violent
SexualEvaluator Sexual Évalue une réponse pour la présence de contenu sexuel
CodeVulnerabilityEvaluator Code Vulnerability Évalue une réponse pour la présence de code vulnérable
IndirectAttackEvaluator Indirect Attack Évalue une réponse pour la présence d’attaques indirectes, telles que le contenu manipulé, l’intrusion et la collecte d’informations

† En outre, ContentHarmEvaluator fournit une évaluation en une seule fois pour les quatre métriques prises en charge par HateAndUnfairnessEvaluator, SelfHarmEvaluator, ViolenceEvaluator et SexualEvaluator.

Réponses mises en cache

La bibliothèque utilise la fonctionnalité de mise en cache des réponses pour conserver les réponses du modèle IA dans un cache. Dans les exécutions suivantes, si les paramètres de requête (invite et modèle) sont inchangés, il fournit des réponses du cache pour accélérer l’exécution et réduire les coûts.

Rapports

La bibliothèque prend en charge le stockage des résultats d’évaluation et la génération de rapports. L’image suivante montre un exemple de rapport dans un pipeline Azure DevOps :

Screenshot d’un rapport d’évaluation IA dans un pipeline Azure DevOps.

L’outil dotnet aieval, fourni dans le cadre du package Microsoft.Extensions.AI.Evaluation.Console, inclut des fonctionnalités permettant de générer des rapports et de gérer les données d’évaluation stockées et les réponses mises en cache. Pour plus d’informations, consultez Générer un rapport.

Paramétrage

Les bibliothèques sont flexibles et vous pouvez choisir les composants dont vous avez besoin. Par exemple, désactivez la mise en cache des réponses ou personnalisez les rapports pour qu’ils fonctionnent le mieux dans votre environnement. Vous pouvez également personnaliser et configurer vos évaluations, par exemple en ajoutant des métriques et des options de création de rapports personnalisées.

Exemples d’utilisation

Pour obtenir des exemples d’utilisation, consultez les didacticiels suivants :

Voir aussi