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)
더 알아보기
- Metric Collections — 지표들을 묶어서 관리하고 실행하는 방법