벤치마크 · coding

DS-1000

0 결과 0 모델

DS-1000은 Stack Overflow에서 수집한 1000개의 실제 데이터 사이언스 코딩 문제로 이루어진 벤치마크로, 7개의 Python 라이브러리(NumPy, Pandas, SciPy, scikit-learn, PyTorch, TensorFlow, Matplotlib)를 다룹니다. 모델이 각 문제를 올바르게 해결하는 코드를 생성하는지를 측정하며, pass@1 실행 정확도로 보고합니다.

자세히 보기
예시
대표적인 항목은 특정 라이브러리로 무언가를 하는 방법에 대한 자연어 질문입니다. 예를 들어 Pandas DataFrame 필터링이나 형태 변환, NumPy 배열 연산, Matplotlib 플롯 등이며, 모델이 완성해야 하는 시작 코드 컨텍스트가 함께 제공됩니다(Completion과 Insertion 두 형식으로 제공).
채점 방식
지표는 pass@1 실행 정확도입니다. 생성된 각 솔루션은 숨겨진 테스트 케이스로 실행되며, 모든 테스트를 통과하고 surface-form 제약(필요한 API가 사용되고 금지된 우회가 없는지 regex로 확인)을 만족할 때만 해결로 집계됩니다. 점수는 1000개 문제 중 해결된 비율입니다.
검증 방식
수용은 완전 자동입니다. 완성된 프로그램을 샌드박스에서 실행하고, 그 출력을 테스트 케이스에 대한 기능적 정확성과 surface-form 제약을 함께 검사합니다. 이 다기준 검사는 오수용률과 오기각률을 낮게 유지하도록 설계되었으며, 문제는 암기를 줄이기 위해 Stack Overflow 원문에서 변형(perturb)되었습니다.
왜 중요한가
합성 퍼즐이 아니라 현실적이고 일상적인 데이터 사이언스 코딩 요구를 반영하고, 널리 쓰이는 7개 라이브러리를 다루며, 신뢰할 수 있는 실행 기반 채점 덕분에 실무 DS 작업에서 코드 생성 모델을 평가하는 공통 잣대가 됩니다.
예제 풀이
문제
문제: 숫자형 열 'value'가 있는 Pandas DataFrame df가 주어졌을 때, 'value'가 해당 열의 평균보다 큰 행만 포함하는 DataFrame을 만드세요. <code> import pandas as pd df = pd.DataFrame({'value': [1, 5, 3, 9, 2]}) </code> BEGIN SOLUTION — 답을 result에 할당하세요. (예시일 뿐 공식 문항의 축자 인용이 아닙니다.)
해답
result = df[df['value'] > df['value'].mean()]
풀이
불리언 마스킹으로 'value'가 df['value'].mean()을 초과하는 행을 남깁니다. 하네스는 완성된 스크립트를 실행하고 result를 기대되는 DataFrame과(예: pandas 테스트 유틸리티로) 비교하며, surface-form 제약은 이것이 진짜 Pandas 해법임을 확인합니다. 실행 결과에 따라 pass/fail로 채점됩니다.

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