Skip to main content
QUICK REVIEW

[논문 리뷰] SE Factual Knowledge in Frozen Giant Code Model: A Study on FQN and its Retrieval

Qing Huang, Dianshu Liao|arXiv (Cornell University)|2022. 12. 16.
Software Engineering Research인용 수 5
한 줄 요약

이 논문은 파인튜닝 또는 코드 컴파일 없이 GitHub Copilot, 즉 고정된 거대한 코드 모델에서 API의 완전한 정규화 이름(Fully Qualified Names, FQNs)을 검색하기 위한 경량의 인-컨텍스트 학습 방법을 제안한다. 이는 Copilot가 상당한 양의 사실적 FQN 지식을 저장하고 있음을 보여주며, 소수의 few-shot 예시로도 높은 추론 정확도를 달성함으로써 코드 분석 및 재사용 작업을 위한 실용적이고 구현 가능한 FQN 예측이 가능하다는 것을 시사한다.

ABSTRACT

Pre-trained giant code models (PCMs) start coming into the developers' daily practices. Understanding what types of and how much software knowledge is packed into PCMs is the foundation for incorporating PCMs into software engineering (SE) tasks and fully releasing their potential. In this work, we conduct the first systematic study on the SE factual knowledge in the state-of-the-art PCM CoPilot, focusing on APIs' Fully Qualified Names (FQNs), the fundamental knowledge for effective code analysis, search and reuse. Driven by FQNs' data distribution properties, we design a novel lightweight in-context learning on Copilot for FQN inference, which does not require code compilation as traditional methods or gradient update by recent FQN prompt-tuning. We systematically experiment with five in-context-learning design factors to identify the best in-context learning configuration that developers can adopt in practice. With this best configuration, we investigate the effects of amount of example prompts and FQN data properties on Copilot's FQN inference capability. Our results confirm that Copilot stores diverse FQN knowledge and can be applied for the FQN inference due to its high inference accuracy and non-reliance on code analysis. Based on our experience interacting with Copilot, we discuss various opportunities to improve human-CoPilot interaction in the FQN inference task.

연구 동기 및 목표

  • 파인드된 거대한 코드 모델인 GitHub Copilot와 같은 모델에 저장된 사실적 소프트웨어 공학 지식, 특히 API의 완전한 정규화 이름(Fully Qualified Names, FQNs)의 범위와 특성에 대해 탐구한다.
  • 모델의 파인튜닝이나 코드 분석 없이도 인-컨텍스트 학습이 Copilot로부터 FQN 지식을 효과적으로 검색할 수 있는지 평가한다.
  • 외부 기호 기반 지식 기반 시스템에 대한 의존도를 최소화하면서 부분 코드에서 FQN 추론을 위한 최적의 프롬프트 설계 구성 요건을 규명한다.
  • 실제 소프트웨어 공학 워크플로우에서 고정된 PCMs를 활용한 인간-AI 협업 패턴을 탐색한다.

제안 방법

  • 기울기 업데이트나 코드 컴파일 없이 프롬프트 예시만을 사용하는 새로운 인-컨텍스트 학습 프레임워크를 설계하여 FQN 추론을 수행한다.
  • FQN의 데이터 분포 특성 — 시간적 폭발성, 지프-분포, 동적 의미 — 을 활용하여 프롬프트 설계를 이끌어낸다.
  • 소수의 예시 수, 프롬프트 형식, 예시 순서 등 인-컨텍스트 학습 설계 요소 5가지를 체계적으로 평가하여 최적의 구성 요건을 규명한다.
  • 6개 주요 라이브러리(안드로이드 SDK, JDK, 히버네이트 등)에서 수집한 FQN의 정제된 데이터셋을 사용하여 Copilot의 FQN 추론 성능을 평가한다.
  • 영점 및 소수의 예시를 사용하여 부분 코드 스니펫에서 FQN을 추론하고, 다양한 데이터 성질에 따라 정확도와 내구성을 측정한다.
  • FQN 빈도, 길이, 사용 패턴이 추론 성능에 미치는 영향을 분석하여 모델의 일반화 능력을 이해한다.

실험 결과

연구 질문

  • RQ1GitHub Copilot는 신경망 지식 기반으로서 얼마나 많은 사실적 FQN 지식을 저장하고 있는가?
  • RQ2파인튜닝 없이 Copilot에서 FQN 추론 정확도를 높일 수 있는 최적의 인-컨텍스트 학습 프롬프트 설계는 무엇인가?
  • RQ3소수의 예시 수와 FQN 데이터 성질(예: 빈도, 길이)이 추론 성능에 어떻게 영향을 미치는가?
  • RQ4고정된 Copilot에서의 인-컨텍스트 학습이 기존의 기호 기반 또는 컴파일 기반 분석 방법보다 FQN 추론에서 더 나은 성능을 내는가?
  • RQ5FQN 추론 작업에서 인간-Copilot 협업의 실용적 영향과 기회는 무엇인가?

주요 결과

  • Copilot는 파인튜닝이나 코드 컴파일 없이도 정확한 추론이 가능한 대규모이고 다양한 사실적 FQN 지식을 저장하고 있다.
  • 가장 높은 성능을 보인 인-컨텍스트 학습 구성은 소수의 few-shot 예시만으로도 높은 FQN 추론 정확도를 달성하며, 다양한 FQN 빈도 수준에서 안정적인 성능을 보인다.
  • FQN 데이터는 지프-분포를 보이며, 전체 FQN의 12%가 10,000번 이상 사용되며, 희귀하거나 어휘에 없는 FQN에 대해서도 모델이 잘 일반화된다.
  • Copilot에서의 인-컨텍스트 학습은 모델 업데이트나 파싱이 필요 없이 프롬프트 엔지니어링만으로도 기술적으로 가능하고, 대규모로도 구현이 가능하다.
  • 모델의 성능은 프롬프트 설계의 변동에 대해 강건하지만, 최적의 구성이 정확도를 크게 향상시키며, 특히 모호하거나 다의어인 단순 이름에 대해 뚜렷한 개선 효과가 있다.
  • 구조화된 프롬프트 설계와 AI 체인 패러다임을 통해 인간-Copilot 상호작용을 향상시킬 수 있으며, 이는 더 신뢰할 수 있고 재사용 가능한 코드 분석 워크플로우를 가능하게 한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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