Daily Arxiv

전 세계에서 발간되는 인공지능 관련 논문을 정리하는 페이지 입니다.
본 페이지는 Google Gemini를 활용해 요약 정리하며, 비영리로 운영 됩니다.
논문에 대한 저작권은 저자 및 해당 기관에 있으며, 공유 시 출처만 명기하면 됩니다.

How Accurately Do Large Language Models Understand Code?

Created by
  • Haebom

저자

Sabaat Haroon, Ahmad Faraz Khan, Ahmad Humayun, Waris Gill, Abdul Haddi Amjad, Ali R. Butt, Mohammad Taha Khan, Muhammad Ali Gulzar

개요

본 논문은 대규모 언어 모델(LLM)의 코드 이해 능력에 대한 최초의 대규모 실증적 연구를 제시합니다. 기존의 코드 생성 중심 벤치마크와 달리, 본 논문에서는 LLM의 코드 이해 능력을 변이 테스트(mutation testing)에서 영감을 얻어 결함 발견 능력으로 간주합니다. 실제 프로그램에 결함을 주입하고 LLM이 이를 찾아내는 능력을 평가하고, 의미를 보존하는 코드 변이(SPMs)를 적용하여 LLM의 코드 이해에 대한 신뢰도를 검증합니다. 9개의 인기 있는 LLM을 대상으로 670개의 Java 프로그램과 637개의 Python 프로그램에서 575,000개의 디버깅 작업을 수행한 결과, SPM 적용 시 동일한 버그를 디버깅하는 능력을 81%의 결함 프로그램에서 상실하는 것을 확인하였습니다. 이는 LLM이 코드의 의미와 무관한 특징에 의존하여 코드에 대한 피상적인 이해만 가지고 있음을 시사합니다. 또한 LLM은 프로그램 초반부의 코드를 후반부보다 더 잘 이해하는 경향을 보이는데, 이는 LLM의 코드 이해가 자연어 처리를 위한 토큰화에 기반한 어휘적 및 구문적 특징에 얽매여 코드 의미를 간과하고 있음을 시사합니다.

시사점, 한계점

시사점:
LLM의 코드 이해 능력에 대한 최초의 대규모 실증적 연구 결과를 제시.
LLM의 코드 이해 능력이 예상보다 낮으며, 의미와 무관한 특징에 의존하는 경향을 밝힘.
LLM의 코드 이해 능력이 프로그램의 위치에 따라 차이가 있음을 발견 (초반부 이해도가 더 높음).
LLM의 코드 이해 능력 평가를 위한 새로운 벤치마크 방법론 제시 (변이 테스트 기반).
한계점:
본 연구는 Java와 Python에 국한되어 다른 프로그래밍 언어로의 일반화에는 한계가 있음.
사용된 SPM의 종류와 수에 따라 결과가 달라질 수 있음.
LLM의 코드 이해 능력을 평가하는 데 있어 변이 테스트 기반 접근 방식의 한계가 존재할 수 있음.
특정 토큰화 방식에 대한 의존성이 결과에 영향을 미쳤을 가능성.
👍