La simulazione di auto-esecuzione migliora i modelli di codifica
Self-Execution Simulation Improves Coding Models
March 11, 2026
Autori: Gallil Maimon, Ori Yoran, Felix Kreuk, Michael Hassid, Gal Cohen, Pierre Chambon, Yossi Adi
cs.AI
Abstract
Una promettente direzione di ricerca per consentire agli LLM di generare codice costantemente corretto riguarda l'incapacità di questi modelli di stimare adeguatamente l'esecuzione dei programmi, in particolare per il codice che generano. In questo lavoro, dimostriamo che i Code LLM possono essere addestrati a simulare l'esecuzione dei programmi in modo graduale e che questa capacità può essere sfruttata per migliorare le prestazioni nella programmazione competitiva. Il nostro approccio combina un fine-tuning supervisionato su tracce di esecuzione in linguaggio naturale, ovvero spiegazioni testuali ancorate all'esecuzione reale, con l'apprendimento per rinforzo che utilizza ricompense verificabili. Introduciamo due obiettivi complementari: la previsione dell'output dato il codice e gli input, e la risoluzione di problemi di programmazione competitiva con feedback di esecuzione basati sulla realtà o auto-predetti. Questi obiettivi consentono ai modelli di effettuare auto-verifiche su più soluzioni candidate e auto-correzioni iterative simulando l'esecuzione dei test. Su molteplici benchmark di programmazione competitiva, il nostro metodo produce miglioramenti consistenti rispetto agli approcci di ragionamento standard. Presentiamo inoltre studi di ablazione e analisi per chiarire il ruolo della simulazione dell'esecuzione e i suoi limiti.
English
A promising research direction in enabling LLMs to generate consistently correct code involves addressing their inability to properly estimate program execution, particularly for code they generate. In this work, we demonstrate that Code LLMs can be trained to simulate program execution in a step-by-step manner and that this capability can be leveraged to improve competitive programming performance. Our approach combines supervised fine-tuning on natural language execution traces, textual explanations grounded in true execution, with reinforcement learning using verifiable rewards. We introduce two complementary objectives: output prediction given code and inputs, and solving competitive programming tasks with either ground-truth or self-predicted execution feedback. These objectives enable models to perform self-verification over multiple candidate solutions, and iterative self-fixing by simulating test execution. Across multiple competitive programming benchmarks, our method yields consistent improvements over standard reasoning approaches. We further present ablations and analysis to elucidate the role of execution simulation and its limitations.