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

É importante comparar a proximidade com que a resposta textual gerada pelo sistema de IA corresponde à resposta esperada. A resposta esperada é chamada de verdade básica.

Use uma métrica llm-judge como Similaridade com um foco na similaridade semântica entre a resposta gerada e a verdade básica. Ou use métricas do campo de NLP (processamento de linguagem natural), 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 trechos de código, os avaliadores assistidos por IA usam 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 ao modelo avaliador

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 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.

Similarity

A similaridade mede os graus de similaridade semântica entre o texto gerado e sua verdade básica em relação a uma consulta. Em comparação com outras métricas de similaridade de texto que exigem verdades básicas, essa métrica se concentra na semântica de uma resposta, em vez de uma simples sobreposição em tokens ou n-gramas. Ele também considera 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 em 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 (padrão para 3), este exemplo 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.

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

medida f

A pontuação F1 mede a semelhança por tokens compartilhados entre o texto gerado e a verdade básica. Ele se concentra na precisão e no recall. A pontuação F1 calcula a proporção do número de palavras compartilhadas entre a geração do modelo e a verdade básica. A proporção é calculada em relação às palavras individuais na resposta gerada em relação a essas palavras na resposta da verdade básica. O número de palavras compartilhadas entre a geração e a verdade é a base da pontuação F1.

  • Precisão é a proporção do número de palavras compartilhadas para o número total de palavras na geração.
  • Recall é a proporção do número de palavras compartilhadas para o número total de palavras na verdade básica.

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

Saída de pontuação da F1

O placar numérico é de 0 a 1. Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 0,5), também gera aprovação se a pontuação >= limiar, ou reprovação caso contrário.

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

BLEU score

A pontuação bleu calcula a pontuação BLEU (Subestudo de Avaliação Bilíngue) comumente usada no processamento de linguagem natural e na tradução automática. Ele mede a proximidade com que o texto gerado corresponde ao 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

O placar numérico é de 0 a 1. Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 0,5), também gera aprovação se a pontuação >= limiar, ou reprovação 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). Ele mede a similaridade por n-gramas compartilhados entre o texto gerado e a verdade básica. Semelhante à pontuação BLEU, ela se concentra na precisão e no recall. Ele 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."
)

Produção de pontuação GLEU

O placar numérico é de 0 a 1. Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 0,5), também gera aprovação se a pontuação >= limiar, ou reprovação 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 sumarização automática e tradução automática. Ela mede a sobreposição entre o texto gerado e os resumos de referência. O ROUGE foca em medidas orientadas à recall para avaliar o quanto o texto gerado cobre o texto de referência. A pontuação ROUGE é composta por precisão, recordação e pontuação de 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

O placar numérico é de 0 a 1. Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 0,5), também gera aprovação se a pontuação >= limiar, ou reprovação 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 do meteoro mede a similaridade por n-gramas compartilhados entre o texto gerado e a verdade do solo. Semelhante à pontuação BLEU, ela se concentra na precisão e no recall. Ele aborda as limitações de outras métricas, como a pontuação bleu, considerando sinônimos, lematização e parafraseando para alinhamento de 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 do METEOR

O placar numérico é de 0 a 1. Uma pontuação mais alta é melhor. Dado um limiar numérico (padrão para 0,5), também gera aprovação se a pontuação >= limiar, ou reprovação caso contrário.

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