Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
}