Sem Recursos, Sem Benchmarks, Sem Problema? Avaliando e Melhorando LLMs para Geração de Código em Línguas sem Recursos
No Resource, No Benchmarks, No Problem? Evaluating and Improving LLMs for Code Generation in No-Resource Languages
June 15, 2026
Autores: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota
cs.AI
Resumo
Modelos de Linguagem de Grande Escala (LLMs) avançaram significativamente a automação de tarefas de engenharia de software. Um exemplo proeminente é a geração de código, na qual um LLM produz código em uma linguagem de programação específica com base em uma descrição em linguagem natural. A maior parte das pesquisas nessa área concentrou-se em linguagens de alto recurso, como Python ou Java, que se beneficiam de abundantes dados de treinamento. Um conjunto menor de trabalhos explorou linguagens de baixo recurso, sub-representadas nos corpora de treinamento. Em contraste, as linguagens sem recurso, para as quais os LLMs praticamente não viram dados de treinamento, permanecem amplamente inexploradas. Essas linguagens frequentemente surgem na indústria, onde organizações desenvolvem linguagens proprietárias ou específicas de domínio, sem suporte de ferramentas comerciais como o GitHub Copilot. Isso resulta na necessidade de as empresas implementarem seus próprios recomendadores de código internos. Para investigar possíveis soluções nesse contexto, construímos e disponibilizamos três benchmarks de geração de código para linguagens sem recurso, baseados em duas linguagens de programação recentemente propostas para as quais há muito poucos dados de treinamento disponíveis. Utilizando esses benchmarks, experimentamos várias soluções para ensinar LLMs sobre linguagens sem recurso, incluindo técnicas baseadas em prompt, bem como pré-treinamento e ajuste fino explorando os poucos dados disponíveis. Embora o pré-treinamento adicional proporcione os maiores ganhos de desempenho para linguagens sem recurso, aplicá-lo diretamente a modelos ajustados por instrução prejudica sua capacidade de seguir instruções. Para resolver isso, partimos de um modelo base, realizamos pré-treinamento adicional na linguagem alvo e, em seguida, injetamos capacidades de seguimento de instruções por meio da transferência de diferenças de pesos (weight diff transfer) de um modelo de instrução. Tal abordagem melhora significativamente as capacidades de geração de código em contextos sem recurso, permitindo que empresas implementem de forma econômica um modelo especializado para instruções sem lidar com o custo computacional do ajuste fino por instrução.
English
Large Language Models (LLMs) have significantly advanced the automation of software engineering tasks. One prominent example is code generation, where an LLM produces code in a specified programming language based on a natural language description. Most research in this area has focused on high-resource languages, such as Python or Java, which benefit from abundant training data. A smaller body of work has explored low-resource languages, which are underrepresented in training corpora. In contrast, no-resource languages for which LLMs have seen virtually no training data remain largely unstudied. These languages often emerge in industry, where organizations develop proprietary or domain-specific languages unsupported by commercial tools like GitHub Copilot. This results in the need for companies to deploy their own in-house code recommenders. To investigate possible solutions in this context, we build and release three code generation benchmarks for no-resource languages, based on two recently proposed programming languages for which very little training data is available. Using these benchmarks, we experiment several solutions to teach LLMs about no-resource languages, including prompt-based techniques as well as pre-training and fine-tuning exploiting the little data available. While further pre-training gives the largest performance gains for no-resource languages, applying it directly to instruction-tuned models harms their ability to follow instructions. To address this, we start from a base model, further pre-training it on the target language, and then inject instruction-following capabilities via weight diff transfer from an instruction model. Such an approach significantly improves code generation capabilities in no-resource settings, allowing companies to cheaply deploy a specialized instruct model without dealing with the computational cost of instruction fine-tuning.