Évaluateurs à usage général (classique)

Affichage actuel :Version du portail - Foundry (classique)Passer à la version du nouveau portail Foundry

Note

Le sdk Microsoft Foundry pour l’évaluation et le portail Foundry sont en préversion publique, mais les API sont généralement disponibles pour l’évaluation du modèle et du jeu de données (l’évaluation de l’agent reste en préversion publique). Les Azure SDK d’évaluation IA et les évaluateurs marqués (préversion) dans cet article sont actuellement en préversion publique partout.

Les systèmes d’IA peuvent générer des réponses textuelles incohérentes ou manquer de qualité générale d’écriture au-delà d’une correction grammaticale minimale. Pour résoudre ces problèmes, Microsoft Foundry permet d’évaluer la cohérence et la fluidité.

Si vous avez un scénario de questions-réponses (QA) avec les context deux données ground truth et en plus de query et response, vous pouvez également utiliser notre QAEvaluator, qui est un évaluateur composite utilisant les évaluateurs pertinents pour le jugement.

Configuration du modèle pour les évaluateurs assistés par IA

Pour référence dans l’extrait de code suivant, les évaluateurs assistés par IA utilisent une configuration de modèle comme suit :

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

Prise en charge des modèles évaluateurs

Foundry prend en charge AzureOpenAI ou OpenAI les modèles de raisonnement ainsi que les modèles non-raisonnants pour le juge des grands modèles de langage (LLM-judge) selon les évaluateurs :

Evaluators Modèles de raisonnement en tant que juge (exemple : modèles de la série o d’Azure OpenAI / OpenAI) Modèles de non-raisonnement en tant que juge (exemple : gpt-4.1, gpt-4o, etc.) To enable
IntentResolution, , TaskAdherence, ResponseCompletenessToolCallAccuracy, , FluencyRetrievalSimilarityGroundednessCoherenceRelevance Supported Supported Définir un paramètre is_reasoning_model=True supplémentaire lors de l’initialisation des évaluateurs
Other evaluators Not Supported Supported --

Pour une évaluation complexe nécessitant un raisonnement raffiné, nous recommandons un modèle de raisonnement solide, avec 4.1-mini un équilibre entre performance de raisonnement et efficacité des coûts.

Coherence

L’évaluateur de cohérence mesure la présentation logique et ordonnée des idées dans une réponse, ce qui permet au lecteur de suivre et de comprendre facilement l’apprentissage de la pensée de l’écrivain. Une réponse cohérente traite directement de la question avec des liens clairs entre les phrases et les paragraphes, en utilisant des transitions appropriées et une séquence logique d’idées. Des scores plus élevés signifient une meilleure cohérence.

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

Le score numérique sur une échelle de Likert (entier de 1 à 5). Un score plus élevé est mieux. À condition d’un seuil numérique (par défaut à 3), il affiche également la réussite si le score >= seuil, ou échoue sinon. Utilisez le champ raison pour comprendre pourquoi le score est élevé ou bas.

{
    "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

L’évaluateur de la fluidité mesure l’efficacité et la clarté de la communication écrite. Cette mesure se concentre sur la précision grammaticale, la plage de vocabulaire, la complexité des phrases, la cohérence et la lisibilité globale. Il évalue la façon dont les idées sont transmises en douceur et comment le lecteur peut comprendre facilement le texte.

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

Le score numérique sur une échelle de Likert (entier de 1 à 5). Un score plus élevé est mieux. À condition d’un seuil numérique (par défaut à 3), il affiche également la réussite si le score >= seuil, ou échoue sinon. Utilisez le champ raison pour comprendre pourquoi le score est élevé ou bas.

{
    "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
}

Évaluateur composite répondant à une question

QAEvaluator Mesure de manière exhaustive divers aspects dans un scénario de questions-réponses :

  • Relevance
  • Groundedness
  • Fluency
  • Coherence
  • Similarity
  • F1 score

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

Alors que le score F1 donne un score numérique sur une échelle flottante de 0 à 1, les autres évaluateurs produisent des scores numériques sur une échelle de Likert (entier de 1 à 5). Un score plus élevé est mieux. À condition d’un seuil numérique (par défaut à 3), il affiche également la réussite si le score >= seuil, ou échoue sinon. Utilisez le champ raison pour comprendre pourquoi le score est élevé ou bas.

{
    "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
}