Code for the paper Searching Latent Program Spaces, submitted to the ARC Prize 2024 competition.
Authors and maintainers: Clément Bonnet & Matthew V Macfarlane.
The LPN is an architecture for inductive program synthesis that builds in test-time adaption by learning a latent space that can be used for search.
Install JAX using the official documentation here. Then, install the required packages using the following commands:
git clone https://github.com/clement-bonnet/lpn
cd lpn
export PYTHONPATH=${PYTHONPATH}:${PWD}
pip install -U -r requirements.txt
Add your secrets to the environment variables (HuggingFace token and WandB API key):
export HF_TOKEN=...
export WANDB_API_KEY=...
src/
├── configs/ # Configuration files (use with hydra)
├── datasets/ # Data processing utilities (re-arc)
├── models/ # Neural network architectures (lpn)
└── train.py # Main training script
To train a model, run the following command (replace the config name with the desired configuration):
python src/train.py --config-name pattern_2d
This project is licensed under the open-source Apache 2.0 License. See the LICENSE file for more details.
If you use this code in your research, please cite:
@misc{bonnet2024searchinglatentprogramspaces,
title={Searching Latent Program Spaces},
author={Clément Bonnet and Matthew V Macfarlane},
year={2024},
eprint={2411.08706},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2411.08706},
}