프롬프트 평가 워크플로우를 구축할 때, 채점자(grader)는 출력 품질에 대한 객관적인 신호를 제공합니다. 채점자는 모델 출력을 받아 측정 가능한 형태의 피드백을 반환합니다 - 일반적으로 1-10 사이의 숫자로, 10은 높은 품질을, 1은 낮은 품질을 나타냅니다.
채점자의 유형

모델 출력을 채점하는 데는 세 가지 주요 접근 방식이 있습니다:
- 코드 채점자(Code graders) - 커스텀 로직을 사용하여 프로그래밍 방식으로 출력을 평가합니다
- 모델 채점자(Model graders) - 다른 AI 모델을 사용하여 품질을 평가합니다
- 인간 채점자(Human graders) - 사람이 직접 출력을 검토하고 점수를 매기도록 합니다
코드 채점자
코드 채점자를 사용하면 생각할 수 있는 모든 프로그래밍 방식의 검사를 구현할 수 있습니다. 일반적인 사용 사례는 다음과 같습니다:
- 출력 길이 확인
- 출력에 특정 단어가 포함되어 있는지/포함되어 있지 않은지 확인
- JSON, Python 또는 정규식(regex)에 대한 구문 검증
- 가독성 점수
유일한 요구 사항은 코드가 실행될 때 측정 가능한 신호를 반환해야 한다는 것입니다.
모델 채점자
모델 채점자는 원본 출력을 평가하기 위해 추가적인 API 요청을 수행합니다. 이 접근 방식은 다음을 평가하는 데 있어 엄청난 유연성을 제공합니다:
- 응답 품질
- 지시 사항 준수 품질
- 완전성
- 유용성
- 안전성
인간 채점자
인간 채점자는 가장 큰 유연성을 제공하지만 시간이 많이 소요되고 지루합니다. 다음을 평가하는 데 유용합니다:
- 전반적인 응답 품질
- 포괄성
- 깊이
- 간결성
- 관련성
평가 기준 정의하기

채점자를 구현하기 전에 명확한 평가 기준이 필요합니다. 코드 생성 프롬프트의 경우 다음에 초점을 맞출 수 있습니다:
- 형식(Format) - 설명 없이 Python, JSON 또는 Regex만 반환해야 합니다
- 유효한 구문(Valid Syntax) - 생성된 코드는 유효한 구문을 가져야 합니다
- 작업 준수(Task Following) - 응답은 정확한 코드로 사용자의 작업을 직접적으로 해결해야 합니다

처음 두 가지 기준은 코드 채점자와 잘 맞으며, 작업 준수는 유연성 때문에 모델 채점자에 더 적합합니다.
모델 채점자 구현하기
모델 채점자 함수를 구축하는 방법은 다음과 같습니다:
핵심은 점수와 함께 강점, 약점, 그리고 근거(reasoning)를 요청하는 것입니다. 이러한 맥락이 없으면 모델은 6점 정도의 중간 점수로 기본값을 설정하는 경향이 있습니다. ## 채점자 통합하기 모델 채점자를 사용하도록 테스트 케이스 함수를 업데이트하세요: ``` def run_test_case(test_case): output = run_prompt(test_case) # Get model evaluation model_grade = grade_by_model(test_case, output) score = model_grade["score"] reasoning = model_grade["reasoning"] return \{ "output": output, "test_case": test_case, "score": score, "reasoning": reasoning \} ``` `` ## 평균 점수 계산하기 전체 성능 지표를 얻으려면 모든 테스트 케이스에 대한 평균 점수를 계산하세요: ``` from statistics import mean def run_eval(dataset): results = [] for test_case in dataset: result = run_test_case(test_case) results.append(result) average_score = mean([result["score"] for result in results]) print(f"Average score: \{average_score\}") return results ``` ` 이를 통해 시간에 따른 프롬프트 성능을 추적할 수 있는 구체적이고 객관적인 지표를 얻을 수 있습니다. 모델 채점자는 다소 일관성이 없을 수 있지만, 프롬프트를 체계적으로 측정하고 개선하기 위한 출발점을 제공합니다. ` ``