0 / 0
Retourner à la version anglaise de la documentation
Évaluation de l'IA agentique
Dernière mise à jour : 05 mars 2025
Évaluation de l'IA agentique

Le module d'évaluation de l'IA agentique calcule des mesures pour évaluer les performances des outils d'IA agentique afin de vous aider à rationaliser vos workflows et à gérer les risques pour votre cas d'utilisation.

L'évaluation de l'IA agentique est un module du ibm-watsonx-gov Kit de développement logiciel Python. Vous pouvez utiliser le module d'évaluation de l'IA agentique pour automatiser et accélérer les tâches afin de rationaliser vos flux de travail et de gérer les risques de conformité réglementaire en mesurant les performances à l'aide de mesures quantitatives.

Le module d'évaluation de l'IA agentique utilise les évaluateurs suivants pour mesurer les performances des cas d'utilisation du RAG agentique :

  • evaluate_context_relevance : Pour calculer la métrique de pertinence contextuelle de votre outil de recherche de contenu
  • evaluate_faithfulness : Pour calculer la mesure de fidélité de votre outil de génération de réponses. Cette mesure ne nécessite pas de vérité terrain
  • evaluate_answer_similarity : Pour calculer la métrique de similarité des réponses de votre outil de génération de réponses. Cette mesure nécessite une vérité terrain pour le calcul

Pour utiliser le module d'évaluation de l'IA agentique, vous devez installer le SDK ibm-watsonx-gov Python avec des paramètres spécifiques :

pip install "ibm-watsonx-gov[agentic]"

Exemples

Vous pouvez évaluer les outils d'IA agentique avec le module d'évaluation de l'IA agentique comme le montrent les exemples suivants :

Configurer l'état

Le SDK Python d' ibm-watsonx-gov fournit une classe d'état basée sur pydantic que vous pouvez étendre :

from ibm_watsonx_gov.entities.state import EvaluationState

class AppState(EvaluationState):
    pass

Mise en place de l'évaluateur

Pour évaluer les applications de l'IA agentique, vous devez instancier la classe « AgenticEvaluation » pour définir des évaluateurs afin de calculer différentes métriques :

from ibm_watsonx_gov.evaluate.agentic_evaluation import AgenticEvaluation

evaluator = AgenticEvaluation()

Ajouter vos évaluateurs

Calculez la mesure de pertinence du contexte en définissant l'outil d' retrieval_node , puis décorez-le avec l'outil d'évaluation d' evaluate_context_relevance

@evaluator.evaluate_context_relevance
def retrieval_node(state: AppState, config: RunnableConfig):
    # do something
    pass

Vous pouvez également empiler des évaluateurs pour calculer plusieurs mesures avec un outil. L'exemple suivant montre l'outil d' generate_node , décoré avec les outils d' evaluate_faithfulness s et d' evaluate_answer_similarity s pour calculer les mesures de qualité des réponses :

@evaluator.evaluate_faithfulness
@evaluator.evaluate_answer_similarity
def generate_node(state: AppState, config: RunnableConfig):
    # do something
    pass

Faire une invocation

Lorsque vous appelez une application pour une ligne de données, une clé d' record_id s est ajoutée aux entrées pour suivre les lignes individuelles et associer des métriques à chaque ligne :

result = rag_app.invoke({"input_text": "What is concept drift?", "ground_truth": "Concept drift occurs when the statistical properties of the target variable change over time, causing a machine learning model’s predictions to become less accurate.", "record_id": "12"})
evaluator.get_metrics_df()

L'invocation génère un résultat comme le montre l'exemple suivant :

Tableau 1. Résultat d'une invocation unique
nom méthode valeur record_id nom_outil execution_count
answer_similarity sentence_bert_mini_lm 0.930133 12 generate_node 1
Fidélité sentence_bert_mini_lm 0.258931 12 generate_node 1
tool_latency (s) 12.777696 12 generate_node 1
pertinence_du_contexte sentence_bert_mini_lm 0.182579 12 retrieval_node 1
tool_latency (s) 1.730439 12 retrieval_node 1

Appeler le graphique sur plusieurs lignes

Pour terminer l'invocation du lot, vous pouvez définir un dataframe avec des questions et des vérités fondamentales pour ces questions :

import pandas as pd

question_bank_df = pd.read_csv("https://raw.githubusercontent.com/IBM/ibm-watsonx-gov/refs/heads/samples/notebooks/data/agentic/medium_question_bank.csv")
question_bank_df["record_id"] = question_bank_df.index.astype(str)
result = rag_app.batch(inputs=question_bank_df.to_dict("records"))
evaluator.get_metrics_df()

L'index du dataframe est utilisé comme identifiant unique ( record_id ) pour identifier chaque ligne.

L'invocation génère un résultat comme le montre l'exemple suivant :

Tableau 2. Résultat de l'invocation du lot
nom méthode valeur record_id nom_outil execution_count
answer_similarity sentence_bert_mini_lm 0.921843 0 generate_node 1
Fidélité sentence_bert_mini_lm 0.887591 0 generate_node 1
tool_latency (s) 3.420483 0 generate_node 1
pertinence_du_contexte sentence_bert_mini_lm 0.707973 0 retrieval_node 1
tool_latency (s) 0.777236 0 retrieval_node 1
answer_similarity sentence_bert_mini_lm 0.909655 1 generate_node 1
Fidélité sentence_bert_mini_lm 0.783347 1 generate_node 1
tool_latency (s) 1.327022 1 generate_node 1
pertinence_du_contexte sentence_bert_mini_lm 0.706106 1 retrieval_node 1
tool_latency (s) 0.936945 1 retrieval_node 1
answer_similarity sentence_bert_mini_lm 0.864697 2 generate_node 1
Fidélité sentence_bert_mini_lm 0.868233 2 generate_node 1
tool_latency (s) 2.326283 2 generate_node 1
pertinence_du_contexte sentence_bert_mini_lm 0.763274 2 retrieval_node 1
tool_latency (s) 0.842586 2 retrieval_node 1

Pour plus d'informations, consultez l'exemple de carnet.

Sujet parent : Calcul des métriques à l'aide du kit de développement logiciel ( Python )