Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os sistemas de IA podem gerar respostas textuais que são incoerentes ou não têm a qualidade de gravação geral que você pode desejar além da correção gramatical mínima. Para resolver esses problemas, use Coerência e Fluência.
Se você tiver um cenário de resposta a perguntas (QA) com context
dados e ground truth
dados além query
de, response
também poderá usar nosso QAEvaluator um avaliador composto que usa avaliadores relevantes para julgamento.
Configuração de modelo para avaliadores assistidos por IA
Para referência no snippet de código a seguir, os avaliadores assistidos por IA usam uma configuração de modelo da seguinte maneira:
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"),
)
Dica
É recomendável usar o3-mini
para um equilíbrio de capacidade de raciocínio e eficiência de custo.
Coerência
CoherenceEvaluator
mede a apresentação lógica e ordenada de ideias em uma resposta, permitindo que o leitor siga e entenda facilmente a formação de pensamento do escritor. Uma resposta coerente aborda diretamente a questão com conexões claras entre frases e parágrafos, usando transições apropriadas e uma sequência lógica de ideias. Pontuações mais altas significam melhor coerência.
Exemplo de coerência
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."
)
Saída de coerência
A pontuação numérica em uma escala de likert (inteiro de 1 a 5) e uma pontuação mais alta é melhor. Dado um limite numérico (padrão para 3), também geramos "pass" se a pontuação >= limite ou "fail" caso contrário. Usar o campo motivo pode ajudá-lo a entender por que a pontuação é alta ou baixa.
{
"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
}
Fluência
FluencyEvaluator
mede a eficácia e a clareza da comunicação escrita, concentrando-se na precisão gramatical, intervalo de vocabulário, complexidade da frase, coerência e legibilidade geral. Ele avalia a facilidade com que as ideias são transmitidas e com que facilidade o leitor pode entender o texto.
Exemplo de fluência
from azure.ai.evaluation import FluencyEvaluator
fluency = FluencyEvaluator(model_config=model_config, threshold=3)
fluency(
response="No, Marie Curie is born in Warsaw."
)
Saída de fluência
A pontuação numérica em uma escala de likert (inteiro de 1 a 5) e uma pontuação mais alta é melhor. Dado um limite numérico (padrão para 3), também geramos "pass" se a pontuação >= limite ou "fail" caso contrário. Usar o campo motivo pode ajudá-lo a entender por que a pontuação é alta ou baixa.
{
"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
}
Avaliador de composição de resposta a perguntas
QAEvaluator
mede de forma abrangente vários aspectos em um cenário de resposta a perguntas:
- Relevância
- Fundamentação
- Fluência
- Coerência
- Similaridade
- Pontuação da F1
Exemplo de QA
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."
)
Saída de QA
Enquanto a pontuação F1 gera uma pontuação numérica em escala flutuante de 0 a 1, os outros avaliadores geram pontuações numéricas em uma escala de likert (inteiro 1 a 5) e uma pontuação mais alta é melhor. Dado um limite numérico (padrão para 3), também geramos "pass" se a pontuação >= limite ou "fail" caso contrário. Usar o campo motivo pode ajudá-lo a entender por que a pontuação é alta ou baixa.
{
"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
}