Ensinando LLMs a uma Língua de Baixos Recursos: Aprimorando a Complementação de Código no Pharo
Teaching LLMs a Low-Resource Language: Enhancing Code Completion in Pharo
July 6, 2026
Autores: Kilian Kier, Alessandro Giagnorio, Omar AbedelKader, Oleksandr Zaitsev, Robert Peharz, Romain Robbes, Gabriele Bavota, Stéphane Ducasse
cs.AI
Resumo
Modelos de Linguagem de Grande Porte (LLMs) desbloquearam novas possibilidades na escrita automatizada de código, tornando-se a base da maioria das ferramentas de completamento de código. Embora LLMs se destaquem em linguagens mainstream, frequentemente carecem de suporte para as chamadas linguagens de baixos recursos, onde os dados de treinamento são escassos. Como resultado, essas linguagens ficam atrasadas na qualidade das ferramentas de completamento de código disponíveis para suas comunidades. Um exemplo concreto é o Pharo, uma linguagem inspirada no Smalltalk cujo IDE atualmente oferece apenas completamento de token único. Neste trabalho, relatamos nossa experiência ao trazer completamento de código baseado em LLM para o Pharo. Primeiro, descrevemos um pipeline de ponta a ponta que combina curadoria de dados específica do Pharo, pré-treinamento continuado e ajuste fino de LLMs de código aberto. Segundo, introduzimos um conjunto de benchmarks de completamento de código Pharo projetados para avaliar se os modelos (i) aprendem a sintaxe do Pharo e (ii) completam com precisão código Pharo mascarado de repositórios reais do GitHub. Terceiro, mostramos empiricamente que modelos especializados em Pharo superam substancialmente seus checkpoints base originais e também excedem a precisão de LLMs de código significativamente maiores no completamento de Pharo. No geral, nosso estudo de caso demonstra a viabilidade de trazer completamento de código baseado em LLM robusto para linguagens de programação de baixos recursos, com modelos pequenos o suficiente para fornecer suporte "em tempo real" dentro do IDE.
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.