toplogo
Inloggen

실제 코드 저장소와 일치하는 진화하는 코드 생성 벤치마크


Belangrijkste concepten
실제 세계 코드 저장소와 일치하는 코드 생성 벤치마크 EvoCodeBench를 제안하고, 이를 통해 10개의 인기 있는 대형 언어 모델의 코드 생성 능력을 평가한다.
Samenvatting

이 논문은 실제 세계 코드 저장소와 일치하는 새로운 코드 생성 벤치마크 EvoCodeBench를 제안한다. EvoCodeBench는 다음과 같은 특징을 가진다:

  1. 실제 세계 코드 저장소에서 수집된 데이터로 구성되어 있으며, 코드 및 의존성 분포가 실제 저장소와 일치한다.
  2. 요구사항, 참조 코드, 참조 의존성 등 포괄적인 주석을 제공한다.
  3. 기능 정확성(Pass@k)과 참조 의존성 재현율(Recall@k)을 평가하는 강력한 평가 지표를 사용한다.
  4. 데이터 누출을 방지하기 위해 지속적으로 업데이트되는 진화하는 벤치마크이다.

이 논문은 또한 EvoCodeBench를 기반으로 저장소 수준의 코드 생성 작업을 제안하고, 10개의 인기 있는 대형 언어 모델을 평가한다. 실험 결과, 이러한 모델들의 실제 세계 저장소에서의 코드 생성 능력이 기존 벤치마크에 비해 크게 떨어지는 것으로 나타났다. 이는 기존 벤치마크가 실제 개발 환경을 충분히 반영하지 못한다는 것을 보여준다. 또한 논문은 실패 사례를 분석하고 현존 모델의 단점을 요약하였다.

edit_icon

Samenvatting aanpassen

edit_icon

Herschrijven met AI

edit_icon

Citaten genereren

translate_icon

Bron vertalen

visual_icon

Mindmap genereren

visit_icon

Bron bekijken

Statistieken
실제 세계 500개 저장소의 평균 토큰 수는 110만 개이다. EvoCodeBench-2403의 평균 의존성 수는 3.46개이며, 실제 세계 500개 저장소의 평균 의존성 수는 3.22개이다.
Citaten
"EvoCodeBench는 실제 세계 코드 저장소와 일치하는 진화하는 코드 생성 벤치마크이다." "EvoCodeBench는 실제 세계 코드 저장소에서 수집된 데이터로 구성되어 있으며, 코드 및 의존성 분포가 실제 저장소와 일치한다." "EvoCodeBench는 기능 정확성(Pass@k)과 참조 의존성 재현율(Recall@k)을 평가하는 강력한 평가 지표를 사용한다."

Belangrijkste Inzichten Gedestilleerd Uit

by Jia Li,Ge Li... om arxiv.org 04-02-2024

https://arxiv.org/pdf/2404.00599.pdf
EvoCodeBench

Diepere vragen

질문 1

실제 세계 코드 저장소에서 코드 생성 능력을 향상시키기 위해 추가적인 접근 방식으로는 다양한 측면을 고려할 수 있습니다. 먼저, 더 많은 코드 컨텍스트를 활용하여 Large Language Models (LLMs)가 현재 저장소의 도메인 지식을 보다 잘 이해하고 프로그램을 생성할 수 있도록 하는 것이 중요합니다. 또한, 코드의 의도를 더 잘 파악할 수 있도록 자연어 요구사항을 보다 정확하게 생성하는 방법을 고려할 수 있습니다. 또한, 다양한 프로그래밍 언어를 지원하고 다국어 요구사항을 처리할 수 있는 다국어 EvoCodeBench를 구축하여 LLMs의 다양한 언어 및 환경에서의 성능을 평가할 수 있습니다.

질문 2

기존 벤치마크와 EvoCodeBench의 성능 차이가 발생하는 근본적인 이유는 주로 두 가지 측면에서 나타납니다. 첫째, EvoCodeBench는 실제 세계 코드 저장소에서 수집된 데이터를 기반으로 하며, 더 복잡한 코드 및 의존성을 포함하고 있기 때문에 기존 벤치마크보다 더 현실적인 시나리오를 제공합니다. 둘째, EvoCodeBench는 더 많은 코드 컨텍스트를 제공하고, 이를 통해 LLMs가 더 많은 도메인 지식을 활용할 수 있도록 합니다. 이러한 요인들이 기존 벤치마크와 EvoCodeBench의 성능 차이를 유발하는 근본적인 이유로 볼 수 있습니다.

질문 3

EvoCodeBench를 확장하여 다국어 및 다양한 프로그래밍 언어를 지원하는 방법으로는 먼저, 다양한 언어로 된 요구사항을 생성하고 이를 다양한 프로그래밍 언어로 된 코드로 변환하는 기능을 추가할 수 있습니다. 또한, 다국어 요구사항을 처리하고 다양한 언어로 된 코드를 생성할 수 있는 다국어 모델을 구축하여 EvoCodeBench의 다양성을 확대할 수 있습니다. 이를 통해 LLMs의 다양한 언어 및 프로그래밍 언어에서의 성능을 평가하고 비교할 수 있습니다.
0
star