Skip to main content
Weave에서 Scorer는 AI 출력을 평가하고 평가 메트릭을 반환합니다. Scorer는 AI의 출력을 받아 분석한 뒤 결과를 딕셔너리로 반환합니다. 필요하면 입력 데이터를 레퍼런스로 사용할 수 있고, 평가에 대한 설명이나 추론 같은 추가 정보도 출력할 수 있습니다. 이 가이드는 AI 시스템 출력의 품질을 측정하려는 개발자를 대상으로 합니다. Scorer가 Weave 평가에서 어떤 역할을 하는지, Scorer를 직접 구축하는 방법, 개별 Call에 Scorer를 적용하는 방법, 결과 점수를 분석하는 방법을 설명합니다.
평가 시 Scorer를 weave.Evaluation 객체에 전달하세요. Weave는 두 가지 유형의 Scorer를 지원합니다.
  1. 함수 기반 Scorer: @weave.op로 데코레이트된 Python 함수입니다.
  2. 클래스 기반 Scorer: 더 복잡한 평가를 위해 weave.Scorer를 상속하는 Python 클래스입니다.
Scorer는 반드시 딕셔너리를 반환해야 합니다. 여러 메트릭이나 중첩된 메트릭을 반환할 수 있으며, LLM 평가자가 자신의 추론에 대해 작성한 텍스트처럼 숫자가 아닌 값도 반환할 수 있습니다.

나만의 Scorer 만들기

맞춤형 Scorer를 사용하면 기본 제공 Scorer로는 다룰 수 없는, 사용 사례에 특화된 평가 기준을 직접 정의할 수 있습니다. 다음 섹션에서는 Scorer를 정의하는 두 가지 방법을 설명합니다. 함수로 정의하는 방법과, 더 복잡한 로직이 필요할 때 클래스로 정의하는 방법입니다.
바로 사용할 수 있는 Scorer 이 가이드에서는 맞춤형 Scorer를 만드는 방법을 설명하지만, Weave는 바로 사용할 수 있는 사전 정의된 Scorer와 로컬 SLM Scorer도 제공합니다. 예를 들면 다음과 같습니다.

함수 기반 Scorer

함수 기반 Scorer는 @weave.op 데코레이터가 적용되어 딕셔너리를 반환하는 함수입니다. 다음과 같은 간단한 평가에 적합합니다.
평가를 실행하면 evaluate_uppercase가 텍스트가 모두 대문자인지 확인합니다.

클래스 기반 Scorer

Scorer 메타데이터를 추가로 추적하거나, LLM 평가자에 여러 프롬프트를 사용해 보거나, 여러 번의 함수 호출이 필요한 고급 평가에는 Scorer 클래스를 사용하세요.요구 사항:
  1. weave.Scorer를 상속하세요.
  2. @weave.op로 데코레이트된 score 메서드를 정의하세요.
  3. score 메서드는 딕셔너리를 반환해야 합니다.
예시:
이 클래스는 요약을 원본 텍스트와 비교하여 요약 품질을 평가합니다.

Scorer 작동 방식

이 섹션에서는 Scorer가 평가에서 데이터를 전달받는 방식, 데이터셋 열을 Scorer 인수에 매핑하는 방법, 점수화 프롬프트에서 op 변수를 참조하는 방법, 그리고 Weave가 행별 점수를 집계해 최종 결과를 도출하는 방식을 설명합니다.

Scorer 키워드 인수

Scorer는 AI 시스템의 출력과 데이터셋 행의 입력 데이터 모두에 액세스할 수 있습니다.
  • 입력: Scorer에서 데이터셋 행의 데이터(예: label 또는 target 열)를 사용하려면, Scorer 정의에 label 또는 target 키워드 인수를 추가하여 Scorer가 해당 데이터를 사용할 수 있게 하세요.
예를 들어 데이터셋의 label 열을 사용하려면 Scorer 함수(또는 score 클래스 메서드)의 매개변수 목록을 다음과 같이 작성합니다.
Weave Evaluation은 실행 시 AI 시스템의 출력을 output 매개변수에 전달합니다. 또한 Evaluation은 그 밖의 Scorer 인수 이름을 데이터셋 열과 자동으로 대응시키려고 시도합니다. Scorer 인수나 데이터셋 열을 수정하기 어렵다면 열 매핑을 사용할 수 있습니다. 자세한 내용은 다음 섹션을 참조하세요.
  • 출력: AI 시스템의 출력에 액세스하려면 Scorer 함수의 시그니처에 output 매개변수를 포함하세요.

column_map으로 열 이름 매핑하기

score 메서드의 인수 이름이 데이터셋의 열 이름과 일치하지 않을 때가 있습니다. 이럴 때는 column_map을 사용하면 됩니다.클래스 기반 Scorer를 사용한다면 Scorer 클래스를 초기화할 때 Scorer의 column_map 속성에 딕셔너리를 전달하세요. 이 딕셔너리는 score 메서드의 인수 이름을 데이터셋의 열 이름에 {scorer_keyword_argument: dataset_column_name} 순서로 매핑합니다.예시:
이제 score 메서드의 text 인수는 news_article 데이터셋 열의 데이터를 받습니다.참고:
  • Scorer를 서브클래싱하고 score 메서드를 오버로드하여 열을 명시적으로 매핑하는 방법도 같은 효과를 냅니다.

