RuleFlow : Generating Reusable Program Optimizations with LLMs
Avaljot Singh, Dushyant Bharadwaj, Stefanos Baziotis, Kaushik Varadharajan, Charith Mendis
TL;DR
RuleFlow addresses the challenge of optimizing Pandas programs by combining offline, LLM-driven discovery with a deterministic, rule-based deployment pipeline. It introduces three stages—SnippetGen for discovering candidate optimizations, RuleGen for converting them into reusable rewrite rules, and CodeGen for applying them to unseen code via static pattern matching. The approach yields state-of-the-art end-to-end speedups on PandasBench, surpassing prior compiler-based (Dias) and systems-based (Modin) baselines, and results in a bank of high-quality rewrite rules that generalize across notebooks. By decoupling discovery from deployment, RuleFlow delivers scalable performance improvements while avoiding the high costs and unreliability of per-program LLM optimization, offering a practical path to broader adoption of automated Pandas optimizations.
Abstract
Optimizing Pandas programs is a challenging problem. Existing systems and compiler-based approaches offer reliability but are either heavyweight or support only a limited set of optimizations. Conversely, using LLMs in a per-program optimization methodology can synthesize nontrivial optimizations, but is unreliable, expensive, and offers a low yield. In this work, we introduce a hybrid approach that works in a 3-stage manner that decouples discovery from deployment and connects them via a novel bridge. First, it discovers per-program optimizations (discovery). Second, they are converted into generalised rewrite rules (bridge). Finally, these rules are incorporated into a compiler that can automatically apply them wherever applicable, eliminating repeated reliance on LLMs (deployment). We demonstrate that RuleFlow is the new state-of-the-art (SOTA) Pandas optimization framework on PandasBench, a challenging Pandas benchmark consisting of Python notebooks. Across these notebooks, we achieve a speedup of up to 4.3x over Dias, the previous compiler-based SOTA, and 1914.9x over Modin, the previous systems-based SOTA. Our code is available at https://github.com/ADAPT-uiuc/RuleFlow.
