HuggingFace ブログ : StarCoder : コーディング用の最先端の LLM

HuggingFace ブログ : StarCoder : コーディング用の最先端の LLM (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 06/13/2023

* 本ページは、HuggingFace Blog の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス

クラスキャット は人工知能・テレワークに関する各種サービスを提供しています。お気軽にご相談ください :

◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

  • 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
  • sales-info@classcat.com  ;  Web: www.classcat.com  ;   ClassCatJP

 

 

HuggingFace ブログ : StarCoder : コーディング用の最先端の LLM

StarCoder の紹介

StarCoder と StarCoderBase は、80 以上のプログラミング言語を含む GitHub, Git コミット, GitHub issues と Jupyter ノートブックからの寛容にライセンスされたデータで訓練されたコーディング用大規模言語モデル (Code LLM, Large Language Models for Code) です。LLaMA と同様に、1 兆のトークンに対して ~15B パラメータのモデルを訓練しました。StarCoderBase モデルを 35B Python トークンに対して再調整し、StarCoder と呼ぶ新しいモデルになりました。

StarCoderBase はポピュラーなプログラミング・ベンチマークで既存のオープンなコード LLM よりもパフォーマンスが優れ、OpenAI の code-cushman-001 (GitHub Copilot の早期バージョンを駆動するオリジナル Codex モデル) のようなクローズドなモデルと同等であるか上回ることを見出しました。8,000 トークン以上のコンテキスト長により、StarCoder モデルは任意の他のオープンな LLM よりも多い入力を処理することができて、広範囲の興味深いアプリケーションを可能にします。例えば、StarCoder モデルに一連の会話をプロンプトとして与えると、テクニカルアシスタントとして動作させることを可能にします。更に、コードを自動補完し、指示を通してコードに修正を加え、そしてコードスニペットを自然言語で說明するためにモデルを利用できます。私たちは改良された PII redaction (編集) パイプライン, 新規の属性 (attribution) 追跡ツールを含む、安全なオープンなモデル・リリースに向けて幾つかの重要なステップを踏み、そして StarCoder を OpenRAIL ライセンスの改良版のもとで一般に利用可能にしました。更新されたライセンスは企業がモデルを自社製品に統合するプロセスを単純化します。その強力なパフォーマンスにより、StarCoder モデルはコミュニティが利用してユースケースと製品に対して適応させる強固な基盤として機能することを私たちは確信しています。

 

評価

私たちは StarCoder と幾つかの類似のモデルと各種ベンチマークで徹底的に評価しました。ポピュラーな Python ベンチマークは HumanEval で、これはモデルがシグネチャと docstring に基づいて関数を完成できるかをテストします。StarCoder と StarCoderBase の両方は、かなり小さいにもかかわらず、PaLM, LaMDA, と LLaMA を含む最も大規模なモデルの性能を超えていることを見出しました。またそれらは CodeGen-16B-Mono と OpenAI の code-cushman-001 (12B) model の性能も超えています。私たちはまた、モデルの失敗ケースで “#Solution here” を生成するような場合にも気づきました、これは多分コードの種類が通常は課題の一部であるためでしょう。モデルに実際の解を生成させるため、プロンプト “<filename>solutions/solution_1.py\n# Here is the correct implementation of the code exercise” を追加しました。これは StarCoder の HumanEval スコアを 34% から 40% 以上へと大幅に向上させ、オープンモデルに対する最先端の結果を確定しました。このプロンプトを CodeGen と StarCoderBase に対しても試しましたが、大きな違いは観測できませんでした。

 

モデル 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-Prompted 40.8 49.5

 
StarCoder の興味深い様相は、それがマルチリンガル (多言語対応) であることで、それを MultiPL-E 上で評価しました、これは HumanEval を多くの他の言語に拡張しています。StarCoder は多くの言語で code-cushman-001 と同等か優れていることを観察しました。DS-1000 と呼ばれるデータサイエンスのベンチマークでは、StarCoder は code-cushman-001 と他のオープンサクセス可能なモデルすべてを明らかに打ち負かしています。しかしこのモデルがコード補完以外に他の何ができるかを見てみましょう!

 

技術アシスタント

徹底的な評価により、StarCoder がコードを書くことについて非常に有能であることを見出しました。しかしまた私たちはそれが技術アシスタントとして利用できるかテストすることを望み、結局、それは多くのドキュメントと GitHub issues で訓練されました。Anthropic の HHH prompt にインスパイアされて、Tech Assistant Prompt を構築しました。驚くことに、プロンプトだけでモデルは技術アシスタントとして動作し、プログラミング関連リクエストに答えることができます!

 

 

訓練データ

モデルは Stack 1.2 のサブセットで訓練されました。データセットは寛容にライセンスされたコードだけで構成され、コード提供者がデータセットから彼らのデータを削除できるようにオプトアウトの過程を含みます (Am I in The Stack 参照)。Toloka とのコラボレーションにより、訓練データから名前, パスワード, 電子メールアドレスのような個人情報を削除しました。

 

BigCode について

BigCode は、コーディング用の大規模言語モデルの責任ある開発について作業する、Hugging Face と ServiceNow が共同的に主導するオープンな科学的コラボレーションです。

 

追加のリリース

モデルとともに、リストのリソースとデモをリリースしています :

  • モデル重み、OpenRAIL ライセンスによる中間的なチェックポイントを含みます。
  • Apache 2.0 によるデータ前処理と訓練用のすべてのコード。
  • コーディング用モデルのための包括的な評価ハーネス。
  • PII (個人情報) 除去を訓練して評価するための新しい PII データセット。
  • 訓練用に使用される完全に前処理されたデータセット。
  • データセット内で生成されたコードを見つけるためのコード属性 (attribution) ツール

 

リンク

モデル

  • 論文 : StarCoder に関する技術レポート
  • GitHub : StarCoder の使用、または再調整について知る必要があることのすべて
  • StarCoder : Python で更に訓練された StarCoderBase
  • StarCoderBase : Stack からの 80 以上の言語で訓練されました。
  • StarEncoder : Stack で訓練されたエンコーダモデル
  • StarPii : StarEncoder ベースの PII 検出器

 

ツール & デモ

 

データとガバナンス

You can find all the resources and links at huggingface.co/bigcode !

 

以上