- Python
- TypeScript
Scorers는 평가 중
weave.Evaluation 객체에 전달됩니다. Weave에는 두 가지 유형의 Scorers가 있습니다:- 함수 기반 Scorers:
@weave.op으로 데코레이션한 단순한 Python 함수 - 클래스 기반 Scorers: 더 복잡한 평가를 위해
weave.Scorer를 상속하는 Python 클래스
나만의 Scorers 만들기
함수 기반 Scorers
- Python
- TypeScript
이는 딕셔너리를 반환하는 평가를 실행하면
@weave.op 데코레이터가 적용된 함수입니다. 다음과 같은 단순한 평가에 적합합니다.evaluate_uppercase가 텍스트가 모두 대문자인지 확인합니다.클래스 기반 Scorers
- Python
- TypeScript
더 고급 평가가 필요하거나, 특히 추가적인 Scorer 메타데이터를 추적해야 하거나 LLM 평가기에 서로 다른 프롬프트를 사용해 보거나 여러 함수 call을 수행해야 하는 경우에는 이 클래스는 요약을 원문과 비교해 품질이 얼마나 좋은지 평가합니다.
Scorer 클래스를 사용할 수 있습니다.요구 사항:weave.Scorer를 상속합니다.@weave.op로 데코레이션된score메서드를 정의합니다.score메서드는 딕셔너리를 반환해야 합니다.
Scorers의 작동 방식
Scorers 키워드 인수
- Python
- TypeScript
Scorers는 AI 시스템의 출력과 데이터셋 행의 입력 데이터에 모두 접근할 수 있습니다.weave
경우에 따라 이제
- 입력: Scorer가 데이터셋 행의
"label"또는"target"열 같은 데이터를 사용하게 하려면, scorer 정의에label또는target키워드 인수를 추가하면 됩니다.
"label"이라는 열을 사용하려면, scorer 함수(또는 score 클래스 메서드)의 파라미터 목록은 다음과 같이 됩니다.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메서드를 오버로드해 열을 명시적으로 매핑하는 방법이 있습니다.
스코어링 프롬프트에서 ops의 변수에 액세스하기
| Variable | 설명 |
|---|---|
{article} | 입력 인수 article의 값 |
{max_length} | 입력 인수 max_length의 값 |
{inputs} | 모든 입력 인수의 JSON 딕셔너리 |
{output} | op의 반환 결과 |
scorer의 최종 요약
- Python
- TypeScript
평가 중에는 데이터셋의 각 행마다 scorer가 계산됩니다. 평가의 최종 점수를 제공하기 위해, 출력 반환 유형에 따라
auto_summarize를 제공합니다.- 숫자 열은 평균을 계산합니다
- 불리언 열은 개수와 비율을 계산합니다
- 그 밖의 열 유형은 무시됩니다
Scorer 클래스의 summarize 메서드를 재정의해 최종 점수를 계산하는 자신만의 방법을 제공할 수 있습니다. summarize 함수는 다음을 받습니다.- 단일 파라미터
score_rows: 딕셔너리 목록이며, 각 딕셔너리에는 데이터셋의 단일 행에 대해score메서드가 반환한 점수가 들어 있습니다. - 요약된 점수가 담긴 딕셔너리를 반환해야 합니다.
이 예제에서는 기본 auto_summarize가 True의 개수와 비율을 반환했을 것입니다.
더 자세히 알아보려면 CorrectnessLLMJudge의 구현을 확인하세요.Call에 Scorers 적용하기
.call()을 사용해야 합니다. 이렇게 하면 Scorer 결과를 Weave 데이터베이스의 특정 call과 연결할 수 있습니다.
.call() 사용 방법에 대한 자세한 내용은 Calling Ops 가이드를 참조하세요.
- Python
- TypeScript
다음은 기본 예제입니다:동일한 call에 여러 Scorers를 적용할 수도 있습니다:참고:
- Scorer 결과는 Weave 데이터베이스에 자동으로 저장됩니다
- Scorer는 메인 오퍼레이션이 완료된 후 비동기적으로 실행됩니다
- UI에서 Scorer 결과를 확인하거나 API를 통해 쿼리할 수 있습니다
preprocess_model_input 사용
preprocess_model_input 매개변수를 사용할 수 있습니다.
사용 방법과 예시는 평가 전에 preprocess_model_input을 사용해 데이터셋 행 형식 지정하기를 참조하세요.
점수 분석
단일 Call의 점수 분석하기
단일 Call API
get_call 메서드를 사용할 수 있습니다.
단일 Call UI

여러 Call의 점수 분석하기
여러 Call API
get_calls 방법을 사용할 수 있습니다.
여러 Call UI

특정 Scorer가 점수를 매긴 모든 Calls 분석
Scorer별 모든 Calls API
get_calls 방법을 사용할 수 있습니다.
Scorer UI에서 Scorer별 모든 call 보기
Programmatic Scorer 탭을 선택하세요. Scorer를 클릭해 Scorer 세부 정보 페이지를 여세요.

Scores 아래의 View Traces 버튼을 클릭해 Scorer가 점수를 매긴 모든 call을 확인하세요.

