- Python
- TypeScript
Scorer는 평가 중에
weave.Evaluation 오브젝트에 전달됩니다. Weave에는 두 가지 유형의 Scorer가 있습니다.- 함수 기반 Scorer:
@weave.op데코레이터가 지정된 간단한 Python 함수입니다. - 클래스 기반 Scorer: 더 복잡한 평가를 위해
weave.Scorer를 상속받는 Python 클래스입니다.
나만의 Scorer 만들기
함수 기반 Scorer
- Python
- TypeScript
이들은 dictionary를 반환하고 평가가 실행되면
@weave.op 데코레이터가 지정된 함수입니다. 다음과 같은 간단한 평가에 적합합니다.evaluate_uppercase는 텍스트가 모두 대문자인지 확인합니다.클래스 기반 Scorer
- Python
- TypeScript
추가적인 Scorer 메타데이터를 추적해야 하거나, LLM 평가자를 위해 다양한 프롬프트를 시도하거나, 여러 함수 호출을 수행해야 하는 등 더 고급 평가가 필요한 경우 이 클래스는 요약본을 원문과 비교하여 품질이 얼마나 좋은지 평가합니다.
Scorer 클래스를 사용할 수 있습니다.요구 사항:weave.Scorer를 상속받습니다.@weave.op데코레이터가 지정된score메소드를 정의합니다.score메소드는 반드시 dictionary를 반환해야 합니다.
Scorer 작동 방식
Scorer 키워드 인수
- Python
- TypeScript
Scorer는 AI 시스템의 출력값과 Datasets 행의 입력 데이터 모두에 엑세스할 수 있습니다.Weave
때로는 이제
- 입력: “label”이나 “target” 컬럼과 같이 Datasets 행의 데이터를 Scorer에서 사용하려는 경우, Scorer 정의에
label또는target키워드 인수를 추가하여 쉽게 사용할 수 있습니다.
score 클래스 메소드)의 파라미터 리스트는 다음과 같을 것입니다.Evaluation이 실행되면 AI 시스템의 출력값이 output 파라미터로 전달됩니다. 또한 Evaluation은 추가적인 Scorer 인수 이름을 Datasets 컬럼과 자동으로 일치시키려고 시도합니다. Scorer 인수나 Datasets 컬럼을 커스터마이징하는 것이 어려운 경우, 아래에 설명된 컬럼 매핑을 사용할 수 있습니다.- 출력: AI 시스템의 출력값에 엑세스하려면 Scorer 함수의 서명에
output파라미터를 포함하세요.
column_map을 사용한 컬럼 이름 매핑
때로는 score 메소드의 인수 이름이 Datasets의 컬럼 이름과 일치하지 않을 수 있습니다. 이럴 때 column_map을 사용하여 해결할 수 있습니다.클래스 기반 Scorer를 사용하는 경우, Scorer 클래스를 초기화할 때 Scorer의 column_map 속성에 dictionary를 전달하세요. 이 dictionary는 score 메소드의 인수 이름을 Datasets의 컬럼 이름에 {scorer_keyword_argument: dataset_column_name} 순서로 매핑합니다.예시:score 메소드의 text 인수는 news_article Datasets 컬럼의 데이터를 받게 됩니다.참고:- 컬럼을 매핑하는 또 다른 방법은
Scorer를 서브클래싱하고 컬럼을 명시적으로 매핑하도록score메소드를 오버로드하는 것입니다.
Scorer의 최종 요약
- Python
- TypeScript
평가 중에 Scorer는 Datasets의 각 행에 대해 계산됩니다. 평가에 대한 최종 점수를 제공하기 위해 출력값의 반환 유형에 따른
auto_summarize를 제공합니다.- 수치형 컬럼에 대해서는 평균이 계산됩니다.
- 불리언(Boolean) 컬럼에 대해서는 개수와 비율이 계산됩니다.
- 그 외의 컬럼 유형은 무시됩니다.
Scorer 클래스의 summarize 메소드를 오버라이드하여 최종 점수를 계산하는 나만의 방식을 제공할 수 있습니다. summarize 함수는 다음을 요구합니다.- 단일 파라미터
score_rows: 이는 Datasets의 단일 행에 대해score메소드가 반환한 점수들을 담고 있는 dictionary들의 리스트입니다. - 요약된 점수를 포함하는 dictionary를 반환해야 합니다.
이 예시에서 기본 auto_summarize는 True의 개수와 비율을 반환했을 것입니다.
더 자세히 알고 싶다면 CorrectnessLLMJudge의 구현을 확인하세요.Call에 Scorer 적용하기
Weave op에 Scorer를 적용하려면 작업 결과와 추적 정보에 모두 엑세스할 수 있는.call() 메소드를 사용해야 합니다. 이를 통해 Scorer 결과를 Weave 데이터베이스의 특정 Call과 연결할 수 있습니다.
.call() 메소드 사용법에 대한 자세한 내용은 Calling Ops 가이드를 참조하세요.
- Python
- TypeScript
기본적인 예시는 다음과 같습니다.동일한 Call에 여러 Scorer를 적용할 수도 있습니다.참고:
- Scorer 결과는 Weave 데이터베이스에 자동으로 저장됩니다.
- Scorer는 메인 작업이 완료된 후 비동기적으로 실행됩니다.
- UI에서 Scorer 결과를 확인하거나 API를 통해 쿼리할 수 있습니다.
preprocess_model_input 사용하기
preprocess_model_input 파라미터를 사용하여 평가 중에 Datasets 예시가 모델에 전달되기 전에 수정할 수 있습니다.
사용법 및 예시는 평가 전 데이터셋 행 형식을 맞추기 위해 preprocess_model_input 사용하기를 참조하세요.
점수 분석
이 섹션에서는 단일 Call, 여러 Call, 그리고 특정 Scorer에 의해 점수가 매겨진 모든 Call의 점수를 분석하는 방법을 보여줍니다.단일 Call의 점수 분석
단일 Call API
단일 Call에 대한 호출 내역을 검색하려면get_call 메소드를 사용합니다.
단일 Call UI

여러 Call의 점수 분석
여러 Call API
여러 Call에 대한 호출 내역을 검색하려면get_calls 메소드를 사용합니다.
여러 Call UI

특정 Scorer로 점수가 매겨진 모든 Call 분석
Scorer별 모든 Call API
특정 Scorer에 의해 점수가 매겨진 모든 Call을 검색하려면get_calls 메소드를 사용합니다.
Scorer별 모든 Call UI
마지막으로, Scorer에 의해 점수가 매겨진 모든 Call을 보고 싶다면 UI에서 Scorers 탭으로 이동하여 “Programmatic Scorer” 탭을 선택합니다. 해당 Scorer를 클릭하여 Scorer 상세 페이지를 엽니다.
Scores 아래의 View Traces 버튼을 클릭하여 해당 Scorer로 점수가 매겨진 모든 Call을 확인합니다.

