Skip to main content
QUICK REVIEW

[논문 리뷰] DeepSumm -- Deep Code Summaries using Neural Transformer Architecture

Vivek Kumar Gupta|arXiv (Cornell University)|2020. 03. 31.
Software Engineering Research참고 문헌 16인용 수 4
한 줄 요약

이 논문은 자바 소스 코드 요약을 위한 신경망 트랜스포머 기반 모델인 DeepSumm을 제안한다. 순환 구조를 대체하여 자기주의 메커니즘을 도입하였다. 210만 개의 코드-주석 쌍으로 구성된 테스트 세트에서 BLEU 점수 17.99를 기록하였으며, RNN 기반 모델 대비 학습 시간을 50% 이상 단축시켰고, 성능과 속도 면에서 베이스라인을 초월하였다.

ABSTRACT

Source code summarizing is a task of writing short, natural language descriptions of source code behavior during run time. Such summaries are extremely useful for software development and maintenance but are expensive to manually author,hence it is done for small fraction of the code that is produced and is often ignored. Automatic code documentation can possibly solve this at a low cost. This is thus an emerging research field with further applications to program comprehension, and software maintenance. Traditional methods often relied on cognitive models that were built in the form of templates and by heuristics and had varying degree of adoption by the developer community. But with recent advancements, end to end data-driven approaches based on neural techniques have largely overtaken the traditional techniques. Much of the current landscape employs neural translation based architectures with recurrence and attention which is resource and time intensive training procedure. In this paper, we employ neural techniques to solve the task of source code summarizing and specifically compare NMT based techniques to more simplified and appealing Transformer architecture on a dataset of Java methods and comments. We bring forth an argument to dispense the need of recurrence in the training procedure. To the best of our knowledge, transformer based models have not been used for the task before. With supervised samples of more than 2.1m comments and code, we reduce the training time by more than 50% and achieve the BLEU score of 17.99 for the test set of examples.

연구 동기 및 목표

  • 소프트웨어 개발에서 수동 코드 문서화의 높은 비용과 낮은 커버리지 문제를 해결하기 위해.
  • 유연성과 확장성에 빈도가 낮은 전통적인 템플릿 기반 및 히وري스틱 방법에 비해 개선을 위해.
  • 이전에 코드 요약에서 검증되지 않은 트랜스포머 아키텍처가 기존의 RNN 기반 시퀀스-투-시퀀스 모델에 비해 효과적인지 평가하기 위해.
  • 요약 품질을 손상시키지 않으면서 학습 시간을 단축하고 추론 효율성을 향상시키기 위해.
  • 재귀 구조보다 자기주의 메커니즘이 코드 시퀀스의 장거리 의존성을 더 효과적으로 포착할 수 있는 잠재력을 탐색하기 위해.

제안 방법

  • 다중 헤드 자기주의와 피드포워드 네트워크를 갖춘 시퀀스-투-시퀀스 트랜스포머 아키텍처를 채택하여 순환 단위를 제거하였다.
  • 210만 개의 자바 메서드-주석 쌍으로 구성된 대규모 데이터셋을 사용하여 코드와 주석을 서브워드 단위로 토크나이징하였다.
  • 학습된 위치 임베딩을 사용하는 표준 트랜스포머 인코더-디코더 구조를 적용하여 인코더와 디코더 양쪽 모두에서 RNN을 대체하였다.
  • 디코딩 중에 소스 코드 토큰과 타겟 요약 단어 간의 정렬을 위해 교차주의 메커니즘을 적용하였다.
  • 라벨 스무쓰닝과 고정 학습률을 사용한 Adam 최적화를 적용하였으며, 계산 자원 제약으로 인해 오직 5 에포크 동안 학습하였다.
  • BLEU 점수를 사용하여 성능을 평가하고, 샘플 입력에 대한 주의 분포를 분석하여 모델 행동을 해석하였다.

실험 결과

연구 질문

  • RQ1트랜스포머 기반 아키텍처가 BLEU 점수와 학습 효율성 측면에서 RNN 기반 시퀀스-투-시퀀스 모델을 능가할 수 있는가?
  • RQ2모델 아키텍처에서 재귀를 제거하면 요약 품질에 심각한 영향을 주지 않으면서도 학습 속도를 빠르게 할 수 있는가?
  • RQ3트랜스포머 모델의 주의 분포는 코드 토큰과 요약 단어 간의 정렬을 어떻게 반영하는가?
  • RQ4모델이 구조적 또는 구문적 코드 구성 요소를 고려하지 않기 때문에 최신 기술 수준의 방법에 비해 성능에 어떤 영향을 미치는가?
  • RQ5더 단순한 비재귀 아키텍처가 코드 요약 작업에서 훨씬 줄어든 학습 시간으로도 경쟁 가능한 성능을 달성할 수 있는가?

주요 결과

  • 트랜스포머 기반 DeepSumm 모델은 테스트 세트에서 BLEU 점수 17.99를 기록하여 RNN 기반 베이스라인을 1점 이상 초월하였다.
  • 재귀 모델 대비 학습 시간이 50% 이상 단축되어 자기주의 메커니즘이 가져오는 효율성 향상을 입증하였다.
  • 간단한 메서드의 경우, 예를 들어 게터 메서드에 대해 "gets the child"와 같은 의미 있는 요약을 성공적으로 생성하였으며, 주의 메커니즘이 관련 토큰에 정확히 대응하였다.
  • 메서드 이름과 반환 유형 간의 불일치와 같은 복잡한 케이스에서는 때로 잘못된 용어를 생성하는 경우가 있었으며(예: "oxygen" 대신 "water"), 이는 의미 이해의 한계를 보여주었다.
  • 짧은 학습 기간(오직 5 에포크)과 구조적 코드 표현의 부재로 인해 성능에 제약이 있었으며, 이는 더 긴 학습과 아키텍처 개선이 성능 향상에 기여할 수 있음을 시사한다.
  • 최신 기술 수준의 성능에 도달하지 못했지만, 결과는 트랜스포머가 코드 요약에 대해 실현 가능하고 장점이 있음을 확인하였으며, 특히 학습 속도와 확장성 측면에서 유리함을 보였다.

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

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

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

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