Core Concepts
대규모 언어 모델(LLM)은 자연어 프롬프트에서 코드를 생성할 수 있지만, 실제 세계에서는 입출력 사양이 필요하여 LLM의 출력이 사용자의 의도와 일치하지 않는 문제가 있다. 이 연구는 데이터 과학 프로그래밍 도메인에서 입출력 사양을 활용하여 LLM의 코드 생성 성능을 향상시키는 방법을 제안한다.
Abstract
이 연구는 대규모 언어 모델(LLM)의 코드 생성 성능을 향상시키기 위해 입출력 사양을 활용하는 방법을 제안한다.
-
실제 세계에서는 자연어 프롬프트만으로는 데이터 과학 프로그래밍 작업을 명확하게 표현하기 어려워 입출력 사양이 필요하다. 그러나 LLM은 이러한 입출력 사양을 따르는 데 어려움이 있다.
-
이 연구는 GIFT4CODE라는 접근법을 제안한다. GIFT4CODE는 LLM 자체가 생성한 합성 데이터를 활용하여 입출력 사양에 맞는 코드 생성을 학습한다.
-
구체적으로 GIFT4CODE는 다음과 같은 단계로 진행된다:
- 프로그래밍 컨텍스트를 바탕으로 LLM을 이용해 자연어 프롬프트와 코드 솔루션을 생성한다.
- 생성된 코드를 실행하여 입출력 사양을 추출한다. 이때 사양은 변수 유형, 구체적인 입출력 예시, 자연어 요약 등 다양한 수준의 추상화로 표현된다.
- 자연어 프롬프트와 입출력 사양, 그리고 코드 솔루션으로 구성된 합성 데이터로 LLM을 fine-tuning한다.
-
실험 결과, GIFT4CODE는 데이터 과학 프로그래밍 벤치마크 ARCADE와 DS-1000에서 기존 LLM 대비 유의미한 성능 향상을 보였다. 특히 자연어 요약 형태의 입출력 사양을 활용할 때 가장 좋은 결과를 얻었다.
Stats
데이터 과학 프로그래밍 작업에서 자연어 프롬프트만으로는 명확한 의도를 표현하기 어려워 입출력 사양이 필요하다.
기존 LLM은 입출력 사양을 따르는 데 어려움이 있어 사용자의 의도와 일치하지 않는 코드를 생성할 수 있다.
GIFT4CODE는 LLM 자체가 생성한 합성 데이터를 활용하여 입출력 사양에 맞는 코드 생성을 학습한다.
GIFT4CODE는 ARCADE와 DS-1000 벤치마크에서 기존 LLM 대비 유의미한 성능 향상을 보였다.
Quotes
"Large language models (LLMs) have recently shown tremendous promise at generating code from natural language prompts (Chen et al., 2021a; Austin et al., 2021; Li et al., 2023; 2022; Nijkamp et al., 2022; Fried et al., 2022; Li et al., 2023)."
"However, in the real world, not all programming tasks can be easily described using compact NL intents. Among these, data science programming stands out as a vital domain, where data scientists spend considerable time on data wrangling and exploratory data analysis (EDA)."
"Unfortunately, code LLMs often fail to follow intents with additional semantic constraints like I/O specifications out-of-the-box, leading to plausible solutions that fail to satisfy the provided specifications (e.g. y′, Fig. 1)."