AI 워크플로 평가하기
AI 워크플로 평가하기 (Evaluate an AI workflow)
이 튜토리얼에서는 Ragas로 AI 워크플로, 여기서는 간단한 커스텀 이메일 지원 티켓 분류(triage) 워크플로를 평가하는 방법을 배워요. 평가 주도 개발(evaluation-driven development)로 워크플로를 평가하고 개선하는 흐름을 익힐 수 있어요.
출처: 문서
본문
flowchart LR
A["Email Query"] --> B["Rule based Info Extractor"]
B --> C["Template + LLM Response"]
C --> D["Email Reply"]
먼저 이메일에서 필요한 정보를 추출하고, 올바른 템플릿으로 라우팅한 뒤 LLM으로 응답을 생성하는 간단한 워크플로를 테스트해요.
python -m ragas_examples.workflow_eval.workflow
다음으로 워크플로를 위한 몇 가지 샘플 이메일 질의와 기대 출력을 적고, 이를 CSV 파일로 변환해요.
import pandas as pd
dataset_dict = [
{
"email": "Hi, I'm getting error code XYZ-123 when using version 2.1.4 of your software. Please help!",
"pass_criteria": "category Bug Report; product_version 2.1.4; error_code XYZ-123; response references both version and error code"
},
{
"email": "I need to dispute invoice #INV-2024-001 for 299.99 dollars. The charge seems incorrect.",
"pass_criteria": "category Billing; invoice_number INV-2024-001; amount 299.99; response references invoice and dispute process"
}]
pd.DataFrame(dataset_dict).to_csv("datasets/test_dataset.csv", index=False)
워크플로의 성능을 평가하기 위해, 워크플로의 출력을 통과 기준(pass criteria)과 비교해 pass/fail을 돌려주는 LLM 기반 지표를 정의해요.
from ragas.metrics import DiscreteMetric
my_metric = DiscreteMetric(
name="response_quality",
prompt="Evaluate the response based on the pass criteria: {pass_criteria}. Does the response meet the criteria? Return 'pass' or 'fail'.\nResponse: {response}",
allowed_values=["pass", "fail"],
)
이제 테스트 데이터셋에서 워크플로를 실행하고 지표로 평가한 뒤 결과를 CSV 파일에 저장하는 평가 실험 루프를 작성해요.
from ragas import experiment
@experiment()
async def run_experiment(row):
response = workflow_client.process_email(
row["email"]
)
score = my_metric.score(
llm=llm,
response=response.get("response_template", " "),
pass_criteria=row["pass_criteria"]
)
experiment_view = {
**row,
"response": response.get("response_template", " "),
"score": score.value,
"score_reason": score.reason,
}
return experiment_view
이제 워크플로에 어떤 변경을 가하든 실험을 실행해서 성능에 어떤 영향을 주는지 확인할 수 있어요. 그리고 이전 결과와 비교해서 개선됐는지, 악화됐는지도 확인할 수 있어요.
예제를 처음부터 끝까지 실행하기
- OpenAI API 키 설정하기
export OPENAI_API_KEY="your_openai_api_key"
- 실험 실행하기
python -m ragas_examples.workflow_eval.evals
축하해요! Ragas로 첫 평가를 성공적으로 실행했어요. 이제 experiments/experiment_name.csv 파일을 열어 결과를 확인하면 돼요.