RAG 평가 방법 정리 - Songwooseok123/Study_Space GitHub Wiki
Retriever 평가
ragas score
default llm: gpt-3.5-turbo 으로 평가함
- context_recall, # 검색 평가: 정답을 n개의 문장으로 쪼개고, 각 문장이 retrieved context에 있는지 확인
- context_precision # 검색 평가: 검색된 k개의 context 중에 정답(ground truth 만드는 데 도움이 되는지 확인) 비율
위의 두가지 평가 방법 쓸 때, 검색 성능 평가할 때 정량적인 평가(context_recall,context_precision)가 들어갔다고 생각했는데, 사실 llm이 평가한거라서... 데이터에 관련(정답)문서랑 페이지 라벨이 있으므로, 이걸로 정량적인 평가도 해야겠다.
recall@k
recall
precision
Generation 평가
ragas score
-
answer_relevancy, # 생성 평가: 질문과 답변의 관계정도
-
faithfulness, # 생성 평가: 답변이 얼마나 Context에 근거한 정확한 답변인지
allganize 자동평가:
-
https://huggingface.co/datasets/allganize/RAG-Evaluation-Dataset-KO 의 Auto Evaluate Colab 참조
-
총 4개의 LLM Eval을 사용하여 평가한 후, voting 하여 "O" 혹은 "X"를 결정했습니다.
-
llm_evaluate() 함수
- 밑의 4가지 평가 결과를 종합
- O (정답) / X (오답)으로 통합 판단
- TonicAI : answer_similarity (threshold=4)
- OpenAI 모델을 사용하여 생성된 답변과 기준 정답의 유사도를 0~5 점수로 출력
- 평가 모델은 openai:/gpt-4o-mini 사용
- MLflow : answer_similarity/v1/score (threshold=4)
- 0~5 스칼라 출력인듯
- 평가 모델은 openai:/gpt-4o-mini 사용
- MLflow : answer_correctness/v1/score (threshold=4)
- 0~5 스칼라 출력 인듯
- 평가 모델은 openai:/gpt-4o-mini 사용
- Allganize Eval : answer_correctness/claude3-opus
- 생성된 답변의 정확성을 기준 답변과 비교하여 검증
- 맞으면 1, 틀리면 0 출력
- 평가 모델은 "claude-3-opus-20240229" 사용