Skip to main content
QUICK REVIEW

[논문 리뷰] DeepAM: Migrate APIs with Multi-modal Sequence to Sequence Learning

Xiaodong Gu, Hongyu Zhang|arXiv (Cornell University)|2017. 04. 25.
Software Engineering Research참고 문헌 11인용 수 17
한 줄 요약

DeepAM은 대규모 코드 코퍼스를 기반으로 다중 모odal 시퀀스-투-시퀀스 학습을 통해 API 시퀀스의 공동 의미적 임베딩을 학습함으로써 프로그래밍 언어 간 자동 API 마이그레이션을 가능하게 하는 딥러닝 시스템이다. 기존 최고 수준의 방법들보다 뛰어나게 808,488개의 API 매핑을 추출하여 StaMiner의 8배 이상(8배 이상)의 데이터를 확보했으며, 높은 정확도(88.2% 정확도)를 유지하면서도 72.4%의 정렬 정확도를 달성하여 전통적인 IR 기반 접근 방식을 뛰어넘었다.

ABSTRACT

Computer programs written in one language are often required to be ported to other languages to support multiple devices and environments. When programs use language specific APIs (Application Programming Interfaces), it is very challenging to migrate these APIs to the corresponding APIs written in other languages. Existing approaches mine API mappings from projects that have corresponding versions in two languages. They rely on the sparse availability of bilingual projects, thus producing a limited number of API mappings. In this paper, we propose an intelligent system called DeepAM for automatically mining API mappings from a large-scale code corpus without bilingual projects. The key component of DeepAM is based on the multimodal sequence to sequence learning architecture that aims to learn joint semantic representations of bilingual API sequences from big source code data. Experimental results indicate that DeepAM significantly increases the accuracy of API mappings as well as the number of API mappings, when compared with the state-of-the-art approaches.

연구 동기 및 목표

  • 기존 마이그레이션 도구에서 사용 가능한 API 매핑 수를 제한하는 이중 언어 프로젝트의 부족 문제를 해결하기 위해.
  • 이식 규칙을 수동으로 정의하는 데 드는 노력을 줄이기 위해, 다양한 언어 간 동치 API 시퀀스의 자동 탐색을 가능하게 하기 위해.
  • 대규모 주석이 달린 코드 코퍼스로부터 깊이 있는 의미적 표현을 학습하여 API 매핑의 정확도와 커버리지 향상을 위해.
  • 쌍으로 이루어진 소스 및 타겟 언어 프로젝트가 필요 없이 API 매핑을 추출할 수 있도록 하기 위해.

제안 방법

  • 1,000만 개의 코드 스니펫으로 구성된 대규모 코퍼스에서 주석이 달린 코드 스니펫들로부터 API 시퀀스와 자연어 설명을 추출한다.
  • 다중 모달 시퀀스-투-시퀀스 학습 모델을 적용하여 소스 및 타겟 언어의 API 시퀀스를 공통의 고차원 의미 공간에 임베딩한다.
  • 이러한 공동 임베딩을 활용해 벡터 유사도를 측정함으로써 서로 의미적으로 유사한 API 시퀀스를 다양한 언어 간에 정렬한다.
  • 정렬된 시퀀스를 기반으로 통계적 기계 번역 기법을 사용하여 일반적인 API 매핑을 추출한다.
  • API 시퀀스와 그 텍스트 설명을 동시에 모델링하는 딥 네트워크 아키텍처를 활용하여 기존 얕은 모델들보다 더 rich한 의미 표현을 학습한다.
  • 500개의 무작위로 추출된 쌍에 대한 수작업 검토를 통해 정렬 품질을 검증하고, 텍스트 유사도를 기반으로 한 IR 기반 베이스라인과 성능을 비교한다.

실험 결과

연구 질문

  • RQ1이중 언어 프로젝트에 의존하지 않고도 딥러닝 모델이 프로그래밍 언어 간 API 시퀀스의 공동 의미적 표현을 효과적으로 학습할 수 있는가?
  • RQ2다중 모달 시퀀스-투-시퀀스 학습 기법이 기존의 IR 기반 방법에 비해 동치 API 시퀀스를 정렬하는 데서 어떤 성능을 보이는가?
  • RQ3기존 최고 수준의 접근 방식에 비해 제안된 방법이 API 매핑의 수를 얼마나 잘 확장할 수 있는가?
  • RQ4더 긴 API 시퀀스(복잡도가 높은 경우)에 대해서도 모델이 높은 정확도를 유지할 수 있는가?

주요 결과

  • DeepAM은 808,488개의 API 매핑을 추출하여 StaMiner의 100,825개에 비해 8배 이상 많은 데이터를 확보함으로써 커버리지 면에서 뚜렷한 확장성을 입증했다.
  • DeepAM의 매핑 정확도는 88.2%로, StaMiner의 87.1%보다 略로 높아, 더 큰 스케일에도 불구하고 동등하거나 더 나은 품질을 유지함을 시사한다.
  • DeepAM의 정렬 정확도는 72.4%로, IR 기반 베이스라인의 40.8%를 크게 뛰어넘어 깊이 있는 의미 임베딩의 효과성을 입증했다.
  • 특히 '파일 복사'나 '오디오 재생'과 같은 더 긴 API 시퀀스에 대해 강력한 성능을 보였으며, 이는 전통적 방법에 비해 도전적인 작업임을 시사한다.
  • 이중 언어 프로젝트가 필요 없이 대규모 코드 코퍼스에서 학습할 수 있다는 점에서, 실세계의 코드 마이그레이션에 더 넓은 적용 가능성과 확장성을 확보한다.

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

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

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

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