title: Towards Resource Efficient Code Generation through Dynamic Early Exits in LLMs
Creators: name: Briem, Lukas Florian
Publisher: name: TU Wien
Year: 2025
Subjects: subject: Large Language Models
subject: Optimization
subject: Sustainability
subject: Energy Efficiency
subject: Early Exiting
subject: Efficient Inference
subject: Code Completion
subject: Reinforcement Learning

description: Große Sprachmodelle (Large Language Models, LLMs) sind zum Stand der Technik in der Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) und im Verstehen natürlicher Sprache (Natural Language Understanding, NLU) geworden. Neben Anwendungen wie Textzusammenfassung, Übersetzung und Texterstellung gewinnen LLMs auch in der Softwareentwicklung zunehmend an Bedeutung. Tools wie GitHub Copilot und AmazonQ bieten intelligente Codevervollständigung und unterstützen Millionen von Entwicklern weltweit.Trotz ihrer Effektivität in vielen Bereichen sind LLMs extrem ressourcenintensiv und benötigen erhebliche Rechenressourcen für Training und Einsatz in der Praxis. Während die Ressourcenineffizienz des Trainings von LLMs umfassend untersucht wurde, wurde den Ineffizienzen während der Inferenz weniger Aufmerksamkeit geschenkt. Aufgrund ihres kontinuierlichen Charakters wird die Inferenz jedoch mit der Zeit immer ressourcenintensiver. Dies gilt insbesondere für Code-Vervollständigungsaufgaben, bei denen Vorschläge oft nach jeder Dateiänderung ausgelöst werden.Daher ist die Verbesserung der Ressourceneffizienz der Codekomplettierung während der Inferenz von entscheidender Bedeutung für die Verbesserung der Nachhaltigkeit. Es wurden mehrere ressourceneffiziente Methoden in wissenschaftlichen Arbeiten vorgestellt, von denen jede ihre eigenen Vorteile und Grenzen hat. Darunter ist Early Exiting eine Technik, die dynamisch zur Laufzeit bestimmt, wann Berechnungen beendet werden sollten, so dass Vorhersagen gemacht werden können, ohne alle Schichten des LLM für jede Eingabe zu verwenden. In dieser Arbeit wird ein Framework vorgestellt, das Early Exiting durch spezielles fine-tuning von LLMs ermöglicht und das Early Exiting Problem durch Reinforcement Learning (RL) formuliert. Der RL-Agent bestimmt dynamisch, wann er während der Inferenz vorzeitig abbrechen soll, indem er den Trade-off zwischen Genauigkeit und Effizienz lernt.Dieser Ansatz wurde in zwei modernen LLMs, OPT-2.7B und Llama3.2-3B, prototypisch implementiert. Evaluierungen mit den PY150- und JavaCorpus-Datensätzen mit verschiedenen NLP-, code-spezifischen und effizienzbezogenen Metriken zeigen, dass unsere Methode im Durchschnitt 20-50% Energie einsparen kann, bei geringen bis moderaten Verlusten in den Genauigkeitsmetriken.
description: Large language models (LLMs) have become the state-of-the-art in natural language processing (NLP) and natural language understanding (NLU). Beyond applications such as summarization, translation, and text generation, LLMs are increasingly essential in the software engineering domain. Tools such as GitHub Copilot and AmazonQ provide intelligent code completion, assisting millions of developers worldwide.Despite their effectiveness in many domains, LLMs are highly resource-intensive, demanding significant computational resources in terms of both energy consumption and latency for training, deployment, and practical usage. While the resource inefficiency of LLM pre-training has been widely studied, less attention has been paid to the inefficiencies during inference. However, inference becomes more resource-intensive over time due to the high number of continuous user requests in real time. This is particularly true for code completion tasks, where suggestions are often triggered after each change to the file.Therefore, improving the resource efficiency of code completion during inference is essential to enhance sustainability, provided that the methods maintain acceptable levels of accuracy. Several resource-efficient methods have been proposed, each with its own advantages and limitations. Among them, early exiting is a technique that dynamically determines, at runtime, when to stop computations, allowing predictions to be made without utilizing all layers of the LLM for every input. This thesis introduces a framework that enables early exiting through specialized fine-tuning of LLMs and formulates the early exiting problem through reinforcement learning (RL). The RL agent dynamically determines when to exit early during inference by learning the trade-off between accuracy and efficiency.This approach has been implemented with a prototype system using two state-of-the-art LLMs, OPT-2.7B and Llama3.2-3B. We carried out extensive experiments. Our evaluations on the PY150 and JavaCorpus datasets in various NLP, code specific, and efficiency-related metrics show that our method can save 20-50% energy on average, with small to moderate accuracy losses.