Główne pojęcia
대규모 언어 모델(LLM) 기반 코드 생성 성능을 향상시키기 위해, 본 논문에서는 프로그래밍 지식 그래프(PKG)를 활용한 새로운 컨텍스트 기반 코드 생성 프레임워크를 제안합니다. PKG는 코드 검색의 정확도를 높이고, 트리 가지치기 기법을 통해 관련 없는 정보를 줄여 환각 현상을 감소시킵니다.
Streszczenie
본 연구 논문에서는 대규모 언어 모델(LLM)을 사용한 코드 생성의 문제점과 이를 해결하기 위한 새로운 프레임워크를 제안합니다.
LLM 기반 코드 생성의 문제점
- 기존 LLM은 복잡한 문제 해결에 어려움을 겪고, 관련 없는 정보를 제공받을 경우 환각 현상을 보입니다.
- 검색 기반 생성(RAG) 방식은 종종 관련성이 가장 높은 컨텍스트를 찾지 못하고, 제한된 컨텍스트 용량으로 인해 환각 현상을 일으킬 수 있습니다.
제안하는 프레임워크
본 논문에서는 프로그래밍 지식 그래프(PKG)를 활용하여 코드를 의미적으로 표현하고 검색하는 새로운 프레임워크를 제안합니다.
PKG의 장점
- 세분화된 코드 검색: 가장 관련성이 높은 코드 세그먼트에 집중하여 검색함으로써 정확도를 높입니다.
- 관련 없는 컨텍스트 감소: 트리 가지치기 기법을 통해 관련 없는 정보를 제거하여 환각 현상을 줄입니다.
- 재순위 지정 메커니즘: RAG 기반이 아닌 솔루션을 선택적으로 통합하여 환각 현상을 더욱 줄입니다.
- 두 가지 검색 방식: PKG를 기반으로 블록 단위 및 함수 단위의 두 가지 검색 방식을 제공하여 컨텍스트 세분화를 최적화합니다.
실험 결과
HumanEval 및 MBPP 벤치마크에서 수행된 실험 결과, 제안된 방법은 다음과 같은 성능 향상을 보였습니다.
- NoRAG 방법 대비 pass@1 정확도가 최대 20% 향상되었습니다.
- MBPP에서 최첨단 모델보다 최대 34% 더 높은 성능을 보였습니다.
결론
본 논문에서 제안된 PKG 기반 접근 방식은 재순위 지정 메커니즘과 함께 복잡한 문제를 효과적으로 해결하면서 RAG 없이 이미 정확한 솔루션에 대한 부정적인 영향을 최소화합니다.
Statystyki
HumanEval 벤치마크에서 NoRAG 대비 pass@1 정확도 최대 20% 향상
MBPP 벤치마크에서 최첨단 모델 대비 pass@1 정확도 최대 34% 향상
PythonAlpaca 데이터셋에서 115,000개의 Python 함수 추출
PKG는 425,058개의 노드와 434,518개의 관계로 구성