コーディング用大規模言語モデル「StarCoder」とは 何がすごいのか1兆のトークンに対して約150億のパラメーターモデルを機械学習

AI開発向けのツールを提供しているベンチャー企業Hugging Faceは、2023年5月4日(米国時間)、コーディング用大規模言語モデル(LLM)の「StarCoder」を一般公開。ベンチマークによる評価やデータセットなども併せて公開した。

» 2023年05月25日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 AI開発向けのツールを提供しているベンチャー企業Hugging Faceは、2023年5月4日(米国時間)、コーディング用大規模言語モデル(LLM)の「StarCoder」「StarCoderBase」を公開した。

StarCoderのブログ

 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はモデルに「solutions/solution_1.py\n# Here is the correct implementation of the code exercise」というプロンプトを追加した。これによって、StarCoderのHumanEvalスコアが34%から40%以上に大幅に増加した。CodeGenとStarCoderBaseに対してもこのプロンプトを試したが、大きな違いはなかったという。

 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プロンプトを作成した。プロンプトを表示するだけで、モデルは技術アシスタントとして機能し、プログラミング関連のリクエストに応えることができるという。

Tech Assistantプロンプトの使用例(提供:Hugging Face)

トレーニングデータ

 モデルは、「The Stack 1.2」のサブセットでトレーニングされている。データセットは、寛容にライセンスされたコードのみで構成されており、コードの提供者がデータセットからデータを削除できるようにするオプトアウトプロセスが含まれている(「Am I in The Stack」を参照)。

 Webサービス企業のTolokaと協力して(参考)、名前やパスワード、メールアドレスなどの個人を特定できる情報をトレーニングデータから削除したとしている。

 これらの取り組みは、コードの大規模言語モデルにおける責任ある開発を推進する共同プロジェクト「BigCode」の一環だ。BigCodeはHugging FaceとServiceNowが共同で主導している。

追加リリース

 Hugging Faceは、モデルとともに以下のリソースとデモのリストもリリースした。

  • OpenRAILライセンスによる中間チェックポイントを含むモデルの重み
  • Apache 2.0ライセンスを使用したデータの前処理とトレーニング用コード
  • コードモデルの包括的な評価ハーネス
  • PIIの削除をトレーニング、評価するためのPIIデータセット
  • 前処理されたトレーニング用データセット
  • データセット内で生成されたコードを見つけるコード帰属追跡ツール

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。