[논문 리뷰] Control Models for In-IDE Code Completion
이 논문은 JetBrains IDE에서 LLM 기반 코드 자동완성을 스마트하게 게이트하기 위한 트리거(부스팅 기반 또는 트랜스포머)와 필터 제어 모델을 제시하여, 오프라인 및 온라인 평가에서 여러 언어에 걸쳐 약 20% 추론 절감과 자동완성 품질 향상을 달성한다.
We introduce control models for LLM-powered code completion in JetBrains IDEs: ML classifiers which trigger inference and filter the generated suggestions to better align them with users and reduce unnecessary requests. To this end, we evaluate boosting- and transformer-based architectures on an offline dataset of real code completions with n=98 users. We further evaluate the offline classification performance of our boosting-based approach on a range of syntactically diverse languages; and perform an A/B study in a production environment where they improve completion efficiency and quality metrics. With this study, we hope to demonstrate the potential in using auxiliary models for smarter in-IDE integration of LLM-driven features, highlight fruitful future directions, and open problems.
연구 동기 및 목표
- 개발자의 작업 흐름에 맞춘 LLM 기반 코드 자동완성의 필요성을 제시하고, IDE 내 불필요한 추론을 줄인다.
- IDE 내 텔레메트리와 코드 맥락을 활용하여 자동완성을 게이트하고 다듬기 위한 두 가지 제어 모델(트리거 및 필터) 아키텍처를 제안한다.
- 부스팅 기반과 트랜스포머 기반 제어 모델을 오프라인 및 운영 환경에서 온라인으로 평가한다.
- 자동완성의 효율성과 품질 향상의 잠재적 개선을 보여주고 향후 방향과 도전과제를 논의한다.]
- methodRequestedFieldsForTranslateOr
- method0To5Ungraded:Develop two models: a trigger classifier to decide when to infer a completion and a filter classifier to decide which generated completions to show.
- method1:Compare gradient-boosting (CatBoost) tabular models with transformer-based classifiers that incorporate code context.
- method2:Use offline datasets with multilingual code contexts (Kotlin, Python, PHP, C#) and in-IDE telemetry to train and evaluate models.
- method3:Evaluate via offline metrics such as Symbols Completed (RoCC), Accept Rate (AR), and Cancel Rate (CR), and through online A/B experiments in production.
- method4:Analyze impact of different false-negative rates (FNR) and percentage of generations filtered on completion quality metrics.
제안 방법
- 두 가지 모델 개발: 자동완성을 추론할 시점을 결정하는 트리거 분류기와 생성된 자동완성 중 어떤 것을 보여줄지 결정하는 필터 분류기.
- 코드 맥_context를 포함하는 그래디언트 부스팅(CatBoost) 표 형 데이터 모델과 트랜스포머 기반 분류기를 비교.
- 다국어 코드 맥락(Kotlin, Python, PHP, C#)과 IDE 내 텔레메트리를 포함한 오프라인 데이터 세트를 사용하여 모델을 훈련하고 평가.
- Symbol Completed (RoCC), Accept Rate (AR), Cancel Rate (CR) 등의 지표와 운영 환경에서의 온라인 A/B 실험으로 평가.
- 다른 FNR(거짓 부정률)과 생성 비율의 차이가 완료 품질 지표에 미치는 영향을 분석.

실험 결과
연구 질문
- RQ1RQ1: 오프라인 분류에서 부스팅 기반의 트리거/필터 성능이 트랜스포머 기반 접근법과 어떻게 비교되는가?
- RQ2RQ2: Kotlin, Python, PHP, C# 등 언어에서 부스팅 기반 제어 모델이 오프라인에서 추론 절감 및 지표 면에서 어떻게 성능을 보이는가?
- RQ3RQ3: 운영 환경에서 온라인으로 부스팅 기반 제어 모델이 사용자 지향 지표를 통해 A/B 테스트에서 어떤 성과를 보이는가?
주요 결과
- 부스팅 기반 제어 모델은 오프라인 분석에서 자동완성 추론 요청을 약 20% 정도 감소시키고 완료 품질 지표를 향상시킬 수 있다.
- 트랜스포머 기반 모델은 강력한 맥락 필터링을 제공하지만 표시되는 완성의 수가 적어 수락률(Accept Rate) 및 취소율(Cancel Rate) 개선에서 부스팅 모델에 뒤처질 수 있다.
- 부스팅 모델은 언어 의존적 효과를 보이며, 일부 언어에서 트리거 컨트롤의 증가가 메트릭에 다르게 큰 영향을 준다(예: Kotlin vs PHP).
- 온라인 A/B 결과에서 필터 모델은 Accept Rate와 Cancel Rate를 개선하지만 완료된 코드의 비율(Ratio of Completed Code)을 감소시키고, 트리거 모델은 일부 설정에서 생성 수의 통계적으로 유의한 감소 없이 약 20% 정도 자동완성 수를 줄인다.
- 오프라인 결과는 트랜스포머 모델이 더 깊은 맥락 이점을 제공할 수 있음을 시사하지만 배포 시 지연(latency) 및 프라이버시 문제에 직면한다.

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