Valutatori a uso generale (classico)

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.

I sistemi di IA potrebbero generare risposte testuali incoerenti o mancare della qualità generale della scrittura oltre la minimo correttezza grammaticale. Per affrontare questi problemi, Microsoft Foundry supporta la valutazione di coerenza e fluidità.

Se hai uno scenario di domanda e risposta (QA) con entrambi context i dati ground truth e oltre a query e response, puoi anche utilizzare il nostro QAEvaluator, che è un valutatore composito che utilizza valutatori rilevanti per il giudizio.

Configurazione del modello per valutatori assistiti dall'IA

Per riferimento nel seguente estratto di codice, i valutatori assistiti dall'IA utilizzano una configurazione del modello come segue:

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

Foundry supporta modelli di ragionamento AzureOpenAI o OpenAI e modelli non ragionanti per il grande giudice del modello linguistico (LLM-judge) 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.

Coherence

L'analizzatore di coerenza misura la presentazione logica e ordinata delle idee in una risposta, che consente al lettore di seguire e comprendere facilmente il training del pensiero dello scrittore. Una risposta coerente affronta direttamente la domanda con connessioni chiare tra frasi e paragrafi, usando transizioni appropriate e una sequenza logica di idee. Punteggi più alti significano una migliore coerenza.

Coherence example

from azure.ai.evaluation import CoherenceEvaluator

coherence = CoherenceEvaluator(model_config=model_config, threshold=3)
coherence(
    query="Is Marie Curie is born in Paris?", 
    response="No, Marie Curie is born in Warsaw."
)

Coherence output

Il punteggio numerico su una scala di Likert (intero da 1 a 5). Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 3), viene anche evidenziato il passaggio se il punteggio >= soglia, o fallimento . Usa il campo motivo per capire perché il punteggio è alto o basso.

{
    "coherence": 4.0,
    "gpt_coherence": 4.0,
    "coherence_reason": "The RESPONSE is coherent and directly answers the QUERY with relevant information, making it easy to follow and understand.",
    "coherence_result": "pass",
    "coherence_threshold": 3
}

Fluency

L'analizzatore di influenza misura l'efficacia e la chiarezza della comunicazione scritta. Questa misura è incentrata sull'accuratezza grammaticale, sull'intervallo di vocabolari, sulla complessità delle frasi, sulla coerenza e sulla leggibilità complessiva. Valuta il modo in cui le idee vengono trasmesse senza problemi e quanto facilmente il lettore possa comprendere il testo.

Fluency example

from azure.ai.evaluation import FluencyEvaluator

fluency = FluencyEvaluator(model_config=model_config, threshold=3)
fluency(
    response="No, Marie Curie is born in Warsaw."
)

Fluency output

Il punteggio numerico su una scala di Likert (intero da 1 a 5). Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 3), viene anche evidenziato il passaggio se il punteggio >= soglia, o fallimento . Usa il campo motivo per capire perché il punteggio è alto o basso.

{
    "fluency": 3.0,
    "gpt_fluency": 3.0,
    "fluency_reason": "The response is clear and grammatically correct, but it lacks complexity and variety in sentence structure, which is why it fits the \"Competent Fluency\" level.",
    "fluency_result": "pass",
    "fluency_threshold": 3
}

Valutatore composito a risposta a domande

QAEvaluator Misura in modo completo vari aspetti in uno scenario di domanda e risposta:

  • Relevance
  • Groundedness
  • Fluency
  • Coherence
  • Similarity
  • F1 score

QA example

from azure.ai.evaluation import QAEvaluator

qa_eval = QAEvaluator(model_config=model_config, threshold=3)
qa_eval(
    query="Where was Marie Curie born?", 
    context="Background: 1. Marie Curie was a chemist. 2. Marie Curie was born on November 7, 1867. 3. Marie Curie is a French scientist.",
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

QA output

Mentre il punteggio F1 produce un punteggio numerico su una scala float 0-1, gli altri valutatori producono punteggi numerici su una scala Likert (interi da 1 a 5). Un punteggio più alto è meglio. Data una soglia numerica (predefinito a 3), viene anche evidenziato il passaggio se il punteggio >= soglia, o fallimento . Usa il campo motivo per capire perché il punteggio è alto o basso.

{
    "f1_score": 0.631578947368421,
    "f1_result": "pass",
    "f1_threshold": 3,
    "similarity": 4.0,
    "gpt_similarity": 4.0,
    "similarity_result": "pass",
    "similarity_threshold": 3,
    "fluency": 3.0,
    "gpt_fluency": 3.0,
    "fluency_reason": "The input Data should get a Score of 3 because it clearly conveys an idea with correct grammar and adequate vocabulary, but it lacks complexity and variety in sentence structure.",
    "fluency_result": "pass",
    "fluency_threshold": 3,
    "relevance": 3.0,
    "gpt_relevance": 3.0,
    "relevance_reason": "The RESPONSE does not fully answer the QUERY because it fails to explicitly state that Marie Curie was born in Warsaw, which is the key detail needed for a complete understanding. Instead, it only negates Paris, which does not fully address the question.",
    "relevance_result": "pass",
    "relevance_threshold": 3,
    "coherence": 2.0,
    "gpt_coherence": 2.0,
    "coherence_reason": "The RESPONSE provides some relevant information but lacks a clear and logical structure, making it difficult to follow. It does not directly answer the question in a coherent manner, which is why it falls into the \"Poorly Coherent Response\" category.",
    "coherence_result": "fail",
    "coherence_threshold": 3,
    "groundedness": 3.0,
    "gpt_groundedness": 3.0,
    "groundedness_reason": "The response attempts to answer the query about Marie Curie's birthplace but includes incorrect information by stating she was not born in Paris, which is irrelevant. It does provide the correct birthplace (Warsaw), but the misleading nature of the response affects its overall groundedness. Therefore, it deserves a score of 3.",
    "groundedness_result": "pass",
    "groundedness_threshold": 3
}