コードのための大規模な言語モデルの構築とトレーニング:StarCoderへの深い探求

大規模な言語モデルの構築とトレーニング:StarCoderへの深い探求

イントロダクション

こんにちは、テック愛好家の皆さん!今日は、大規模な言語モデル(LLM)を構築してトレーニングする魅力的な世界について、皆さんをご案内します。この記事は、AIとコード開発の交差点に位置するオープンイニシアチブであるBigCodeプロジェクトの一部である、驚異的なモデルであるStarCoderについて、詳しく掘り下げていきます。

始める前に、Hugging Faceの機械学習エンジニアであるLoubna Ben Allalさんに、この記事の基になった「コードのための大規模な言語モデルの構築」に関するデータアワーセッションに感謝を申し上げます。さあ、準備をして、この最先端のテクノロジーの魔法を探求しましょう!

学習目標:

  • BigCodeコラボレーションを通じたAIのコーディングにおけるオープンで責任あるプラクティスを理解し、透明性と倫理的な開発を重視します。
  • Megatron-LMなどのフレームワークを活用した、データの選択、アーキテクチャの選択、効率的な並列処理を通じたLLMトレーニングの基本を理解します。
  • BigCode評価ハーネスによって促進されるHumanEvalなどのベンチマークを使用したLLMの評価を探求し、効果的なモデル比較を実現します。
  • VS Codeの拡張機能などのツールを使用して、LLMを開発環境に実践的に統合し、倫理的なAI利用に合致させます。

大規模言語モデルの力を解き放つ

では、これらの大規模言語モデルについての話題は何でしょうか?それは、自然言語の説明に基づいてコードの断片を完成させたり、完全な関数を生成したり、バグ修正の洞察を提供したりする、仮想のコーディングの魔術師のような存在です。私たちのスターであるStarCoderは、155億のパラメータを誇り、優れたコード補完能力と責任あるAIの実践を示しています。

データの選別と準備:成功の基盤

では、秘密のソースであるデータの選別について話しましょう。私たちの旅は、GitHubのコードの大規模なコンパイルであるThe Stackデータセットから始まります。このデータセットは300以上のプログラミング言語にわたるものです。しかし、量が常に品質を上回るわけではありません。私たちは、人気と包括性を重視しながら、86の関連する言語を選び抜きました。

ただし、ここで注意が必要です。詳細なクリーニングを経て、約80のプログラミング言語で約800ギガバイトのコードのみを残しました。この過程で、自動生成されたファイルや重複したコードを削除することで、モデルが繰り返しパターンを記憶しないようにしました。これにより、量よりも質を重視し、効果的なトレーニングが可能になりました。

トークン化とトレーニング用のメタデータ:コードの解読

次に、トークン化です!クリーンなテキストデータをモデルが理解できる数値入力に変換しました。リポジトリやファイル名などのメタデータを保持するために、各コード断片の先頭に特別なトークンを追加しました。このメタデータは、異なるプログラミング言語でコード断片を生成する方法をモデルに示す、道案内のようなものです。

また、GitHubの課題、gitのコミット、Jupyterノートブックなども工夫しました。これらの要素は、特別なトークンで構造化され、モデルにコンテキストを提供します。このメタデータと書式設定は、後のモデルのパフォーマンスと微調整に重要な役割を果たします。

StarCoderのアーキテクチャの選択:新たな高みへのスケーリング

StarCoderのアーキテクチャは、設計の選択肢の傑作です。私たちは、スピードとコスト効率を目指し、1550億のパラメータを選択しました。これは、パワーと実用性のバランスです。また、より大きなデータのバッチを効率的に処理し、品質を損なうことなく推論時間を高速化する技術であるマルチクエリアテンション(MQA)も取り入れました。

しかし、イノベーションはそこで終わりませんでした。フラッシュアテンションによる大規模なコンテキスト長を導入しました。これにより、8000トークンまでスケーリングし、効率とスピードを保ちました。そして、双方向のコンテキストについて疑問がある場合は、StarCoderが左から右、右から左の両方のコード断片を理解する方法を見つけました。これにより、その柔軟性が向上しました。

トレーニングと評価:StarCoderを試す

それでは、トレーニングについて話しましょう。私たちは512のGPUの力を利用し、Tensor Parallelism(TP)とPipeline Parallelism(PP)を使用して、StarCoderが計算パズルに適合するようにしました。私たちはMegatron-LMフレームワークを使用して24日間トレーニングし、結果は素晴らしかったです。ただし、トレーニングは旅の半分に過ぎません。評価こそが真価が問われる場所です。

私たちは、StarCoderをHumanEvalベンチマークと対戦させました。このベンチマークでは、モデルがコードの断片を完成させ、その解決策をさまざまなシナリオでテストします。StarCoderは素晴らしい成績を収め、33.6%のパス@1スコアを達成しました。新しいモデルであるWizardCoderがリードを取っていますが、StarCoderの多言語領域でのパフォーマンスは称賛に値します。

ツールとエコシステム:StarCoderを超えて

StarCoderを中心としたツールとエコシステムを強調することなく、私たちの旅は完了しません。私たちはVS Codeの拡張機能をリリースしました。この拡張機能では、コードの提案、補完、さらにはコードの帰属を提供します。また、Jupyter、VIM、EMACs向けのプラグインも提供しており、開発者のさまざまな好みに対応しています。

