Avaliadores de uso geral (clássico)

Exibição no momento:Versão do portal - do Foundry (clássico)Alternar para a versão do novo portal do Foundry

Note

O SDK do Microsoft Foundry para avaliação e o portal do Foundry estão em versão prévia pública, mas as APIs geralmente estão disponíveis para avaliação de modelo e conjunto de dados (a avaliação do agente permanece em versão prévia pública). O SDK de Avaliação de IA do Azure e os avaliadores marcados (versão prévia) neste artigo estão atualmente em versão prévia pública em todos os lugares.

Sistemas de IA podem gerar respostas textuais incoerentes ou carecem da qualidade geral da escrita além da correção gramatical mínima. Para resolver essas questões, o Microsoft Foundry apoia a avaliação de coerência e fluência.

Se você tem um cenário de pergunta-resposta (QA) com dados context e ground truth além de query e response, você também pode usar nosso QAEvaluator, que é um avaliador composto que utiliza avaliadores relevantes para julgamento.

Configuração de modelos para avaliadores assistidos por IA

Para referência no seguinte trecho de código, os avaliadores assistidos por IA usam uma configuração de modelo da seguinte forma:

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"),
)

Suporte ao modelo avaliador

O Foundry suporta modelos de raciocínio AzureOpenAI ou OpenAI e modelos não raciocínios para o juiz de grandes modelos de linguagem (juiz LLM), dependendo dos avaliadores:

Evaluators Modelos de Raciocínio como Juiz (exemplo: modelos da série O do Azure OpenAI / OpenAI) Modelos não raciocínios como Judge (exemplo: gpt-4.1, gpt-4o, etc.) To enable
IntentResolution, TaskAdherence, ToolCallAccuracy, ResponseCompleteness, Coherence, , Fluency, Similarity, , Groundedness, Retrieval, Relevance Supported Supported Defina um parâmetro is_reasoning_model=True adicional na inicialização dos avaliadores
Other evaluators Not Supported Supported --

Para avaliações complexas que exigem raciocínio refinado, recomendamos um modelo de raciocínio forte, como 4.1-mini um equilíbrio entre desempenho do raciocínio e eficiência de custos.

Coherence

O avaliador de coerência mede a apresentação lógica e ordenada de ideias em uma resposta, o que permite 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.

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

A pontuação numérica em uma escala de Likert (inteiro de 1 a 5). Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 3), também gera aprovação se a pontuação >= limiar, ou reprovar caso contrário. Use o campo razão para 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
}

Fluency

O avaliador de fluência mede a eficácia e a clareza da comunicação escrita. Essa medida se concentra 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.

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

A pontuação numérica em uma escala de Likert (inteiro de 1 a 5). Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 3), também gera aprovação se a pontuação >= limiar, ou reprovar caso contrário. Use o campo razão para 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 composto respondendo a perguntas

QAEvaluator Mede de forma abrangente vários aspectos em um cenário de pergunta-resposta:

  • Relevance
  • Groundedness
  • Fluency
  • Coherence
  • Similarity
  • medida f

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

Enquanto a pontuação F1 gera uma pontuação numérica na escala flutuante de 0 a 1, os outros avaliadores geram pontuações numéricas em uma escala de Likert (inteiro de 1 a 5). Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 3), também gera aprovação se a pontuação >= limiar, ou reprovar caso contrário. Use o campo razão para 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
}