StarCoder2-15B-Instruct-v0.1 リリースノート / 新機能

Hugging Faceは、完全に透明で許容的なパイプラインを使用して完全に自己調整(self-aligned)された最初のコード大規模言語モデル(LLM)であるStarCoder2-15B-Instruct-v0.1をリリースしました。このモデルは、人間によるアノテーションデータやGPT-4のようなプロプライエタリな教師モデルからの蒸留に頼ることなく、高性能なコード生成が達成可能であることを示しています。

パフォーマンス・ベンチマーク

StarCoder2-15B-Instruct-v0.1は、HumanEvalで72.6のスコアを達成し、CodeLlama-70B-Instructの72.0を上回りました。EvalPlusベンチマークによる評価では、その規模において最高のパフォーマンスを発揮する許容的なLLMであり、Grok-1、Command-R+、DBRXを凌駕し、Snowflake Arctic 480BやMixtral-8x22B-Instructに匹敵しています。

2023年9月1日以降に作成されたコーディング問題を使用するLiveCodeBenchでのさらなる評価では、StarCoder2-15B-Instruct-v0.1は、GPT-4から蒸留されたデータでトレーニングされたモデルであるOpenCodeInterpreter-SC2-15Bを一貫して上回っています。これは、LLMが教師モデルによって提供されるシフトした分布よりも、自身の分布内のデータからより効果的に学習できる可能性があることを示唆しています。

自己調整(Self-Alignment)パイプライン

StarCoder2-15B-Instruct-v0.1のトレーニングパイプラインは、シード収集、指示生成、および応答検証の3つの主要なステージで構成されています。

1. シード・コード・スニペットの収集

多様なプログラミング原則を確保するため、チームはThe Stack v1からdocstringを持つPython関数を抽出しました。結果として得られた25万件のPython関数のデータセットは、以下のフィルタリングを使用して、初期の500万件の関数から派生しました:

  • Type Checking: Pyrightヒューリスティック型チェッカーを使用して、静的エラーのある関数を除去しました。
  • Decontamination: 完全な文字列一致を使用して、トレーニングセットからベンチマーク項目を除去しました。
  • Docstring Quality: StarCoder2-15Bが判定役として機能し、ドキュメント化が不十分な関数をフィルタリングしました。
  • Near-Deduplication: MinHashと局所性敏感ハッシュ(Jaccard類似度しきい値0.5)を使用して、重複を除去しました。

2. Self-OSS-Instruct

16個のfew-shot例を用いたin-context learningを使用し、ベースとなるStarCoder2-15Bモデルは、2段階のプロセスを通じて指示を自己生成しました:

  • Concepts Extraction: モデルは、シード関数内の基礎的なプログラミング原則(例:パターンマッチング、データ型変換)を特定しました。
  • Instruction Generation: モデルは、特定された概念に基づいてコーディングタスクを生成しました。

このプロセスにより、23万8千件の指示が生成されました。

3. 応答の自己検証

教師モデルから応答を蒸留するのではなく、StarCoder2-15Bは、応答とそれに対応するテストの両方を生成して自己検証を行うよう指示されました。

各指示に対して、モデルは10個のサンプルを生成しました。これらのサンプルはサンドボックス環境で実行され、実行テストに合格したもののみが保持されました。生成された240万件の応答のうち、50万件が実行テストに合格しました。重複除去の後に、最終的なSFT(Supervised Fine-Tuning)データセットとして、各ペアにランダムな合格応答が組み合わされた5万件の指示が作成されました。

透明性とオープンソース・リソース

トレーニングデータやパイプラインに関する透明性が欠如している多くの許容的なモデルとは異なり、StarCoder2-15B-Instruct-v0.1は完全に透明です。Hugging Faceは以下のリソースをオープンソース化しました:

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch