Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft. Le librerie Extensions.AI.Evaluation semplificano il processo di valutazione della qualità e della sicurezza delle risposte generate dai modelli di intelligenza artificiale in .NET app intelligenti. Varie metriche di qualità misurano aspetti come pertinenza, veridicità, coerenza e completezza delle risposte. Le metriche di sicurezza misurano aspetti come l'odio e l'iniquità, la violenza e il contenuto sessuale. 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 costituite dai pacchetti NuGet seguenti:
- 📦 Microsoft. Extensions.AI.Evaluation: definisce le astrazioni e i tipi principali per supportare la valutazione.
- 📦 Microsoft. Extensions.AI.Evaluation.NLP - Contiene evaluator che valutano la somiglianza del testo della risposta di un LLM a una o più risposte di riferimento usando le metriche NLP (Natural Language Processing). Questi analizzatori non sono basati sull'LLM o sull'intelligenza artificiale; usano tecniche tradizionali di NLP, come la tokenizzazione del testo e l'analisi n-gram per valutare la similarità del testo.
- 📦 Microsoft. Extensions.AI.Evaluation.Quality : contiene evaluator che valutano la qualità delle risposte LLM in un'app in base a metriche come pertinenza e completezza. Questi analizzatori usano direttamente LLM per eseguire valutazioni.
-
📦 Microsoft.Extensions.AI.Evaluation.Safety – contiene valutatori, ad esempio
ProtectedMaterialEvaluatoreContentHarmEvaluator, che utilizzano il servizio di valutazione Microsoft Foundry per eseguire valutazioni. - 📦 Microsoft. Extensions.AI.Evaluation.Reporting: contiene il supporto per la memorizzazione nella cache delle risposte LLM, l'archiviazione dei risultati delle valutazioni e la generazione di report da tali dati.
- 📦 Microsoft. Extensions.AI.Evaluation.Reporting. Azure: supporta la libreria di report con un'implementazione per la memorizzazione nella cache delle risposte LLM e l'archiviazione dei risultati della valutazione in un contenitore Archiviazione di Azure.
- 📦 Microsoft. Extensions.AI.Evaluation.Console : strumento da riga di comando per la generazione di report e la gestione dei dati di valutazione.
Integrazione dei test
Le librerie si integrano senza problemi con le app di .NET esistenti, consentendo di usare l'infrastruttura di test esistente e una sintassi familiare per valutare le app intelligenti. È possibile usare qualsiasi framework di test(ad esempio , MSTest, xUnit o NUnit) e il flusso di lavoro di test (ad esempio, Esplora test, test dotnet o 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 ricercatori di data science di Microsoft e GitHub e sono state testate su esperienze di Microsoft Copilot popolari. Le sezioni seguenti illustrano gli analizzatori di qualità, NLP e sicurezza predefiniti e le metriche che misurano.
Per aggiungere valutazioni personalizzate, implementare 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 | Metrica | Description |
|---|---|---|
| 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 |
| IntentResolutionEvaluator | Intent Resolution |
Valuta l'efficacia di un sistema di intelligenza artificiale per identificare e risolvere la finalità dell'utente (incentrata sull'agente) |
| TaskAdherenceEvaluator | Task Adherence |
Valuta l'efficacia di un sistema di intelligenza artificiale aderendo all'attività assegnata (incentrata sull'agente) |
| ToolCallAccuracyEvaluator | Tool Call Accuracy |
Valuta l'efficacia di un sistema di intelligenza artificiale usando gli strumenti forniti (incentrato sull'agente) |
† Questo analizzatore è contrassegnato come sperimentale.
Valutatori NLP
Gli analizzatori NLP valutano la qualità di una risposta LLM confrontandola con una risposta di riferimento usando tecniche NLP (Natural Language Processing). Questi analizzatori non sono basati su modelli LLM o metodi di intelligenza artificiale; usano invece tecniche di elaborazione del linguaggio naturale meno recenti per eseguire confronti di testo.
| Tipo di analizzatore | Metrica | Description |
|---|---|---|
| BLEUEvaluator | BLEU |
Valuta una risposta confrontandola con una o più risposte di riferimento utilizzando l'algoritmo BLEU (Bilingual Evaluation Understudy). Questo algoritmo viene comunemente usato per valutare la qualità delle attività di traduzione automatica o generazione di testo. |
| GLEUEvaluator | GLEU |
Misura la somiglianza tra la risposta generata e una o più risposte di riferimento usando l'algoritmo GOOGLE BLEU (GLEU), una variante dell'algoritmo BLEU ottimizzato per la valutazione a livello di frase. |
| F1Evaluator | F1 |
Valuta una risposta confrontandola con una risposta di riferimento usando l'algoritmo di assegnazione dei punteggi F1 (rapporto tra il numero di parole condivise tra la risposta generata e la risposta di riferimento). |
Analizzatori di sicurezza
Gli analizzatori di sicurezza controllano la presenza di contenuti dannosi, inappropriati o non sicuri in una risposta. Si basano sul servizio Foundry Evaluation, che usa un modello ottimizzato per eseguire valutazioni.
| Tipo di analizzatore | Metrica | Description |
|---|---|---|
| GroundednessProEvaluator | Groundedness Pro |
Usa un modello ottimizzato ospitato dietro il servizio Foundry Evaluation 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 l'inferenza non fondata 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 |
† ContentHarmEvaluator fornisce inoltre una valutazione a colpo singolo per le quattro metriche supportate da HateAndUnfairnessEvaluator, SelfHarmEvaluator, ViolenceEvaluator e SexualEvaluator.
Risposte memorizzate nella cache
La libreria usa la funzionalità di memorizzazione nella cache delle risposte per rendere persistenti le risposte dal modello di intelligenza artificiale in una cache. Nelle esecuzioni successive, se i parametri della richiesta (prompt e modello) sono invariati, vengono fornite risposte dalla cache per un'esecuzione più rapida e un costo inferiore.
Rendicontazione
La libreria supporta l'archiviazione dei risultati della valutazione e la generazione di report. L'immagine seguente mostra un report di esempio in una pipeline Azure DevOps:
Lo strumento
Configurazione
Le librerie sono flessibili ed è possibile scegliere i componenti necessari. Ad esempio, 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.
Samples
Per una panoramica più completa delle funzionalità e delle API nelle librerie Microsoft.Extensions.AI.Evaluation, vedere gli esempi di utilizzo delle API (repository dotnet/ai-samples). Questi esempi sono 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.