[13. Langchain][RAG] RAG evaluation (250618 수업)

해피해피슈크림·2025년 6월 22일

LLM 모델의 RAG 성능을 평가한다. RAGAS 평가지표를 이용해 평가한다.
질문-답변 형식 평가 데이터셋 생성 -> RAG Chain 호출 -> 성능 측정 순서이다.


✅ RAG 평가 전체 흐름 (RAGAS 기준)

1. 평가용 질문-정답 데이터셋 생성

  • 목적: 평가할 질문(user_input)과, 그 질문에 대한 기준 정답(reference), 그리고 참조 컨텍스트(qa_context)를 포함한 데이터셋 생성
  • 방법: 문서(Context)를 기반으로 LLM을 통해 자연스러운 Q&A 쌍을 생성
    JsonOutputParser를 통해 EvalSchema(user_input, reference, qa_context) 형식으로 저장

2. RAG 모델 응답 생성

  • 과정:

    • user_inputrag_chain에 입력해 실제 RAG 모델의 답변을 생성

    • 이때 rag_chain.invoke() 결과로 두 가지를 얻음:

      • llm_answer: RAG의 실제 응답
      • source_context: RAG가 해당 질문에 대해 참조한 문서 context
    • 이 데이터를 평가셋에 추가


3. RAGAS 평가 지표 계산

  • 입력:

    • user_input
    • reference (기준 정답)
    • llm_answer (RAG 출력)
    • source_context (RAG가 실제로 본 문서)
  • RAGAS 주요 지표:

    • faithfulness: 응답이 실제 context에 근거했는가?
    • answer_relevancy: 질문과 답변이 얼마나 잘 맞는가?
    • context_precision: context에서 꼭 필요한 정보만 사용했는가?
    • context_recall: context가 충분히 제공되었는가?

💡 객체 흐름 요약

단계역할관련 객체
Q&A 생성평가 데이터 생성EvalSchema, JsonOutputParser, PromptTemplate
RAG 응답실제 RAG chain 호출rag_chain.invoke()
RAGAS 평가성능 측정RagasMetric.eval() 또는 evaluate()

0개의 댓글