[논문 리뷰] The Stack: 3 TB of permissively licensed source code
The Stack은 30개 언어에 걸친 허가된 라이선스 소스 코드의 3.1 TB 데이터세트이며, 거의 중복 제거가 코드 모델 성능을 향상시키고, 중복 제거 및 오염 제거가 이루어지면 허가된 데이터가 이전의 텍스트-코드 결과를 일치시키거나 능가할 수 있습니다.
Large Language Models (LLMs) play an ever-increasing role in the field of Artificial Intelligence (AI)--not only for natural language processing but also for code understanding and generation. To stimulate open and responsible research on LLMs for code, we introduce The Stack, a 3.1 TB dataset consisting of permissively licensed source code in 30 programming languages. We describe how we collect the full dataset, construct a permissively licensed subset, present a data governance plan, discuss limitations, and show promising results on text2code benchmarks by training 350M-parameter decoders on different Python subsets. We find that (1) near-deduplicating the data significantly boosts performance across all experiments, and (2) it is possible to match previously reported HumanEval and MBPP performance using only permissively licensed data. We make the dataset available at https://hf.co/BigCode, provide a tool called "Am I in The Stack" (https://hf.co/spaces/bigcode/in-the-stack) for developers to search The Stack for copies of their code, and provide a process for code to be removed from the dataset by following the instructions at https://www.bigcode-project.org/docs/about/the-stack/.
연구 동기 및 목표
- The Stack을 소개하여 개방적이고 재현 가능한 코드 LLM 연구를 촉진하는 대규모 허가된 코드 데이터세트를 제공합니다.
- 데이터 수집, 라이선스 거버넌스, 거의 중복 제거 방법을 설명합니다.
- Python 하위 집합에서 거의 중복 제거가 모델 성능에 미치는 영향을 입증합니다.
- 허가된 데이터로 학습된 모델이 기존 텍스트-코드 벤치마크와 일치하거나 능가할 수 있음을 보여줍니다.
제안 방법
- GHArchive에서 GitHub 리포지토리를 수집하고 137.36M개의 리포지토리를 클론합니다(미압축 기준 92 TB).
- GHArchive 데이터와 go-license-detector를 이용하여 라이선스를 분류하고 허가된 라이선스 하위집합을 만듭니다.
- MinHash 및 Locality Sensitive Hashing을 사용하여 중복을 줄이기 위한 거의 중복 제거를 적용합니다.
- Python 하위 집합에 대해 인과적 언어 모델링 목표를 가진 350M 파라미터 디코더-전용 트랜스포머를 학습합니다.
- HumanEval 및 MBPP 벤치마크에서 평가하고 Codex, CodeGen, CodeParrot과 비교합니다.
실험 결과
연구 질문
- RQ1Stack의 크기와 구성이 무엇이며, 라이선스의 관대함이 사용 가능한 데이터에 어떤 영향을 미치는가?
- RQ2거의 중복 제거가 텍스트-코드 작업에서 코드 생성 성능을 향상시키는가?
- RQ3오염 제거를 포함한 허가된 데이터가 기존 텍스트-코드 벤치마크를 재현하거나 능가할 수 있는가?
- RQ4개발자가 Stack 참여에서 옵트아웃할 수 있도록 하는 거버넌스 모델은 무엇인가?
주요 결과
- 거의 중복 제거는 모든 실험에서 전체 라이선스 및 허가된 라이선스 데이터 세트 모두에 대해 성능을 크게 향상시킵니다.
- 허가된 라이선스 데이터에 대해 거의 중복 제거를 적용한 350M 파라미터 모델이 HumanEval 및 MBPP에서 Codex 및 CodeGen 벤치마크와 일치하며, 거의 중복 제거된 전체 라이선스 데이터 사용 시 이를 능가합니다.
- 거의 중복 제거를 적용한 전체 라이선스 데이터 세트는 비중복화되지 않은 대비 보다 높은 pass@100을 달성합니다(HumanEval: 44.00% vs 36.67%; MBPP: 61.00% vs 53.59%).
- 거의 중복 제거를 적용한 허가된 라이선스 데이터는 HumanEval에서 37.00%, MBPP에서 54.69%의 pass@100을 보이며 CodeGen 결과에 근접하거나 이를 능가합니다.
- 오염된 데이터를 제거하는 것이 본 연구의 성능에 미치는 영향은 제한적이었습니다.
- CodeParrot 학습 데이터는 두 벤치마크에서 The Stack에 비해 성능이 낮습니다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.