StarCoder:コードのための最先端のLLM
StarCoder:LLM for cutting-edge code.
StarCoderの紹介
StarCoderとStarCoderBaseは、GitHubからの許可を得たデータを使用してトレーニングされた大規模な言語モデルです。これらのモデルは、80以上のプログラミング言語、Gitのコミット、GitHubの課題、Jupyterノートブックなど、様々な情報源からデータを取得しています。LLaMAと同様に、私たちは1兆トークンのために約15兆パラメータのモデルをトレーニングしました。また、35兆のPythonトークンに対してStarCoderBaseモデルを微調整し、新しいモデルであるStarCoderと呼びます。
StarCoderBaseは、人気のあるプログラミングベンチマークにおいて既存のオープンなコードモデルよりも優れたパフォーマンスを発揮し、GitHub Copilotの初期バージョンで使用された「code-cushman-001」といったクローズドモデルとも匹敵する結果を示しました。StarCoderモデルは、8,000以上のトークンのコンテキスト長を持つため、他のオープンなLLMよりも多くの入力を処理することができます。これにより、さまざまな興味深いアプリケーションが可能となります。例えば、StarCoderモデルに対して対話のシリーズをプロンプトとして与えることで、技術アシスタントとしての機能を果たすことができます。さらに、これらのモデルはコードの自動補完、指示に基づいたコードの変更、コードスニペットの自然言語による説明などにも使用することができます。私たちは、改善されたPIIの削除パイプライン、新しい帰属追跡ツールなど、安全なオープンモデルのリリースに向けていくつかの重要な手順を踏んでいます。また、StarCoderは改良されたOpenRAILライセンスのもとで一般に公開されています。この更新されたライセンスにより、企業がモデルを製品に統合するプロセスが簡素化されます。StarCoderモデルの強力なパフォーマンスにより、コミュニティは自分たちのユースケースや製品に適応させるための堅固な基盤としてこれを活用することができると考えています。
評価
私たちはStarCoderといくつかの類似モデルについて、さまざまなベンチマークで徹底的に評価を行いました。人気のあるPythonベンチマークであるHumanEvalでは、関数のシグネチャとドキュメント文字列に基づいてモデルが関数を完成させることができるかどうかをテストしました。StarCoderとStarCoderBaseは、PaLM、LaMDA、LLaMAなどの最大のモデルを上回るパフォーマンスを発揮しましたが、それらよりも遥かに小さなサイズであるという特徴も持っています。また、CodeGen-16B-MonoやOpenAIのcode-cushman-001(12B)モデルよりも優れた結果を示しました。私たちはまた、モデルの失敗例として、通常は練習の一部として使用されるため、# Solution here
というコードを生成することがあることに気付きました。実際の解決策を生成させるために、プロンプトとして<filename>solutions/solution_1.py\n# Here is the correct implementation of the code exercise
を追加しました。これにより、StarCoderのHumanEvalスコアは34%から40%以上に向上し、オープンモデルの最新のベンチマーク結果を更新しました。CodeGenとStarCoderBaseに対してもこのプロンプトを試しましたが、あまり違いは観察されませんでした。
StarCoderの興味深い特徴の一つは、多言語対応であることです。そのため、MultiPL-Eという多言語の拡張を使用して評価を行いました。その結果、StarCoderは多くの言語においてcode-cushman-001
と匹敵または優れたパフォーマンスを発揮することがわかりました。また、DS-1000というデータサイエンスのベンチマークでも、StarCoderは他のオープンアクセスモデルを圧倒する結果を示しました。しかし、コード補完以外にもモデルができることを見てみましょう!
技術アシスタント
徹底的な評価の結果、StarCoderはコードの記述に非常に優れていることがわかりました。しかし、ドキュメンテーションやGitHubの課題などの情報を大量に学習しているため、技術アシスタントとして使用できるかどうかもテストしたかったのです。AnthropicのHHHプロンプトに触発されて、私たちはTech Assistant Promptを作成しました。驚くべきことに、プロンプトだけでモデルは技術アシスタントとして機能し、プログラミングに関連する要求に答えることができます!
トレーニングデータ
このモデルは、The Stack 1.2の一部のデータセットでトレーニングされました。データセットは許可されたコードのみを含んでおり、コードの貢献者はデータセットから自分のデータを削除することができるオプトアウトプロセスが存在します(Am I in The Stackを参照)。私たちはTolokaとの共同作業により、名前、パスワード、メールアドレスなどの個人を特定する情報をトレーニングデータから削除しました。
BigCodeについて
BigCodeは、Hugging FaceとServiceNowが共同で進める、コードのための大規模言語モデルの責任ある開発に取り組むオープンな科学的なコラボレーションです。
追加リリース
モデルと共に、以下のリソースとデモを公開しています:
- モデルのウェイト、OpenRAILライセンスを含む中間チェックポイント
- データの前処理とトレーニングに関するすべてのコード(Apache 2.0ライセンス)
- コードモデルの包括的な評価ハーネス
- PIIの削除のための新しいデータセット
- トレーニングに使用された完全に前処理されたデータセット
- データセット内の生成されたコードを見つけるためのコード帰属ツール
リンク
モデル
- 論文: StarCoderに関する技術レポート。
- GitHub: StarCoderの使用方法や調整方法に関する情報がすべて掲載されています。
- StarCoder: PythonでさらにトレーニングされたStarCoderBase。
- StarCoderBase: The Stackの80以上の言語でトレーニングされたモデル。
- StarEncoder: TheStackでトレーニングされたエンコーダーモデル。
- StarPii: StarEncoderベースのPII検出モデル。
ツールとデモ
- StarCoder Chat: StarCoderとのチャット。
- VSCode Extension: StarCoderでコードを書く。
- StarCoder Playground: StarCoderで書く。
- StarCoder Editor: StarCoderで編集する。
データとガバナンス
- StarCoderData: StarCoderの事前トレーニングデータセット。
- Tech Assistant Prompt: このプロンプトを使用すると、StarCoderをテックアシスタントに変えることができます。
- Governance Card: モデルのガバナンスについてのカード。
- StarCoder License Agreement: このモデルはBigCode OpenRAIL-M v1ライセンス契約に基づいてライセンスされています。
- StarCoder Search: 事前トレーニングデータセット内のコードの全文検索。
- StarCoder Membership Test: コードが事前トレーニングデータセットに存在するかを高速にテストします。
すべてのリソースとリンクはhuggingface.co/bigcodeで見つけることができます!
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- RWKVとは、トランスフォーマーの利点を持つRNNの紹介です
- 単一のGPUでChatgptのようなチャットボットをROCmで実行する
- より小さいほうが良いです:Xeon上で効率的な生成AI体験、Q8-Chat
- 大規模なネアデデュープリケーション:BigCodeの背後に
- Instruction-tuning Stable Diffusion with InstructPix2PixのHTMLを日本語に翻訳してください
- 🐶セーフテンソルは、本当に安全であり、デフォルトの選択肢として採用されました
- Hugging FaceとIBMは、AIビルダー向けの次世代エンタープライズスタジオであるwatsonx.aiにおいてパートナーシップを結成しました