Microsoft が大規模コード モデル WaveCoder をリリースしました。 4つのコードタスクと20,000のインスタンスデータセットにより、LLMの一般化能力が大幅に向上しました。

Microsoft が大規模コード モデル WaveCoder をリリースしました。 4つのコードタスクと20,000のインスタンスデータセットにより、LLMの一般化能力が大幅に向上しました。

高品質のデータ セットを使用して命令のチューニングを実行すると、大規模なモデルのパフォーマンスを迅速に向上できます。

この目的のために、Microsoft の研究チームは、20,000 個の命令インスタンスと 4 つの一般的なコード関連タスクのデータセットを含む CodeOcean データセットをトレーニングしました。

その間に、研究者たちは大規模なコードモデルである WaveCoder を微調整しました。

論文アドレス: https://arxiv.org/abs/2312.14187

実験結果によると、Wavecoder は他のオープンソース モデルよりも優れており、以前のコード生成タスクでも優れたパフォーマンスを発揮します。

「ビッグコードモデル」の潜在能力を引き出す命令チューニング

過去 1 年間で、GPT-4、Gemini、Llama などの大規模モデルは、一連の複雑な NLP タスクで前例のないパフォーマンスを達成しました。

これらの LLM は、自己監督型の事前トレーニングとその後の微調整のプロセスを利用して、強力なゼロ/少数ショット機能を発揮し、人間の指示に効果的に従ってさまざまなタスクを完了することができます。

しかし、このような大規模なモデルのトレーニングと微調整にはコストが非常に高くなります。

そのため、比較的小規模な LLM、特にコード大規模言語モデル (コード LLM) は、コード関連の幅広いタスクで優れたパフォーマンスを発揮するため、多くの研究者の注目を集めています。

LLM は事前トレーニングを通じて豊富な専門知識を獲得できるため、大規模なコード モデルではコード コーパスの効率的な事前トレーニングが重要です。

Codex、CodeGen、StarCoder、CodeLLaMa などのいくつかの研究では、事前トレーニング プロセスによって、大規模モデルがコード関連の問題を処理する能力が大幅に向上することが実証されています。

さらに、命令チューニングに関する複数の研究 (FLAN、ExT5) では、さまざまなタスクにおける命令チューニングされたモデルのパフォーマンスが人間の期待と一致していることが示されています。

これらの研究では、数千のタスクをトレーニング パイプラインに組み込み、下流のタスクにおける事前トレーニング済みモデルの一般化能力を向上させています。

たとえば、InstructGPT は、人間の注釈者が作成した高品質の指示データを統合することでユーザー入力を効果的に調整し、指示の調整のさらなる探求を促進します。

スタンフォード大学の Alpaca は、Self-Instruct メソッドを通じて ChatGPT を使用し、命令チューニング プロセス用の命令データを生成します。

WizardLM と WizardCoder は、evol-instruct メソッドを適用して、事前トレーニング済みモデルの有効性をさらに向上させます。

最近の研究では、命令のチューニングが大規模モデルのパフォーマンスを向上させる大きな可能性を秘めていることが示されています。

これらの研究に基づいて、研究者は、命令の調整によって大規模モデルの潜在能力を活性化し、事前トレーニング済みのモデルを優れたレベルの知能に微調整できると直感しています。

この点に関して、彼らは命令チューニングの主な機能を次のようにまとめました。

- 一般化

命令チューニングは、もともと大規模モデルのタスク間一般化能力を強化するために提案されました。さまざまな NLP タスク命令を使用して微調整すると、命令チューニングによって、多数の未知のタスクでのモデルのパフォーマンスを向上させることができます。

- 整列

事前トレーニング済みのモデルは、トークンレベルと文レベルで多数の自己教師タスクから学習し、すでにテキスト入力を理解する能力を備えています。命令チューニングにより、これらの事前トレーニング済みモデルに命令レベルのタスクが提供され、元のテキストの意味を超えて命令からより多くの情報を抽出できるようになります。この追加情報はユーザーの意図であり、人間のユーザーとのやり取りを強化し、調整に役立ちます。

命令チューニングを通じて大規模コードモデルのパフォーマンスを向上させるために、主に 2 つの側面に焦点を当てた命令データを生成するための多くの方法が設計されてきました。

たとえば、self-instructe と vol-instruct は、teacher LLM のゼロ/少数ショット機能を利用して指導データを生成します。これにより、指導データを生成する魔法のような方法が提供されます。

しかし、これらの生成方法は教師 LLM のパフォーマンスに過度に依存しており、大量の重複データを生成することがあり、微調整の効率が低下します。

CodeOcean: 4つのタスクコードに関連する指示データ

これらの問題に対処するために、図 2 に示すように、研究者はソース コードを最大限に活用し、生成されたデータの品質を明示的に制御できる方法を提案しました。

命令のチューニングは、事前トレーニング済みモデルをトレーニング セットに従う命令と一致させることであるため、研究者は命令データ生成用の LLM ジェネレーター ディスクリミネーター (Large Model Generator-Disciminator) フレームワークを提案しました。

