Skip to main content

Deep Learning optimizers developed in the Distributed Algorithms and Systems group (DASLab) @ Institute of Science and Technology Austria (ISTA)

Project description

ISTA DAS Lab Optimization Algorithms Package

This repository contains optimization algorithms for Deep Learning developed by the Distributed Algorithms and Systems lab at Institute of Science and Technology Austria.

The repository contains code for the following optimizers published by DASLab @ ISTA:

Installation

To use the latest stable version of the repository, you can install via pip:

pip3 install ista-daslab-optimizers

We also provide a script install.sh that creates a new environment, installs requirements and then installs the project as a Python package following these steps:

git clone git@github.com:IST-DASLab/ISTA-DASLab-Optimizers.git
cd ISTA-DASLab-Optimizers
source install.sh

How to use optimizers?

In this repository we provide a minimal working example for CIFAR-10 for optimizers acdc, dense_mfac, sparse_mfac and micro_adam:

cd examples/cifar10
OPTIMIZER=micro_adam # or any other optimizer listed above
bash run_${OPTIMIZER}.sh

To integrate the optimizers into your own pipeline, you can use the following snippets:

MicroAdam optimizer

from ista_daslab_optimizers import MicroAdam

model = MyCustomModel()

optimizer = MicroAdam(
    model.parameters(), # or some custom parameter groups
    m=10, # sliding window size (number of gradients)
    lr=1e-5, # change accordingly
    quant_block_size=100_000, # 32 or 64 also works
    k_init=0.01, # float between 0 and 1 meaning percentage: 0.01 means 1%
    alpha=0, # 0 means sparse update and 0 < alpha < 1 means we integrate fraction alpha from EF to update and then delete it
)

# from now on, you can use the variable `optimizer` as any other PyTorch optimizer

Versions summary:


  • 1.1.3 @ September 5th, 2024:

    • allow using SparseCoreMFACwithEF separately by importing it in sparse_mfac.__init__.py
  • 1.1.2 @ August 1st, 2024:

    • [1.1.0]: added support to densify the final update: introduced parameter alpha that controls the fraction of error feedback (EF) to be integrated into the update to make it dense. Finally, the fraction alpha will be discarded from the EF at the expense of another call to Qinv and Q (and implicitly quantization statistics computation).
    • [1.0.2]: added FSDP-compatible implementation by initializing the parameter states in the update_step method instead of MicroAdam constructor
  • 1.0.1 @ June 27th, 2024:

    • removed version in dependencies to avoid conflicts with llm-foundry
  • 1.0.0 @ June 20th, 2024:

    • changed minimum required Python version to 3.8+ and torch to 2.3.0+
  • 0.0.1 @ June 13th, 2024:

    • added initial version of the package for Python 3.9+ and torch 2.3.1+

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

ista_daslab_optimizers-1.1.3.tar.gz (45.7 kB view details)

Uploaded Source

Built Distribution

ista_daslab_optimizers-1.1.3-cp39-cp39-manylinux_2_34_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.34+ x86-64

File details

Details for the file ista_daslab_optimizers-1.1.3.tar.gz.

File metadata

File hashes

Hashes for ista_daslab_optimizers-1.1.3.tar.gz
Algorithm Hash digest
SHA256 9ce068609f14be860d27fd519b06408c4b75db569753dfe62a68e71ee168a029
MD5 066e75f200c99eb09e696573101e5910
BLAKE2b-256 d672d59af880e056d5c2becbfa0f62567aa43fc6549db8b74447f7ad572dc7af

See more details on using hashes here.

File details

Details for the file ista_daslab_optimizers-1.1.3-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ista_daslab_optimizers-1.1.3-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3cb812337bbb2e96fac2efb596b562d8761a03a3ec8d14b84149fe262b0fd280
MD5 16d04fb7179d94e2baceaa24531bbefb
BLAKE2b-256 d32a6543b270cbda8a17f69106ac757a465510f138274b09f04da3a782ffe640

See more details on using hashes here.

Supported by

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