에이전트 AI 평가

마지막 업데이트 날짜: 2025년 3월 26일
에이전트 AI 평가

에이전트 AI 평가 모듈은 에이전트 AI 도구의 성능을 측정하는 지표를 계산하여 사용 사례의 워크플로우를 간소화하고 위험을 관리하는 데 도움을 줍니다.

에이전트 AI 평가는 ibm-watsonx-gov Python 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]"

다음 예와 같이 에이전트 AI 평가 모듈을 사용하여 에이전트 AI 도구를 평가할 수 있습니다

상태 설정

ibm-watsonx-gov Python SDK는 확장할 수 있는 pydantic 기반 상태 클래스를 제공합니다

from ibm_watsonx_gov.entities.state import EvaluationState

class AppState(EvaluationState):
    pass

평가자 설정

에이전트 AI 응용 프로그램을 평가하려면, 다양한 지표를 계산하는 평가자를 정의하기 위해 AgenticEvaluation 클래스를 인스턴스화해야 합니다

from ibm_watsonx_gov.evaluate.agentic_evaluation import AgenticEvaluation

evaluator = AgenticEvaluation()

평가자 추가

retrieval_node 도구를 정의하고, evaluate_context_relevance 평가 도구로 꾸며서 문맥 관련성 지표를 계산합니다:

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

또한 평가자를 쌓아서 하나의 도구로 여러 가지 지표를 계산할 수 있습니다. evaluate_faithfulness 다음 예는 정답 품질 지표를 계산하기 위해 정답 정확도( generate_node ) 도구와 정답 정확도( evaluate_answer_similarity ) 도구로 장식된 정답 정확도( ) 도구를 보여줍니다

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

호출하기

데이터 행에 대한 애플리케이션을 호출하면, 입력에 개별 행을 추적하고 각 행에 메트릭을 연결하는 데 사용되는 행 키( 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

여러 행에 그래프 표시하기

일괄 호출을 완료하기 위해, 질문과 그 질문에 대한 근거를 포함한 데이터프레임을 정의할 수 있습니다:

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 )로 사용됩니다.

다음 예와 같이 호출하면 결과가 생성됩니다

테이블 2. 일괄 호출 결과
이름 메소드 RECORD_ID 도구 이름 실행 횟수
답변 유사성 sentence_bert_mini_lm 0.921843 0 generate_node 1
충실성 sentence_bert_mini_lm 0.887591 0 generate_node 1
툴 대기 시간 (s) 3.420483 0 generate_node 1
관련성 sentence_bert_mini_lm 0.707973 0 retrieval_node 1
툴 대기 시간 (s) 0.777236 0 retrieval_node 1
답변 유사성 sentence_bert_mini_lm 0.909655 1 generate_node 1
충실성 sentence_bert_mini_lm 0.783347 1 generate_node 1
툴 대기 시간 (s) 1.327022 1 generate_node 1
관련성 sentence_bert_mini_lm 0.706106 1 retrieval_node 1
툴 대기 시간 (s) 0.936945 1 retrieval_node 1
답변 유사성 sentence_bert_mini_lm 0.864697 2 generate_node 1
충실성 sentence_bert_mini_lm 0.868233 2 generate_node 1
툴 대기 시간 (s) 2.326283 2 generate_node 1
관련성 sentence_bert_mini_lm 0.763274 2 retrieval_node 1
툴 대기 시간 (s) 0.842586 2 retrieval_node 1

자세한 내용은 샘플 노트북을 참고하세요.

상위 주제: Python SDK를 이용한 지표 계산