Skip to main content
QUICK REVIEW

[論文レビュー] How Important are Good Method Names in Neural Code Generation? A Model Robustness Perspective

Guang Yang, Yu Zhou|arXiv (Cornell University)|Nov 29, 2022
Software Engineering Research被引用数 5
ひとこと要約

本稿では、敵対的攻撃と防御メカニズムを通じてメソッド名の耐性を向上させることで、事前学習済みコード生成モデル(PCGMs)の性能を向上させるフレームワークRADARを提案する。RADAR-Attackは、意味的に類似しているが誤解を招くメソッド名を生成し、CodeBLEUを最大38.74%低下させ、Pass@1を最大44.42%低下させる。一方、RADAR-Defenseは機能的記述から正確なメソッド名を合成し、モデルの性能を回復させ、良好なメソッド名がニューラルコード生成において重要な役割を果たすことを示している。

ABSTRACT

Pre-trained code generation models (PCGMs) have been widely applied in neural code generation which can generate executable code from functional descriptions in natural languages, possibly together with signatures. Despite substantial performance improvement of PCGMs, the role of method names in neural code generation has not been thoroughly investigated. In this paper, we study and demonstrate the potential of benefiting from method names to enhance the performance of PCGMs, from a model robustness perspective. Specifically, we propose a novel approach, named RADAR (neuRAl coDe generAtor Robustifier). RADAR consists of two components: RADAR-Attack and RADAR-Defense. The former attacks a PCGM by generating adversarial method names as part of the input, which are semantic and visual similar to the original input, but may trick the PCGM to generate completely unrelated code snippets. As a countermeasure to such attacks, RADAR-Defense synthesizes a new method name from the functional description and supplies it to the PCGM. Evaluation results show that RADAR-Attack can reduce the CodeBLEU of generated code by 19.72% to 38.74% in three state-of-the-art PCGMs (i.e., CodeGPT, PLBART, and CodeT5) in the fine-tuning code generation task, and reduce the Pass@1 of generated code by 32.28% to 44.42% in three state-of-the-art PCGMs (i.e., Replit, CodeGen, and CodeT5+) in the zero-shot code generation task. Moreover, RADAR-Defense is able to reinstate the performance of PCGMs with synthesized method names. These results highlight the importance of good method names in neural code generation and implicate the benefits of studying model robustness in software engineering.

研究の動機と目的

  • ニューラルコード生成におけるメソッド名の役割をモデルの耐性の観点から調査すること。
  • 悪意あるまたは劣悪なメソッド名がPCGMの性能を著しく低下させることを実証すること。
  • PCGMの耐性を回復させるために、正確なメソッド名を合成する防御メカニズムを開発すること。
  • 微調整およびゼロショットコード生成タスクにおけるメソッド名の影響を評価すること。
  • メソッド名の質がPCGMの信頼性および性能に重要な要因であるという実証的証拠を提供すること。

提案手法

  • RADARはRADAR-AttackとRADAR-Defenseの2つのコンponentsから構成される。
  • RADAR-Attackは、元のメソッド名と意味的および視覚的に類似しているが、PCGMが誤ったコードを生成するように欺く敵対的メソッド名を生成する。
  • RADAR-Defenseは、敵対的入力を是正するために、機能的記述から新しい正確なメソッド名を合成する。
  • この手法は、事前学習モデルを用いてメソッド名を生成・評価し、機能的記述を活用して耐性を向上させる。
  • フレームワークは、微調整(CodeGPT, PLBART, CodeT5)およびゼロショット(Replit, CodeGen, CodeT5+)設定の3つの最先端PCGMで評価された。
  • 評価には、微調整タスクではCodeBLEU、ゼロショットタスクではPass@1が使用され、性能の低下および回復を測定した。

実験結果

リサーチクエスチョン

  • RQ1敵対的メソッド名は、事前学習済みコード生成モデルの性能にどのように影響を与えるか?
  • RQ2メソッド名は、ニューラルコード生成モデルの耐性にどの程度影響を与えるか?
  • RQ3合成されたメソッド名は、敵対的条件下でPCGMの性能を効果的に回復させることができるか?
  • RQ4異なるPCGMは、微調整およびゼロショット設定において、メソッド名の摂動に対してどのように反応するか?
  • RQ5コード生成品質におけるメソッド名とその他のシグネチャコンポーネントの相対的寄与度は何か?

主な発見

  • RADAR-Attackは、3つの微調整PCGM(CodeGPT, PLBART, CodeT5)において、CodeBLEUスコアを19.72%〜38.74%低下させた。
  • RADAR-Attackは、3つのゼロショットPCGM(Replit, CodeGen, CodeT5+)において、Pass@1スコアを32.28%〜44.42%低下させた。
  • RADAR-Defenseは、機能的記述から正確なメソッド名を生成することで、PCGMの性能を効果的に回復させた。
  • RADAR-Defenseが生成したメソッド名は、人間が書いた名前と比較して、ベースライン手法よりも正確であった。
  • 本研究は、メソッド名がPCGMの耐性および性能に顕著な影響を与えることを確認した。特にゼロショットおよび微調整設定において顕著である。
  • 結果は、メソッド名の質の重要性を強調し、耐性がニューラルコード生成の設計における重要な検討事項であるべきであると示唆している。

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

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

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

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