에이전트 AI 평가 모듈은 에이전트 AI 도구의 성능을 측정하는 지표를 계산하여 사용 사례의 워크플로우를 간소화하고 위험을 관리하는 데 도움을 줍니다.
에이전트 AI 평가는 ibm-watsonx-govPython SDK의 모듈입니다. 에이전트 AI 평가 모듈을 사용하면 작업을 자동화하고 가속화하여 워크플로를 간소화하고 정량적 지표로 성과를 측정하여 규정 준수 위험을 관리할 수 있습니다.
에이전트 AI 평가 모듈은 에이전트 RAG 사용 사례의 성과를 측정하기 위해 다음과 같은 평가자를 사용합니다
evaluate_context_relevance : 콘텐츠 검색 도구의 컨텍스트 관련성 지표를 계산하기 위해
evaluate_faithfulness : 답변 생성 도구의 충실도 지표를 계산합니다. 이 측정 기준은 지상 진실성을 필요로 하지 않습니다
evaluate_answer_similarity : 답변 생성 도구의 답변 유사성 지표를 계산합니다. 이 측정 항목은 계산을 위해 지상 진실(ground truth)이 필요합니다
에이전트 AI 평가 모듈을 사용하려면 특정 설정으로 ibm-watsonx-gov Python SDK를 설치해야 합니다
pip install "ibm-watsonx-gov[agentic]"
Copy to clipboard클립보드에 복사됨
예
Copy link to section
다음 예와 같이 에이전트 AI 평가 모듈을 사용하여 에이전트 AI 도구를 평가할 수 있습니다
상태 설정
Copy link to section
ibm-watsonx-gov Python SDK는 확장할 수 있는 pydantic 기반 상태 클래스를 제공합니다
from ibm_watsonx_gov.entities.state import EvaluationState
classAppState(EvaluationState):
pass
Copy to clipboard클립보드에 복사됨
평가자 설정
Copy link to section
에이전트 AI 응용 프로그램을 평가하려면, 다양한 지표를 계산하는 평가자를 정의하기 위해 AgenticEvaluation 클래스를 인스턴스화해야 합니다
from ibm_watsonx_gov.evaluate.agentic_evaluation import AgenticEvaluation
evaluator = AgenticEvaluation()
Copy to clipboard클립보드에 복사됨
평가자 추가
Copy link to section
retrieval_node 도구를 정의하고, evaluate_context_relevance 평가 도구로 꾸며서 문맥 관련성 지표를 계산합니다:
@evaluator.evaluate_context_relevancedefretrieval_node(state: AppState, config: RunnableConfig):
# do somethingpass
또한 평가자를 쌓아서 하나의 도구로 여러 가지 지표를 계산할 수 있습니다. evaluate_faithfulness 다음 예는 정답 품질 지표를 계산하기 위해 정답 정확도( generate_node ) 도구와 정답 정확도( evaluate_answer_similarity ) 도구로 장식된 정답 정확도( ) 도구를 보여줍니다
@evaluator.evaluate_faithfulness@evaluator.evaluate_answer_similaritydefgenerate_node(state: AppState, config: RunnableConfig):
# do somethingpass
호출하기
Copy link to section
데이터 행에 대한 애플리케이션을 호출하면, 입력에 개별 행을 추적하고 각 행에 메트릭을 연결하는 데 사용되는 행 키( record_id )가 추가됩니다
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()
다음 예와 같이 호출하면 결과가 생성됩니다
테이블 1. 단일 호출 결과
이름
메소드
값
RECORD_ID
도구 이름
실행 횟수
답변 유사성
sentence_bert_mini_lm
0.930133
12
generate_node
1
충실성
sentence_bert_mini_lm
0.258931
12
generate_node
1
툴 대기 시간 (s)
12.777696
12
generate_node
1
관련성
sentence_bert_mini_lm
0.182579
12
retrieval_node
1
툴 대기 시간 (s)
1.730439
12
retrieval_node
1
여러 행에 그래프 표시하기
Copy link to section
일괄 호출을 완료하기 위해, 질문과 그 질문에 대한 근거를 포함한 데이터프레임을 정의할 수 있습니다:
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()
데이터프레임 인덱스는 각 행을 고유하게 식별하기 위한 식별자( record_id )로 사용됩니다.