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.
I sistemi di intelligenza artificiale possono generare risposte testuali incoerenti o che non hanno la qualità generale di scrittura che si potrebbe desiderare oltre la correttezza grammaticale minima. Per risolvere questi problemi, usare coerenza e fluenza.
Se si dispone di uno scenario di risposta alle domande (QA) con sia context
che ground truth
con i dati oltre a query
e response
, è anche possibile usare qaevaluator un analizzatore composito che usa gli analizzatori pertinenti per il giudizio.
Configurazione del modello per gli analizzatori assistito da intelligenza artificiale
Per riferimento nel frammento di codice seguente, gli analizzatori basati su intelligenza artificiale usano una configurazione del modello come indicato di seguito:
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"),
)
Suggerimento
È consigliabile usare o3-mini
per un equilibrio tra capacità di ragionamento ed efficienza dei costi.
Coerenza
CoherenceEvaluator
misura la presentazione logica e ordinata delle idee in risposta, consentendo 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.
Esempio di coerenza
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."
)
Output della coerenza
Il punteggio numerico su una scala likert (intero da 1 a 5) e un punteggio più alto è migliore. Data una soglia numerica (valore predefinito a 3), viene restituito anche "pass" se il punteggio >= soglia o "fail" in caso contrario. L'uso del campo motivo consente di comprendere il motivo per cui 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
}
Scorrevolezza
FluencyEvaluator
misura l'efficacia e la chiarezza della comunicazione scritta, concentrandosi 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.
Esempio di fluency
from azure.ai.evaluation import FluencyEvaluator
fluency = FluencyEvaluator(model_config=model_config, threshold=3)
fluency(
response="No, Marie Curie is born in Warsaw."
)
Output della fluenza
Il punteggio numerico su una scala likert (intero da 1 a 5) e un punteggio più alto è migliore. Data una soglia numerica (valore predefinito a 3), viene restituito anche "pass" se il punteggio >= soglia o "fail" in caso contrario. L'uso del campo motivo consente di comprendere il motivo per cui 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
}
Risposta alle domande dell'analizzatore composito
QAEvaluator
misura in modo completo vari aspetti in uno scenario di risposta alle domande:
- Pertinenza
- Radicamento
- Scorrevolezza
- Coerenza
- Somiglianza
- Punteggio F1
Esempio di controllo di qualità
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."
)
Output qa
Mentre il punteggio F1 restituisce un punteggio numerico su scala float da 0 a 1, gli altri analizzatori generano punteggi numerici su una scala likert (intero da 1 a 5) e un punteggio superiore è migliore. Data una soglia numerica (valore predefinito a 3), viene restituito anche "pass" se il punteggio >= soglia o "fail" in caso contrario. L'uso del campo motivo consente di comprendere il motivo per cui 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
}