Skip to main content
QUICK REVIEW

[논문 리뷰] DS-1000: A Natural and Reliable Benchmark for Data Science Code Generation

Yuhang Lai, Chengxi Li|arXiv (Cornell University)|2022. 11. 18.
Software Engineering Research인용 수 31
한 줄 요약

DS-1000은 StackOverflow에서 가져온 실제 데이터 과학 코딩 문제를 7개의 파이썬 라이브러리에 걸쳐 천 개 제공하며, 다중 기준 실행 기반 평가와 메모라이제이션 방어를 통해 평가된다. Codex-002 및 다른 모델들을 벤치마킹하며 개선 여지가 상당함을 보여준다.

ABSTRACT

We introduce DS-1000, a code generation benchmark with a thousand data science problems spanning seven Python libraries, such as NumPy and Pandas. Compared to prior works, DS-1000 incorporates three core features. First, our problems reflect diverse, realistic, and practical use cases since we collected them from StackOverflow. Second, our automatic evaluation is highly specific (reliable) -- across all Codex-002-predicted solutions that our evaluation accept, only 1.8% of them are incorrect; we achieve this with multi-criteria metrics, checking both functional correctness by running test cases and surface-form constraints by restricting API usages or keywords. Finally, we proactively defend against memorization by slightly modifying our problems to be different from the original StackOverflow source; consequently, models cannot answer them correctly by memorizing the solutions from pre-training. The current best public system (Codex-002) achieves 43.3% accuracy, leaving ample room for improvement. We release our benchmark at https://ds1000-code-gen.github.io.

연구 동기 및 목표

  • DS-1000을 StackOverflow에서 소싱한 실제 세계의 데이터 과학 코딩 문제 1,000개를 소개한다.
  • 함수 동작 및 표면 형식 검사를 포함한 신뢰할 수한 실행 기반 평가를 제공한다.
  • 문제를 교란하고 참조 해답을 교란시켜 메모라이제이션으로부터 방어한다.
  • 최신 코드 모델들을 평가하여 기준선을 설정하고 개선 영역을 확인한다.

제안 방법

  • StackOverflow에서 7개 라이브러리(NumPy, Pandas, TensorFlow, PyTorch, SciPy, Scikit-learn, Matplotlib)에 걸친 1000개 문제를 선별한다 ;
  • 실행 가능성과 모호성 해소를 위해 문제와 참조 해답을 재작성한다;
  • 기능적 정확성과 표면 형식 제약에 대한 테스트 케이스를 포함한 다중 기준 평가를 구현한다;
  • 메모라이제이션에 대한 방어를 위해 문제를 교란한다(표면, 의미, 어려운 재작성);
  • 자동 메트릭의 거짓 긍정/거짓 부정을 측정하기 위한 품질 검토 및 보정 작업을 수행한다;
  • Left-to-right Completion 및 Insertion(삽입) 형식을 모두 사용하여 Codex-002, CodeGen, InCoder를 벤치마크한다.

실험 결과

연구 질문

  • RQ1데이터 과학 코드 생성 벤치마크가 실제 문제에서의 자연스러운 의도와 맥락을 어떻게 반영할 수 있는가?
  • RQ2다중 기준, 실행 기반 평가가 데이터 과학 작업의 코드 생성 품질을 신뢰성 있게 측정할 수 있는가?
  • RQ3대형 코드 모델(Codex-002 등)이 DS-1000 문제에서 어느 정도 개선되며, 메모라이제이션이 성능에 어떻게 영향을 미치는가?
  • RQ4삽입(Insertion) 형식이 데이터 과학 코드 생성 작업에서 모델 성능을 향상시키는가?

주요 결과

형식모델PandasNumPyMatplotlibScikit-learnSciPyTensorFlowPyTorch전체
왼쪽에서 오른쪽으로 완성Codex-00226.543.157.044.831.839.341.839.2
왼쪽에서 오른쪽으로 완성Codex-0019.426.641.818.515.017.29.720.2
왼쪽에서 오른쪽으로 완성Codex-Cushman7.921.840.718.011.312.212.418.1
삽입Codex-00230.146.557.0*53.734.853.447.743.3
삽입InCoder-6B2.94.628.3*3.13.17.83.27.5
  • DS-1000은 7개 라이브러리에 걸친 1000개의 문제를 포함하며, 기저의 StackOverflow 문제 451개 및 문제당 1.6개의 테스트 케이스를 평균으로 보유한다.
  • 자동 평가가 패스 예측에 대해 샘플 수준에서 거짓 발견 비율이 1.8%로 낮아 신뢰성을 시사한다.
  • Codex-002 Insertion이 DS-1000에서 최고 평균 pass@1 43.3%를 달성하며, 다른 모델 대비 상당한 개선 여지가 있다.
  • 문제를 메모라이제이션 방어를 위해 교란하면 성능이 떨어지며, 이전 모델의 일부 성공이 메모라이제이션에 의해 좌우되었을 수 있음을 시사한다.
  • 삽입 형식이 일반적으로 Completion 형식보다 정확도가 높아 삽입 능력의 이점을 강조한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.