Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
- 📦 Microsoft. Extensions.AI.Evaluation : définit les abstractions et types de base pour la prise en charge de l’évaluation.
- 📦 Microsoft. Extensions.AI.Evaluation.NLP : contient des evaluators qui évaluent la similarité du texte de réponse d'un LLM à une ou plusieurs réponses de référence à l'aide des métriques de traitement du langage naturel (NLP). Ces évaluateurs ne sont pas basés sur LLM ou sur l’IA ; ils utilisent des techniques de NLP traditionnelles telles que la tokenisation de texte et l’analyse n-grammes pour évaluer la similarité du texte.
- 📦 Microsoft. Extensions.AI.Evaluation.Quality : contient des évaluateurs qui évaluent la qualité des réponses LLM dans une application en fonction des métriques telles que la pertinence et l’exhaustivité. Ces évaluateurs utilisent directement le LLM pour effectuer des évaluations.
-
📦 Microsoft. Extensions.AI.Evaluation.Safety : contient des évaluateurs, tels que le
ProtectedMaterialEvaluatoretContentHarmEvaluator, qui utilisent le service Microsoft Foundry d’évaluation pour effectuer des évaluations. - 📦 Microsoft. Extensions.AI.Evaluation.Reporting : contient la prise en charge de la mise en cache des réponses LLM, du stockage des résultats des évaluations et de la génération de rapports à partir de ces données.
- 📦 Microsoft. Extensions.AI.Evaluation.Reporting. Azure : prend en charge la bibliothèque de rapports avec une implémentation pour la mise en cache des réponses LLM et le stockage des résultats d’évaluation dans un conteneur stockage Azure.
- 📦 Microsoft. Extensions.AI.Evaluation.Console : outil en ligne de commande permettant de générer des rapports et de gérer les données d’évaluation.
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 :
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 :
- Démarrage rapide : Évaluer la qualité de la réponse
- Tutoriel : Évaluer la qualité de la réponse avec la mise en cache et la création de rapports
- Tutoriel : Évaluer la sécurité des réponses avec la mise en cache et la création de rapports