[논문 리뷰] What Makes Good In-context Demonstrations for Code Intelligence Tasks with LLMs?
이 논문은 대규모 언어 모델(Large Language Models, LLMs)을 사용한 코드 지능 작업을 위한 효과적인 인-컨텍스트 예시(Instruction-Context Learning, ICL) 설계 방법을 탐구한다. 세 가지 작업—코드 요약, 버그 수정, 프로그램 생성—에 대해 예시 선택, 순서, 예시 수의 영향을 체계적으로 평가하여, 최적화된 예시를 사용할 경우 표준 방법 대비 F1 점수 기준 최대 175.96% 향상됨을 보여준다.
Pre-trained models of source code have gained widespread popularity in many code intelligence tasks. Recently, with the scaling of the model and corpus size, large language models have shown the ability of in-context learning (ICL). ICL employs task instructions and a few examples as demonstrations, and then inputs the demonstrations to the language models for making predictions. This new learning paradigm is training-free and has shown impressive performance in various natural language processing and code intelligence tasks. However, the performance of ICL heavily relies on the quality of demonstrations, e.g., the selected examples. It is important to systematically investigate how to construct a good demonstration for code-related tasks. In this paper, we empirically explore the impact of three key factors on the performance of ICL in code intelligence tasks: the selection, order, and number of demonstration examples. We conduct extensive experiments on three code intelligence tasks including code summarization, bug fixing, and program synthesis. Our experimental results demonstrate that all the above three factors dramatically impact the performance of ICL in code intelligence tasks. Additionally, we summarize our findings and provide takeaway suggestions on how to construct effective demonstrations, taking into account these three perspectives. We also show that a carefully-designed demonstration based on our findings can lead to substantial improvements over widely-used demonstration construction methods, e.g., improving BLEU-4, EM, and EM by at least 9.90%, 175.96%, and 50.81% on code summarization, bug fixing, and program synthesis, respectively
연구 동기 및 목표
- 대규모 언어 모델(Large Language Models)을 활용한 코드 지능 작업에서 고품질의 인-컨텍스트 예시(Instruction-Context Learning, ICL)를 구성하는 데 있어 핵심적인 이해 격차를 해소하기 위해.
- 예시 선택, 순서, 예시 수가 코드 관련 작업에서 ICL 성능에 미치는 영향을 조사하기 위해.
- 코드 요약, 버그 수정, 프로그램 생성 분야에서 ICL 효과성을 향상시키기 위한 실용적이고 근거 기반의 지침을 연구자 및 실무자에게 제공하기 위해.
- 특히 자원이 제한된 환경에서 최적화된 예시 전략이 무작위 또는 히وري스틱 기반 기준보다 유의미하게 뛰어난 성능을 보임을 입증하기 위해.
- 여러 LLM과 코드 데이터셋을 통해 연구 결과의 일반화 가능성과 현재 평가 범위의 한계를 확인하기 위해.
제안 방법
- 세 가지 코드 지능 작업—코드 요약, 버그 수정, 프로그램 생성—에 대해 세 종류의 LLM을 활용해 광범위한 실증 실험을 수행하였다.
- 무작위 선택, 유사도 기반 검색(BM-25 및 의미적 임bedding 사용), 다양성 기반 선택을 포함한 다양한 예시 선택 전략을 평가하였다.
- 무작위, 유사도 기반 내림차순, 반대 유사도 기반 오름차순 순서를 포함한 다양한 순서 전략을 비교하였다.
- 예시 수를 1개에서 10개까지 다양화하여 각 작업에서 모델 성능에 미치는 영향을 분석하였다.
- 표준 평가 지표인 BLEU-4, 정확일치(Exact Match, EM), F1을 사용하여 성능을 평가하였으며, 통계적 유의성 검증도 수행하였다.
- 실증 결과를 바탕으로 선택, 순서, 예시 수 최적화를 통합한 체계적 예시 설계 프레임워크를 제안하였다.

실험 결과
연구 질문
- RQ1코드 지능 작업에서 인-컨텍스트 예시 설계에 가장 효과적인 선택 방법은 무엇인가요?
- RQ2예시 순서가 코드 관련 작업에서 ICL 성능에 어떤 영향을 미치나요?
- RQ3예시 수가 코드 지능 작업에서 ICL 성능에 어떤 영향을 미치나요?
- RQ4연구 결과는 다양한 LLM과 프로그래밍 언어 간에 일반화 가능한가요?
주요 결과
- 의미적 임베딩(SBERT 등)을 활용한 유사도 기반 선택 전략이 무작위 또는 BM-25 기반 검색에 비해 유의미하게 뛰어난 성능을 보였다.
- 입력 쿼리와의 유사도 기반 내림차순 순서로 예시를 배치할 경우 성능 향상이 발생하였으며, 반대 유사도 순서(오름차순)는 일반적으로 성능이 열 劣하다.
- 최적의 예시 수는 작업에 따라 달라지며, 일반적으로 5~8개의 예시가 최고 성능를 보였고, 6~8개를 초과하면 성능이 정체되는 경향을 보였다.
- 최적의 선택, 유사도 기반 순서, 적절한 예시 수를 통합한 체계적인 예시 전략은 기준 방법 대비 버그 수정 작업에서 EM 점수 175.96% 향상, 프로그램 생성에서 50.81%, 코드 요약에서 9.90% 향상됨을 입증하였다.
- 최적화된 예시 전략이 여러 LLM에서 일관되게 높은 성능 향상을 보이며, 연구 결과의 일반화 가능성은 매우 높음을 확인하였다.
- 본 연구는 ICL 성능가 예시 설계에 매우 민감하며, 단순한 선택 또는 무작위 순서 배치는 대규모 모델을 사용하더라도 최적의 성능을 이끌어내지 못함을 규명하였다.

더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.