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

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

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

처음 두 기준은 코드 채점기와 잘 맞으며, 작업 준수는 유연성 때문에 모델 채점기에 더 적합합니다.
모델 채점기 구현하기
모델 채점기 함수를 구축하는 방법은 다음과 같습니다:
핵심은 점수와 함께 강점, 약점, 그리고 근거를 요청하는 것입니다. 이러한 맥락이 없으면 모델은 6점 정도의 중간 점수로 기본값을 설정하는 경향이 있습니다. ## 채점을 워크플로우에 통합하기 채점기를 호출하도록 테스트 케이스 러너를 업데이트하세요: ``` def run_test_case(test_case): output = run_prompt(test_case) # Grade the output 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 ``` ` 이는 프롬프트를 반복 개선하면서 추적할 수 있는 객관적인 지표를 제공합니다. 모델 채점기는 다소 변덕스러울 수 있지만, 개선 사항을 측정하기 위한 일관된 기준선을 제공합니다. ` ``