LLM의 down-stream task 중 code synthesis task의 평가 지표 중에 HumanEval pass@1, pass@10 같은 지표가 보인다.
값이 높으면 좋은 거라는 것 정도는 알겠는데 정확히 어떤 걸 의미하는 지표일까?
LLM의 여러 down-stream task 중에 “대한민국의 수도는?”이라는 Q&A의 정확도를 평가하는 것은 쉽다. 하지만 code synthesis의 경우는 다르다.
code synthesis의 경우, 사람이 질문에 대한 Test Case를 작성한다. 그리고 LLM이 생성한 code가 TC를 통과하는지 확인한다.
LLM이 질문 1개에 대해 1개의 code를 생성한 뒤에 TC 통과 여부를 점수로 계산하면 이것이 HumanEva pass@1가 된다.
k 개의 코드를 생성해서 그 중에 1개라도 TC를 통과하는 경우 HumanEval pass@k가 된다.
참고 자료: https://www.reddit.com/r/LocalLLaMA/comments/161waft/humaneval_as_an_accurate_code_benchmark/