🧪

AI 평가 도구 카탈로그 — evaluate, lm-eval-harness, RAGAS, DeepEval

단일 지표 측정부터 LLM 벤치마크, RAG 평가, 자동 테스트 파이프라인까지

평가 도구도 용도가 다르다

도구 용도 비유
evaluate 단일 지표 측정 체온계 (체온 하나 측정)
lm-eval-harness LLM 벤치마크 종합 건강검진 (수십 개 항목)
RAGAS RAG 파이프라인 평가 특정 기능 검사 (RAG 전용)
DeepEval AI 앱 자동 테스트 CI/CD 테스트 (자동화)

1. evaluate (HuggingFace) — 체온계

가장 기본. 지표 하나를 측정한다.

pip install evaluate

from evaluate import load
metric = load("accuracy")
result = metric.compute(predictions=[1,0,1], references=[1,0,0])
# → {'accuracy': 0.67}

지원 지표: accuracy, f1, bleu, rouge, cer, wer, bertscore 등 수십 개.

언제 쓰나: 파인튜닝 중 Trainer에 넣어서 에폭마다 측정. 가장 자주 쓴다.

2. lm-eval-harness (EleutherAI) — 종합 건강검진

LLM을 수십 개 벤치마크로 한번에 평가한다. MMLU, HellaSwag, ARC, TruthfulQA 등.

pip install lm-eval

# GPT-2를 HellaSwag 벤치마크로 평가
lm_eval --model hf --model_args pretrained=gpt2 --tasks hellaswag --batch_size 8
# → hellaswag: acc=0.2893, acc_norm=0.3122

# Python에서
import lm_eval
results = lm_eval.simple_evaluate(
    model="hf",
    model_args="pretrained=gpt2",
    tasks=["hellaswag", "arc_easy"],
    batch_size=8
)
print(results["results"])

언제 쓰나: 내 LLM이 다른 모델 대비 어느 수준인지 비교할 때. HuggingFace Open LLM Leaderboard가 이 도구로 측정한다.

3. RAGAS — RAG 전용

RAG 파이프라인(검색 + 생성)의 품질을 평가한다.

pip install ragas

from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision
from datasets import Dataset

data = Dataset.from_dict({
    "question": ["우리 회사 연차가 며칠이야?"],
    "answer": ["연차는 15일입니다."],
    "contexts": [["우리 회사 연차는 15일이다. 반차 사용 가능."]],
    "ground_truth": ["15일"]
})

result = evaluate(data, metrics=[faithfulness, answer_relevancy, context_precision])
print(result)
# → {'faithfulness': 1.0, 'answer_relevancy': 0.95, 'context_precision': 1.0}

지표 뭘 측정
faithfulness 답변이 검색된 문서에 충실한가 (환각 없는지)
answer_relevancy 답변이 질문에 관련 있는가
context_precision 검색된 문서가 적절한가
context_recall 필요한 정보가 검색되었는가

언제 쓰나: RAG 파이프라인(문서 검색 + LLM 답변)을 만들었을 때. 검색 품질과 답변 품질을 동시에 평가.

4. DeepEval — AI 앱 자동 테스트

pytest처럼 AI 출력을 자동으로 테스트한다.

pip install deepeval

from deepeval import assert_test
from deepeval.test_case import LLMTestCase
from deepeval.metrics import AnswerRelevancyMetric

test_case = LLMTestCase(
    input="우리 회사 휴가 정책이 뭐야?",
    actual_output="연차는 15일이고 반차도 가능합니다.",
    retrieval_context=["연차 15일, 반차 가능, 3일 전 신청"]
)

metric = AnswerRelevancyMetric(threshold=0.7)
assert_test(test_case, [metric])
# → PASSED (relevancy: 0.92 > threshold: 0.70)

# pytest처럼 실행
deepeval test run test_chatbot.py

언제 쓰나: AI 기반 제품(챗봇, QA 등)의 품질을 CI/CD에서 자동 검증할 때. 코드 테스트의 AI 버전.

도구 선택 가이드

상황 도구
파인튜닝 중 정확도 추적 evaluate
내 LLM이 몇 점인지 lm-eval-harness
RAG 파이프라인 품질 RAGAS
AI 앱 자동 테스트 (CI/CD) DeepEval
OCR/STT 오류율 evaluate (cer, wer)
음원 분리 품질 mir_eval

핵심 개념

1

evaluate — pip install evaluate. 지표 하나 측정. Trainer에 넣어서 사용

2

lm-eval-harness — pip install lm-eval. LLM을 수십 개 벤치마크로 종합 평가

3

RAGAS — pip install ragas. RAG의 검색 품질 + 답변 품질 동시 평가

4

DeepEval — pip install deepeval. pytest처럼 AI 출력을 자동 테스트

사용 사례

파인튜닝 품질 관리 — evaluate로 에폭마다 정확도/CER 추적 LLM 리더보드 — lm-eval-harness로 MMLU/HellaSwag 점수 측정 RAG 챗봇 검증 — RAGAS로 환각 비율, 검색 정확도, 답변 관련성 측정