ChatPaper.aiChatPaper

Улучшение генерации кода для языков с ограниченными ресурсами: нет серебряной пули.

Enhancing Code Generation for Low-Resource Languages: No Silver Bullet

January 31, 2025
Авторы: Alessandro Giagnorio, Alberto Martin-Lopez, Gabriele Bavota
cs.AI

Аннотация

Появление больших языковых моделей (LLM) значительно продвинуло область автоматической генерации кода. LLM основаны на больших и разнообразных наборах данных для изучения синтаксиса, семантики и шаблонов использования языков программирования. Для языков с ограниченными ресурсами (т.е. узких языков программирования, характеризующихся дефицитом обучающих данных), ограниченная доступность таких данных затрудняет способность моделей эффективно обобщать, что приводит к более слабой производительности генерации кода по сравнению с языками с высокими ресурсами. По этой причине существует стремление к техникам, способным устранить эту разницу в производительности. Мы представляем эмпирическое исследование, изучающее эффективность нескольких подходов для улучшения производительности LLM на языках с ограниченными ресурсами, а именно: (i) классическое дообучение, которое, однако, ограничено размером из-за дефицита обучающих данных; (ii) три варианта контекстного обучения, с промптами, созданными для предоставления LLM дополнительной информации о языке с ограниченными ресурсами (например, примеры с небольшим числом шагов, демонстрирующие особенности целевого языка); и (iii) предварительная цель обучения, обучающая модель переводить между языками с высокими и ограниченными ресурсами. Контекстом нашего исследования являются два языка с ограниченными ресурсами (R и Racket) и шесть LLM с различными архитектурами и размерами. Наши результаты показывают, что для более маленьких LLM обычное дообучение обычно является лучшим выбором, возможно, из-за того, что даже небольшой набор данных достаточен для обучения их ограниченного числа параметров. С увеличением размера моделей контекстное обучение становится все более эффективным, представляя собой надежную и дешевую стратегию (т.е. это всегда помогает, но с различной степенью воздействия). В отличие от этого, очень большие LLM могут ухудшать свою производительность на языках с ограниченными ресурсами при выполнении дообучения, возможно, из-за недостаточного количества данных, необходимых для эффективного обновления их весов.
English
The advent of Large Language Models (LLMs) has significantly advanced the field of automated code generation. LLMs rely on large and diverse datasets to learn syntax, semantics, and usage patterns of programming languages. For low-resource languages (i.e., niche programming languages characterized by the scarcity of training data), the limited availability of such data hampers the models' ability to generalize effectively, resulting in poorer code generation performance as compared to high-resource languages. For this reason, there is a quest for techniques able to close this performance gap. We present an empirical study investigating the effectiveness of several approaches for boosting LLMs' performance on low-resource languages, namely: (i) a classic fine-tuning, which is however capped in size by the scarcity of training data; (ii) three variants of in-context learning, with prompts crafted to provide the LLM with additional information about the low-resource language (e.g., few-shot examples showcasing features of the targeted language); and (iii) a pre-training objective teaching the model how to translate between high- and low-resource languages. The context of our study are two low-resource languages (R and Racket) and six LLMs having different architectures and sizes. Our findings reveal that a fine-tuning is usually the best choice for smaller LLMs, possibly due to the fact that even a small dataset is sufficient to train their limited number of parameters. With the increase in size of the models, in-context learning becomes more and more effective, representing a safe and cheap bet (i.e., it always helps, but with different magnitudes). Differently, very large LLMs may deteriorate their performance on low-resource languages when fine-tuning is performed, possibly due to the lack of enough data needed to effectively update their weights.

Summary

AI-Generated Summary

PDF52February 7, 2025