StarCoder 릴리스 노트

Hugging Face와 ServiceNow의 BigCode 협업은 StarCoder와 StarCoderBase, 두 개의 코드용 대형 언어 모델(LLM)을 출시했습니다. 이 15B 파라미터 모델은 허가된 라이선스 데이터 1조 토큰으로 학습되어 OpenAI의 code-cushman-001과 같은 폐쇄형 모델에 대한 고성능, 오픈 대안을 제공합니다.

모델 아키텍처 및 학습

StarCoderBase는 80개 이상의 프로그래밍 언어, Git 커밋, GitHub 이슈, Jupyter 노트북을 포함하는 데이터셋으로 학습된 기본 모델입니다. StarCoder는 StarCoderBase를 기반으로 35B 파이썬 토큰에 추가 파인튜닝된 특화 버전입니다.

주요 기술 사양은 다음과 같습니다:

  • 파라미터 수: 약 150억 개.
  • 학습 규모: 1조 토큰.
  • 컨텍스트 길이: 8,000 토큰 이상으로, 출시 시점의 다른 오픈 코드 LLM보다 입력 용량이 큽니다.

성능 벤치마크

StarCoder와 StarCoderBase는 다양한 오픈 및 폐쇄 모델에 비해 여러 벤치마크에서 우수한 성능을 보입니다.

Python 숙련도 (HumanEval 및 MBPP)

HumanEval 벤치마크는 시그니처와 docstring을 기반으로 함수 완성을 테스트합니다. StarCoder와 StarCoderBase는 PaLM, LaMDA, LLaMA 등 모델을 능가합니다. 모델이 자리표시자 주석(예: # Solution here)을 생성하는 경향을 우회하기 위해 특정 프롬프트를 사용할 경우, "StarCoder-Prompted" 버전은 오픈 모델 중 최고 점수인 HumanEval 40.8%를 기록했습니다.

모델 HumanEval MBPP
LLaMA-65B 23.7 37.7
PaLM-540B 26.2 36.8
StarCoderBase 30.4 49.0
code-cushman-001 33.5 45.9
StarCoder 33.6 52.7
StarCoder-Prompted 40.8 49.5

다국어 및 데이터 과학 역량

StarCoder는 MultiPL‑E 벤치마크에서 많은 언어에 대해 code-cushman-001과 동등하거나 더 높은 성능을 보입니다. 또한 DS‑1000 데이터 과학 벤치마크에서는 모든 다른 오픈 액세스 모델을 앞섭니다.

기술 역량 및 적용 사례

단순 코드 완성을 넘어, StarCoder 모델은 여러 고급 개발자 워크플로를 지원합니다:

  • 기술 지원: Tech Assistant Prompt를 활용해 프로그래밍 관련 요청에 답변하고 기술 어시스턴트 역할을 수행합니다.
  • 코드 수정: 자연어 지시를 기반으로 기존 코드를 수정할 수 있습니다.
  • 코드 설명: 코드 조각을 자연어로 설명합니다.
  • 자동 완성: 표준 코드 자동 완성 기능을 제공합니다.

데이터 거버넌스 및 안전성

StarCoder는 허가된 라이선스 코드만을 포함하는 "The Stack 1.2"의 일부를 사용해 학습되었습니다. BigCode 프로젝트는 다음과 같은 안전 및 거버넌스 조치를 구현했습니다:

  • PII 삭제: Toloka와 협력해 이름, 비밀번호, 이메일 주소 등 개인 식별 정보를 학습 데이터에서 제거했습니다.
  • 옵트아웃 절차: 코드 기여자는 전용 옵트아웃 절차를 통해 자신의 데이터를 데이터셋에서 삭제할 수 있습니다.
  • 귀속 도구: 생성된 코드를 학습 데이터셋 내에서 찾을 수 있는 코드 귀속 도구를 제공합니다.
  • 라이선스: 모델은 기업 제품 통합을 간소화하기 위해 개선된 OpenRAIL 라이선스 하에 공개됩니다.

생태계 및 제공 리소스

BigCode는 모델 가중치와 함께 포괄적인 도구 모음을 출시했습니다:

  • 모델: StarCoder (Python 튜닝), StarCoderBase (다국어), StarEncoder (인코더 모델), StarPii (PII 탐지기).
  • 도구: VSCode 확장, StarCoder Chat, 플레이그라운드, 전용 코드 편집기.
  • 데이터셋: 전체 전처리된 학습 데이터셋과 PII 제거를 위한 새로운 PII 데이터셋.

Sources