A library for computational algebra using Transformers
Project description
CALT: Computer ALgebra with Transformer
Overview
CALT is a simple Python library for learning arithmetic and symbolic computation with a Transformer model (a deep neural model to realize sequence-to-sequence functions).
It offers a basic Transformer model and training pipeline, and non-experts of deep learning can focus on constructing datasets to train and evaluate the model.
Quick Start
Installation
We recommend installing CALT in a dedicated conda environment.
conda create -n calt-env python=3.11
conda activate calt-env
conda install -c conda-forge calt-x
CALT currently supports Python >=3.11,<3.13.
If you use features that depend on SageMath, install SageMath in the same conda environment:
conda install -c conda-forge sage
You can check the available versions with:
conda search calt-x --channel conda-forge
The conda-forge feedstock is available here: conda-forge/calt-x-feedstock.
Instance Generation
For minimal usage, users only need to implement an instance generator for their own task. For example:
def int_sum_generator(seed, N=5, lb=-10, ub=10):
random.seed(seed)
# get N random integers from [lb, ub]
problem = [random.randint(lb, ub) for _ in range(N)]
answer = sum(problem)
return problem, answer
Feeding the generator to DataPipeline generates training and evaluation sets. The data.yaml gives a full control over the generation process.
cfg = OmegaConf.load("configs/data.yaml")
pipeline = DatasetPipeline.from_config(
cfg.dataset,
instance_generator=int_sum_generator
)
pipeline.run()
Training Script
Then, a short script implement the training and evalutation through IOPipeline, ModelPipeline, and TrainerPipeline. The config file train.yaml (and associated lexer.yaml) gives full control over the training setup.
cfg = OmegaConf.load("configs/train.yaml")
io_pipeline = IOPipeline.from_config(cfg.data)
io_dict = io_pipeline.build()
model = ModelPipeline.from_io_dict(cfg.model, io_dict).build()
trainer_pipeline = TrainerPipeline.from_io_dict(cfg.train, model, io_dict).build()
trainer_pipeline.train()
trainer_pipeline.save_model()
trainer_pipeline.evaluate_and_save_generation()
Examples
See examples/ directory.
For users without a local GPU
If you do not have a local GPU, you can still try CALT in two ways:
-
Run the demo on Google Colab
Use the demo notebook from your browser: https://colab.research.google.com/github/HiroshiKERA/calt/blob/dev/examples/demos/minimal_demo.ipynb -
Use remote jobs on Kaggle
Submit and monitor training jobs from your local terminal usingcalt remote .... See the remote job documentation: https://hiroshikera.github.io/calt/remote/
Citation
If you use CALT in your project, please cite our paper:
@misc{kera2025calt,
title={CALT: A Library for Computer Algebra with Transformer},
author={Hiroshi Kera and Shun Arawaka and Yuta Sato},
year={2025},
archivePrefix={arXiv},
eprint={2506.08600}
}
Note: The current arXiv preprint is based on the previous version of CALT. The update will come soon.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file calt_x-1.2.0.tar.gz.
File metadata
- Download URL: calt_x-1.2.0.tar.gz
- Upload date:
- Size: 102.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34905597be9ce040d1b8c996be28a6a1ccee99d62790d17b64428ea5e3c8ede1
|
|
| MD5 |
4ac8117bd9c59819ad5f1b841ba13629
|
|
| BLAKE2b-256 |
f2579524a2837ba5f9d90e41ea2e5bed3f5286ffc494d75dbd8b32c07749bbbe
|
Provenance
The following attestation bundles were made for calt_x-1.2.0.tar.gz:
Publisher:
pypi-release.yml on HiroshiKERA/calt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
calt_x-1.2.0.tar.gz -
Subject digest:
34905597be9ce040d1b8c996be28a6a1ccee99d62790d17b64428ea5e3c8ede1 - Sigstore transparency entry: 1808615517
- Sigstore integration time:
-
Permalink:
HiroshiKERA/calt@c260c27462fc36a7fe3af998c991ce6948697b90 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/HiroshiKERA
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-release.yml@c260c27462fc36a7fe3af998c991ce6948697b90 -
Trigger Event:
push
-
Statement type:
File details
Details for the file calt_x-1.2.0-py3-none-any.whl.
File metadata
- Download URL: calt_x-1.2.0-py3-none-any.whl
- Upload date:
- Size: 126.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02e42b52b88e042777bae8ea5d141a736cade4383d1c0969c1068260a26a4031
|
|
| MD5 |
254f71712b0beb0ba09d6a31e463f235
|
|
| BLAKE2b-256 |
cf31d06aa0d5a4e72fb2fe360387ea22f383bcaa6a547d7a59e8f75ff2db96fc
|
Provenance
The following attestation bundles were made for calt_x-1.2.0-py3-none-any.whl:
Publisher:
pypi-release.yml on HiroshiKERA/calt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
calt_x-1.2.0-py3-none-any.whl -
Subject digest:
02e42b52b88e042777bae8ea5d141a736cade4383d1c0969c1068260a26a4031 - Sigstore transparency entry: 1808615523
- Sigstore integration time:
-
Permalink:
HiroshiKERA/calt@c260c27462fc36a7fe3af998c991ce6948697b90 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/HiroshiKERA
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-release.yml@c260c27462fc36a7fe3af998c991ce6948697b90 -
Trigger Event:
push
-
Statement type: