StarCoder2 と The Stack v2 のリリース
StarCoder2 モデルファミリーと仕様
StarCoder2 は 3 つのパラメータサイズで提供され、各サイズは 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 アーカイブから派生しています。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