Skip to main content
QUICK REVIEW

[논문 리뷰] BERT2Code: Can Pretrained Language Models be Leveraged for Code Search?

Abdullah Al Ishtiaq, Masum Hasan|arXiv (Cornell University)|2021. 04. 16.
Software Engineering Research참고 문헌 36인용 수 6
한 줄 요약

BERT2Code는 사전 훈련된 문장 및 코드 임베딩 모델(SBERT, Code2Vec, CodeBERT)을 활용하는 경량화된 이중층 신경망을 제안한다. 이는 교차 임베딩 공간 관계를 학습함으로써 코드 검색에서 15.478%의 MRR를 달성하지만, 성능의 주요 제약 요소로 코드 임베딩 품질을 밝혀냈다.

ABSTRACT

Millions of repetitive code snippets are submitted to code repositories every day. To search from these large codebases using simple natural language queries would allow programmers to ideate, prototype, and develop easier and faster. Although the existing methods have shown good performance in searching codes when the natural language description contains keywords from the code, they are still far behind in searching codes based on the semantic meaning of the natural language query and semantic structure of the code. In recent years, both natural language and programming language research communities have created techniques to embed them in vector spaces. In this work, we leverage the efficacy of these embedding models using a simple, lightweight 2-layer neural network in the task of semantic code search. We show that our model learns the inherent relationship between the embedding spaces and further probes into the scope of improvement by empirically analyzing the embedding methods. In this analysis, we show that the quality of the code embedding model is the bottleneck for our model's performance, and discuss future directions of study in this area.

연구 동기 및 목표

  • 사전 훈련된 언어 모델이 의미 기반 코드 검색에 효과적으로 활용될 수 있는지 조사하기 위해.
  • 사전 훈련된 임베딩을 사용하여 자연어 쿼리에서 소스 코드로의 매핑을 수행하는 경량화된 신경망의 성능을 평가하기 위해.
  • 현재 코드 임베딩 모델이 고정밀도 의미 기반 코드 검색을 가능하게 하기 위한 한계를 규명하기 위해.
  • 문장 및 코드 임베딩의 의미 유사도를 캡처하는 능력을 실증적으로 분석하기 위해.
  • 향후 연구에서 보다 일반화 가능하고 고품질의 코드 임베딩 모델이 필요하다는 점을 부각하기 위해.

제안 방법

  • 자연어 쿼리의 조밀한 벡터 표현을 생성하기 위해 Sentence-BERT(SBERT)를 미세조정한다.
  • 소스 코드 스니펫에서 코드 임베딩을 생성하기 위해 Code2Vec 및 CodeBERT를 활용한다.
  • 공유된 잠재 공간에서 문장 임베딩을 코드 임베딩으로 매핑하기 위해 이중층 피드포워드 신경망을 사용한다.
  • 일치하는 쿼리-코드 쌍 간의 의미 유사도를 극대화하기 위해 대비 학습과 트리플릿 손실을 사용하여 모델을 훈련시킨다.
  • DeepCom 데이터셋에서 평균 역수 순위(MRR)를 사용하여 모델 성능을 평가한다.
  • 300개의 쿼리-코드 쌍에 대해 수작업으로 의미 유사도 점수를 부여하고, 이를 임베딩 공간 내 L2 거리와 상관관계 분석한다.

실험 결과

연구 질문

  • RQ1SBERT 및 Code2Vec과 같은 사전 훈련된 언어 모델을 의미 기반 코드 검색에 효과적으로 조합할 수 있는가?
  • RQ2경량화된 신경망이 자연어 쿼리 임베딩을 코드 임베딩으로 매핑하는 데 얼마나 잘 작동하는가?
  • RQ3수작업으로 부여한 의미 유사도 점수와 임베딩 공간 거리 간의 상관관계는 어떠한가?
  • RQ4코드 임베딩의 품질과 일반화 능력이 의미 기반 코드 검색 모델의 성능에 얼마나 큰 영향을 미치는가?
  • RQ5현재의 코드 임베딩 모델은 교차 임베딩 매핑 아키텍처의 잠재력을 완전히 활용하기에 충분한가?

주요 결과

  • BERT2Code는 DeepCom 데이터셋에서 평균 역수 순위(MRR) 15.478%를 달성하여, 사전 훈련된 임베딩을 의미 기반 코드 검색에 활용할 수 있음을 입증한다.
  • 수작업 의미 유사도 점수와 자연어(NL) 임베딩 공간 내 L2 거리 간 상관관계는 -0.772(p < 10^-6)로, 인간의 판단과 임베딩 유사도 간 강력한 일치를 나타낸다.
  • 수작업 의미 유사도 점수와 코드 임베딩 거리 간 상관관계는 뿐만 아니라 -0.444(p < 10^-6)로, 코드 임베딩이 문장 임베딩보다 의미를 더 낮은 신뢰도로 캡처하고 있음을 시사한다.
  • 통계 분석을 통해 코드 임베딩의 낮은 상관관계가 랜덤한 우연이 아니라는 점이 확인되었으며, 근본가설을 높은 신뢰도로 기각하였다.
  • 본 연구는 코드 임베딩 모델의 품질이 성능 향상의 주요 제약 요소임을 규명하였으며,未래 향상에 있어 보다 나은 코드 임베딩이 필수적임을 시사한다.
  • 실증 분석을 통해 현재의 모델들인 Code2Vec 및 CodeBERT가 의미 기반 코드 검색 작업에서 일반화 능력이 떨어지며, 특히 의미가 중요한 경우에 특히 실패함을 확인하였다.

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

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

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

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