코드를 생성하는 AI 모델을 평가할 때는 응답이 타당한지 확인하는 것만으로는 충분하지 않습니다. 생성된 코드가 실제로 유효한 문법을 가지고 있고 올바른 형식을 따르는지도 검증해야 합니다. 이때 코드 기반 채점이 필요합니다.
코드 채점 작동 방식
코드 채점은 AI가 생성한 응답의 두 가지 핵심 측면을 검증합니다:

- 형식 - 응답은 설명 없이 요청된 코드 유형(Python, JSON, 또는 Regex)만 반환해야 합니다
- 유효한 문법 - 생성된 코드는 의도한 언어로 실제로 올바르게 파싱되어야 합니다
- 작업 수행 - 응답은 요청된 내용을 직접적으로 다루어야 하며 정확해야 합니다
처음 두 기준은 코드 채점기가 처리하며, 작업 수행 여부는 모델 채점기가 평가합니다. 이 둘이 함께 작동하여 종합적인 평가를 제공합니다.
문법 검증 함수
생성된 코드의 문법이 유효한지 확인하기 위해, 출력을 파싱하려고 시도하는 세 가지 헬퍼 함수를 만들 수 있습니다:

각 함수는 텍스트를 해당 형식으로 파싱하려고 시도합니다. 파싱이 성공하면 완벽한 점수인 10점을 반환합니다. 오류와 함께 실패하면 문법이 유효하지 않은 것이며 0점을 반환합니다.
데이터셋 형식 요구사항
코드 채점기가 어떤 검증기를 사용해야 하는지 알 수 있도록, 테스트 케이스에는 예상되는 출력 형식을 명시해야 합니다:
예시 출력 구조에 이 형식 필드를 추가하여 데이터셋 생성 프롬프트가 이를 자동으로 포함하도록 업데이트할 수 있습니다.
프롬프트 명확성 개선
AI 모델로부터 더 나은 결과를 얻으려면, 예상되는 출력 형식에 대해 프롬프트 지침을 더 구체적으로 작성하세요:
* Respond only with Python, JSON, or a plain Regex
* Do not add any comments or commentary or explanation또한 코드 블록이 포함된 미리 채워진 어시스턴트 메시지를 사용하여 모델이 원시 코드만 반환하도록 유도할 수도 있습니다:
이렇게 하면 Claude가 Python, JSON, Regex 중 어떤 것인지 사전에 명시하지 않고도 코드 콘텐츠 생성을 시작하도록 지시할 수 있습니다.
점수 결합
마지막 단계는 모델 채점기 점수와 코드 채점기 점수를 병합하는 것입니다. 간단한 방법은 평균을 구하는 것입니다:
이렇게 하면 콘텐츠 품질과 기술적 정확성에 동등한 가중치를 부여합니다. 특정 사용 사례에서 무엇이 더 중요한지에 따라 이러한 가중치를 조정할 수 있습니다.
구현 테스트하기
코드 채점을 구현한 후에는 평가를 실행하여 기준 점수를 얻으세요. 점수 자체가 본질적으로 좋거나 나쁜 것은 아닙니다 - 중요한 것은 프롬프트를 개선함으로써 점수를 향상시킬 수 있는지 여부입니다. 이를 통해 주관적인 평가에 의존하는 대신 프롬프트 엔지니어링 진행 상황을 정량적으로 측정할 수 있는 방법을 얻게 됩니다.