metadata
license: apache-2.0
This respository contains ~45 folders. Each folder contains a transformer model that can predict addition questions, subtraction questions or both.
The folder name (e.g. sub_d6_l2_h3_t20K_s173289) contains:
- "add", "sub", or "mix": Shows the types of questions the model can predict.
- "d5" to "d20": How many digits the model handles e.g. a d5 sub model can predict the answer in 123450-345670=-0123230
- "l1", "l2" or "l3": The number of layers in the model
- "h3" or "h4": The number of attention heads in the model
- "t15K" to "t85K" etc: The number of batches the model was trained on
- "s372001" etc: The random seed used in model training
Some folder names also contain:
- "ins1": Before training the model was initialized with a smaller, accurate addition model
- "ins2": As per ins1, but the inserted, useful attention heads were not allowed to change
- "ins3": As per ins2, but the inserted MLP layers were also not allowed to change
Each folder contains:
- model.pth: The transformer model as described above
- training_loss.json: Data gathered during model training. Used to plot "loss over training batches" graphs
- behaviors.json: Facts gathered about the behavior of the model by direct inspection. Includes attention pattern data, PCA data, answer digit impact data, etc.
- features.json: Facts gathered about hypothesised algorithm features via experimentation e.g. node P12L0H1 implements the feature A3.ST.
The first 2 files were created by the https://github.com/PhilipQuirke/quanta_maths/blob/main/notebooks/QuantaMathsTrain.ipynb notebook. The last 2 files were created by the https://github.com/PhilipQuirke/quanta_maths/blob/main/notebooks/QuantaMathsAnalyse.ipynb notebook. The json file are used by the algorithm testing notebook https://github.com/PhilipQuirke/quanta_maths/blob/main/notebooks/QuantaMathsAlgorithm.ipynb notebook.