Avaliadores de similaridade textual (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.

É importante comparar até que ponto a resposta textual gerada pelo seu sistema de IA corresponde à resposta que esperaria. A resposta esperada chama-se verdade de base.

Use uma métrica de juiz LLM como a Similaridade , com foco na semelhança semântica entre a resposta gerada e a verdade fundamentada. Ou, use métricas do campo do processamento de linguagem natural (PLN), incluindo pontuação F1, BLEU, GLEU, ROUGE e METEOR , com foco nas sobreposições de tokens ou n-gramas entre os dois.

Configuração de modelos para avaliadores assistidos por IA

Para referência, nos seguintes excertos de código, os avaliadores assistidos por IA utilizam uma configuração de modelo para o juiz LLM:

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

Suportamos modelos de raciocínio AzureOpenAI ou OpenAI e modelos não raciocínios para o 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 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.

Similarity

A similaridade mede os graus de semelhança semântica entre o texto gerado e a sua verdade fundamental relativamente a uma consulta. Comparado com outras métricas de similaridade textual que exigem verdades fundamentais, esta métrica foca-se na semântica de uma resposta, em vez de simples sobreposições em tokens ou n-gramas. Considera também o contexto mais amplo de uma consulta.

Similarity example

from azure.ai.evaluation import SimilarityEvaluator

similarity = SimilarityEvaluator(model_config=model_config, threshold=3)
similarity(
    query="Is Marie Curie born in Paris?", 
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

Similarity output

A saída é uma pontuação numérica numa escala de Likert, inteiro de 1 a 5. Uma pontuação mais alta significa um grau maior de semelhança. Dado um limiar numérico (por defeito 3), este exemplo 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.

{
    "similarity": 4.0,
    "gpt_similarity": 4.0,
    "similarity_result": "pass",
    "similarity_threshold": 3
}

pontuação F1

A pontuação F1 mede a semelhança, através de tokens partilhados, entre o texto gerado e a verdade fundamental. Foca-se tanto na precisão como na recordação. A pontuação F1 calcula a razão entre o número de palavras partilhadas entre a geração do modelo e a verdade fundamental. A razão é calculada sobre as palavras individuais na resposta gerada em relação às palavras da resposta de verdade fundamental. O número de palavras partilhadas entre a geração e a verdade é a base da pontuação F1.

  • Precisão é a razão entre o número de palavras partilhadas e o número total de palavras na geração.
  • Recordação é a razão entre o número de palavras partilhadas e o número total de palavras na verdade fundamental.

Exemplo de pontuação na F1

from azure.ai.evaluation import F1ScoreEvaluator

f1_score = F1ScoreEvaluator(threshold=0.5)
f1_score(
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

Resultado da pontuação da F1

A pontuação numérica é um balanço de 0-1. Uma pontuação mais alta é melhor. Dado um limiar numérico (por defeito 0,5), também fornece aprovação se a pontuação >= limiar, ou reprovar caso contrário.

{
    "f1_score": 0.631578947368421,
    "f1_result": "pass",
    "f1_threshold": 0.5
}

BLEU score

A pontuação Bleu calcula a pontuação do Estudante de Avaliação Bilingue (BLEU), comumente utilizada no processamento de linguagem natural e tradução automática. Mede quão próximo é o texto gerado do texto de referência.

BLEU example

from azure.ai.evaluation import BleuScoreEvaluator

bleu_score = BleuScoreEvaluator(threshold=0.3)
bleu_score(
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

BLEU output

A pontuação numérica é um balanço de 0-1. Uma pontuação mais alta é melhor. Dado um limiar numérico (por defeito 0,5), também fornece aprovação se a pontuação >= limiar, ou reprovar caso contrário.

{
    "bleu_score": 0.1550967560878879,
    "bleu_result": "fail",
    "bleu_threshold": 0.3
}

GLEU score

A pontuação Gleu calcula a pontuação Google-BLEU (GLEU). Mede a semelhança, por n-gramas partilhados, entre o texto gerado e a verdade fundamental. Semelhante à pontuação BLEU, foca-se tanto na precisão como na recordação. Aborda as desvantagens da pontuação BLEU usando um objetivo de recompensa por frase.

Exemplo de pontuação GLEU

from azure.ai.evaluation import GleuScoreEvaluator

gleu_score = GleuScoreEvaluator(threshold=0.2)
gleu_score(
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

Resultado da pontuação GLEU

A pontuação numérica é um balanço de 0-1. Uma pontuação mais alta é melhor. Dado um limiar numérico (por defeito 0,5), também fornece aprovação se a pontuação >= limiar, ou reprovar caso contrário.

{
    "gleu_score": 0.25925925925925924,
    "gleu_result": "pass",
    "gleu_threshold": 0.2
}

ROUGE score

A pontuação Rouge calcula as pontuações Recall-Oriented Understudy for Gisting Evaluation (ROUGE), um conjunto de métricas usadas para avaliar a sumarização automática e a tradução automática. Mede a sobreposição entre o texto gerado e os resumos de referência. O ROUGE foca-se em medidas orientadas para a recordação para avaliar quão bem o texto gerado cobre o texto de referência. A pontuação ROUGE é composta por precisão, recordação e pontuação F1.

Exemplo de pontuação ROUGE

from azure.ai.evaluation import RougeScoreEvaluator, RougeType

rouge = RougeScoreEvaluator(rouge_type=RougeType.ROUGE_L, precision_threshold=0.6, recall_threshold=0.5, f1_score_threshold=0.55) 
rouge(
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

Saída da partitura ROUGE

A pontuação numérica é um balanço de 0-1. Uma pontuação mais alta é melhor. Dado um limiar numérico (por defeito 0,5), também fornece aprovação se a pontuação >= limiar, ou reprovar caso contrário.

{
    "rouge_precision": 0.46153846153846156,
    "rouge_recall": 1.0,
    "rouge_f1_score": 0.631578947368421,
    "rouge_precision_result": "fail",
    "rouge_recall_result": "pass",
    "rouge_f1_score_result": "pass",
    "rouge_precision_threshold": 0.6,
    "rouge_recall_threshold": 0.5,
    "rouge_f1_score_threshold": 0.55
}

METEOR score

A pontuação Meteor mede a semelhança, por n-gramas partilhados, entre o texto gerado e a verdade fundamental. Semelhante à pontuação BLEU, foca-se na precisão e na recordação. Aborda limitações de outras métricas, como a pontuação BLEU, considerando sinónimos, stemming e parafraseando o alinhamento do conteúdo.

Exemplo de pontuação METEOR

from azure.ai.evaluation import MeteorScoreEvaluator

meteor_score = MeteorScoreEvaluator(threshold=0.9)
meteor_score(
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

Saída da pontuação METEOR

A pontuação numérica é um balanço de 0-1. Uma pontuação mais alta é melhor. Dado um limiar numérico (por defeito 0,5), também fornece aprovação se a pontuação >= limiar, ou reprovar caso contrário.

{
    "meteor_score": 0.8621140763997908,
    "meteor_result": "fail",
    "meteor_threshold": 0.9
}