Skip to main content
QUICK REVIEW

[논문 리뷰] Exploring Software Naturalness through Neural Language Models

Luca Buratti, Saurabh Pujar|arXiv (Cornell University)|2020. 06. 22.
Software Engineering Research참고 문헌 37인용 수 54
한 줄 요약

이 논문은 원시 C 코드에서 사전 학습된 트랜스포머 언어 모델이 AST 특징 없이도 AST 유사 구조를 학습할 수 있는지 여부를 조사하고, 토크나이저와 사전 학습 전략의 영향 및 컴파일러 의존 그래프 기반 방법과 비교한 취약점 식별 성능을 평가한다.

ABSTRACT

The Software Naturalness hypothesis argues that programming languages can be understood through the same techniques used in natural language processing. We explore this hypothesis through the use of a pre-trained transformer-based language model to perform code analysis tasks. Present approaches to code analysis depend heavily on features derived from the Abstract Syntax Tree (AST) while our transformer-based language models work on raw source code. This work is the first to investigate whether such language models can discover AST features automatically. To achieve this, we introduce a sequence labeling task that directly probes the language models understanding of AST. Our results show that transformer based language models achieve high accuracy in the AST tagging task. Furthermore, we evaluate our model on a software vulnerability identification task. Importantly, we show that our approach obtains vulnerability identification results comparable to graph based approaches that rely heavily on compilers for feature extraction.

연구 동기 및 목표

  • AST 특징 없이 원시 코드에서 AST 유사 구조를 학습할 수 있는지 여부를 평가한다.
  • 토크나이제이션 전략이 C 코드의 학습 및 다운스트림 작업 성능에 미치는 영향을 평가한다.
  • 그래프 기반의 컴파일러 의존적 접근법과 비교한 취약점 식별 성능을 평가한다.

제안 방법

  • 100개의 오픈 소스 C 저장소에서 처음부터 BERT 유사 트랜스포머(C-BERT)를 사전 학습한다.
  • 세 가지 토크나이제이션 전략(Char, KeyChar(문자 + C 키워드), 그리고 SentencePiece(SPE))를 탐구한다.
  • 세 가지 사전 학습 목표를 사용: MLM, 문자열 마스킹 강화를 위한 Whole Word Masking(WWM), 그리고 작업별 파인튜닝 목표.
  • Clang 기반 라벨을 통해 모델의 token_kind 및 cursor_kind 이해를 탐색하기 위한 AST 노드 태깅 태스크를 도입한다.
  • 취약점 식별(VI) 작업으로 모델을 파인튜닝하고 GGNN 등 그래프 기반 대조군과 비교한다.
  • 고정 폭 250 토큰 창과 긴 입력에 대한 슬라이딩 윈도 합계를 사용하여 FFmpeg 및 QEMU 데이터셋에서 평가한다.

실험 결과

연구 질문

  • RQ1명시적 구조 정보 없이 원시 C 소스 코드에서 직접 학습된 트랜스포머 LM이 AST 유사 특징을 발견할 수 있는가?
  • RQ2토크나이제이션 선택(Char, KeyChar, SPE)과 사전 학습 목표가 코드의 구문적/의미적 측면의 학습에 어떤 영향을 미치는가?
  • RQ3그래프 기반의 컴파일러 의존적 방법과 비교했을 때 언어 모델 기반 접근법이 취약점 식별에서 어떤 성능을 보이는가?

주요 결과

모델토크나이저정확도_FFmpegF1_FFmpeg정확도_QEMUF1_QEMU
Char MLMChar94.9695.7171.6880.53
BiLSTM SPESPE94.6995.5274.1281.58
KeyChar MLMKeyChar95.6896.5866.2076.19
Char MLM (C-BERT)Char97.1097.7281.0687.43
C-BERT SPE MLMSPE97.7298.2981.1187.79
KeyChar MLMKeyChar97.7398.3180.7887.49
  • 다른 토크나이저를 사용한 원시 C 코드로 학습된 트랜스포머가 데이터셋 전반에서 AST cursor_kind 태깅에서 BiLSTM 초과 성능을 보인다.
  • C-BERT와 SPE는 일반적으로 FFmpeg에서 높은 정확도(97.72–97.73) 및 F1(98.29–98.31)을 달성하고, QEMU에서도 강한 결과를 얻는다(81.11–87.79).
  • 문자 기반 토크나이제이션과 Whole Word Masking은 강한 결과를 보이며, WWM은 일반적으로 VI 성능을 향상시키고 OOV 문제를 줄인다.
  • AST cursor_kind 태깅에서 Char 또는 SPE 토크나이제이션을 사용한 C-BERT가 최상의 점수를 얻고 FFmpeg가 QEMU보다 일관되게 더 쉽다.
  • VI에서 MLM 기반 사전 학습을 가진 C-BERT 모델은 Naive, BiLSTM, CNN 기본값 및 GGNN 기반보다 전체 및 축소된 데이터셋에서 성능이 우수하며, WWM은 Char/KeyChar 변형에 도움을 준다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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