Skip to main content

A light-weight system for training AI networks using PyTorch

Project description

https://raw.githubusercontent.com/marovira/helios-ml/master/data/logo/logo-transparent.png

Test CodeFactor Ruff PythonVersion PyPi License

What is Helios?

Named after Greek god of the sun, Helios is a light-weight package for training ML networks built on top of PyTorch. It is designed to abstract all of the “boiler-plate” code involved with training. Specifically, it wraps the following common patterns:

  • Creation of the dataloaders.

  • Initialization of CUDA, PyTorch, and random number states.

  • Initialization for distributed training.

  • Training, validation, and testing loops.

  • Saving and loading checkpoints.

  • Exporting to ONNX.

It is important to note that Helios is not a fully fledged training environment similar to Pytorch Lightning. Instead, Helios is focused on providing a simple and straight-forward interface that abstracts most of the common code patterns while retaining the ability to be easily overridden to suit the individual needs of each training scheme.

Main Features

Helios offers the following functionality out of the box:

  1. Resume training: Helios has been built with the ability to resume training if it is paused. Specifically, Helios will ensure that the behaviour of the trained model is identical to the one it would’ve had if it had been trained without pauses.

  2. Automatic detection of multi-GPU environments for distributed training. In addition, Helios also supports training using torchrun and will automatically handle the initialisation and clean up of the distributed state. It will also correctly set the devices and maps to ensure weights are mapped tot he correct location.

  3. Registries for creation of arbitrary types. These include: networks, loss functions, optimizers, schedulers, etc.

  4. Correct handling of logging when doing distributed training (even over multiple nodes).

  5. Native integration with Optuna for hyper-parameter optimisation. Also supports resuming studies and generating checkpoints to ensure reproducibility.

Installation

Dependencies

Helios requires:

  • Python (>= 3.11)

  • TQDM (>= 4.66.0)

  • OpenCV (>= 4.10.0.84)

  • Tensorboard (>= 2.17.0)

  • PyTorch (>= 2.5.0)

  • Torchvision (>= 0.20.0)

  • ONNX (>= 1.16.0)

  • ONNXRuntime (>= 1.19.0)

  • Matplotlib (>= 3.9.2)

  • Numpy (>= 2.1.0)

User Installation

You can install Helios using pip:

pip install -U helios-ml

If you require a specific version of CUDA, you can install with:

pip install -U helios-ml --extra-index-url https://download.pytorch.org/whl/cu<version>

Documentation

Documentation available here.

Contributing

There are three ways in which you can contribute to Helios:

  • If you find a bug, please open an issue. Similarly, if you have a question about how to use it, or if something is unclear, please post an issue so it can be addressed.

  • If you have a fix for a bug, or a code enhancement, please open a pull request. Before you submit it though, make sure to abide by the rules written below.

  • If you have a feature proposal, you can either open an issue or create a pull request. If you are submitting a pull request, it must abide by the rules written below. Note that any new features need to be approved by me.

If you are submitting a pull request, the guidelines are the following:

  1. Ensure that your code follows the standards and formatting of Helios. The coding standards and formatting are enforced through the Ruff Linter and Formatter. Any changes that do not abide by these rules will be rejected. It is your responsibility to ensure that both Ruff and Mypy linters pass.

  2. Ensure that all unit tests are working prior to submitting the pull request. If you are adding a new feature that has been approved, it is your responsibility to provide the corresponding unit tests (if applicable).

License

Helios is published under the BSD-3 license and can be viewed here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

helios_ml-1.4.1.tar.gz (238.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

helios_ml-1.4.1-py3-none-any.whl (77.4 kB view details)

Uploaded Python 3

File details

Details for the file helios_ml-1.4.1.tar.gz.

File metadata

  • Download URL: helios_ml-1.4.1.tar.gz
  • Upload date:
  • Size: 238.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for helios_ml-1.4.1.tar.gz
Algorithm Hash digest
SHA256 929becf0eae62f704297d2c8f0a209826f0f6ef4a5b4ea2febc8791b989bd575
MD5 eb42fc5b4d0c183544b87ea85e101a1f
BLAKE2b-256 69b494de2ca7f5ca2bb7794801ca23fed6a6e6292f2f96c840a851b03326af76

See more details on using hashes here.

Provenance

The following attestation bundles were made for helios_ml-1.4.1.tar.gz:

Publisher: publish.yml on marovira/helios-ml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file helios_ml-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: helios_ml-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 77.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for helios_ml-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa64d614c1446146cf7bc580b9e3abd3bdace34fc1888a7fe05b67299057d7a1
MD5 0856f925b690fa5f35e2f653c2e78c83
BLAKE2b-256 0746eafca77379fe705b2ad23b471c982209a46af9c6a7f241a8fd02f194d48c

See more details on using hashes here.

Provenance

The following attestation bundles were made for helios_ml-1.4.1-py3-none-any.whl:

Publisher: publish.yml on marovira/helios-ml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page