피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
BigCode가 15B 파라미터 Code LLM(StarCoder)을 1조 토큰으로 학습하고 Python 35B 토큰으로 파인튜닝해 HumanEval에서 OpenAI code-cushman-001을 능가
StarCoder: A State-of-the-Art LLM for Code
AI 요약
Context
기존 오픈소스 Code LLM들은 OpenAI의 code-cushman-001(12B) 같은 클로즈드 모델 대비 성능이 낮았다. 또한 대부분의 오픈 모델은 8,000 토큰 이하의 컨텍스트 길이로 제한되어 긴 코드 입력 처리가 어려웠다.
Technical Solution
- StarCoderBase 학습: GitHub의 80개 이상 프로그래밍 언어, Git 커밋, GitHub 이슈, Jupyter 노트북에서 수집한 공정한 라이선스 데이터로 15B 파라미터 모델을 1조 토큰으로 학습
- Python 특화 파인튜닝: StarCoderBase를 35B Python 토큰으로 추가 파인튜닝해 StarCoder 모델 생성
- 컨텍스트 길이 확대: 8,000 토큰 이상의 컨텍스트 윈도우로 다른 오픈 LLM보다 더 많은 입력 처리 가능
- PII 제거 파이프라인: Toloka와 협력해 이름, 비밀번호, 이메일 주소 같은 개인식별정보를 학습 데이터에서 제거
- 프롬프트 엔지니어링: HumanEval 실패 사례(코드 대신 주석만 생성)를 해결하기 위해
<filename>solutions/solution_1.py\n# Here is the correct implementation of the code exercise프롬프트 추가
Impact
- HumanEval 성능: StarCoderBase 30.4%, StarCoder 33.6%, StarCoder-Prompted 40.8% (프롬프트 추가 후 34%에서 40%로 상승)
- MBPP 벤치마크: StarCoder 52.7% (code-cushman-001 45.9% 대비 우위)
- 모델 크기 효율성: LLaMA-65B, PaLM-540B 같은 큰 모델들을 능가하면서도 15B 파라미터로 운영
- MultiPL-E 멀티랭귀지 성능: code-cushman-001과 동등하거나 우수한 성능을 많은 언어에서 달성
- DS-1000 데이터 사이언스 벤치마크: code-cushman-001 및 모든 다른 오픈 액세스 모델을 초과
Key Takeaway
대규모 매개변수보다 적절한 학습 데이터 선택(공정한 라이선스, 다양한 소스)과 작업별 파인튜닝이 클로즈드 모델 성능을 매칭할 수 있으며, 프롬프트 엔지니어링은 동일 모델에서 6.4%p의 성능 향상을 추가로 가져올 수 있다.
실천 포인트
코드 생성 시스템을 구축하는 엔지니어링 팀에서 StarCoder 같은 오픈소스 모델을 채택할 때, 작업별 파인튜닝과 함께 프롬프트 구조 최적화(실패 패턴을 역으로 설명하는 프롬프트)를 적용하면 동일 모델에서 6~7%p의 성능 향상을 달성할 수 있다.