AI開発向けのツールを提供しているベンチャー企業Hugging Faceは、2023年5月4日(米国時間)、コーディング用大規模言語モデル(LLM)の「StarCoder」を一般公開。ベンチマークによる評価やデータセットなども併せて公開した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
AI開発向けのツールを提供しているベンチャー企業Hugging Faceは、2023年5月4日(米国時間)、コーディング用大規模言語モデル(LLM)の「StarCoder」「StarCoderBase」を公開した。
StarCoderとStarCoderBaseは、80以上のプログラミング言語、Gitコミット、GitHub Issues、Jupyter Notebookなど、GitHubからライセンスとして許可されたコードのデータでトレーニング(機械学習)されている。Meta製LLMの「LLaMA」と同様に、1兆のトークンに対して約150億のパラメーターモデルをトレーニングした。Hugging Faceは350億のPythonトークン用にStarCoderBaseモデルを微調整し、StarCoderを作成した。
StarCoderBaseは、一般的なプログラミングベンチマークで、既存のオープンコードLLMよりも優れたパフォーマンスを示し、OpenAIの「code-cushman-001」(「GitHub Copilot」の初期バージョンを強化したオリジナルの「Codex」モデル)のようなクローズドモデルと同等またはそれを上回っているという。
Hugging Faceは、「8000トークンを超えるコンテキスト長を持つStarCoderモデルは、他のオープンLLMよりも多くの入力を処理でき、幅広い興味深いアプリケーションを可能にする」としている。例えば、StarCoderモデルに一連の対話を促すことで、StarCoderモデルが技術アシスタント(「Tech Assistant」プロンプト)として機能できるようにした。さらに、モデルを使用して、コードをオートコンプリートしたり、命令を介してコードを変更したり、自然言語でコードスニペットを説明したりすることができる。
Hugging Faceは、安全なオープンモデルとしてリリースするために、改善されたPII(Personally Identifiable Information:個人識別情報)削除パイプライン、コード帰属追跡ツールといった措置を講じ、OpenRAILライセンスの改良版の下でStarCoderを一般公開した。このライセンスによって、企業がモデルを自社製品に統合するプロセスが簡素化されるという。
Hugging Faceは、「StarCoderは、優れたパフォーマンスによって、コミュニティーが使用し、ユースケースや製品に適応させるための強固な基盤として機能する」としている。
Hugging FaceはStarCoderと同様のモデルをさまざまなベンチマークで評価した。Pythonベンチマーク「HumanEval」では、モデルが署名とdocstringに基づいて関数を完了できるかどうかをテストした。
StarCoderとStarCoderBaseはどちらも、Google製の「PaLM」「LaMDA」、先述のLLaMAといったモデルよりも大幅に小さいにもかかわらず、優れたパフォーマンスを発揮した。「CodeGen-16B-Mono」およびOpenAIのcode-cushman-001(12B)モデルよりも優れたパフォーマンスを発揮したという。
Hugging Faceは、モデルの失敗例として、「# Solution here」というコードを生成することに気付いた。この理由は、おそらく「コードが演習の一部だから」と考えているという。
Hugging Faceはモデルに「
HumanEvalと「MBPP」ベンチマークでの強化結果は下表の通り。
モデル | HumanEvalでの結果 | MBPPでの結果 |
---|---|---|
LLaMA-7B | 10.5 | 17.7 |
LaMDA-137B | 14.0 | 14.8 |
LLaMA-13B | 15.8 | 22.0 |
CodeGen-16B-Multi | 18.3 | 20.9 |
LLaMA-33B | 21.7 | 30.2 |
CodeGeeX | 22.9 | 24.4 |
LLaMA-65B | 23.7 | 37.7 |
PaLM-540B | 26.2 | 36.8 |
CodeGen-16B-Mono | 29.3 | 35.3 |
StarCoderBase | 30.4 | 49.0 |
code-cushman-001 | 33.5 | 45.9 |
StarCoder | 33.6 | 52.7 |
プロンプトを追加したStarCoder | 40.8 | 49.5 |
StarCoderの興味深い点は多言語だということ、このためHugging FaceはStarCoderを「MultiPL-E」(HumanEvalを他の多くの言語に拡張したベンチマーク)で評価した。code-cushman-001とStarCoderが多くの言語で同等またはそれを上回るパフォーマンスを示していることが分かった。「DS-1000」というデータサイエンスベンチマークでは、他の全てのオープンアクセスモデルを上回っているという。
Hugging FaceはStarCoderモデルについて、技術アシスタントとして使用できるかどうかもテストした。Anthropicの「HHH」プロンプトに触発されて、Tech Assistantプロンプトを作成した。プロンプトを表示するだけで、モデルは技術アシスタントとして機能し、プログラミング関連のリクエストに応えることができるという。
モデルは、「The Stack 1.2」のサブセットでトレーニングされている。データセットは、寛容にライセンスされたコードのみで構成されており、コードの提供者がデータセットからデータを削除できるようにするオプトアウトプロセスが含まれている(「Am I in The Stack」を参照)。
Webサービス企業のTolokaと協力して(参考)、名前やパスワード、メールアドレスなどの個人を特定できる情報をトレーニングデータから削除したとしている。
これらの取り組みは、コードの大規模言語モデルにおける責任ある開発を推進する共同プロジェクト「BigCode」の一環だ。BigCodeはHugging FaceとServiceNowが共同で主導している。
Hugging Faceは、モデルとともに以下のリソースとデモのリストもリリースした。
Copyright © ITmedia, Inc. All Rights Reserved.