評価プロセスを簡素化するために、私たちはBigCode Evaluation Harnessを作成しました。これはベンチマーク評価と単体テストを効率化し、再現性を確保するフレームワークです。また、BigCode Leaderboardも導入しました。これにより、さまざまなモデルと言語のパフォーマンスを評価し、コミュニティが透明性を持ってゲージングすることができます。

未来に向けて:コミュニティ主導の取り組み

今までのところ、コードのための大規模言語モデルの世界が常に進化していることは明らかです。BigCodeエコシステムは繁栄し続けており、OctoCoder、WizardCoderなどのモデルがStarCoderの基盤を築いています。これらのモデルは単なるツールにとどまらず、協力的なイノベーションとオープンソース開発の力を証明しています。

以上が、StarCoderとBigCodeコミュニティがコード生成の領域で可能性の限界を押し広げている物語です。入念なデータのキュレーションから先進的なアーキテクチャの選択、最先端のツールまで、情熱とAIコード開発の未来を形作るための取り組みによって推進される旅です。将来に向けてどのような素晴らしいイノベーションがコミュニティによって発表されるのか、誰にもわかりません。

今日のスキルは明日のLLMにつながる

以下は、将来の大規模言語モデルの構築とトレーニングの旅に持ち込むものです:

  • トレーニングのセットアップとフレームワーク:このような巨大なモデルのトレーニングには並列処理が必要です。私たちはデータ、テンソル、パイプラインの並列処理の組み合わせである3D並列処理を利用しました。このアプローチにより、最高の結果を得るために512のGPUで24日間トレーニングを行うことができました。私たちは主にMegatron-LMフレームワークを使用しましたが、よりアクセスしやすく短期間のファインチューニングを行うためのHugging Face Trainer with Deepspeed統合など、代替フレームワークも紹介しました。
  • パフォーマンスの評価:コードモデルの評価は簡単なタスクではありません。私たちはHumanEvalやMulti-PLEなどのベンチマークを説明しました。これらのベンチマークは、モデルが特定のテストをパスするコードソリューションを生成する能力を測定します。これらのベンチマークは、さまざまなプログラミング言語や文脈でのモデルのパフォーマンスを理解するのに役立ちます。また、一貫した環境と再現可能な結果を提供するフレームワークであるBigCode評価ハーネスも導入しました。
  • ツールとエコシステム:BigCodeエコシステムが提供するツールと拡張機能を探求しました。VS Codeの拡張機能からJupyterノートブック、VIM、EMACsなどへのサポートまで、開発者がStarCoderとその派生物をワークフローに統合しやすくしています。StarCoder PlusとStarChartのリリースにより、モデルの機能がさらに拡張され、より多機能で便利になっています。
  • 責任あるAIとライセンス:責任あるAIの実践に合わせて、モデルの使用における倫理的なガイドラインを強調しています。私たちのモデルはCodeML OpenRAILライセンスに基づいて構築されており、ロイヤリティフリーの使用、派生物のダウンストリーム配布、倫理的な考慮事項を促進しています。私たちは、モデルが社会に利益をもたらす強力なツールである一方、責任を持って使用されることを確保することに取り組んでいます。

結論

この記事では、コードのための大規模言語モデル(LLM)の構築の領域に深く入り込み、その印象的なコード補完能力を探求しました。Hugging FaceとServiceNowによる協力的なBigCodeプロジェクトは、データプライバシーや再現性などの課題に対処し、開放的で責任あるコードモデルとして強調されました。

私たちの技術的な旅は、StarCoderなどのモデルのためのデータキュレーション、アーキテクチャの決定、並列処理技術を用いたトレーニング手法などを含みました。HumanEvalやMulti-PLEなどのベンチマークによるモデルの評価は、StarCoderのバージョンが先頭を切っていることを示しました。

重要なポイント:

  • HuggingFaceとServiceNowによるBigCodeの共同作業は、責任あるコードモデルの開発を促進しています。
  • StarCoderを例に挙げながら、データの準備、アーキテクチャ、効率的な並列処理など、さまざまなトレーニングの側面をカバーしました。
  • HumanEvalやMulti-PLEなどのAIモデルの評価について議論しました。

よくある質問

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

「Google.orgの新しい助成金は、永久凍土の融解を追跡するのに役立ちます」

新たな500万ドルの助成金は、Woodwell Climate Research Centerが北極の永久凍土の解凍をほぼリアルタイムで追跡するのを支援...

機械学習

「KOSMOS-2:Microsoftによるマルチモーダルな大規模言語モデル」

イントロダクション 2023年はAIの年となりました。言語モデルから安定した拡散モデルの強化にSegMind APIを使うまで、AI技術...

AIニュース

「安全で安心なAIに対する取り組みに基づいて行動する」

「ジェネラティブAIに特化した私たちのバグバウンティプログラムのニュースと、AIの供給チェーンに対するオープンソースセキ...

データサイエンス

AIのオリンピック:機械学習システムのベンチマーク

何年もの間、4分以内で1マイルを走ることは、単なる困難な課題ではなく、多くの人にとっては不可能な偉業と考えられていまし...

データサイエンス

「バリー・ディラー対生成AI:著作権法的な戦い」

メディアの大物であるバリー・ディラー氏と一部の著名な出版社は、人工知能(AI)システムのトレーニングで公開された作品の...

データサイエンス

データから洞察へ:データ分析のための生成AIの活用

「生成AIはデータ分析を革新し、生成AIのデータ分析への影響を探求し、組織が情報に基づいた意思決定にデータを活用する方法...