벤치마크 · coding

EvalPlus

0 결과 0 모델

EvalPlus는 HumanEval과 MBPP에 훨씬 많은 테스트 케이스를 추가해(HumanEval+와 MBPP+로) LLM이 생성한 코드의 정확성을 엄격하게 검증하며, 지표는 pass@k(보통 pass@1)입니다.

자세히 보기
예시
Python 함수 완성 과제: 함수 시그니처와 몇 가지 예시가 담긴 자연어 docstring이 주어지면 모델이 함수 본문을 작성하고, 이를 크게 확장된 테스트 묶음으로 실행합니다. 이 묶음은 원래 벤치마크가 놓쳤던 경계 사례(빈 입력, 경곗값, 큰 값)를 추가로 검사합니다.
채점 방식
지표는 pass@k이며 거의 항상 pass@1입니다. 생성된 코드가 모든 테스트(원래의 base 테스트와 새로운 plus 테스트)를 통과할 때만 해당 문제를 푼 것으로 셉니다. pass@k는 불편 추정량으로, n≥k 개 표본 중 c 개가 정답이면 1 − C(n−c, k)/C(n, k)이고, 보고 점수는 전체 집합에서 푼 문제의 비율입니다.
검증 방식
각 해답은 샌드박스에서 base+plus 전체 묶음에 대해 테스트별 타임아웃과 함께 실행되며, 모든 assertion을 통과해야만 인정됩니다. 추가 입력은 타입 인지 변이와 LLM 시딩으로 생성되고 검증된 참조 해답으로 걸러지므로, 'passed'는 모든 입력에서 참조 해답과 일치함을 뜻합니다.
왜 중요한가
HumanEval/MBPP의 원래 테스트 묶음은 너무 빈약해 그럴듯하지만 틀린 코드를 통과시켜 모델 정확도를 과대평가합니다. EvalPlus의 약 80×(HumanEval+)·약 35×(MBPP+) 큰 묶음은 이런 오류를 잡아내고 보통 pass@1을 몇 점 낮추므로, 코드 LLM 평가에서 더 신뢰할 수 있는 표준이 됩니다.
예제 풀이
문제
EvalPlus(HumanEval+) 스타일의 대표 문항 — 시그니처와 docstring으로 함수 본문을 완성하세요: ```python from typing import List def sum_even_at_odd_index(numbers: List[int]) -> int: """Return the sum of all even values located at odd indices. >>> sum_even_at_odd_index([3, 8, 7, 4, 5]) 12 >>> sum_even_at_odd_index([1, 3, 5]) 0 """ ```
해답
```python
def sum_even_at_odd_index(numbers: List[int]) -> int:
    return sum(n for i, n in enumerate(numbers) if i % 2 == 1 and n % 2 == 0)
```
풀이
이 해법은 enumerate로 리스트를 순회하며 홀수 인덱스(i % 2 == 1)에 있는 짝수(n % 2 == 0) 값만 남겨 더하는데, 이는 docstring의 두 예시는 물론 빈 리스트나 전부 홀수인 리스트 같은 경계 사례에도 부합합니다. 채점은 통과/실패이며, 함수는 base+plus 전체 묶음에서 실행되어 모든 테스트를 통과할 때만 그 문항이 인정됩니다.

이 벤치마크에 대해 아직 검증된 점수가 없습니다.