저자원 언어를 LLM에 가르치기: Pharo에서 코드 완성 향상
Teaching LLMs a Low-Resource Language: Enhancing Code Completion in Pharo
July 6, 2026
저자: Kilian Kier, Alessandro Giagnorio, Omar AbedelKader, Oleksandr Zaitsev, Robert Peharz, Romain Robbes, Gabriele Bavota, Stéphane Ducasse
cs.AI
초록
대규모 언어 모델(LLM)은 자동 코드 작성의 새로운 가능성을 열어주며, 대부분의 코드 완성 도구의 핵심 기술로 자리 잡았다. LLM은 주류 언어에서 뛰어난 성능을 보이지만, 학습 데이터가 부족한 이른바 저자원 언어에 대한 지원은 종종 부족하다. 그 결과, 이러한 언어들은 해당 커뮤니티가 사용할 수 있는 코드 완성 도구의 품질에서 뒤처지고 있다. 구체적인 예로, Smalltalk에서 영감을 받은 언어인 Pharo의 IDE는 현재 단일 토큰 완성만을 제공한다. 본 연구에서는 Pharo에 LLM 기반 코드 완성을 도입한 경험을 보고한다. 첫째, Pharo 특화 데이터 선별, 공개 코드 LLM의 지속적 사전 학습 및 미세 조정을 결합한 엔드 투 엔드 파이프라인을 설명한다. 둘째, 모델이 (i) Pharo의 문법을 학습하는지, (ii) 실제 GitHub 저장소에서 가져온 마스킹된 Pharo 코드를 정확하게 완성하는지 평가하기 위해 설계된 Pharo 코드 완성 벤치마크 세트를 소개한다. 셋째, Pharo에 특화된 모델이 원래의 기본 체크포인트보다 성능이 훨씬 뛰어나며, Pharo 완성 작업에서 훨씬 더 큰 코드 LLM의 정확도를 초과한다는 것을 실증적으로 보여준다. 전반적으로, 본 사례 연구는 IDE 내에서 '실시간' 지원을 제공할 수 있을 정도로 작은 모델을 사용하여 강력한 LLM 기반 코드 완성을 저자원 프로그래밍 언어에 도입하는 것이 실현 가능함을 입증한다.
English
Large Language Models (LLMs) unlocked new possibilities in automated code writing, becoming the backbone of most code completion tools. While LLMs excel in mainstream languages, they often lack support for the so-called low-resource languages where training data is scarce. As a result, these languages lag behind in the quality of code completion tooling available to their communities. A concrete example is Pharo, a Smalltalk-inspired language whose IDE currently offers only single-token completion. In this work, we report on our experience bringing LLM-based code completion to Pharo. First, we describe an end-to-end pipeline that combines Pharo-specific data curation, continued pre-training and fine-tuning of open code LLMs. Second, we introduce a set of Pharo code completion benchmarks designed to evaluate whether models (i) learn Pharo's syntax and (ii) accurately complete masked Pharo code from real-world GitHub repositories. Third, we show empirically that Pharo-specialized models substantially outperform their original base checkpoints and also exceed the accuracy of substantially larger code LLMs on Pharo completion. Overall, our case study demonstrates the feasibility of bringing strong LLM-based code completion to low-resource programming languages, with models small enough to provide ``real-time'' in-IDE support.