Skip to main content

A library for computational algebra using Transformers

Project description

CALT: Computer ALgebra with Transformer

Documentation GitHub Pages

📖 📚 View Full Documentation

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:

  1. 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

  2. Use remote jobs on Kaggle
    Submit and monitor training jobs from your local terminal using calt 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calt_x-1.3.0.tar.gz (115.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

calt_x-1.3.0-py3-none-any.whl (145.3 kB view details)

Uploaded Python 3

File details

Details for the file calt_x-1.3.0.tar.gz.

File metadata

  • Download URL: calt_x-1.3.0.tar.gz
  • Upload date:
  • Size: 115.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for calt_x-1.3.0.tar.gz
Algorithm Hash digest
SHA256 11bc78e7606f758fbf0bc64b653962b55b83f5224a9f5324a343ffe690586978
MD5 ea03902ce33576f766faec7fa1fd5ad1
BLAKE2b-256 587064aa65dcf89d85e79125be632c3ac99481517d6ed05bc3b64207172cd6e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for calt_x-1.3.0.tar.gz:

Publisher: pypi-release.yml on HiroshiKERA/calt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file calt_x-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: calt_x-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 145.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for calt_x-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b090660d7c04e0c8e7fdc93b638f6718b1c380e60e91c3d6f89308b36f0173f7
MD5 fdbae2daa879f2da46a3eeb001cc7fd5
BLAKE2b-256 181687e155c8ec563573a4107e1e51a6a50d6bcabbf2ce010ea4d0881d4fdd11

See more details on using hashes here.

Provenance

The following attestation bundles were made for calt_x-1.3.0-py3-none-any.whl:

Publisher: pypi-release.yml on HiroshiKERA/calt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page