소개
시도하고자 했던 것과 그 이유를 알려주세요.
거래처 카톡 주문을 자동으로 읽어주는 프로그램을 만들면서, 믿고 쓸 수 있는지 확인하려고 테스트 문제 29개를 만들었습니다. 채점은 파이썬 코드가 자동으로 합니다.
그런데 걸리는 게 하나 있었습니다. 코드 채점기는 제가 정해둔 규칙만 검사합니다. 그 규칙 자체가 틀렸으면요? 채점기는 틀린 줄도 모르고 계속 틀립니다. 확인하려면 같은 답안을 다른 눈으로도 읽혀서 맞춰봐야 합니다.
그래서 AI를 두 번째 채점자로 세웠습니다. 다만 채점하는 AI도 틀리니까, 채점을 맡기기 전에 시험부터 보게 했습니다.
진행 방법
어떤 도구를 사용했고, 어떻게 활용하셨나요?
Tip: 사용한 프롬프트 전문을 꼭 포함하고, 내용을 짧게 소개해 주세요.
Tip: 활용 이미지나 캡처 화면을 꼭 남겨주세요.
Tip: 코드 전문은 코드블록에 감싸서 작성해주세요. ( / 을 눌러 '코드 블록'을 선택)
같은 답안 29장을 두 채점자에게 줬습니다. 한쪽은 제가 짠 코드 채점기, 다른 쪽은 같은 채점 규칙서를 글로 읽은 클로드(Sonnet)입니다. 호출은 클로드 코드 헤드리스(claude -p)로 했고, 채점 규칙서를 프롬프트에 그대로 넣었습니다.
원칙 두 개를 지켰습니다. 채점자는 응시자보다 강한 모델로 쓰기(답안은 Haiku, 채점은 Sonnet). 그리고 자기가 쓴 답안은 채점시키지 않기(AI는 자기 답에 후하다는 편향이 알려져 있습니다).
채점관 프롬프트 전문과 코드는 저장소에 올려뒀습니다: github.com/ramses203/llm-test-harness 의 judge.py
결과와 배운 점
배운 점과 나만의 꿀팁을 알려주세요.
과정 중에 어떤 시행착오를 겪었나요?
도움이 필요한 부분이 있나요?
앞으로의 계획이 있다면 들려주세요.
29장 중 27장은 두 채점자의 판정이 똑같았습니다. 갈린 2장을 뜯어봤는데, 두 장 다 AI가 맞고 제 코드가 틀려 있었습니다.
하나는 답안이 "어느 뚜껑인지 확인해 주세요"라고 물어본 건인데, 제 코드는 이걸 "주문을 놓쳤다"로 벌점 처리하고 있었습니다. 놓친 게 아니라 잡아서 물어본 건데요. 다른 하나는 코드가 답안지의 정해진 칸만 읽어서, 여백 메모에 적힌 확인 요청을 못 보고 있었습니다. AI는 답안 전체를 읽어서 둘 다 잡아냈습니다.
둘 다 고치고 다시 대조하니 29장 전부 판정이 일치했습니다. 그리고 채점기를 고치니 이미 발표했던 점수가 바뀌었습니다. 모델도 답안도 그대로인데요. 점수를 말할 때는 어느 채점기로 매긴 점수인지가 붙어야 한다는 걸 배웠습니다.
배운 것 세 가지입니다.
채점을 AI한테 맡겨도 됩니다. 단, 맡기기 전에 기존 채점 방식과 대조부터 해보세요. 저는 그 대조에서 제 버그 2개를 잡았습니다.
코드는 정해진 칸만 읽고 AI는 전체를 읽어서, 둘을 겹치면 서로의 사각지대가 메워집니다.
표본이 좋으면 일치율은 저절로 높게 나옵니다. 29장 중 26장이 무결점이라 93%가 나왔던 거고, 정말 어려운 판정은 결점 있는 소수였습니다.
도움 받은 글 (옵션)
참고한 지피터스 글이나 외부 사례를 알려주세요.
Hamel Husain의 Your AI Product Needs Evals: hamel.dev/blog/posts/evals/
전체 과정은 블로그 연재로 정리하고 있습니다 (이번 글이 8편): velog.io/@ramses203/llm-judge-caught-my-grader-bugs
비슷한 검증을 해보신 분 있으면 이야기 나누고 싶습니다.