ECCO: Can We Improve Model-Generated Code Efficiency Without Sacrificing Functional Correctness?
This work addresses the problem of unreliable benchmarking for code efficiency in interpreted languages like Python, providing a reproducible benchmark for future research, though it is incremental in adapting existing methods.
The paper tackles the challenge of generating efficient code with large language models without sacrificing functional correctness, and finds that adding execution information helps maintain correctness while natural language feedback improves efficiency.
Although large language models (LLMs) have been largely successful in generating functionally correct programs, conditioning models to produce efficient solutions while ensuring correctness remains a challenge. Further, unreliability in benchmarking code efficiency is a hurdle across varying hardware specifications for popular interpreted languages such as Python. In this paper, we present ECCO, a reproducible benchmark for evaluating program efficiency via two paradigms: natural language (NL) based code generation and history-based code editing. On ECCO, we adapt and thoroughly investigate the three most promising existing LLM-based approaches: in-context learning, iterative refinement with execution or NL feedback, and fine-tuning conditioned on execution and editing history. While most methods degrade functional correctness and moderately increase program efficiency, we find that adding execution information often helps maintain functional correctness, and NL feedback enhances more on efficiency. We release our benchmark to support future work on LLM-based generation of efficient code.