메인 콘텐츠로 건너뛰기
W&B Weave는 AI 애플리케이션 평가를 위한 여러 사전 정의된 Scorer를 제공합니다. 예를 들어 환각 탐지, 요약 품질 등이 있습니다. 이를 활용하면 평가를 빠르게 정의하고 애플리케이션의 출력에 점수를 매기는 데 도움이 됩니다. 이 페이지에서는 각 기본 제공 Scorer와 측정 항목, 그리고 평가에서 사용하는 방법을 설명합니다.
로컬 Scorer는 Weave Python SDK에서만 사용할 수 있습니다. Weave TypeScript SDK에서는 아직 지원되지 않습니다.TypeScript에서 Weave Scorer를 사용하려면 함수 기반 Scorer를 참조하세요.

설치

Weave의 사전 정의된 Scorer를 사용하려면 추가 의존성을 몇 가지 설치하세요:
LLM 평가기 LLM을 사용하는 사전 정의된 Scorer는 litellm과 자동으로 통합됩니다. LLM 클라이언트를 전달할 필요가 없습니다. 대신 model_id를 설정하세요. 지원되는 모델을 확인하세요.

HallucinationFreeScorer

이 Scorer는 입력 데이터를 바탕으로 AI 시스템의 출력에 할루시네이션이 있는지 확인합니다.
사용자 지정
  • Scorer의 system_promptuser_prompt 필드를 사용자 지정하여 “hallucination”의 의미를 원하는 방식에 맞게 정의하세요.
참고
  • score 메서드는 context라는 이름의 입력 컬럼을 필요로 합니다. 데이터셋에서 다른 이름을 사용하는 경우, column_map 속성을 사용하여 context를 데이터셋 컬럼에 매핑하세요.
다음 예시에서는 평가 컨텍스트에서 HallucinationFreeScorer를 사용합니다:

SummarizationScorer

LLM으로 요약문을 원문과 비교해 요약 품질을 평가합니다.
작동 방식 이 Scorer는 두 가지 방식으로 요약을 평가합니다.
  1. 엔터티 밀도: 요약에 언급된 고유 엔터티(예: 이름, 장소, 사물) 수를 요약의 전체 단어 수와 비교해 요약의 “정보 밀도”를 추정합니다. 엔터티 추출에는 LLM을 사용합니다. 이는 Chain of Density 논문에서 엔터티 밀도를 활용하는 방식과 유사합니다.
  2. 품질 등급: LLM 평가자가 요약을 poor, ok, excellent 중 하나로 평가합니다. 그런 다음 이 등급을 점수(poor는 0.0, ok는 0.5, excellent는 1.0)로 매핑해 집계 성능 평가에 사용합니다.
맞춤 설정
  • summarization_evaluation_system_promptsummarization_evaluation_prompt를 조정해 평가 프로세스를 맞춤 설정하세요.
참고
  • 이 Scorer는 내부적으로 litellm을 사용합니다.
  • score 방법은 원본 텍스트(요약 대상 텍스트)가 input 컬럼에 있어야 합니다. 데이터셋에서 다른 이름을 사용하는 경우 column_map 속성을 사용하세요.
다음 예시에서는 평가 컨텍스트에서 SummarizationScorer를 사용합니다.

OpenAIModerationScorer

OpenAIModerationScorer는 OpenAI의 Moderation API를 사용해 AI 시스템의 출력에 혐오 표현이나 음란물 등 허용되지 않는 콘텐츠가 포함되어 있는지 확인합니다.
작동 방식
  • AI의 출력을 OpenAI Moderation 엔드포인트로 전송하고, 콘텐츠가 플래그 대상으로 표시되었는지를 나타내는 구조화된 응답을 반환합니다.
다음 예시에서는 평가 컨텍스트에서 OpenAIModerationScorer를 사용합니다:

EmbeddingSimilarityScorer

EmbeddingSimilarityScorer는 AI 시스템의 출력과 데이터셋의 대상 텍스트 임베딩 간 코사인 유사도를 계산합니다. AI의 출력이 레퍼런스 텍스트와 얼마나 유사한지 측정할 때 사용하세요.
파라미터
  • threshold (float): 두 텍스트를 유사하다고 판단하는 데 필요한 최소 코사인 유사도 점수입니다(-1~1 사이, 기본값은 0.5).
다음 예시에서는 평가 컨텍스트에서 EmbeddingSimilarityScorer를 사용합니다:

ValidJSONScorer

ValidJSONScorer는 AI 시스템의 출력이 유효한 JSON인지 확인합니다. 출력이 JSON 형식일 것으로 예상되며 그 유효성을 확인해야 할 때 유용한 Scorer입니다.
다음 예시에서는 평가 맥락에서 ValidJSONScorer를 사용합니다:

ValidXMLScorer

ValidXMLScorer는 AI 시스템의 출력이 유효한 XML인지 확인합니다. XML 형식의 출력이 예상될 때 사용하세요.
다음 예시에서는 평가 맥락에서 ValidXMLScorer를 사용합니다:

PydanticScorer

PydanticScorer는 AI 시스템의 출력이 지정된 스키마 또는 데이터 구조를 따르도록, 그 출력이 Pydantic 모델에 맞는지 검증합니다.

RAGAS - ContextEntityRecallScorer

ContextEntityRecallScorer는 AI 시스템의 출력과 제공된 컨텍스트에서 모두 entity를 추출한 뒤 재현율 점수를 계산해 컨텍스트 재현율을 추정합니다. Retrieval Augmented Generation Assessment(RAGAS) 평가 라이브러리를 기반으로 합니다.
작동 방식
  • LLM을 사용해 출력과 컨텍스트에서 고유한 entity를 추출하고 재현율을 계산합니다.
  • 재현율은 컨텍스트의 중요한 entity 중 출력에 포함된 비율을 나타냅니다.
  • 재현율 점수가 포함된 딕셔너리를 반환합니다.
참고

RAGAS - ContextRelevancyScorer

ContextRelevancyScorer는 제공된 컨텍스트가 AI 시스템의 출력과 얼마나 관련성이 있는지 평가합니다. RAGAS 평가 라이브러리를 기반으로 합니다.
작동 방식
  • LLM을 사용해 컨텍스트가 출력과 얼마나 관련성이 있는지 0~1 척도로 평가합니다.
  • relevancy_score가 포함된 딕셔너리를 반환합니다.
참고 사항
  • 데이터셋에 context 컬럼이 있어야 합니다. 컬럼 이름이 다른 경우 column_map 속성을 사용하세요.
  • 관련성을 평가하는 방식을 정의하려면 relevancy_prompt를 사용자 지정하세요.
다음 예시에서는 평가 맥락에서 ContextEntityRecallScorerContextRelevancyScorer를 함께 사용합니다:
참고: 기본 제공 Scorer는 openai/gpt-4oopenai/text-embedding-3-small과 같은 OpenAI 모델에 맞게 조정되어 있습니다. 다른 공급자를 사용하려면 model_id 필드를 업데이트하세요. 예를 들어 Anthropic 모델을 사용하려면 다음과 같습니다: