Faithfulness

Faithfulness

RAG 기반 생성기의 답변이 검색된 컨텍스트에만 의존하는지 확인하고 싶다면 faithfulness 지표가 제격이에요. LLM-as-a-judge 방식으로 실제 출력의 주장들이 검색 컨텍스트에 뒷받침되는지 판별해서, 생성기가 없던 사실을 지어내거나 오정보를 제공하지는 않았는지 평가해요. 단일 턴(single-turn) RAG 평가용 지표예요.

출처: 문서

본문

개요

faithfulness 지표는 단일 턴(single-turn) RAG 지표로, LLM-as-a-judge를 사용해 생성기(generator)의 답변이 검색된 컨텍스트에만 의존하는지, 환각(hallucination)이나 오정보 없이 정확한지를 평가해요.

필수 파라미터(Required Parameters)

faithfulness 지표로 평가를 실행하려면 테스트 케이스에 반드시 넣어야 하는 파라미터예요:

input (string, required)

RAG 애플리케이션에 전달하는 입력 질의예요.

actual_output (string, required)

RAG 애플리케이션의 생성기가 만들어낸 최종 출력이에요.

retrieval_context (list of string, required)

리트리버가 주어진 입력에 대해 출력한 검색 컨텍스트로, 랭크 순서대로 정렬되어 있어요.

지표 파라미터(Metric Parameters)

metric collection에 faithfulness 지표를 추가할 때 설정할 수 있는 파라미터들이에요:

truths_extraction_limit (number)

실제 출력에서 추출할 truths(사실)의 최대 개수를 지정하는 정수예요.

penalize_ambiguous_claims (boolean)

모호한 주장(ambiguous claims)을 페널티로 처리할지 여부를 지정하는 불리언이에요.

계산 방식(How Is It Calculated?)

faithfulness 지표는 먼저 LLM을 사용해 실제 출력에서 개별 주장(claim)을 추출하고, 같은 LLM으로 그 주장 중 몇 개가 검색된 컨텍스트에 뒷받침되는지 확인해요.

$$ \text{Faithfulness} = \frac{\text{Number of Truthful Claims}}{\text{Total Number of Claims}} $$

어떤 주장이 검색 컨텍스트에 제시된 어떤 사실과도 모순되지 않으면 그 주장은 사실에 부합한다(truthful)고 봐요.

최종 점수는 실제 출력에서 발견된 사실에 부합하는 주장의 비율이에요.

사용법(Usage)

Confident AI에서 faithfulness 지표를 실행하려면 단일 턴 metric collection에 추가하면 돼요. 그러면 faithfulness 지표를 다음에 활용할 수 있어요:

  • 단일 턴 E2E 테스트(Single-turn E2E testing)
  • 단일 턴 컴포넌트 레벨 테스트(Single-turn component-level testing)
  • 트레이스와 스팬의 온라인·오프라인 평가(Online and offline evals for traces and spans)

더 알아보기