Skip to main content
QUICK REVIEW

[논문 리뷰] Project CodeNet: A Large-Scale AI for Code Dataset for Learning a Diversity of Coding Tasks

Ruchir Puri, David S. Kung|arXiv (Cornell University)|2021. 05. 25.
Advanced Malware Detection Techniques참고 문헌 34인용 수 37
한 줄 요약

Project CodeNet는 55개 프로그래밍 언어와 5억 줄 이상의 코드를 포함한 총 1,400만 개의 코드 샘플로 구성된 대규모이고 다양한 데이터셋을 제공하며, AI for Code 연구를 가속화하기 위해 설계되었습니다. 이 데이터셋은 코드 분류, 유사도 측정, 번역, 성능 최적화 등의 작업에 대한 벤치마킹을 가능하게 하며, 기능적 동치성 평가를 위한 통합된 테스트 세트와 머신러닝 모델에 직접 입력 가능한 전처리 도구를 제공합니다.

ABSTRACT

Advancements in deep learning and machine learning algorithms have enabled breakthrough progress in computer vision, speech recognition, natural language processing and beyond. In addition, over the last several decades, software has been built into the fabric of every aspect of our society. Together, these two trends have generated new interest in the fast-emerging research area of AI for Code. As software development becomes ubiquitous across all industries and code infrastructure of enterprise legacy applications ages, it is more critical than ever to increase software development productivity and modernize legacy applications. Over the last decade, datasets like ImageNet, with its large scale and diversity, have played a pivotal role in algorithmic advancements from computer vision to language and speech understanding. In this paper, we present Project CodeNet, a first-of-its-kind, very large scale, diverse, and high-quality dataset to accelerate the algorithmic advancements in AI for Code. It consists of 14M code samples and about 500M lines of code in 55 different programming languages. Project CodeNet is not only unique in its scale, but also in the diversity of coding tasks it can help benchmark: from code similarity and classification for advances in code recommendation algorithms, and code translation between a large variety programming languages, to advances in code performance (both runtime, and memory) improvement techniques. CodeNet also provides sample input and output test sets for over 7M code samples, which can be critical for determining code equivalence in different languages. As a usability feature, we provide several preprocessing tools in Project CodeNet to transform source codes into representations that can be readily used as inputs into machine learning models.

연구 동기 및 목표

  • AI for Code 분야의 발전을 위해 스케일링 가능하고 다양한 데이터셋이 점점 더 필요한 상황을 해결하며, 컴퓨터 비전 분야에서 ImageNet이 미친 영향을 모방합니다.
  • 대규모이고 고품질의 데이터셋을 통해 코드 추천, 코드 번역, 성능 최적화 분야의 연구를 가능하게 합니다.
  • 다양한 프로그래밍 언어 간 코드 동치성 평가를 위한 표준화된 테스트 세트를 제공하여 AI 모델의 신뢰성 있는 평가를 지원합니다.
  • 원시 소스 코드를 머신러닝 모델이 사용할 수 있는 구조화된 표현으로 변환하는 전처리 도구를 통해 머신러닝 파이프라인에 직접 통합할 수 있도록 합니다.

제안 방법

  • 공개된 GitHub 리포지토리에서 1,400만 개의 코드 샘플을 수집하여 55개 프로그래밍 언어와 5억 줄 이상의 코드를 포함합니다.
  • 프로그래밍 언어, 작업 유형(예: 분류, 유사도 측정) 및 성능 특성 등의 메타데이터를 포함하여 코드 샘플에 레이블을 붙입니다.
  • 기능적 동치성 평가를 위해 700만 개 이상의 코드 샘플에 대해 입력 및 출력 테스트 세트를 제공합니다.
  • 딥러닝 모델에 적합한 구조화된 표현으로 원시 소스 코드를 변환할 수 있는 전처리 도구를 개발합니다.
  • 다양한 오픈소스 프로젝트와 소프트웨어 개발 작업을 포함하여 데이터의 다양성을 확보합니다.
  • 코드 번역, 코드 검색, 성능 예측 등의 다양한 AI for Code 작업을 지원할 수 있도록 데이터셋을 구조화합니다.

실험 결과

연구 질문

  • RQ1대규모이고 다양한 데이터셋이 여러 작업에 걸쳐 AI for Code 분야의 진전을 크게 가속화할 수 있는가?
  • RQ2기존 AI 모델들이 Project CodeNet에서 훈련될 경우, 코드 분류, 유사도 탐지, 다국어 간 코드 번역 작업에서 얼마나 효과적인가?
  • RQ3Project CodeNet에 포함된 테스트 세트가 프로그래밍 언어 간 기능적 동치성 평가를 얼마나 향상시킬 수 있는가?
  • RQ4Project CodeNet의 전처리 도구가 코드를 딥러닝 파이프라인에 통합하는 데 얼마나 잘 기여하는가?
  • RQ5데이터셋의 규모와 다양성이 코드 관련 작업에서 AI 모델의 일반화 능력에 어떤 영향을 미치는가?

주요 결과

  • Project CodeNet는 1,400만 개의 코드 샘플과 5억 줄 이상의 코드를 포함하며, 55개 프로그래밍 언어를 아우르며 AI for Code 분야에서 가장 큰 알려진 데이터셋입니다.
  • 700만 개 이상의 코드 샘플에 대해 테스트 세트를 포함하여 다양한 언어 간 코드 동치성과 기능 정확도 평가를 강력하게 지원합니다.
  • 전처리 도구를 포함시켜 코드를 머신러닝 모델의 입력으로 직접 사용할 수 있도록 하여 데이터 준비 장벽을 줄였습니다.
  • 코드 분류, 유사도 탐지, 코드 번역, 성능 최적화 등의 다양한 AI for Code 작업을 지원합니다.
  • 표준화된 벤치마크와 다양한 프로그래밍 작업을 제공함으로써 Project CodeNet는 재현 가능하고 스케일러블한 AI for Code 연구를 가능하게 합니다.
  • 데이터셋의 규모와 다양성 덕분에 Project CodeNet는 컴퓨터 비전 분야에서 ImageNet이 차지하는 기초 자원과 유사한 위치를 점하고 있으며, 코드 지능 분야의 알고리즘 혁신을 이끌 수 있는 잠재력을 지닙니다.

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

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

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

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