Skip to main content

Substrax

Shared training and hardware infrastructure for the Avitai JAX stack.

Research preview. Substrax is under rapid iteration and the API will change while the sibling packages migrate onto it. Pin a version.

Substrax is the bottom of the Avitai dependency chain:

substrax → calibrax → datarax → artifex → opifex

It holds the code those packages used to carry separately, so that each concern has one home and one test suite:

Subpackage What it owns
substrax.devices Device information and device placement, including the batch-size recommendation table
substrax.mesh Device meshes on jax.make_mesh, mesh rules and partition-spec helpers, sharding strategies on flax.nnx.spmd
substrax.spmd Data-parallel placement, spmd_train_step, gradient reduction and collectives on the flat-state path
substrax.checkpoint One CheckpointStore protocol and one Orbax implementation over CheckpointManager
substrax.callbacks The training-callback protocol, BestMetricTracker, EarlyStopping
substrax.tracking Step-wise experiment tracking with console, CSV, Weights & Biases and MLflow backends

Not in Substrax: optimizers and schedules (optax), loss scaling and gradient accumulation (flax.training.dynamic_scale.DynamicScale, optax.MultiSteps), profiling and hardware spec tables (calibrax), data pipelines (datarax), models and trainers (artifex, opifex).

Installation

uv add substrax   # or: pip install substrax

Substrax requires Python 3.12 or later, jax>=0.11.1, flax>=0.12.9 and orbax-checkpoint>=0.11.33.

Development setup

git clone https://github.com/avitai/substrax.git
cd substrax
./setup.sh
source ./activate.sh

setup.sh creates the environment with uv, syncs the dev and test extras plus the backend extra for this machine, and writes the managed environment file .substrax.env that activate.sh loads. A user-owned .env is never modified.

Flag Effect
--backend <auto|cpu|cuda12|metal> Choose the backend policy; auto resolves to cuda12 on Linux with a visible NVIDIA GPU, metal on Apple Silicon, otherwise cpu
--python <version> Create the environment with a specific Python version
--extra <name> Sync an additional extra (repeatable), e.g. --extra docs
--recreate Remove the existing .venv before syncing
--force-clean Remove .venv, .substrax.env and repo-local test artifacts
--dry-run Print the resolved backend and the uv commands without changing files

Run the checks the way CI does:

uv run --locked pytest
uv run --locked pre-commit run --all-files
uv run --locked mkdocs build --strict --clean

Documentation

https://substrax.readthedocs.io

Contributing

See CONTRIBUTING.md. Security reports go to the address in SECURITY.md, not to a public issue.

License

MIT — see LICENSE.

Download files

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

Source Distribution

substrax-0.1.3.tar.gz (38.2 kB view details)

Uploaded Source

Built Distribution

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

substrax-0.1.3-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

Details for the file substrax-0.1.3.tar.gz.

File metadata

  • Download URL: substrax-0.1.3.tar.gz
  • Upload date:
  • Size: 38.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for substrax-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d3f84e5b46a8b65f3bc8457d8ee913e3a33251303fadf205a942cd6d1f1f0802
MD5 057a620e5f8f4eb513531a86e540e499
BLAKE2b-256 463b28449bd9349635b683c44a0d6c41ea3c0fe918525cb7ac056eedfb6c5423

See more details on using hashes here.

Provenance

The following attestation bundles were made for substrax-0.1.3.tar.gz:

Publisher: publish.yml on avitai/substrax

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

File details

Details for the file substrax-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: substrax-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for substrax-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 174d56b2b46dda88f07538fd9f19ee2c25d7ef7405f8187d3b72480705dbe811
MD5 856415cb27adc1fe4baf22cd5dfa6caf
BLAKE2b-256 f3b413c06f7a4cefdd0e2eb80d32bb6d7f85399a53f3413e499373b818b35abb

See more details on using hashes here.

Provenance

The following attestation bundles were made for substrax-0.1.3-py3-none-any.whl:

Publisher: publish.yml on avitai/substrax

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

Release history Release notifications | RSS feed

0.1.5

2 files

0.1.4

2 files

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

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