Microsoft.Extensions.AI.Evaluation Libraries

Biblioteki Microsoft.Extensions.AI.Evaluation upraszczają proces oceny jakości i bezpieczeństwa odpowiedzi generowanych przez modele sztucznej inteligencji w inteligentnych aplikacjach .NET. Różne metryki jakości mierzą aspekty, takie jak istotność, prawdziwość, spójność i kompletność odpowiedzi. Metryki bezpieczeństwa mierzą aspekty takie jak nienawiść i niesprawiedliwość, przemoc i treści seksualne. Oceny mają kluczowe znaczenie w testowaniu, ponieważ pomagają zapewnić, że model sztucznej inteligencji działa zgodnie z oczekiwaniami i zapewnia niezawodne i dokładne wyniki.

Biblioteki ewaluacyjne oparte na abstrakcji Microsoft.Extensions.AI składają się z następujących pakietów NuGet:

Testowanie integracji

Biblioteki są bezproblemowo integrowane z istniejącymi aplikacjami .NET, umożliwiając korzystanie z istniejącej infrastruktury testowania i znanej składni w celu oceny inteligentnych aplikacji. Możesz użyć dowolnej platformy testowej (na przykład MSTest, xUnit lub NUnit) i przepływu pracy testów (na przykład Eksploratora testów, dotnet test lub pipeline ciągłej integracji/ciągłego wdrażania). Biblioteka udostępnia również łatwe sposoby wykonywania ocen online aplikacji przez publikowanie wyników oceny na panelach telemetrii i monitorowania.

Kompleksowe metryki oceny

Biblioteki ewaluacyjne zostały utworzone we współpracy z badaczami nauki o danych z Microsoft i GitHub i zostały przetestowane na popularnych środowiskach Microsoft Copilot. W poniższych sekcjach przedstawiono wbudowanych ewaluatorów jakości, NLP i bezpieczeństwa oraz metryki, które mierzą.

Aby dodać własne oceny, zaimplementuj IEvaluator interfejs.

Ewaluatorzy jakości

Ewaluatorzy jakości mierzą jakość odpowiedzi. Do przeprowadzenia oceny używają modułu LLM.

Typ ewaluatora Wskaźnik Description
RelevanceEvaluator Relevance Ocenia, jak istotna jest odpowiedź na zapytanie
CompletenessEvaluator Completeness Ocenia, jak kompleksowa i dokładna jest odpowiedź
RetrievalEvaluator Retrieval Ocenia wydajność pobierania informacji w celu uzyskania dodatkowego kontekstu
FluencyEvaluator Fluency Ocenia dokładność gramatyczną, zakres słownictwa, złożoność zdania i ogólną czytelność
CoherenceEvaluator Coherence Ocenia logiczną i uporządkowaną prezentację pomysłów
EquivalenceEvaluator Equivalence Ocenia podobieństwo między wygenerowanym tekstem a jego rzeczywistą wartością w odniesieniu do zapytania.
GroundednessEvaluator Groundedness Ocenia, jak dobrze wygenerowana odpowiedź jest zgodna z danym kontekstem
RelevanceTruthAndCompletenessEvaluator Relevance (RTC), Truth (RTC) i Completeness (RTC) Ocenia, jak istotne, prawdziwe i kompletne odpowiedzi są
IntentResolutionEvaluator Intent Resolution Ocenia skuteczność systemu sztucznej inteligencji w identyfikowaniu i rozpoznawaniu intencji użytkownika (skoncentrowanej na agencie)
TaskAdherenceEvaluator Task Adherence Ocenia skuteczność systemu sztucznej inteligencji przy przestrzeganiu zadania przydzielonego do niego (skoncentrowanego na agencie)
ToolCallAccuracyEvaluator Tool Call Accuracy Ocenia skuteczność systemu sztucznej inteligencji przy użyciu dostarczonych do niego narzędzi (skoncentrowanych na agencie)

† Ten ewaluator jest oznaczony jako eksperymentalny.

Ewaluatorzy NLP

Ewaluatorzy NLP oceniają jakość odpowiedzi LLM, porównując ją z odpowiedzią referencyjną przy użyciu technik przetwarzania języka naturalnego (NLP). Ci ewaluatorzy nie są oparci na LLM ani na sztucznej inteligencji; zamiast tego używają starszych technik NLP do porównywania tekstów.

