StarCoder2와 The Stack v2 릴리스
BigCode는 코드용 오픈 대형 언어 모델(LLM) 패밀리인 StarCoder2와 코드 사전 학습을 위해 크게 확장된 데이터셋인 The Stack v2를 공개했습니다. 이번 릴리스를 통해 커뮤니티는 투명하게 학습된 모델과 기본 데이터 및 처리 코드를 제공받아 오픈 소스 코드 인텔리전스를 발전시킬 수 있습니다.
StarCoder2 모델 패밀리 및 사양
StarCoder2는 세 가지 파라미터 크기로 제공되며, 각각 The Stack v2의 다른 하위 집합으로 학습되고 다른 파트너가 지원합니다:
- StarCoder2-3B: ServiceNow가 17개 프로그래밍 언어에 걸쳐 3조 토큰 이상으로 학습했습니다.
- StarCoder2-7B: Hugging Face가 17개 프로그래밍 언어에 걸쳐 3.5조 토큰 이상으로 학습했습니다.
- StarCoder2-15B: NVIDIA가 NVIDIA NeMo와 NVIDIA 가속 인프라를 사용해 학습했습니다. 이 대표 모델은 4조 토큰 이상으로 학습되었으며 600개 이상의 프로그래밍 언어를 포괄합니다.
패밀리의 모든 모델은 Grouped Query Attention(GQA)과 16,384 토큰의 컨텍스트 윈도우, 4,096 토큰의 슬라이딩 윈도우 어텐션을 특징으로 하는 공통 아키텍처를 공유합니다. 모두 Fill-in-the-Middle(FIM) 목표를 사용해 학습되어 코드 완성 능력을 향상시켰습니다.
성능 벤치마크
StarCoder2-15B는 해당 크기 클래스에서 최고의 모델로 자리매김하며, 많은 평가에서 33B 이상 파라미터 모델의 성능과 일치합니다. 또한 StarCoder2-3B 모델은 이전 세대인 StarCoder1-15B와 동일한 성능을 보입니다.
The Stack v2 데이터셋
The Stack v2는 LLM 사전 학습을 위해 설계된 가장 큰 오픈 코드 데이터셋으로, Software Heritage 아카이브에서 파생되었습니다—Inria와 UNESCO가 주도하는 비영리 이니셔티브로, 공개된 모든 소프트웨어 소스 코드를 보존합니다.
이전 버전과 비교하여 The Stack v2는 규모와 품질에서 크게 향상되었습니다:
| 지표 | The Stack v1 | The Stack v2 |
|---|---|---|
| 전체 크기 | 6.4TB | 67.5TB |
| 중복 제거 크기 | 2.9TB | 32.1TB |
| 학습 데이터셋 | ~200B 토큰 | ~900B 토큰 |
v2의 기술적 개선 사항에는 향상된 언어 및 라이선스 감지 절차, 더 나은 필터링 휴리스틱, 그리고 리포지토리별로 데이터를 그룹화하는 구조가 포함됩니다. 후자는 모델이 리포지토리 수준의 컨텍스트로 학습될 수 있게 하여 프로젝트 전체 의존성을 이해하는 능력을 향상시킵니다.
거버넌스 및 접근성
StarCoder2와 관련 데이터셋은 BigCode OpenRAIL-M v1 라이선스 계약 하에 공개됩니다. 투명성과 데이터 거버넌스를 보장하기 위해 BigCode는 여러 도구를 제공합니다:
- StarCoder2 Search: 사전 학습 데이터셋 내 코드에 대한 전체 텍스트 검색 도구입니다.
- StarCoder2 Membership Test: 특정 코드가 사전 학습 데이터에 포함되었는지 확인하는 고속 유틸리티입니다.
BigCode는 Hugging Face와 ServiceNow가 주도하는 과학적 협업으로, 오픈 코드 LLM의 책임 있는 개발에 전념합니다.
Sources
- OriginalStarCoder2 and The Stack v2