점수화 프롬프트에서 Op의 변수에 액세스하기

LLM-as-a-judge Scorer의 점수화 프롬프트에서는 Op의 변수를 참조할 수 있습니다. Scorer가 실행되면 Weave가 이 값을 자동으로 추출합니다. 예를 들어 다음과 같은 함수가 있다고 해 보겠습니다.
다음 변수를 사용할 수 있습니다. 점수화 프롬프트 예시:

Scorer의 최종 요약

평가 중에 Weave는 데이터셋의 각 행에 대해 Scorer를 계산합니다. 평가의 최종 점수를 산출하기 위해 Weave는 출력의 반환 유형에 따라 auto_summarize를 실행합니다.Scorer 클래스의 summarize 메서드를 재정의하면 최종 점수를 계산하는 방식을 직접 정의할 수 있습니다. summarize 함수의 요건은 다음과 같습니다.
  • 단일 매개변수 score_rows를 받습니다. 이 매개변수는 딕셔너리 목록이며, 각 딕셔너리에는 데이터셋의 한 행에 대해 score 메서드가 반환한 점수가 담겨 있습니다.
  • 요약된 점수를 담은 딕셔너리를 반환합니다.
활용 사례데이터셋의 최종 점수 값을 결정하기 전에 모든 행을 먼저 채점해야 할 때 유용합니다.
이 예제에서 기본 auto_summarize를 사용하면 True의 개수와 비율이 반환됩니다.
자세한 내용은 CorrectnessLLMJudge 구현을 참조하세요.

Call에 Scorer 적용하기

Scorer는 weave.Evaluation의 일부로 실행할 수 있을 뿐 아니라, 개별 Call에 직접 적용할 수도 있습니다. 이 방법은 프로덕션 트래픽에 점수를 매기거나 특정 Op 호출에 평가 메트릭을 첨부하려는 경우에 유용합니다. Weave Op에 Scorer를 적용하려면 .call() 메서드를 사용하세요. 이 메서드를 사용하면 오퍼레이션의 결과와 추적 정보에 모두 액세스할 수 있으므로, Scorer 결과를 Weave 데이터베이스의 특정 Call과 연결할 수 있습니다. .call() 메서드 사용에 대한 자세한 내용은 Op 호출하기 가이드를 참조하세요.
다음은 기본 예시입니다.
동일한 Call에 여러 Scorer를 적용할 수도 있습니다.
참고:
  • Weave는 Scorer 결과를 데이터베이스에 자동으로 저장합니다.
  • Scorer는 기본 오퍼레이션이 완료된 후 비동기적으로 실행됩니다.
  • Scorer 결과는 UI에서 확인하거나 API로 쿼리할 수 있습니다.
프로덕션 모범 사례와 전체 예제 등 Scorer를 가드레일이나 모니터로 사용하는 방법에 대한 자세한 내용은 가드레일 및 모니터 가이드를 참조하세요.

preprocess_model_input 사용

preprocess_model_input 매개변수를 사용하면 평가 중에 데이터셋 예시가 모델에 전달되기 전에 해당 예시를 수정할 수 있습니다. 사용 방법과 예시는 평가 전에 preprocess_model_input으로 데이터셋 행 서식 지정하기를 참조하세요.

점수 분석

Scorer가 실행된 후에는 모델 동작을 파악하거나 버전을 비교하기 위해 Scorer가 생성한 점수를 살펴봐야 하는 경우가 많습니다. 다음 섹션에서는 API와 Weights & Biases UI를 사용하여 단일 Call, 여러 Call, 그리고 특정 Scorer가 점수를 매긴 모든 Call의 점수를 분석하는 방법을 설명합니다.

단일 Call의 점수 분석하기

단일 Call API

단일 Call을 조회하려면 get_call 메서드를 사용하세요.

단일 Call UI

Call Scores 탭
Call details 패널의 Scores 탭에는 개별 Call의 점수가 표시됩니다.

여러 Call의 점수 분석하기

여러 Call API

여러 Call을 조회하려면 get_calls 메서드를 사용하세요.

여러 Call UI

여러 Call 탭
트레이스 table의 Scores 열에는 여러 Call의 점수가 표시됩니다.

특정 Scorer로 평가된 모든 Call 분석하기

Scorer별 모든 Call API

특정 Scorer로 평가한 모든 Call을 조회하려면 get_calls 메서드를 사용하세요.

UI에서 Scorer별 모든 Call 보기

마지막으로, 특정 Scorer가 점수를 매긴 모든 Call을 확인하려면 UI에서 Scorers 탭으로 이동한 다음 Programmatic Scorer 탭을 선택하세요. 원하는 Scorer를 클릭하면 Scorer 세부 정보 페이지가 열립니다.
Scorer 세부 정보 페이지
그런 다음 Scores 아래의 View Traces 버튼을 클릭하면 해당 Scorer가 점수를 매긴 모든 Call을 볼 수 있습니다.
Scorer 버전으로 필터링된 Call
기본적으로 현재 선택한 Scorer 버전으로 필터링됩니다. 버전 필터를 제거하면 Scorer의 모든 버전이 점수를 매긴 Call을 모두 볼 수 있습니다.
Scorer 이름으로 필터링된 Call
마지막 수정일 2026년 9월 30일