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.
Visualizzazione attualmente:Versione del portale - Foundry (versione classica)Passare alla versione per il nuovo portale foundry
Note
Il Microsoft Foundry SDK per la valutazione e il portale foundry sono disponibili in anteprima pubblica, ma le API sono disponibili a livello generale per la valutazione del modello e del set di dati (la valutazione dell'agente rimane in anteprima pubblica). I Azure AI Evaluation SDK e gli analizzatori contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica ovunque.
È importante confrontare la risposta testuale generata dal sistema di intelligenza artificiale in base alla risposta prevista. La risposta prevista è detta verità.
Usare una metrica LLM-judge come Somiglianza con un focus sulla somiglianza semantica tra la risposta generata e la verità sul terreno. In alternativa, usare le metriche del campo dell'elaborazione del linguaggio naturale (NLP), tra cui punteggio F1, GLEU, ROUGE e METEOR con particolare attenzione alle sovrapposizioni di token o n-grammi tra i due.
Configurazione del modello per valutatori assistiti dall'IA
Per riferimento nei seguenti frammenti di codice, i valutatori assistiti dall'IA utilizzano una configurazione di modello per il giudice LLM:
import os
from azure.ai.evaluation import AzureOpenAIModelConfiguration
from dotenv import load_dotenv
load_dotenv()
model_config = AzureOpenAIModelConfiguration(
azure_endpoint=os.environ["AZURE_ENDPOINT"],
api_key=os.environ.get("AZURE_API_KEY"),
azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
api_version=os.environ.get("AZURE_API_VERSION"),
)
Supporto per modelli valutatori
Supportiamo modelli di ragionamento AzureOpenAI o OpenAI e modelli non ragionanti per il giudice LLM a seconda dei valutatori:
| Evaluators | Ragionamento dei modelli come giudice (esempio: modelli di serie o da Azure OpenAI/OpenAI) | Modelli di non ragionamento come Giudice (ad esempio: gpt-4.1, gpt-4o e così via) | To enable |
|---|---|---|---|
IntentResolution
ToolCallAccuracy, TaskAdherence, , ResponseCompleteness, CoherenceFluency, Similarity, Groundedness, , RetrievalRelevance |
Supported | Supported | Impostare un parametro aggiuntivo is_reasoning_model=True nell'inizializzazione degli analizzatori |
| Other evaluators | Not Supported | Supported | -- |
Per valutazioni complesse che richiedono un ragionamento raffinato, raccomandiamo un modello di ragionamento solido, come 4.1-mini quello che bilancia prestazioni del ragionamento ed efficienza dei costi.
Similarity
La somiglianza misura i gradi di somiglianza semantica tra il testo generato e la relativa verità di base rispetto a una query. Rispetto ad altre metriche di somiglianza del testo che richiedono verità sul terreno, questa metrica è incentrata sulla semantica di una risposta, invece di una semplice sovrapposizione nei token o n-grammi. Considera anche il contesto più ampio di una query.
Similarity example
from azure.ai.evaluation import SimilarityEvaluator
similarity = SimilarityEvaluator(model_config=model_config, threshold=3)
similarity(
query="Is Marie Curie born in Paris?",
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
Similarity output
L'output è un punteggio numerico su scala Likert, intero da 1 a 5. Un punteggio più alto significa un grado maggiore di somiglianza. Data una soglia numerica (predefinito a 3), questo esempio restituisce anche il passaggio se il punteggio >= soglia, o fallimento altrimenti. Usa il campo motivo per capire perché il punteggio è alto o basso.
{
"similarity": 4.0,
"gpt_similarity": 4.0,
"similarity_result": "pass",
"similarity_threshold": 3
}
F1 score
Il punteggio F1 misura la somiglianza in base ai token condivisi tra il testo generato e la verità del terreno. Si concentra sia sulla precisione che sul richiamo. Il punteggio F1 calcola il rapporto tra il numero di parole condivise tra la generazione del modello e la verità di base. Il rapporto viene calcolato sulle singole parole nella risposta generata rispetto a quelle parole nella risposta alla verità di base. Il numero di parole condivise tra la generazione e la verità è la base del punteggio F1.
- La precisione è il rapporto tra il numero di parole condivise e il numero totale di parole nella generazione.
- Il richiamo è il rapporto tra il numero di parole condivise e il numero totale di parole nella verità.
Esempio di punteggio F1
from azure.ai.evaluation import F1ScoreEvaluator
f1_score = F1ScoreEvaluator(threshold=0.5)
f1_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
Output del punteggio F1
Il punteggio numerico è un bilancio di 0-1. Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 0,5), risulta anche approvato se il punteggio >= soglia, oppure fallimento altrimenti.
{
"f1_score": 0.631578947368421,
"f1_result": "pass",
"f1_threshold": 0.5
}
BLEU score
Il punteggio Bleu calcola il punteggio Bilingual Evaluation Understudy (BLEU) comunemente usato nell'elaborazione del linguaggio naturale e nella traduzione automatica. Misura il modo in cui il testo generato corrisponde al testo di riferimento.
BLEU example
from azure.ai.evaluation import BleuScoreEvaluator
bleu_score = BleuScoreEvaluator(threshold=0.3)
bleu_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
BLEU output
Il punteggio numerico è un bilancio di 0-1. Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 0,5), risulta anche approvato se il punteggio >= soglia, oppure fallimento altrimenti.
{
"bleu_score": 0.1550967560878879,
"bleu_result": "fail",
"bleu_threshold": 0.3
}
GLEU score
Il punteggio Gleu calcola il punteggio Google-BLEU (GLEU). Misura la somiglianza con n-grammi condivisi tra il testo generato e la verità del terreno. Analogamente al punteggio BLEU, si concentra sia sulla precisione che sul richiamo. Affronta gli svantaggi del punteggio BLEU utilizzando un obiettivo di ricompensa per frase.
Esempio di punteggio GLEU
from azure.ai.evaluation import GleuScoreEvaluator
gleu_score = GleuScoreEvaluator(threshold=0.2)
gleu_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
Output del punteggio GLEU
Il punteggio numerico è un bilancio di 0-1. Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 0,5), risulta anche approvato se il punteggio >= soglia, oppure fallimento altrimenti.
{
"gleu_score": 0.25925925925925924,
"gleu_result": "pass",
"gleu_threshold": 0.2
}
ROUGE score
Il punteggio Rouge calcola i punteggi Recall-Oriented Understudy for Gisting Evaluation (ROUGE), un insieme di metriche utilizzate per valutare la sintesi automatiche e la traduzione automatica. Misura la sovrapposizione tra testo generato e riassunti di riferimento. ROUGE si concentra su misure orientate al richiamo per valutare quanto bene il testo generato copra il testo di riferimento. Il punteggio ROUGE è composto da precisione, richiamo e punteggio F1.
Esempio di punteggio ROUGE
from azure.ai.evaluation import RougeScoreEvaluator, RougeType
rouge = RougeScoreEvaluator(rouge_type=RougeType.ROUGE_L, precision_threshold=0.6, recall_threshold=0.5, f1_score_threshold=0.55)
rouge(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
Output del punteggio ROUGE
Il punteggio numerico è un bilancio di 0-1. Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 0,5), risulta anche approvato se il punteggio >= soglia, oppure fallimento altrimenti.
{
"rouge_precision": 0.46153846153846156,
"rouge_recall": 1.0,
"rouge_f1_score": 0.631578947368421,
"rouge_precision_result": "fail",
"rouge_recall_result": "pass",
"rouge_f1_score_result": "pass",
"rouge_precision_threshold": 0.6,
"rouge_recall_threshold": 0.5,
"rouge_f1_score_threshold": 0.55
}
METEOR score
Il punteggio meteora misura la somiglianza con n-grammi condivisi tra il testo generato e la verità del terreno. Analogamente al punteggio BLEU, si concentra sulla precisione e sul richiamo. Risolve le limitazioni di altre metriche come il punteggio BLEU considerando sinonimi, stemming e parafrasamento per l'allineamento del contenuto.
Esempio di punteggio METEOR
from azure.ai.evaluation import MeteorScoreEvaluator
meteor_score = MeteorScoreEvaluator(threshold=0.9)
meteor_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
Output del punteggio METEOR
Il punteggio numerico è un bilancio di 0-1. Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 0,5), risulta anche approvato se il punteggio >= soglia, oppure fallimento altrimenti.
{
"meteor_score": 0.8621140763997908,
"meteor_result": "fail",
"meteor_threshold": 0.9
}