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)|2022. 11. 29.
Software Engineering Research인용 수 5
한 줄 요약

이 논문은 전이 학습된 코드 생성 모델(PCGM)의 성능을 향상시키기 위해 악성 공격 및 방어 메커니즘을 통해 메서드 이름의 강건성을 높이는 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 신뢰성과 성능에 핵심 요소임을 경험적으로 입증하기 위해.

제안 방법

  • RADAR는 RADAR-Attack과 RADAR-Defense라는 두 가지 구성 요소로 이루어져 있다.
  • RADAR-Attack은 원래 메서드 이름과 의미적·시각적으로 유사하지만 PCGM이 잘못된 코드를 생성하도록 오도하는 악성 메서드 이름을 생성한다.
  • RADAR-Defense는 공격에 대응하기 위해 기능 설명에서 새로운 정확한 메서드 이름을 합성한다.
  • 이 방법은 메서드 이름 생성 및 평가에 사전 학습된 모델을 사용하며, 기능 설명을 활용해 강건성을 향상시킨다.
  • 프레임워크는 피팅 학습(코드GPT, PLBART, CodeT5) 및 제로샷(Replit, CodeGen, CodeT5+) 설정에서 최신 3종의 PCGM에 대해 평가되었다.
  • 성능 저하 및 복원 정도를 측정하기 위해 피팅 학습 작업에는 CodeBLEU를, 제로샷 작업에는 Pass@1을 사용하여 평가하였다.

실험 결과

연구 질문

  • RQ1악성 메서드 이름은 전이 학습된 코드 생성 모델의 성능에 어떤 영향을 미치는가?
  • RQ2메서드 이름은 신경망 기반 코드 생성 모델의 강건성에 얼마나 큰 영향을 미치는가?
  • RQ3합성된 메서드 이름은 악성 조건 하에서 PCGM의 성능을 효과적으로 복원할 수 있는가?
  • RQ4다양한 PCGM은 피팅 학습 및 제로샷 설정에서 메서드 이름의 변형에 어떻게 반응하는가?
  • RQ5코드 생성 품질에 있어 메서드 이름은 다른 서명 구성 요소보다 상대적으로 얼마나 기여하는가?

주요 결과

  • RADAR-Attack은 세 종류의 피팅 학습 PCGM(CodeGPT, PLBART, CodeT5)에서 CodeBLEU 점수를 19.72%에서 38.74%까지 감소시켰다.
  • RADAR-Attack은 세 종류의 제로샷 PCGM(Replit, CodeGen, CodeT5+)에서 Pass@1 점수를 32.28%에서 44.42%까지 감소시켰다.
  • RADAR-Defense는 기능 설명에서 정확한 메서드 이름을 생성함으로써 PCGM의 성능을 성공적으로 복원하였다.
  • 인간이 작성한 이름과 비교했을 때, RADAR-Defense에서 합성된 메서드 이름은 베이스라인 방법보다 더 정확했다.
  • 연구 결과에 따르면 메서드 이름은 PCGM의 강건성과 성능에 상당한 영향을 미치며, 특히 제로샷 및 피팅 학습 설정에서 더욱 두드러진다.
  • 결과는 메서드 이름 품질의 중요성을 강조하며, 신뢰성 있는 신경망 기반 코드 생성 설계 시 강건성이 핵심 고려 사항이 되어야 한다는 것을 시사한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.