Microsoft.Extensions.AI.Evaluation-bibliotek

Microsoft. Extensions.AI.Evaluation-bibliotek förenklar processen med att utvärdera kvaliteten och säkerheten för svar som genereras av AI-modeller i .NET intelligenta appar. Olika kvalitetsmått mäter aspekter som relevans, sanningsenlighet, konsekvens och fullständighet i svaren. Säkerhetsmått mäter aspekter som hat och orättvisa, våld och sexuellt innehåll. Utvärderingar är avgörande vid testning, eftersom de hjälper till att säkerställa att AI-modellen fungerar som förväntat och ger tillförlitliga och korrekta resultat.

Utvärderingsbiblioteken, som bygger på abstraktionerna Microsoft.Extensions.AI, består av följande NuGet-paket:

Test-integration

Biblioteken integreras smidigt med befintliga .NET appar, så att du kan använda befintlig testinfrastruktur och välbekant syntax för att utvärdera intelligenta appar. Du kan använda valfritt testramverk (till exempel MSTest, xUnit eller NUnit) och testa arbetsflödet (till exempel Test Explorer, dotnet-test eller en CI/CD-pipeline). Biblioteket erbjuder också enkla sätt att utvärdera online av din applikation genom att publicera utvärderingspoäng i telemetri- och övervakningspaneler.

Omfattande utvärderingsmått

Utvärderingsbiblioteken byggdes i samarbete med datavetenskapsforskare från Microsoft och GitHub och testades på populära Microsoft Copilot upplevelser. I följande avsnitt visas de inbyggda kvalitets-, NLP- och säkerhetsutvärderingarna och de mått som de mäter.

Om du vill lägga till egna utvärderingar implementerar du IEvaluator gränssnittet.

Kvalitetsutvärderingar

Kvalitetsutvärderingar mäter svarskvalitet. De använder en LLM för att utföra utvärderingen.

Typ av utvärderare Mätvärde Description
RelevanceEvaluator Relevance Utvärderar hur relevant ett svar är för en fråga
CompletenessEvaluator Completeness Utvärderar hur omfattande och korrekt ett svar är
RetrievalEvaluator Retrieval Utvärderar prestanda vid hämtning av information för ytterligare kontext
FluencyEvaluator Fluency Utvärderar grammatisk noggrannhet, vokabulärintervall, meningskomplexitet och övergripande läsbarhet
CoherenceEvaluator Coherence Utvärderar den logiska och ordnade presentationen av idéer
EquivalenceEvaluator Equivalence Utvärderar likheten mellan den genererade texten och dess grundsanning med avseende på en fråga
GroundednessEvaluator Groundedness Utvärderar hur väl ett genererat svar överensstämmer med den angivna kontexten
RelevanceTruthAndCompletenessEvaluator Relevance (RTC), Truth (RTC) och Completeness (RTC) Utvärderar hur relevant, sanningsenlig och fullständig ett svar är
IntentResolutionEvaluator Intent Resolution Utvärderar ai-systemets effektivitet när det gäller att identifiera och lösa användarinsikter (agentfokuserad)
TaskAdherenceEvaluator Task Adherence Utvärderar ai-systemets effektivitet genom att följa den uppgift som tilldelats det (agentfokuserat)
ToolCallAccuracyEvaluator Tool Call Accuracy Utvärderar ai-systemets effektivitet med hjälp av de verktyg som tillhandahålls till det (agentfokuserat)

† Den här utvärderaren är markerad som experimentell.

NLP-utvärderare

NLP-utvärderare utvärderar kvaliteten på ett LLM-svar genom att jämföra det med ett referenssvar med hjälp av NLP-tekniker (natural language processing). Dessa utvärderare är inte LLM- eller AI-baserade. I stället använder de äldre NLP-tekniker för att utföra textjämförelser.

Typ av utvärderare Mätvärde Description
BLEUEvaluator BLEU Utvärderar ett svar genom att jämföra det med ett eller flera referenssvar med hjälp av bleu-algoritmen (tvåspråkig utvärderingsunderstudy). Den här algoritmen används ofta för att utvärdera kvaliteten på maskinöversättnings- eller textgenereringsuppgifter.
GLEUEvaluator GLEU Mäter likheten mellan det genererade svaret och ett eller flera referenssvar med hjälp av algoritmen Google BLEU (GLEU), en variant av BLEU-algoritmen som är optimerad för utvärdering på meningsnivå.
F1Evaluator F1 Utvärderar ett svar genom att jämföra det med ett referenssvar med hjälp av F1-bedömningsalgoritmen (förhållandet mellan antalet delade ord mellan det genererade svaret och referenssvaret).

Säkerhetsutvärderingar

Säkerhetsutvärderingar kontrollerar om det finns skadligt, olämpligt eller osäkert innehåll i ett svar. De förlitar sig på tjänsten Foundry Evaluation, som använder en modell som är finjusterad för att utföra utvärderingar.

Typ av utvärderare Mätvärde Description
GroundednessProEvaluator Groundedness Pro Använder en finjusterad modell som finns bakom Foundry Evaluation-tjänsten för att utvärdera hur väl ett genererat svar överensstämmer med den angivna kontexten
ProtectedMaterialEvaluator Protected Material Utvärderar svar för förekomsten av skyddat material
UngroundedAttributesEvaluator Ungrounded Attributes Utvärderar ett svar för förekomsten av innehåll som indikerar ogrundad slutsatsdragning av mänskliga attribut
HateAndUnfairnessEvaluator Hate And Unfairness Utvärderar ett svar för förekomsten av innehåll som är hatiskt eller orättvist
SelfHarmEvaluator Self Harm Utvärderar ett svar för förekomsten av innehåll som indikerar självskada
ViolenceEvaluator Violence Utvärderar ett svar för förekomsten av våldsamt innehåll
SexualEvaluator Sexual Utvärderar ett svar för förekomsten av sexuellt innehåll
CodeVulnerabilityEvaluator Code Vulnerability Utvärderar ett svar för förekomsten av sårbar kod
IndirectAttackEvaluator Indirect Attack Utvärderar ett svar för förekomsten av indirekta attacker, till exempel manipulerat innehåll, intrång och informationsinsamling

† Dessutom tillhandahåller ContentHarmEvaluator engångsutvärdering för de fyra mått som stöds av HateAndUnfairnessEvaluator, SelfHarmEvaluator, ViolenceEvaluator, och SexualEvaluator.

Cachelagrade svar

Biblioteket använder funktionen för cachelagring av svar för att bevara svar från AI-modellen i en cache. I efterföljande körningar, om parametrarna för begäran (fråga och modell) är oförändrade, hanterar den svar från cachen för snabbare körning och lägre kostnad.

Rapportering

Biblioteket stöder lagring av utvärderingsresultat och generering av rapporter. Följande bild visar en exempelrapport i en Azure DevOps pipeline:

Skärmbild av en AI-utvärderingsrapport i en Azure DevOps pipeline.

Verktyget dotnet aieval, som levereras som en del av paketet Microsoft.Extensions.AI.Evaluation.Console, innehåller funktioner för att generera rapporter och hantera lagrade utvärderingsdata och cachelagrade svar. Mer information finns i Generera en rapport.

Konfiguration

Biblioteken är flexibla och du kan välja de komponenter du behöver. Du kan till exempel inaktivera cachelagring av svar eller skräddarsy rapportering så att den fungerar bäst i din miljö. Du kan också anpassa och konfigurera dina utvärderingar, till exempel genom att lägga till anpassade mått och rapporteringsalternativ.

Användningsexempel

Exempel på användning finns i följande handledningar:

Se även