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のようなモデルのトレーニング効率を大幅に向上

ブログ    
ブログ    
ブログ    

推薦する

GPT-4 には意識がありません!しかし、チューリング賞受賞者のベンジオ氏らの88ページの論文は、「スカイネット」が遅かれ早かれやってくることを示唆している。

今日まで人工知能は発展してきましたが、人工知能は意識を持っているのでしょうか?チューリング賞受賞者の...

...

量子機械学習変分量子分類器 (VQC) の紹介

変分量子分類器 (VQC) は、量子コンピューティング技術を使用して分類タスクを実行する機械学習アル...

人工知能はパーキンソン病の初期段階を治療できるかもしれない

おそらく多くの友人は、パーキンソン病が世界中で 1,000 万人以上の人々を悩ませている神経変性疾患...

...

2024年のクラウドとAIのトレンド

新しいテクノロジー時代の幕開けを迎えた今、クラウド コンピューティングと人工知能 (AI) の融合に...

WeChatグループに広告を投稿する人が常にいるのでしょうか? Pythonを使って自動ロボットを作成し、彼を排除する

[[341536]] WeChatグループ乾癬とは、WeChatグループ内の他のユーザーに恥ずかしげ...

中間レビュー: 2020 年に最も注目されたデータ サイエンスと機械学習のスタートアップ 10 社

企業がビッグデータを活用するには、データ サイエンティストと開発者がデータを準備して整理し、アナリス...

エッジ人工知能とは?エッジ人工知能の実装方法

エッジ AI はエッジ人工知能の略称です。IoT システムの次の開発フロンティアです。では、エッジ人...

PHPソートアルゴリズムの完全実装

PHP を学習しているときに、PHP のソート問題に遭遇することがあります。ここでは、PHP のソー...

ビッグデータと AI を現代の教育とどのように組み合わせることができるでしょうか?

転載は歓迎しますが、署名し、「劉鵬の未来を見つめる」公開アカウントからの転載であることを明記し、この...

2025年までに音声認識市場は267億9000万ドルに達する

3月29日、市場調査会社Meticulous Market Researchが発表した最新のレポート...

人工知能は大きな進歩を遂げ、意識の認識が実現した

参加者が50の文章を話している間に神経活動が収集されました。機械学習アルゴリズムは、収集されたデータ...

最も人気のある 15 の機械学習フレームワークのうち、いくつ知っていますか?

機械学習エンジニアは、製品の開発やアルゴリズムの構築を行うチームの重要なメンバーです。データの専門家...

インターネットの大失敗: 破壊された破壊者

[[324391]]インターネットの破壊的イノベーションは、自らの業界から生まれることはありません...