Skip to main content
QUICK REVIEW

[論文レビュー] CoTexT: Multi-task Learning with Code-Text Transformer

Long Phan, Hieu Tran|arXiv (Cornell University)|May 18, 2021
Software Engineering Research参考文献 20被引用数 7
ひとこと要約

CoTexT は、大規模な二モーダル(コード-テキスト)および単モーダル(コードのみ)のプログラミング言語コーパス上で微調整された、エンコーダ-デコーダ型トランスフォーマーモデルであり、自然言語およびコード理解のためのマルチタスク学習を可能にする。CoTexT は、コード要約、コード生成、コード精錬、欠际検出の4つの CodeXGLUE タスクにおいて、CodeBERT や PLBART などのモデルを上回る最先端の性能を達成しており、特に欠际検出(+3.44%)および BLEU、CodeBLEU、EM メトリクスにおけるコード生成で一貫した向上を示している。

ABSTRACT

We present CoTexT, a pre-trained, transformer-based encoder-decoder model that learns the representative context between natural language (NL) and programming language (PL). Using self-supervision, CoTexT is pre-trained on large programming language corpora to learn a general understanding of language and code. CoTexT supports downstream NL-PL tasks such as code summarizing/documentation, code generation, defect detection, and code debugging. We train CoTexT on different combinations of available PL corpus including both "bimodal" and "unimodal" data. Here, bimodal data is the combination of text and corresponding code snippets, whereas unimodal data is merely code snippets. We first evaluate CoTexT with multi-task learning: we perform Code Summarization on 6 different programming languages and Code Refinement on both small and medium size featured in the CodeXGLUE dataset. We further conduct extensive experiments to investigate CoTexT on other tasks within the CodeXGlue dataset, including Code Generation and Defect Detection. We consistently achieve SOTA results in these tasks, demonstrating the versatility of our models.

研究の動機と目的

  • 自然言語とプログラミング言語の間の統合表現を学習する統一された事前学習モデルを開発し、コードインテリジェンスタスクの性能を向上させること。
  • 二モーダル(コード-テキストペア)および単モーダル(コードのみ)のデータを組み合わせた事前学習が、下流のコード関連 NLP タスクに与える影響を調査すること。
  • コード要約、コード生成、コード精錬、欠际検出を含む、複数の CodeXGLUE ベンチマークタスクで最先端の性能を達成すること。
  • 訓練データに含まれないプログラミング言語(例:C言語)に対しても、モデルの一般化能力を示すこと。
  • 今後の研究およびモデル改善を支援するため、事前学習済みチェックポイントとソースコードを公開すること。

提案手法

  • CoTexT は、マルチヘッドアテンション機構を備えた T5 エンコーダ-デコーダ型トランスフォーマー・アーキテクチャに基づいており、マスクド言語モデリングおよびノイズ除去オートエンコーダーといった自己教師付き目的で事前学習が行われる。
  • モデルはサブワードトークナイゼーションに SentencePiece を使用し、語彙外のコード固有の記号(例:{, [, $)を意味のある自然言語表現に変換する特別な処理を実施している。
  • 事前学習は、CodeSearchNet および GitHub リポジトリを用いた大規模コーパス上で、二モーダル(コード + 自然言語)および単モーダル(コードのみ)のデータを組み合わせて実施される。
  • 微調整は、4つの CodeXGLUE タスク(コード要約(6言語)、コード精錬(小規模/中規模)、コード生成、欠际検出)で T5 フレームワークを用いて実施される。
  • データモダリティの影響を評価するために、異なるデータ組み合わせ(例:1-CCG、2-CC)を用いた複数の CoTexT バージョンを訓練している。
  • 収束を加速させ、性能を向上させるために、C4 コーパスで事前学習された元の T5 ベースモデルから初期化されている。

実験結果

リサーチクエスチョン

  • RQ1統一された事前学習エンコーダ-デコーダ型トランスフォーマーモデルは、自然言語とプログラミング言語の間の統合表現を効果的に学習できるか?
  • RQ2二モーダルおよび単モーダルの学習データを組み合わせることで、多様なコードインテリジェンスタスクにおける性能にどのような影響を与えるか?
  • RQ3複数のプログラミング言語で事前学習されたモデルは、低リソース言語や訓練データにない言語(例:C言語)にどの程度一般化できるか?
  • RQ4CoTexT を用いたマルチタスク学習は、コード要約、コード生成、コード精錬、欠际検出の各タスクで一貫した向上をもたらすか?
  • RQ5CoTexT は、CodeBERT や PLBART などの既存の最先端モデルを、複数のベンチマークで上回ることができるか?

主な発見

  • CoTexT は、コード要約タスクにおいて CodeXGLUE ベンチマークで最先端の性能を達成しており、全体、Python専用、Java専用、Go専用の BLEU-4 スコアで、以前のモデルを上回っている。
  • コード精錬において、小規模テストセットではすべてのメトリクスで最先端の結果を達成し、中規模テストセットでは正答率においてもベース T5 を顕著に上回っている。
  • コード生成において、Exact Match(20.10)、BLEU(66.62)、CodeBLEU(65.99)の3つのメトリクスすべてで最先端の結果を達成しており、CodeGPT-adapted モデルおよび PLBART を上回っている。
  • C言語の欠际検出において、前回の最先端モデル(PLBART)に対して 3.44% の向上を示しており、未学習言語へのゼロショット一般化能力が強いことを示している。
  • 複数のプログラミング言語にわたり、安定した性能を示しており、特に Python や Java といった高リソース言語で顕著な向上を示しており、訓練データの増加に伴うスケーラビリティが期待できる。
  • 評価されたすべてのタスクで一貫して優れた性能を示しており、多様なコードおよびテキストデータを用いたマルチタスク学習および事前学習戦略の有効性が裏付けられている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。