Salesforceは、20のコードタスクSOTAをリフレッシュするために、新しい基本的なLLMシリーズのエンコーダー/デコーダーコードT5 +を提案しています。

Salesforceは、20のコードタスクSOTAをリフレッシュするために、新しい基本的なLLMシリーズのエンコーダー/デコーダーコードT5 +を提案しています。

大規模言語モデル (LLM) は最近、コード レベルでのさまざまなダウンストリーム タスクで優れたパフォーマンスを示しています。大量のコードベースのデータ (GitHub パブリック データなど) を事前トレーニングすることで、LLM はさまざまなコード関連の下流タスクに転送可能な豊富なコンテキスト表現を学習できます。ただし、既存のモデルの多くは、アーキテクチャや事前トレーニング タスクの制限により、タスクのサブセットでしか適切に機能しません。

アーキテクチャの観点から見ると、既存の LLM は通常、純粋なエンコーダー モデルまたは純粋なデコーダー モデルを採用しており、これらは通常、一部の理解タスクまたは生成タスクでのみ優れたパフォーマンスを発揮します。純粋なエンコーディング モデルは通常、テキストの理解やコードの取得などのタスクに適していますが、純粋なデコーダー モデルはコード生成タスクでより優れたパフォーマンスを実現できます。さらに、最近のモデルの中には、より統合されたエンコーダー/デコーダー アーキテクチャを使用してさまざまなタスクに対処するものもあります。これらのモデルは理解タスクと生成タスクの両方をサポートできますが、特定のタスクでは最適なパフォーマンスを達成できません。検索およびコード補完タスクでは、エンコーダー/デコーダー モデルは、最先端 (SOTA) のエンコーダーのみおよびデコーダーのみのベースラインよりもパフォーマンスが劣っています。単一モジュール アーキテクチャは一般にすべてのタスクに適用できますが、その制限によりエンコーダー/デコーダー モデルの欠点も生じます。要約すると、これまでのアプローチは、さまざまな種類の下流のタスクに適合するように個々のコンポーネントをどのようにアクティブ化できるかを考慮して設計されていませんでした。

学習オブジェクトの観点から見ると、現在のモデルは通常、事前トレーニング タスクの限定されたセットを採用しています。事前トレーニング段階と微調整段階の違いにより、これらの事前トレーニング タスクによって一部の下流タスクのパフォーマンスが低下する可能性があります。たとえば、T5 ベースのモデルは、多くの場合、スパンノイズ除去の目的でトレーニングされます。ただし、コード生成などの下流タスクでは、ほとんどの最新モデルは、トークンごとの自己回帰予測を実行する次のトークン予測目的で事前トレーニングされています。対照的なコード表現を学習することは、テキスト理解やコード検索などのタスクにとって重要ですが、多くのモデルはそのためトレーニングされていません。最近のいくつかの研究では、この問題を軽減するために対照学習タスクを導入しようと試みましたが、これらの方法では、テキストとコード表現間のきめ細かいクロスモーダル調整が無視されています。

上記の制限に対処するために、Salesforce の研究者は、幅広いコード理解および生成タスクに使用できる新しい基本的な LLM シリーズ エンコーダー/デコーダーである「CodeT5+」を提案しました。

  • 論文アドレス: https://arxiv.org/pdf/2305.07922.pdf
  • プロジェクトアドレス: https://github.com/salesforce/CodeT5/tree/main/CodeT5%2B

CodeT5+ はエンコーダー/デコーダー モデルに基づいていますが、エンコーダーのみ、デコーダーのみ、エンコーダー/デコーダーの各モードで柔軟に動作し、さまざまなダウンストリーム アプリケーションに適応できます。全体的なアーキテクチャを図 1 に示します。

この柔軟性は、コード データに対するスパン ノイズ除去や因果言語モデリング (CLM) タスク、およびテキスト コード データに対するテキスト コード対照学習、マッチング、CLM タスクなどの事前トレーニング タスクに基づいて実現されます。このような幅広い事前トレーニング タスクは、コードやテキスト データの豊富な表現を学習し、さまざまなアプリケーションにおける事前トレーニングと微調整のギャップを埋めるのに役立ちます。マッチングタスクと対照学習を組み合わせることが、きめ細かいテキストとコードのアライメントを捉え、検索パフォーマンスを向上させるために重要であることがわかりました。

