Scorer는
weave.Evaluation
객체에 평가 중에 전달됩니다. Weave에는 두 가지 유형의 Scorer가 있습니다:- 함수 기반 Scorer:
@weave.op
로 장식된 간단한 Python 함수입니다. - 클래스 기반 Scorer:
weave.Scorer
를 상속받는 Python 클래스로 더 복잡한 평가에 사용됩니다.
자신만의 Scorer 만들기
바로 사용 가능한 Scorer
이 가이드에서는 사용자 정의 scorer를 만드는 방법을 보여주지만, Weave에는 다양한 predefined scorers와 local SLM scorers가 포함되어 있어 바로 사용할 수 있습니다. 다음과 같은 기능이 포함됩니다:
- 환각 감지
- 요약 품질
- 임베딩 유사성
- 유해성 감지(로컬)
- 컨텍스트 관련성 점수(로컬)
- 그리고 더 많은 기능들!
함수 기반 Scorer
이것들은 평가가 실행되면,
@weave.op
로 장식된 함수로 사전을 반환합니다. 다음과 같은 간단한 평가에 적합합니다:evaluate_uppercase
는 텍스트가 모두 대문자인지 확인합니다.클래스 기반 Scorer
더 고급 평가, 특히 추가 scorer 메타데이터를 추적하거나, LLM-평가자에 대해 다른 프롬프트를 시도하거나, 여러 함수 호출을 수행해야 할 때는 이 클래스는 요약이 원본 텍스트와 비교하여 얼마나 좋은지 평가합니다.
Scorer
클래스를 사용할 수 있습니다.Requirements:weave.Scorer
에서 상속받습니다.score
메서드를@weave.op
로 장식하여 정의합니다.score
메서드는 반드시 사전을 반환해야 합니다.
Scorer 작동 방식
Scorer 키워드 인수
Scorer는 AI 시스템의 출력과 데이터셋 행의 입력 데이터 모두에 접근할 수 있습니다.weave
때로는 이제
- Input: Scorer가 “label” 또는 “target” 열과 같은 데이터셋 행의 데이터를 사용하도록 하려면
label
또는target
키워드 인수를 Scorer 정의에 추가하여 쉽게 사용할 수 있습니다.
score
클래스 메서드)의 매개변수 목록이 다음과 같을 것입니다:Evaluation
가 실행되면, AI 시스템의 출력이 output
매개변수로 전달됩니다. Evaluation
는 또한 자동으로 추가 Scorer 인수 이름을 데이터셋 열과 일치시키려고 시도합니다. Scorer 인수나 데이터셋 열을 사용자 정의하는 것이 불가능한 경우, 열 매핑을 사용할 수 있습니다 - 자세한 내용은 아래를 참조하세요.- Output: Scorer 함수의 서명에
output
매개변수를 포함하여 AI 시스템의 출력에 접근할 수 있습니다.
column_map
때로는 score
메서드의 인수 이름이 데이터셋의 열 이름과 일치하지 않을 수 있습니다. column_map
를 사용하여 이 문제를 해결할 수 있습니다.클래스 기반 Scorer를 사용하는 경우, Scorer 클래스를 초기화할 때 column_map
속성에 사전을 전달합니다. 이 사전은 Scorer
메서드의 인수 이름을 데이터셋의 열 이름에 매핑합니다. 순서는 다음과 같습니다: score
.{scorer_keyword_argument: dataset_column_name}
.Example:text
인수가 score
메서드에서 news_article
데이터셋 열의 데이터를 받게 됩니다.Notes:- 열을 매핑하는 또 다른 동등한 옵션은
Scorer
를 서브클래싱하고score
메서드를 오버로드하여 열을 명시적으로 매핑하는 것입니다.
Scorer의 최종 요약
평가 중에 Scorer는 데이터셋의 각 행에 대해 계산됩니다. 평가에 대한 최종 점수를 제공하기 위해 출력 유형에 따라
auto_summarize
를 제공합니다.- 숫자 열에 대해 평균이 계산됩니다
- 부울 열에 대한 개수 및 비율
- 다른 열 유형은 무시됩니다
summarize
클래스의 Scorer
메서드를 재정의하고 최종 점수를 계산하는 자신만의 방법을 제공할 수 있습니다. summarize
함수는 다음을 기대합니다:- 단일 매개변수
score_rows
: 이것은 사전 목록으로, 각 사전에는 데이터셋의 단일 행에 대해score
메서드가 반환한 점수가 포함되어 있습니다. - 요약된 점수가 포함된 사전을 반환해야 합니다.
이 예제에서 기본 auto_summarize
는 True의 개수와 비율을 반환했을 것입니다.
더 자세히 알아보려면 CorrectnessLLMJudge의 구현을 확인하세요.호출에 스코러 적용하기
Weave 연산에 스코러를 적용하려면.call()
메서드를 사용해야 합니다. 이 메서드는 연산 결과와 추적 정보 모두에 접근할 수 있게 해줍니다. 이를 통해 스코러 결과를 Weave 데이터베이스의 특정 호출과 연결할 수 있습니다.
메서드 사용 방법에 대한 자세한 정보는 .call()
메서드에 대한 정보는 Calling Ops 가이드를 참조하세요.
다음은 기본 예제입니다:동일한 호출에 여러 스코러를 적용할 수도 있습니다:Notes:
- 스코러 결과는 자동으로 Weave 데이터베이스에 저장됩니다
- 스코러는 주요 연산이 완료된 후 비동기적으로 실행됩니다
- UI에서 스코러 결과를 확인하거나 API를 통해 쿼리할 수 있습니다
사용 preprocess_model_input
다음을 사용할 수 있습니다 preprocess_model_input
매개변수를 사용하여 평가 중에 모델에 도달하기 전에 데이터셋 예제를 수정할 수 있습니다.
사용 정보와 예제는 Using preprocess_model_input
to format dataset rows before evaluating를 참조하세요.
점수 분석
이 섹션에서는 단일 호출, 여러 호출 및 특정 스코러로 점수가 매겨진 모든 호출에 대한 점수를 분석하는 방법을 보여드립니다.단일 호출의 점수 분석
단일 호출 API
단일 호출에 대한 호출을 검색하려면get_call
메서드를 사용할 수 있습니다.
단일 호출 UI

여러 호출의 점수 분석
여러 호출 API
여러 호출에 대한 호출을 검색하려면get_calls
메서드를 사용할 수 있습니다.
여러 호출 UI

특정 스코러로 점수가 매겨진 모든 호출 분석
스코러별 모든 호출 API
특정 스코러로 점수가 매겨진 모든 호출을 검색하려면get_calls
메서드를 사용할 수 있습니다.
스코러별 모든 호출 UI
마지막으로, 스코러로 점수가 매겨진 모든 호출을 보려면 UI에서 Scorers 탭으로 이동하여 “Programmatic Scorer” 탭을 선택하세요. 스코러를 클릭하여 스코러 세부 정보 페이지를 엽니다.
View Traces
버튼을 클릭하세요 Scores
아래에서 스코러로 점수가 매겨진 모든 호출을 볼 수 있습니다.

