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.0.tar.gz (37.7 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.0-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: substrax-0.1.0.tar.gz
  • Upload date:
  • Size: 37.7 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.0.tar.gz
Algorithm Hash digest
SHA256 9b8ec6166c0202e11fd92339e7e2e9baed2b05b49aeb5fd8e45d3517be1b3c83
MD5 42983866847cd3912097faf4da223b15
BLAKE2b-256 30bbcf33bc10a454c5b2250a6e570f5ade4ba7ce6e62fd70328b249d795ffdb3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: substrax-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 44.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fba35f0d6844f46c41f2cdfaa8f4d9eccff3e0477ab4cb8bae1b99e3c38640b1
MD5 c90c74636417a4de1149ffcadaa5d1f9
BLAKE2b-256 cc336fcfa61962aa8e05e2a758ca41f09246c56c4b742372caa9fc6676cae6bd

See more details on using hashes here.

Provenance

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

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

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