最近の方法では、ジェネレーターとディスクリミネータを使用することで、データ生成プロセスをよりカスタマイズ可能かつ制御可能にすることができます。

この方法は、元のコードを入力としてコアデータセットを選択し、元のコードの分布を調整することで、より現実的な命令データを安定して生成し、データの多様性を制御することができます。

上記の課題に対処するために、研究者は命令インスタンスを、コード集約、コード生成、コード変換、コード修復という 4 つの一般的なコード関連タスクに分類しました。

同時に、データ生成戦略を使用して、CodeOcean と呼ばれる 4 つのコード関連タスクの 20,000 個の命令インスタンスのデータセットを生成します。

研究者らは、最新の手法を検証するために、StarCoder、CodeLLaMa、DeepseekCoderを基本モデルとして使用し、最新のデータ生成戦略に基づいて新しいWaveCoderモデルを微調整しました。

同時に、研究者らは HumanEval、MBPP、HumanEvalPack でモデルを評価した結果、WaveCoder は小規模命令チューニングのベンチマークで優れたパフォーマンスを発揮することが示されました。

コードデータ生成

前述のように、研究者は 4 つの代表的なコーディング タスクを選択し、オープン ソース データセットから元のコードを収集しました。

以下は、トレーニング データ生成プロセスの詳細な紹介です。

このセクションでは、私たちの調査の方法論の詳細を紹介します。まず、代表的なコーディングタスクを 4 つ選択し、オープンソース データセットから元のコードを収集します。

著者らは、各タスクについて、GPT-3.5-turbo を使用して微調整用の指示データを生成しました。生成のヒントを表 2 に示します。

以下は、LLM ジェネレーター-ディスクミネーターの全体的なアーキテクチャであり、データ生成の完全なプロセスでもあります。

Codesearchnet は、GitHub でホストされているオープンソース リポジトリからの 200 万の (コメント、コード) ペアのデータセットです。 6 つのプログラミング言語のコードとドキュメントが含まれています。ベースデータセットとして CodeSearchNet を選択し、コアセットベースの選択方法 KCenterGreedy を適用して、元のコードの多様性を最大化します。

具体的には、ジェネレータは入力(a)に基づいて指示データを生成する。次に、識別器は出力を取得して分析結果を生成します。出力 (b) には 4 つのキーが含まれ、研究者はこの情報を命令チューニングの入力と出力として使用します。

分析(c)には、各ルールの詳細な理由と、サンプルがすべての要件を満たしているかどうかを確認するための全体的な回答が含まれます。

実験評価結果

コード生成タスク評価

表 3 は、2 つのベンチマークにおけるさまざまな大規模モデルの pass@1 スコアを示しています。結果から、次のことがわかります。

WaveCoder は、20,000 未満の命令チューニング データ (InsT データ) を使用した命令モデルのトレーニングよりも大幅に優れたパフォーマンスを発揮します。

微調整プロセスの後、最先端モデルのパフォーマンスは、選択された基本モデルやオープンソース モデルと比較して大幅に改善されていますが、70,000 を超えるトレーニング データでトレーニングされた独自のモデルには依然として遅れをとっています。

研究者らは、表 4 に示すように、HumanEvalPack の最先端の Code LLM を使用して WaveCoder のスコアも評価しました。

表 5 は、コード要約タスクにおける WaveCoder の結果を示しており、次の注目すべき点が強調されています。

<<: 

>>:  わずか 2 分で、シングル ビューの 3D 生成が高速かつ良好に行えます。北京大学などが新しいRepaint123法を提案

ブログ    
ブログ    

推薦する

AIは単細胞生物が脳なしで意図した方向に移動する仕組みを説明するのに役立つ

単純な生物はどのようにして特定の場所へ移動できるのか?ウィーン大学で開発された人工知能と物理モデルが...

推奨アルゴリズム集(パート1) - 協調フィルタリングアルゴリズム

【51CTO.comオリジナル記事】 1. ロングテール効果?動物の尻尾と関係があるのでしょうか?前...

コンピューティングパワーとは正確には何でしょうか?

ご存知のとおり、コンピューティング パワーの文字通りの意味はコンピューティング能力です。 「コンピュ...

20年後にはロボットが手術を行えるようになる

「1か月で10年分の変化を目撃しました。」 COVID-19パンデミック中に遠隔医療の利用が加速した...

携帯電話がなくてもデジタル人民元が使えます!これらのブラックテクノロジーは

中国新聞社クライアント、福州、4月26日(記者 李金雷)将来のデジタルライフがどのようなものになるか...

...

AIは小売市場の衰退を防ぐことができるか?

デジタル時代の到来により、私たちの生活は急速に変化しました。買い物の仕方も、近所のショッピングモール...

...

データサイエンスを始めるにはどの程度のレベルの数学が必要ですか?

基礎科目として、数学はデータサイエンスと機械学習の両方において欠かせない役割を果たします。数学的な基...

...

プログラマーが知っておくべき 20 世紀の 10 大アルゴリズム

トップ10のアルゴリズムを発明したアルゴリズムの巨匠たち1. 1946年のモンテカルロ法[1946年...

...