Typ ewaluatora Wskaźnik Description
BLEUEvaluator BLEU Ocenia odpowiedź, porównując ją z co najmniej jedną odpowiedzią referencyjną przy użyciu algorytmu oceny dwujęzycznej (BLEU). Ten algorytm jest często używany do oceny jakości zadań tłumaczenia maszynowego lub generowania tekstu.
GLEUEvaluator GLEU Mierzy podobieństwo między wygenerowaną odpowiedzią i co najmniej jedną odpowiedzią referencyjną przy użyciu algorytmu Google BLEU (GLEU), wariant algorytmu BLEU zoptymalizowanego pod kątem oceny na poziomie zdania.
F1Evaluator F1 Ocenia odpowiedź, porównując ją z odpowiedzią referencyjną przy użyciu algorytmu oceniania F1 (stosunek liczby wyrazów udostępnionych między wygenerowaną odpowiedzią a odpowiedzią referencyjną).

Ewaluatorzy bezpieczeństwa

Ewaluatorzy bezpieczeństwa sprawdzają obecność szkodliwej, niewłaściwej lub niebezpiecznej zawartości w odpowiedzi. Polegają one na Usłudze Oceny w Foundry, która korzysta z modelu dostrojonego do przeprowadzania ocen.

Typ ewaluatora Wskaźnik Description
GroundednessProEvaluator Groundedness Pro Używa dostrojonego modelu hostowanego w usłudze Oceny w systemie Foundry, aby ocenić, jak dobrze wygenerowana odpowiedź jest zgodna z danym kontekstem.
ProtectedMaterialEvaluator Protected Material Ocenia odpowiedź na obecność materiału chronionego
UngroundedAttributesEvaluator Ungrounded Attributes Ocena odpowiedzi pod kątem obecności treści wskazujących na bezpodstawne wnioskowanie dotyczące atrybutów ludzkich
HateAndUnfairnessEvaluator Hate And Unfairness Ocenia odpowiedź na obecność treści, które są nienawistne lub niesprawiedliwe
SelfHarmEvaluator Self Harm Ocenia odpowiedź pod kątem obecności treści, które wskazują na samookaleczanie
ViolenceEvaluator Violence Ocenia odpowiedź na obecność brutalnej zawartości
SexualEvaluator Sexual Ocenia odpowiedź na obecność treści seksualnych
CodeVulnerabilityEvaluator Code Vulnerability Ocenia odpowiedź na obecność kodu podatnego na zagrożenia
IndirectAttackEvaluator Indirect Attack Ocenia odpowiedź na obecność ataków pośrednich, takich jak manipulowanie zawartością, włamanie i zbieranie informacji

† Ponadto ContentHarmEvaluator zapewnia ocenę jednorazową dla czterech metryk obsługiwanych przez HateAndUnfairnessEvaluator, SelfHarmEvaluator, ViolenceEvaluator i SexualEvaluator.

Buforowane odpowiedzi

Biblioteka używa funkcji buforowania odpowiedzi do przechowywania odpowiedzi z modelu sztucznej inteligencji w pamięci podręcznej. W kolejnych przebiegach, jeśli parametry żądania (polecenie i model) pozostają niezmienione, korzysta z odpowiedzi z pamięci podręcznej w celu szybszego wykonywania i obniżenia kosztów.

Raportowanie

Biblioteka obsługuje przechowywanie wyników oceny i generowanie raportów. Na poniższej ilustracji przedstawiono przykładowy raport w potoku procesów Azure DevOps.

Ochwyt ekranu przedstawiający raport oceny sztucznej inteligencji w Azure DevOps pipeline.

Narzędzie dotnet aieval, które jest dostarczane w ramach pakietu Microsoft.Extensions.AI.Evaluation.Console, zawiera funkcje generowania raportów i zarządzania przechowywanymi danymi oceny i buforowanych odpowiedzi. Aby uzyskać więcej informacji, zobacz Generowanie raportu.

Konfiguracja

Biblioteki są elastyczne i możesz wybrać potrzebne składniki. Na przykład wyłącz buforowanie odpowiedzi lub dostosuj raportowanie tak, aby działało najlepiej w danym środowisku. Możesz również dostosować i skonfigurować oceny, na przykład dodając dostosowane metryki i opcje raportowania.

Samples

Aby zapoznać się z bardziej kompleksowym przewodnikiem po funkcjach i interfejsach API w bibliotekach Microsoft.Extensions.AI.Evaluation, zobacz przykłady użycia API (repozytorium dotnet/ai-samples). Te przykłady to kolekcja testów jednostkowych. Każdy test jednostkowy prezentuje określoną koncepcję lub interfejs API i opiera się na pojęciach i interfejsach API zaprezentowanych w poprzednich testach jednostkowych.

Zobacz także