StarCoder

StarCoder는 80개 이상의 프로그래밍 언어로 학습된 강력한 15B 매개변수 모델입니다. Hugging Face의 오픈소스 모델을 사용하여 높은 정확도로 코드를 생성, 완성 또는 중간에서 채워보세요.

AI로 이동
StarCoder cover

StarCoder 소개

차세대 코드 생성 모델

StarCoder는 BigCode 프로젝트에서 개발한 대규모 언어 모델로, 80개 이상의 프로그래밍 언어에 대한 소스 코드를 생성하고 완성하도록 설계되었습니다. 155억 개의 매개변수와 중간 채우기 학습에 중점을 둔 StarCoder는 고급 코드 생성 작업을 지원하고 개발자가 고품질의 상황 인식 완성을 수행할 수 있도록 지원합니다.

개발자와 연구자를 위해 제작됨

최신 하드웨어에서 효율적으로 실행되도록 설계되고 Hugging Face를 통해 배포되는 StarCoder는 코드 지원을 원하는 개발자와 오픈 소스 코딩 모델을 평가하는 연구자 모두가 이용할 수 있습니다.

특징 및 성능

다국어 지원

StarCoder는 중복 제거된 데이터셋인 The Stack(v1.2)을 기반으로 학습되었으며, 80개 이상의 프로그래밍 언어 코드를 포함하고 있습니다. Python, JavaScript, C++ 또는 특정 언어를 사용하든, 이 모델은 사용자 환경에 맞춰 조정될 수 있습니다.

중간 채우기 목표

기존의 왼쪽에서 오른쪽으로 생성되는 방식과 달리, StarCoder는 중간 채우기(FIM) 기능을 지원합니다. 이를 통해 개발자는 기존 섹션 사이에 누락된 코드 블록을 삽입하여 자동 완성 및 스니펫 생성의 유연성을 높일 수 있습니다.

기술적 하이라이트

고급 모델 아키텍처

StarCoder는 다중 쿼리 어텐션(Multi-Query Attention)과 8,192개의 토큰으로 구성된 대규모 컨텍스트 윈도우를 갖춘 GPT-2 아키텍처를 사용합니다. 길고 구조화된 코드 시퀀스를 이해하고 생성하는 데 최적화되어 있어 실제 소프트웨어 개발 작업에 이상적입니다.

대규모 훈련 데이터 세트

1조 개가 넘는 토큰을 기반으로 학습된 StarCoder는 24일의 학습 주기 동안 512개의 A100 GPU를 사용하여 구축되었습니다. 데이터 세트는 옵트아웃 콘텐츠를 제외하도록 필터링되었으며, 허가된 라이선스 코드만 포함되었습니다.

사용 사례 및 응용 프로그램

코드 완성 및 생성

StarCoder는 새로운 함수를 생성하고, 미완성 코드를 완성하고, 보일러플레이트나 반복적인 로직을 작성하는 데 도움을 줍니다. 개발 워크플로우의 프로토타입 제작, 학습 및 자동화에 유용한 도구입니다.

연구 및 실험

StarCoder는 BigCode OpenRAIL-M 라이선스에 따른 오픈 액세스 모델로서 학술 연구, 벤치마킹, 코딩 작업을 위한 다운스트림 애플리케이션 구축에 이상적입니다.

변압기와 호환 가능

개발자는 Hugging Face Transformers를 통해 몇 줄의 코드만으로 StarCoder를 직접 사용할 수 있습니다. 로컬 또는 클라우드 배포를 위해 GPU 가속 기능을 통해 완벽하게 접근 가능합니다.

라이센스 및 책임 있는 사용

OpenRAIL-M 라이센스

StarCoder는 BigCode OpenRAIL-M 라이선스에 따라 배포됩니다. 학습 데이터는 공개 라이선스 코드에서 제공되었지만, 사용자는 생성된 코드를 사용할 때 적절한 출처 표시를 하고 라이선스 요구 사항을 준수할 책임이 있습니다.

귀속 및 투명성

생성된 코드 세그먼트의 출처를 추적하는 검색 가능한 인덱스를 사용하면 개발자가 필요한 경우 적절한 속성을 제공할 수 있습니다.

평가 및 성과

경쟁 벤치마크

StarCoder는 다음을 포함한 코딩 벤치마크에서 강력한 성능을 입증했습니다.

  • HumanEval (pass@1): 0.408 (prompted)
  • MBPP (pass@1): 0.527
  • MultiPL (Java, C++, Go): Competitive across multiple languages

이러한 점수는 일반 프로그래밍 작업 전반에 걸쳐 모델의 효율성을 강조합니다.

대안 도구