Skip to main content

silver-doodle

Lightning training runs with LightningCLI, run locally or on Kubeflow Trainer, with the config and metrics logged to MLflow.

Setup

uv sync --extra train  # train locally, and resolve configs locally before submitting
uv sync                # or: only submit to Kubeflow
cp .env.example .env   # set MLFLOW_TRACKING_URI and credentials

Run locally

uv run silver-doodle fit --config configs/example.yaml
uv run silver-doodle fit --config configs/example.yaml --trainer.max_epochs 2   # override anything
uv run silver-doodle fit --config configs/example.yaml --print_config           # show the full config

Run on Kubeflow

silver-doodle-submit takes the same arguments as silver-doodle:

uv run silver-doodle-submit --dry-run fit --config configs/example.yaml   # prepare only
uv run silver-doodle-submit fit --config configs/example.yaml                            # 1 GPU
uv run silver-doodle-submit fit --config configs/example.yaml --trainer.accelerator cpu  # CPU only
uv run silver-doodle-submit fit --config configs/example.yaml \
    --trainer.accelerator gpu --trainer.devices 2 --trainer.num_nodes 2
  1. With the train extra, the full config is resolved locally with --print_config, so mistakes fail before submitting. Without it, the config files and overrides are sent as they are and resolved in the pod, and the pod size is read from the trainer settings in them.
  2. From a checkout, the local code, uncommitted changes included, is built into a wheel with uv build. Installed from PyPI (uvx --from silver-doodle silver-doodle-submit ...), the pod installs the same silver-doodle version from PyPI instead.
  3. The pod installs the train dependencies and silver-doodle, then runs silver-doodle with the shipped config files.

The progress bar is turned off in the pod unless you set --trainer.enable_progress_bar. Pod resources come from the config: trainer.num_nodes nodes, each with trainer.devices GPUs when trainer.accelerator is auto (Lightning's default), gpu or cuda. A pod only sees the GPUs it requests, so auto requests them: 1 per node unless trainer.devices is a count. Use --trainer.accelerator cpu for a CPU-only job. If no GPU node is free, the job waits in Pending. The MLflow env vars are forwarded to the pod. Logs, the resolved config and the wheel are saved in logs/<timestamp>/.

MLFLOW_TRACKING_URI must point to a tracking server, not sqlite:///...: the URI ends up in the resolved config (it is MLFlowLogger's default), and a local database in the pod is lost with it.

Development

uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run ty check .

Metadata

Release files for silver-doodle 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for silver-doodle 0.1.5
File Size Uploaded Provenance Actions
silver_doodle-0.1.5.tar.gz 9.9 kB Without provenance Details for silver_doodle-0.1.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for silver-doodle 0.1.5
File Interpreter ABI Platform Actions
silver_doodle-0.1.5-py3-none-any.whl Python 3 none any Details for silver_doodle-0.1.5-py3-none-any.whl

Total release size: 22.3 kB

Release files / silver_doodle-0.1.5.tar.gz

Download URL silver_doodle-0.1.5.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
59187efea172717d1257b26833f053eb4c162d5f5716d73a37af49292bc9ca96
BLAKE2b-256 checksum
How to use checksums
1dd804e531cb015926e7083ffa6d533d7d173fd8a8c6abecd6ee4f16f67a85a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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 / silver_doodle-0.1.5-py3-none-any.whl

Download URL silver_doodle-0.1.5-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9646aadb159f005e3dbc66cc5ccaaad8b0fe3ef5a816742c619e628fb153ae88
BLAKE2b-256 checksum
How to use checksums
b5e7c7e502d35dbd8012f6bba06f1e18f302c42ec873812b9ae6683eb72ea304
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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}

Security for silver-doodle 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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