본문 바로가기
LLM

[LLM][RAG][RAGAS]RAG evaluationRAGAS

by Chandler.j 2024. 7. 25.
반응형

0. 개요

- RAGAS는 1. Generation 부분과 2. Retireval 부분을 평가하는 지표가 각 2개씩 대표적으로 있음


1. 신뢰성(Faithfulness)

  • 정의: 생성된 응답의 사실적 정확성을 평가.
  • 구성 요소:
    • 질문: 사용자로부터 받은 원래 질문.
    • 문맥: 질문에 대한 배경 정보 또는 참조 문서.
    • 생성된 응답: 모델이 생성한 답변.
    • 주장 집합: 생성된 응답에서 식별된 주장들.
  • 평가 방법:
    • Answer 로 부터 Claim 들을 생성 → 생성된 Claim 들이 context로 추론 가능한가?
    • 생성된 응답에서 주장들을 식별.
    • 각 주장을 문맥과 비교하여 추론 가능한지 판단.
    • 신뢰성 점수 계산: 신뢰성 점수=총 주장 수문맥에서 추론 가능한 주장 수
    • $$ \text{신뢰성 점수} = \frac{\text{문맥에서 추론 가능한 주장 수}}{\text{총 주장 수}} $$
  • 예시:
    • 질문: "프랑스는 어디에 위치하고 수도는 무엇인가요?"
    • 문맥: "프랑스는 서유럽에 위치하며, 수도는 파리입니다."
    • 생성된 응답: "프랑스는 서유럽에 있으며, 파리가 수도입니다."
    • 주장 집합: "프랑스는 서유럽에 있다", "파리가 수도이다"
    • 점수 계산: 두 주장 모두 문맥에서 추론 가능 → 신뢰성 점수 = 2/2 = 1

2. 답변 적합성(Answer Relevancy)

  • 정의: 생성된 답변이 질문과 얼마나 관련 있는지를 평가.
  • 구성 요소:
    • 질문: 사용자로부터 받은 원래 질문.
    • 문맥: 질문에 대한 배경 정보 또는 참조 문서.
    • 생성된 응답: 모델이 생성한 답변.
    • 인공 질문들: 생성된 답변에서 역으로 생성된 여러 질문들.
  • 평가 방법:
    • Answer 로 부터 generated Question 생성 → generated Question과 original Question 과의 유사성 판별
    • 생성된 답변에서 여러 인공 질문 생성.
    • 생성된 질문들과 원래 질문 간의 평균 코사인 유사도 계산:
    여기서 Egi는 생성된 질문 i의 임베딩, Eo는 원래 질문의 임베딩.
    • $$ \\text{답변 적합성} = \\frac{1}{N} \\sum_{i=1}^{N} \\cos(E_{g_i}, E_o) $$
  • 예시:
    • 질문: "프랑스는 어디에 위치하고 수도는 무엇인가요?"
    • 생성된 응답: "프랑스는 서유럽에 있습니다."
    • 인공 질문들:
      • "프랑스는 유럽의 어느 지역에 있습니까?"
      • "프랑스는 서유럽에 위치해 있습니까?"
      • "프랑스는 유럽의 서쪽에 위치합니까?"
    • 점수 계산: 각 인공 질문과 원래 질문 간의 코사인 유사도 계산 후 평균

3. 문맥 정밀도(Context Precision)

  • 정의: 검색된 문맥 중 얼마나 많은 관련 항목이 상위에 위치하는지를 평가.
  • 구성 요소:
    • 질문: 사용자로부터 받은 원래 질문.
    • 문맥: 질문에 대한 배경 정보 또는 참조 문서.
    • 생성된 응답: 모델이 생성한 답변.
    • 관련 항목들: 문맥에서 질문에 대한 답변에 직접적으로 관련된 항목들.
  • 평가 방법:
    • context → chunk → chunk 마다 유사한지 여부 판단 → 최종 precision 계산
    • 질문, 정답 및 문맥을 사용하여 계산.
    • 정밀도@K 계산:여기서 vk는 순위 k에서의 관련성 지표.
    • $$ \text{문맥 정밀도@K} = \frac{\sum_{k=1}^{K} \left( \text{정밀도@k} \times v_k \right)}{\ 상위 K 결과에서의 관련 항목 수} $$
  • 예시:
    • 질문: "프랑스는 어디에 위치하고 수도는 무엇인가요?"
    • 높은 정밀도 문맥:
      • "프랑스는 서유럽에 위치하며, 수도는 파리입니다."
      • "파리는 프랑스의 수도입니다."
    • 낮은 정밀도 문맥:
      • "프랑스는 와인과 고급 요리로 유명합니다."
      • "파리는 패션의 중심지입니다."
    • 점수 계산: 높은 정밀도 문맥이 상위에 위치 → 높은 점수

4. 문맥 재현율(Context Recall)

  • 정의: 질문에 답하기 위해 필요한 모든 관련 정보를 검색할 수 있는지를 평가.
  • 구성 요소:
    • 질문: 사용자로부터 받은 원래 질문.
    • 문맥: 질문에 대한 배경 정보 또는 참조 문서.
    • 생성된 응답: 모델이 생성한 답변.
    • 관련 항목들: 문맥에서 질문에 대한 답변에 직접적으로 관련된 항목들.
  • 평가 방법:
    • Ground truth를 sentence로 쪼갬 → sentence 가 context에 속하는지 판단
    • 정답과 검색된 문맥 간의 관련성을 비교하여 계산.
    • 재현율 계산:
    • $$ \text{문맥 재현율} = \frac{\ 정답과 일치하는 관련 문맥 수}{총 관련 문맥 수} $$
  • 예시:
    • 질문: "프랑스는 어디에 위치하고 수도는 무엇인가요?"
    • 문맥: "프랑스는 서유럽에 위치하며, 수도는 파리입니다."
    • 생성된 문맥:
      • "프랑스는 서유럽에 있습니다."
      • "파리가 수도입니다."
    • 점수 계산: 생성된 문맥이 모든 관련 정보를 포함 → 문맥 재현율 = 2/2 = 1

이 네 가지 메트릭은 LLM 및 RAG 응용 프로그램의 성능을 평가하고 개선하는 데 중요한 역할을 합니다.

이를 통해 사용자에게 신뢰성 있고 관련성 높은 응답을 제공할 수 있습니다.

자세한 설명은 RAGAS 공식 문서에서 확인할 수 있습니다.


TOP

Designed by 티스토리