StarCoder リリースノート

Hugging Face と ServiceNow の BigCode 共同プロジェクトは、コード用の大規模言語モデル (LLM) である StarCoder と StarCoderBase をリリースしました。これら 15B パラメータのモデルは、許可されたライセンスのデータ 1 兆トークンで学習され、OpenAI の code-cushman-001 のようなクローズドモデルに対する高性能なオープン代替手段を提供します。

モデルアーキテクチャとトレーニング

StarCoderBase は、80 以上のプログラミング言語、Git コミット、GitHub イシュー、Jupyter ノートブックを含むデータセットで学習された基礎モデルです。StarCoder は、StarCoderBase の特殊バージョンで、さらに 35B の Python トークンでファインチューニングされています。

Key technical specifications include:

  • パラメータ数: 約 15B。
  • トレーニング量: 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 と同等または上回る性能を示します。さらに、StarCoder は DS-1000 データサイエンスベンチマークで他のすべてのオープンアクセスモデルを上回ります。

技術的な機能と応用

Beyond simple code completion, the StarCoder models support several advanced developer workflows:

  • テクニカルアシスタンス: Tech Assistant Prompt を利用することで、モデルはプログラミング関連のリクエストに回答し、技術アシスタントとして機能します。
  • コード修正: モデルは自然言語の指示に基づいて既存のコードを修正できます。
  • コード説明: モデルはコードスニペットを自然言語で説明できます。
  • オートコンプリート: モデルは標準的なコードオートコンプリート機能を提供します。

データガバナンスと安全性

StarCoder は、許可されたライセンスのコードのみで構成された "The Stack 1.2" のサブセットで学習されました。BigCode プロジェクトは、以下の安全性とガバナンス対策を実施しています:

  • PII の削除: Toloka と協力し、名前、パスワード、メールアドレスなどの個人識別情報 (PII) をトレーニングデータから除去しました。
  • オプトアウトプロセス: コード貢献者は専用のオプトアウト手続きを通じて自分のデータをデータセットから削除できます。
  • 属性付与ツール: 生成されたコードをトレーニングデータセット内で検索できるコード属性付与ツールが提供されています。
  • ライセンス: モデルは OpenRAIL ライセンスの改良版の下でリリースされ、企業製品への統合が容易になります。

エコシステムと利用可能なリソース

BigCode は、モデルウェイトと共に包括的なツールスイートをリリースしました:

  • モデル: StarCoder(Python 調整版)、StarCoderBase(多言語版)、StarEncoder(エンコーダーモデル)、StarPii(PII 検出器)。
  • ツール: VSCode 拡張機能、StarCoder Chat、プレイグラウンド、専用コードエディタ。
  • データセット: 完全に前処理されたトレーニングデータセットと、PII 削除のトレーニングおよび評価用の新しい PII データセット。

Sources