Skip to content

Rickisterr/Memory-Based-Meta-Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Memory Based Meta Learning

This model is currently on an undefined hiatus as this model has proven to be too low performing, even without memory implementation to pursue realistically. As a result, I will be taking what I learned while working on this project to attempt a different solution with a fresh slate which produces acceptable results.

I aspire to continue this project at a later date if an improved version does not come to mind before then when I have more time. However, for now, this repo is simply for my own learning experience.

Purpose

This repo's purpose was to attempt a solution for ARC-AGI 2 without the usage of other LLMs. The aim was to attempt to define an architecture that, while might not have been the best performing, would be able to shape a non-LLM based approach to the same.

Progress

This project has implemented a PyRegressor Symbolic Regression model that works on specific tasks and saves the model states for each respective task in as compact a form as possible so that models for similar tasks in the past can be reused and fitted from previous versions rather than from scratch.

Usage

To import the main version of the model, import this repo into a root directory. Then, in the root of the project directory (Memory-Based-Meta-Learning/), import the model for use via:

from src.model import TaskAbstractorModel

Move the data in json format for evaluation and training into data/ in the root folder in separate data/evaluation/ and data/training/ folders. When using ARC-AGI 2 data (recommended for data format), just import the data's repo folder into the data/ folder.

Then, initialize the model and specify the directory path to the training and evaluation folders as shown below as an example:

model = TaskAbstractorModel(
    train_dirs="./data/ARC-AGI-2-main/data/training/",
    eval_dirs="./data/ARC-AGI-2-main/data/evaluation/"
)

Finally, fit the model to the training data as shown below:

model.train(
    load_batches=1,     # Batch size
    verbose=1,          # Verbose 0 for no log, 1 for some, 2 for all logs
    max_batches=None,   # Maximum number of batches to train on. None for all
    run_from_batch=None # Batch number to start training from. None for batch 0.
)

All training losses and batch losses are saved to ./results/losses_data.csv by default. The final pickle file with all models' checkpoints saved is saved to ./src/pysr_temp/ as a single .pkl file.

About

My first attempt at a solution for ARC-AGI-2.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages