Avaliadores de uso geral (clássico)

A ver atualmente:Versão - portal Foundry (clássica)Mudar para a versão do novo portal da Foundry

Note

O SDK Microsoft Foundry para avaliação e o portal Foundry estão em pré-visualização pública, mas as APIs estão geralmente disponíveis para avaliação de modelos e conjuntos de dados (a avaliação do agente permanece em pré-visualização pública). O SDK de Avaliação de IA do Azure e os avaliadores marcados (pré-visualização) neste artigo estão atualmente em pré-visualização pública em todo o lado.

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

Se tiver um cenário de perguntas e respostas (QA) com ambos context e ground truth dados além de query e response, pode também usar o 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 excerto de código, os avaliadores assistidos por IA utilizam 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 a modelos avaliadores

O Foundry suporta modelos de raciocínio AzureOpenAI ou OpenAI e modelos não raciocínios para o juiz de modelos de linguagem de grande porte (LLM-judge), 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 o Juiz (exemplo: gpt-4.1, gpt-4o, etc.) To enable
IntentResolution, TaskAdherence, ResponseCompletenessToolCallAccuracy, , Coherence, , RetrievalSimilarityGroundednessFluencyRelevance 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 requerem 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 das ideias numa resposta, o que permite ao leitor acompanhar e compreender facilmente o raciocínio do escritor. Uma resposta coerente aborda diretamente a questão com ligações claras entre frases e parágrafos, utilizando 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 numa escala de Likert (inteiro de 1 a 5). Uma pontuação mais alta é melhor. Dado um limiar numérico (por defeito 3), também apresenta aprovação se a pontuação >= limiar, ou reprovar caso contrário. Use o campo razão para perceber porque é 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 clareza da comunicação escrita. Esta medida foca-se na precisão gramatical, gama de vocabulário, complexidade das frases, coerência e legibilidade geral. Avalia quão suavemente as ideias são transmitidas e quão facilmente o leitor consegue compreender 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 numa escala de Likert (inteiro de 1 a 5). Uma pontuação mais alta é melhor. Dado um limiar numérico (por defeito 3), também apresenta aprovação se a pontuação >= limiar, ou reprovar caso contrário. Use o campo razão para perceber porque é 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 de resposta a perguntas

QAEvaluator Mede de forma abrangente vários aspetos num cenário de perguntas e respostas:

  • Relevance
  • Groundedness
  • Fluency
  • Coherence
  • Similarity
  • pontuação F1

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