syvain-training-utils
Internal Syvain helpers for small, explicit ML training runs. No secret sauce here, just shared runtime, device-diagnostic, and checkpoint patterns.
Install
uv add syvain-training-utils
Runtime setup
from syvain_training_utils import (
generate_run_id,
require_torch_compile_toolchain,
select_device,
)
run_id = generate_run_id()
device = select_device()
require_torch_compile_toolchain()
Device smoke test
import json
from syvain_training_utils import run_device_smoke_test
report = run_device_smoke_test(require_cuda=True)
print(json.dumps({"smoke": report}, indent=2, sort_keys=True))
Checkpoint a training run
from syvain_training_utils import (
StorageConfig,
TrainingLoopState,
load_training_checkpoint_if_available,
save_model_checkpoint,
)
storage_config = StorageConfig(
bucket="my-training-bucket",
s3_base_url="https://t3.storage.dev",
region="auto",
access_key_id="...",
secret_access_key="...",
)
checkpoint_base_path = "models/my-model"
loop_state = TrainingLoopState(
global_step=global_step,
curriculum_stage=curriculum_stage,
curriculum_step=curriculum_step,
)
save_model_checkpoint(
storage_config=storage_config,
base_path=checkpoint_base_path,
experiment_slug=experiment_slug,
run_id=run_id,
model=model,
optimizer=optimizer,
scheduler=scheduler,
loop_state=loop_state,
checkpoint_label=f"step-{global_step:012d}",
)
resume = load_training_checkpoint_if_available(
storage_config=storage_config,
base_path=checkpoint_base_path,
model=model,
optimizer=optimizer,
scheduler=scheduler,
device=device,
)
The library owns the object-store clients. Every transient retry opens a fresh client, and expired Tigris multipart sessions restart the complete upload at the same checkpoint key. Checkpoint bodies are written through a temporary local file, uploaded with an adaptive multipart size, and downloaded with resumable range reads. Ensure the machine has temporary disk capacity for one checkpoint.
The manifest remains a pointer to the current checkpoint key within the configured bucket and also records its byte size, ETag, and SHA-256 digest. The manifest is published only after the checkpoint upload succeeds. Loading verifies the complete digest before deserializing the model, optional optimizer, scheduler, and PyTorch RNG state.
Observation-only runs can pass optimizer=None and scheduler=None to both
checkpoint functions. Model parameters and buffers, PyTorch RNG state, run
identity, and loop progress are still saved and restored. A buffer-only module
needs no dummy parameter or optimizer. Save and resume must agree on whether
the optimizer and scheduler exist; incompatible configurations fail before
restoring model state. A scheduler always requires an optimizer. To load only
model state across configurations, use load_model_checkpoint_from_key.
The storage transport uses a 10-second connect timeout, a 60-second read-inactivity timeout, and a 10-minute overall request timeout. A bounded 15-minute outer no-progress retry window owns recovery and client replacement.
Release files for syvain-training-utils 0.0.331
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| syvain_training_utils-0.0.331.tar.gz | 11.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| syvain_training_utils-0.0.331-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.8 kB
Release files / syvain_training_utils-0.0.331.tar.gz
| Download URL | syvain_training_utils-0.0.331.tar.gz |
|---|---|
| Size | 11.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4beb9628734d2b9458852e8d60b4153535c42f1e8ff92265bfd880e7c41e2fca
|
|
BLAKE2b-256 checksum How to use checksums |
e91cd792f106c878b8098f077a7eec399ca6acf2998764349a100274262a67a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / syvain_training_utils-0.0.331-py3-none-any.whl
| Download URL | syvain_training_utils-0.0.331-py3-none-any.whl |
|---|---|
| Size | 14.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6ebc702057fb30c59ab2e16249508b7338b16bced41b3396f69c263b74d88d0
|
|
BLAKE2b-256 checksum How to use checksums |
deaf9e0ea573faed889ccecce2b9d6397f7be91a518cd91e9dcedc773ba2971e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|