Skip to main content

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.

Metadata

Release files for calt-x 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for calt-x 1.4.0
File Size Uploaded Provenance Actions
calt_x-1.4.0.tar.gz 124.2 kB With provenance Details for calt_x-1.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for calt-x 1.4.0
File Interpreter ABI Platform Actions
calt_x-1.4.0-py3-none-any.whl Python 3 none any Details for calt_x-1.4.0-py3-none-any.whl

Total release size: 279.3 kB

Release files / calt_x-1.4.0.tar.gz

Download URL calt_x-1.4.0.tar.gz
Size 124.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1254984968716f41c7a563b5c57f9f24dd192f547ad8313b0e825a77f01d1e89
BLAKE2b-256 checksum
How to use checksums
d4e2a7660b4b6dc2a15cc413f487aa6a053dcfc5e920ab8f5f5801a166115c10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release files / calt_x-1.4.0-py3-none-any.whl

Download URL calt_x-1.4.0-py3-none-any.whl
Size 155.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
976277ba7c222876f3eb0817076e9e9e2a6a04d3b2a9cc085ab2192d6a5d54dd
BLAKE2b-256 checksum
How to use checksums
df8d8905bb63b238104b2a2103e2049e002ddafc3993e15e593910856cbcfb3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Security for calt-x 1.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for calt_x-1.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page