¿Sin recursos, sin benchmarks, sin problema? Evaluación y mejora de los LLM para la generación de código en lenguajes sin 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
Resumen
Los Modelos de Lenguaje de Gran Tamaño (LLMs) han avanzado significativamente en la automatización de tareas de ingeniería de software. Un ejemplo destacado es la generación de código, donde un LLM produce código en un lenguaje de programación específico a partir de una descripción en lenguaje natural. La mayoría de las investigaciones en esta área se han centrado en lenguajes de alto recursos, como Python o Java, que se benefician de abundantes datos de entrenamiento. Un conjunto más reducido de trabajos ha explorado lenguajes de bajos recursos, que están subrepresentados en los corpus de entrenamiento. En cambio, los lenguajes sin recursos, para los cuales los LLMs prácticamente no han visto datos de entrenamiento, siguen siendo en gran medida no estudiados. Estos lenguajes suelen surgir en la industria, donde las organizaciones desarrollan lenguajes propietarios o específicos de dominio no compatibles con herramientas comerciales como GitHub Copilot. Esto genera la necesidad de que las empresas implementen sus propios recomendadores de código internos. Para investigar posibles soluciones en este contexto, construimos y publicamos tres puntos de referencia de generación de código para lenguajes sin recursos, basados en dos lenguajes de programación recientemente propuestos para los cuales hay muy pocos datos de entrenamiento disponibles. Utilizando estos puntos de referencia, experimentamos varias soluciones para enseñar a los LLMs sobre lenguajes sin recursos, incluyendo técnicas basadas en indicaciones (prompts), así como preentrenamiento y ajuste fino que explotan los pocos datos disponibles. Si bien un preentrenamiento adicional proporciona las mayores ganancias de rendimiento para lenguajes sin recursos, aplicarlo directamente a modelos ajustados por instrucciones perjudica su capacidad para seguir instrucciones. Para abordar esto, partimos de un modelo base, lo preentrenamos adicionalmente en el lenguaje objetivo, y luego inyectamos capacidades de seguimiento de instrucciones mediante la transferencia de diferencias de pesos desde un modelo de instrucciones. Este enfoque mejora significativamente las capacidades de generación de código en entornos sin recursos, permitiendo a las empresas implementar de forma económica un modelo de instrucciones especializado sin tener que lidiar con el costo computacional del ajuste fino por instrucciones.
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.