https://github.com/clement-bonnet/lpn
Latent Program Network (from the "Searching Latent Program Spaces" paper)
https://github.com/clement-bonnet/lpn
artificial-intelligence paper reasoning research
Last synced: 3 months ago
JSON representation
Latent Program Network (from the "Searching Latent Program Spaces" paper)
- Host: GitHub
- URL: https://github.com/clement-bonnet/lpn
- Owner: clement-bonnet
- License: apache-2.0
- Created: 2024-11-10T11:29:20.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-27T13:46:10.000Z (5 months ago)
- Last Synced: 2024-11-27T14:38:38.608Z (5 months ago)
- Topics: artificial-intelligence, paper, reasoning, research
- Language: Jupyter Notebook
- Homepage:
- Size: 5.07 MB
- Stars: 30
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Latent Program Network (LPN)
Code for the paper _Searching Latent Program Spaces_, submitted to the [ARC Prize 2024](https://www.kaggle.com/competitions/arc-prize-2024) competition.Authors and maintainers: [ClΓ©ment Bonnet](https://github.com/clement-bonnet) & [Matthew V Macfarlane](https://github.com/mvmacfarlane).
## Links
- [π Paper on arXiv](https://arxiv.org/abs/2411.08706)
- [π Interactive Demo](https://huggingface.co/spaces/clement-bonnet/lpn)## Overview
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.
## Installation
Install JAX using the official documentation [here](https://github.com/jax-ml/jax?tab=readme-ov-file#instructions).
Then, install the required packages using the following commands:
```bash
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):
```bash
export HF_TOKEN=...
export WANDB_API_KEY=...
```## Repository Structure
```
src/
βββ configs/ # Configuration files (use with hydra)
βββ datasets/ # Data processing utilities (re-arc)
βββ models/ # Neural network architectures (lpn)
βββ train.py # Main training script
```## Usage
To train a model, run the following command (replace the config name with the desired configuration):
```bash
python src/train.py --config-name pattern_2d
```## License
This project is licensed under the open-source Apache 2.0 License. See the [LICENSE](LICENSE) file for more details.## Citation
If you use this code in your research, please cite:
```bibtex
@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},
}
```