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.4.tar.gz (38.6 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.4-py3-none-any.whl (45.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: substrax-0.1.4.tar.gz
  • Upload date:
  • Size: 38.6 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.4.tar.gz
Algorithm Hash digest
SHA256 38bad309550eadd2a5c55f3b174b20db349ba19aacef6a8c5d79378150efd533
MD5 aace7b195acfa842f695023393d4a1ac
BLAKE2b-256 edd33bab10ca05c3d0f2a6baa06c21254699a02ff8c3a1fb788ced9c968c0f93

See more details on using hashes here.

Provenance

The following attestation bundles were made for substrax-0.1.4.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.4-py3-none-any.whl.

File metadata

  • Download URL: substrax-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 45.7 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 15026438a6e2423fa207dd3b4f5650b2fe37f379b11d854982ff0a4f84acf9ab
MD5 e7adb2f65cefe23fb0c65ff2488701a7
BLAKE2b-256 53693a22d6cb203720e1c06150e78517a635cf9bb7c76d2325fb5d187ddaced5

See more details on using hashes here.

Provenance

The following attestation bundles were made for substrax-0.1.4-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

This release

0.1.4 This release

2 files

0.1.3

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