既製の LLM コードを活用して CodeT5+ コンポーネントを初期化することにより、計算効率の高い事前トレーニング戦略を使用して CodeT5+ のモデル サイズを拡張します。 CodeT5+ は「浅いエンコーダーと深いデコーダー」アーキテクチャを採用しており、エンコーダーとデコーダーの両方が事前トレーニング済みのチェックポイントから初期化され、クロスアテンションレイヤーによって接続されます。さらに、この研究ではディープデコーダー LLM を凍結し、浅いエンコーダーと交差注意層のみをトレーニングしたため、効果的に調整できるトレーニング可能なパラメーターの数が大幅に削減されました。最後に、NLP の分野に触発されて、研究者たちは、モデルを自然言語の命令とより適切に一致させるために、CodeT5+ が命令のチューニングに与える影響を調査し始めました。

この調査では、ゼロショット、微調整、命令調整など、20 を超えるコード関連のベンチマークで CodeT5+ を徹底的に評価します。結果は、CodeT5+ が、8 つのテキストからコードへの検索タスク (+3.2 平均 MRR)、2 つの行レベルのコード補完タスク (+2.1 平均完全一致)、および 2 つの検索強化コード生成タスク (+5.8 平均 BLEU-4) など、多くの下流タスクで SOTA ベースラインに対して大幅なパフォーマンス向上を達成したことを示しています。

MathQA および GSM8K ベンチマークの 2 つの数学プログラミング タスクでは、10 億未満のパラメータを持つ CodeT5+ モデルが、最大 1370 億のパラメータを持つ多くの LLM よりも大幅に優れたパフォーマンスを発揮します。特に、HumanEval ベンチマークのゼロショット テキストからコードへの生成タスクでは、命令調整された CodeT5+ 16B は、他のオープンソース コード LLM と比較して、35.0% pass@1 および 54.5% pass@10 という新しい SOTA 結果を達成し、クローズドソースの OpenAI code-cusherman-001 モデルを上回りました。最後に、この研究では、CodeT5+ はセミパラメトリック検索強化型生成システムとしてシームレスに見ることができ、コード生成における他の同様の方法を大幅に上回る性能を発揮することがわかりました。すべての CodeT5+ モデルは、研究および開発者コミュニティをサポートするためにオープン ソースになります。

CodeT5+: オープンソースの大規模言語モデル

本稿では、コードの理解と生成タスクのためのオープンソースの大規模言語モデルの新しいファミリーである CodeT5+ を開発します。 CodeT5+ は、エンコーダー/デコーダー アーキテクチャに基づいて、この論文で提案されているように、ユニモーダル データとバイモーダル データで事前トレーニング目標を混合することにより、さまざまなダウンストリーム タスクでさまざまなモードで動作する柔軟性を高めます。

アーキテクチャの詳細

事前トレーニングの詳細

ユニモーダル事前トレーニング段階では、研究者は計算効率を目標に大量のコード データを使用してモデルを事前トレーニングします。バイモーダル事前トレーニング段階では、クロスモーダル学習目標を持つより小さなコードテキスト データセットを使用してモデルの事前トレーニングを継続します。各ステージでは、同じ重みを使用して、複数の事前トレーニング済み目標が共同で最適化されます。

研究者たちは、この段階的なトレーニング手法により、モデルをより多様なデータに効果的にさらして、豊富なコンテキスト表現を学習できることを発見しました。さらに、モデルを効率的にスケーリングするために、既製のコード LLM を使用して CodeT5+ を初期化する方法も検討しました。最後に、CodeT5+ のモデル コンポーネントを動的に組み合わせて、さまざまな下流のアプリケーション タスクに適応できます。

実験

研究者らは、モデルサイズが 220M から 16B に及ぶ一連の CodeT5+ モデルを実装しました。

CodeT5+ 220M および 770M は T5 と同じアーキテクチャを使用し、最初から事前トレーニングされていますが、CodeT5+ 2B、6B、16B は「浅いエンコーダーと深いデコーダー」アーキテクチャを使用し、エンコーダーは CodeGen-mono 350M から初期化され、デコーダーはそれぞれ CodeGen-mono 2B、6B、16B から初期化されています。研究者らは、CodeT5+ と SOTA コード モデルを比較しました。これらの LLM は、純粋なエンコーダー、純粋なデコーダー、エンコーダー デコーダー モデルの 3 種類に分けられます。

テキストからコードへの生成タスクのゼロショット評価

自然言語仕様を与えられた場合にゼロショット設定で Python コードを生成するモデルの能力を評価し、生成されたコードを単体テストでテストすることでモデルのパフォーマンスを評価しました。表2は合格率pass@kを示しています。

