StarCoder2-15B(スターコーダー・ツー・15ビー)
BigCode(Hugging FaceとServiceNowの共同研究)が2024年2月に公開したコード生成LLM。600以上のプログラミング言語を学習したモデルで、15Bパラメータながらコード補完・デバッグ・説明生成に高い性能を示す。
StarCoder2-15Bとは
StarCoder2-15BはBigCode(Hugging FaceとServiceNowの共同研究機関)が2024年2月に公開したコード生成特化LLMです。初代StarCoder(2023年5月)の後継モデルとして、学習データ・アーキテクチャ・ライセンスが全面的に刷新されました。3B・7B・15Bの3サイズが用意されており、15Bが最高性能版です。
モデルの主要スペック
| 項目 | StarCoder2-3B | StarCoder2-7B | StarCoder2-15B |
|---|---|---|---|
| パラメータ | 3B | 7B | 15B |
| 学習トークン | 3兆 | 3.5兆 | 4兆 |
| コンテキスト長 | 16,384 | 16,384 | 16,384 |
| 対応言語 | 600+ | 600+ | 600+ |
| GQA | あり | あり | あり |
| ライセンス | BigCode OpenRAIL | BigCode OpenRAIL | BigCode OpenRAIL |
アーキテクチャにはGrouped Query Attention(GQA)を採用し、推論時のKVキャッシュメモリを削減。16,384トークンのスライディングウィンドウアテンションにより、長いコードファイルも効率的に処理できます。
The Stackv2データセット
StarCoder2の学習データはThe Stackv2(67.5兆トークン)で、これはソフトウェアヘリテージアーカイブ・GitHub・GitLab・Bitbucketなど複数ソースから収集されています。
データ構成の特徴
- 許諾確認済み: OSIライセンスのリポジトリのみ学習に使用
- opt-out対応: 開発者が自分のコードの除外申請可能(約56万ユーザーが申請)
- 多言語: Python 22%・Java 14%・JavaScript 13%・C++ 11%・その他40%
- 高品質フィルタリング: スターゼロのリポジトリ除外、重複除去、近似重複除去を実施
Fill-in-the-Middle(FIM)機能
StarCoder2の実用上の強みがFIM(穴埋め補完)機能です。コードの途中にカーソルを置いた状態で前後のコンテキストを渡すと、最適なコードを補完します。
FIMプロンプト形式
<fim_prefix>def calculate_total(prices):
total = 0
for price in prices:
<fim_suffix>
return total
<fim_middle>
この形式でインタラクティブなコード補完が可能で、VS Code拡張のContinue.devやTabnine OSS版がStarCoder2のFIMに対応しています。
他のCode LLMとの比較
HumanEvalベンチマーク(pass@1)
| モデル | HumanEval | EvalPlus | MultiPL-E(avg) |
|---|---|---|---|
| StarCoder2-15B | 46.3% | 37.5% | 51.2% |
| StarCoder2-7B | 35.4% | 29.9% | 45.1% |
| CodeLlama-13B | 36.0% | 32.9% | 47.3% |
| StarCoder1-15B | 33.6% | 27.4% | 42.7% |
StarCoder2-15BはCodeLlama-13Bより優れた性能を示しつつ、モデルサイズは同程度です。特に600言語対応の広さが特徴で、Rustや設定ファイル言語(YAML/TOML/HCL)の補完精度が初代StarCoderから大幅に改善されています。
ローカル環境での利用
必要なVRAM目安
| 量子化 | 必要VRAM | 推奨環境 |
|---|---|---|
| fp16 | 約30GB | A100 |
| Q8_0 | 約16GB | RTX 3090/4090 |
| Q4_K_M | 約9GB | RTX 3080/4080 |
| Q2_K | 約5GB | RTX 3060 12GB |
GGUF形式はllama.cppプロジェクトによって提供されており、Ollamaからはollama run starcoder2:15bで即座に利用できます。
実際の開発ワークフローへの組み込み
VS CodeのContinue拡張とStarCoder2を組み合わせたローカルAIコーディング環境の構築手順は以下のとおりです。
- Ollamaのインストールと
ollama pull starcoder2:15bの実行 - Continue拡張をVS Codeにインストール
~/.continue/config.jsonでモデルをOllama経由に設定- コード選択後
Cmd+Lでチャット、Cmd+Iでインライン編集
これにより、コードが外部サーバーに送信されないオンプレミス環境でGitHub Copilot相当の補完機能を利用できます。
FAQ
Q: StarCoder2のライセンスは商用利用できますか? A: BigCode OpenRAILライセンスに基づき商用利用可能です。ただし、生成コードを利用して悪意あるソフトウェアを作成する等の用途は禁止されています。利用前にライセンス全文の確認を推奨します。
Q: 初代StarCoderと何が違いますか? A: 学習データがThe Stack(v1/6.4兆トークン)からThe Stackv2(67.5兆トークン)へ約10倍増加し、GQAアーキテクチャの採用、対応言語86言語→600以上への拡大が主な変更点です。
Q: GitHub Copilotとどう違いますか? A: GitHub CopilotはOpenAI Codexをベースにしたクラウドサービスで月額$10〜$19かかります。StarCoder2はローカル実行可能なオープンモデルで、プライベートコードをクラウドに送らない用途に適しています。
まとめ
StarCoder2-15Bは600言語対応・FIM補完・商用可ライセンスというバランスに優れたコードLLMです。GitHub Copilotの代替をローカル環境で構築したい開発者や、プライベートコードの社外送信を避けたい企業にとって実用的な選択肢です。Ollamaによるワンコマンド導入が可能で、導入コストも低く抑えられます。