Condividi tramite


Librerie Microsoft.Extensions.AI.Evaluation

Le librerie Microsoft.Extensions.AI.Evaluation semplificano il processo di valutazione della qualità e dell'accuratezza delle risposte generate dai modelli di intelligenza artificiale nelle app intelligenti .NET. Varie metriche misurano aspetti come pertinenza, veridicità, coerenza e completezza delle risposte. Le valutazioni sono fondamentali per i test, perché consentono di garantire che il modello di intelligenza artificiale venga eseguito come previsto e fornisca risultati affidabili e accurati.

Le librerie di valutazione, basate sulle astrazioni Microsoft.Extensions.AI, sono composte dai pacchetti NuGet seguenti:

Integrazione dei test

Le librerie sono progettate per integrarsi senza problemi con le app .NET esistenti, consentendo di sfruttare le infrastrutture di test esistenti e una sintassi familiare per valutare le app intelligenti. È possibile usare qualsiasi framework di test (ad esempio, MSTest, xUnito NUnit) e il flusso di lavoro di test (ad esempio, Test Explorer, dotnet testo una pipeline CI/CD). La libreria offre anche modi semplici per eseguire valutazioni online dell'applicazione pubblicando i punteggi di valutazione nei dashboard di telemetria e monitoraggio.

Metriche di valutazione complete

Le librerie di valutazione sono state create in collaborazione con i ricercatori di data science di Microsoft e GitHub e sono state testate su esperienze comuni di Microsoft Copilot. Le sezioni seguenti illustrano gli analizzatori di qualità e sicurezza predefiniti e le metriche che misurano.

È anche possibile personalizzare per aggiungere valutazioni personalizzate implementando l'interfaccia IEvaluator .

Analizzatori di qualità

Gli analizzatori di qualità misurano la qualità della risposta. Usano un LLM per eseguire la valutazione.

Tipo di analizzatore Metrico Descrizione
RelevanceEvaluator Relevance Valuta la rilevanza di una risposta a una query
CompletenessEvaluator Completeness Valuta il modo in cui una risposta è completa e accurata
RetrievalEvaluator Retrieval Valuta le prestazioni nel recupero delle informazioni per un contesto aggiuntivo
FluencyEvaluator Fluency Valuta l'accuratezza grammaticale, l'intervallo di vocabolario, la complessità delle frasi e la leggibilità complessiva
CoherenceEvaluator Coherence Valuta la presentazione logica e ordinata delle idee
EquivalenceEvaluator Equivalence Valuta la somiglianza tra il testo generato e la relativa verità di base rispetto a una query
GroundednessEvaluator Groundedness Valuta l'allineamento di una risposta generata con il contesto specificato
RelevanceTruthAndCompletenessEvaluator Relevance (RTC), Truth (RTC) e Completeness (RTC) Valuta quanto sia rilevante, veritiera e completa una risposta

† Questo analizzatore è contrassegnato come sperimentale.

Analizzatori di sicurezza

Gli analizzatori di sicurezza controllano la presenza di contenuti dannosi, inappropriati o non sicuri in una risposta. Si basano sul servizio Azure AI Foundry Evaluation, che usa un modello ottimizzato per eseguire valutazioni.

Tipo di analizzatore Metrico Descrizione
GroundednessProEvaluator Groundedness Pro Usa un modello ottimizzato ospitato dietro il servizio Valutazione di Azure AI Foundry per valutare l'allineamento di una risposta generata con il contesto specificato
ProtectedMaterialEvaluator Protected Material Valuta la risposta per la presenza di materiale protetto
UngroundedAttributesEvaluator Ungrounded Attributes Valuta una risposta per la presenza di contenuto che indica un'inferenza infondata degli attributi umani
HateAndUnfairnessEvaluator Hate And Unfairness Valuta una risposta per la presenza di contenuto odioso o ingiusto
SelfHarmEvaluator Self Harm Valuta una risposta per la presenza di contenuto che indica l'autolesionismo
ViolenceEvaluator Violence Valuta una risposta per la presenza di contenuti violenti
SexualEvaluator Sexual Valuta una risposta per la presenza di contenuto sessuale
CodeVulnerabilityEvaluator Code Vulnerability Valuta una risposta per la presenza di codice vulnerabile
IndirectAttackEvaluator Indirect Attack Valuta una risposta per la presenza di attacchi indiretti, ad esempio contenuto manipolato, intrusione e raccolta di informazioni

† inoltre, fornisce ContentHarmEvaluator una valutazione a colpo singolo per le quattro metriche supportate da HateAndUnfairnessEvaluator, SelfHarmEvaluator, ViolenceEvaluatore SexualEvaluator.

Risposte memorizzate nella cache

La libreria usa funzionalità di memorizzazione nella cache delle risposte, il che significa che le risposte del modello di intelligenza artificiale vengono rese persistenti in una cache. Nelle esecuzioni successive, se i parametri della richiesta (prompt e modello) sono invariati, le risposte vengono quindi gestite dalla cache per consentire un'esecuzione più rapida e un costo inferiore.

Rendicontazione

La libreria contiene il supporto per l'archiviazione dei risultati della valutazione e la generazione di report. L'immagine seguente mostra un report di esempio in una pipeline di Azure DevOps:

Screenshot di un report di valutazione di intelligenza artificiale in una pipeline di Azure DevOps.

Lo strumento dotnet aieval incluso nel pacchetto Microsoft.Extensions.AI.Evaluation.Console include funzionalità per la generazione di report e la gestione dei dati di valutazione archiviati e delle risposte memorizzate nella cache. Per ulteriori informazioni, vedere generare un report.

Configurazione

Le librerie sono progettate per essere flessibili. È possibile selezionare i componenti necessari. Ad esempio, è possibile disabilitare la memorizzazione nella cache delle risposte o personalizzare la creazione di report per funzionare al meglio nell'ambiente in uso. È anche possibile personalizzare e configurare le valutazioni, ad esempio aggiungendo metriche personalizzate e opzioni di creazione di report.

Esempi

Per una panoramica più completa delle funzionalità e delle API disponibili nelle librerie Microsoft.Extensions.AI.Evaluation, vedere gli esempi di utilizzo delle API (repository dotnet/ai-samples). Questi esempi sono strutturati come una raccolta di unit test. Ogni unit test presenta un concetto o un'API specifica e si basa sui concetti e sulle API presentate negli unit test precedenti.

Vedere anche