数理計画タスクの評価

研究者らは、他のコード生成タスク、具体的には 2 つの数学プログラミング ベンチマークである MathQAPython と GSM8K も調査しました。表 3 に示すように、CodeT5+ は大幅なパフォーマンスの向上を実現し、多くの大規模コード LLM を上回っています。

図 6 は、MathQA-Python における数学プログラミング問題の複雑さによるモデル パフォーマンスの分析を示しています。それぞれの問題について、その問題を解決するために必要な推論ステップの数を抽出しました。 CodeT5 と比較すると、CodeT5+ は問題の複雑さ (必要な推論ステップの数) に対してより堅牢です。

コード要約タスクの評価

コード要約タスクは、コード スニペットを自然言語のドキュメント文字列に要約することを目的としています。研究者らは、6つのプログラミング言語のCodeSearchNetデータセットのクリーンバージョンを使用して、このタスクのモデルを評価しました。

表 4 から、エンコーダー/デコーダー モデル (CodeT5 および CodeT5+) のパフォーマンスは、純粋なエンコーダー モデル、純粋なデコーダー モデル、および UniLM スタイル モデル UniXcoder よりも一般的に優れていることがわかります。

コード補完タスクの評価

コンテキストに基づいて次のコード行を完了することを目的とした行レベル完了タスクで、CodeT5 + デコーダーのみの生成機能を評価しました。

表 5 に示すように、CodeT5+ (純粋なデコーダー モード) と純粋なデコーダー モデル (上部のブロック) のパフォーマンスは、エンコーダー/デコーダー モデル (中央のブロック) よりも大幅に優れており、純粋なデコーダー モデルがコード補完タスクに適切に適応できることが証明されています。

テキストからコードへの検索タスクの評価

また、複数の PL にわたるテキストからコードへの検索タスクを通じて、CodeT5+ のコード理解能力も評価しました。

表 6 からわかるように、CodeT5+ 220M は、既存のすべてのエンコーダーのみ/デコーダーのみのモデル (上部ブロック) およびエンコーダー/デコーダー モデル (中央ブロック) よりも大幅に優れたパフォーマンスを発揮します。

研究の詳細については原著論文を参照してください。

<<:  自動運転にはセンサーがいくつ必要ですか?

>>:  DeepSpeed ZeRO++: ネットワーク通信を4倍削減し、大規模モデルやChatGPTのようなモデルのトレーニング効率を大幅に向上

ブログ    
ブログ    
ブログ    

推薦する

問題が VPN の問題であることを証明するにはどうすればよいですか?コンピュータ科学者は簡単な方法を発見した

P/NP 問題は、計算複雑性の分野における未解決の問題です。人々は、「すべての計算問題を妥当な時間内...

ロボット研究助手が人間の1,000倍の速さで研究を行うために登場

研究者たちは、研究室の中を動き回り、人間のように科学実験を行うことができる画期的なロボット研究助手を...

KPMG: 大企業における AI 活用の 8 つのトレンド

概要: KPMG の新しいレポートでは、大企業がどのように人工知能と機械学習の技術に投資し、導入して...

ワンクリックで漫画に変身!流行のDouyin特殊効果の背後にある技術

昨日、李栄浩は目が小さいことで再び注目を集めた。 「特殊効果では李容浩の目は大きくできない」というト...

インテリジェント製造自動化、中国電子山地がインテリジェント製造の新しいモデルを実践

中国電子サンディとオートデスクは2017年に関係を築き始めました。中国電子三迪の創業者である于楊氏は...

中山大学、AIGCの大規模応用を促進するためにソース拡散モデル統合コードフレームワークを公開

近年、拡散モデルに基づく画像生成モデルが次々と登場し、驚くべき生成効果を示しています。しかし、関連す...

GitHub Copilotが3回アップデート:コード行で直接質問できるようになり、コンテキスト範囲がターミナルまで拡張される

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

ChatGPT を使用して HR を強化するにはどうすればよいでしょうか?

------01------人事担当者としては、日々さまざまな採用情報を発信する必要があります。以...

80億人民元を超える資金で医療AIは「V字カーブ」を描いている

[[373863]] 「人工知能は将来の生産性の中核である」という見解に疑問を抱く人はほとんどいませ...

現在、中国における知能ロボットの開発状況はどうなっているのでしょうか?

インテリジェントロボットは、知覚、思考、効果の面で人間を完全にシミュレートする機械システムです。近年...

...