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.5.tar.gz (39.0 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.5-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: substrax-0.1.5.tar.gz
  • Upload date:
  • Size: 39.0 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.5.tar.gz
Algorithm Hash digest
SHA256 b108572eb67c6d6519f9a0f432e2255cd47bfc0c4b683ca98e5269097b7e4b67
MD5 b8ae16317cb17f1d43ebb5384870ea96
BLAKE2b-256 93b1c0af585305038de5199124cf023a3b3ab05ebe44cbffbb7ac651e3296243

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: substrax-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 46.0 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1ceee222c100f219daac3aac4f6a51f5e9f9e0ea624a32b6507f6aed528493da
MD5 8f76e4ef49993328ddcec65698b982ef
BLAKE2b-256 451ea5d1001c7d9af4f83b65c6cf2f99d4b2508f14fa0744de14f282c4640fe9

See more details on using hashes here.

Provenance

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

This release

0.1.5 This release

2 files

0.1.4

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