Searching Latent Program Spaces
Matthew V Macfarlane, Clement Bonnet
TL;DR
The paper introduces Latent Program Network (LPN), a neural architecture that learns a continuous latent space of implicit programs and performs gradient-based search at test time to adapt to new tasks. By decoupling program representation from raw IO mappings via an encoder/decoder pair and a latent optimizer, LPN combines neural scalability with the adaptability of symbolic approaches, reducing reliance on predefined DSLs. Across pattern and string-manipulation tasks and the ARC-AGI 2024 benchmark, LPN demonstrates strong test-time adaptation, superior out-of-distribution generalization, and clear advantages over in-context learning and test-time training when scalable latent search is employed. The work highlights latent-space search as an effective mechanism for compositional generalization and targeted program adaptation, while acknowledging limited training-program diversity as a key limitation and pointing toward future exploration of alternative optimization strategies and discrete program representations.
Abstract
General intelligence requires systems that acquire new skills efficiently and generalize beyond their training distributions. Although program synthesis approaches have strong generalization power, they face scaling issues due to the large combinatorial spaces that quickly render them impractical, requiring human-generated DSLs or pre-trained priors to narrow this search space. On the other hand, deep learning methods have had high successes, but they lack structured test-time adaptation and rely on heavy stochastic sampling or expensive gradient updates for fine-tuning. In this work, we propose the Latent Program Network (LPN), a novel architecture that builds in test-time search directly into neural models. LPN learns a latent space of implicit programs -- neurally mapping inputs to outputs -- through which it can search using gradients at test time. LPN combines the adaptability of symbolic approaches and the scalability of neural methods. It searches through a compact latent space at test time and bypasses the need for pre-defined domain-specific languages. On a range of programming-by-examples tasks, LPN either outperforms or matches performance compared to in-context learning and test-time training methods. Tested on the ARC-AGI benchmark, we demonstrate that LPN can both learn a compact program space and search through it at test time to adapt to novel tasks. LPN doubles its performance on out-of-distribution tasks when test-time search is switched on.
