Git Product home page Git Product logo

renate's Introduction

PyPI - Status Latest Release PyPI - Downloads License Documentation Status Coverage Badge

Renate: Automatic Neural Networks Retraining and Continual Learning in Python

Renate is a Python package for automatic retraining of neural networks models. It uses advanced Continual Learning and Lifelong Learning algorithms to achieve this purpose. The implementation is based on PyTorch and Lightning for deep learning, and Syne Tune for hyperparameter optimization.

Quick links

Who needs Renate?

In many applications data is made available over time and retraining from scratch for every new batch of data is prohibitively expensive. In these cases, we would like to use the new batch of data provided to update our previous model with limited costs. Unfortunately, since data in different chunks is not sampled according to the same distribution, just fine-tuning the old model creates problems like catastrophic forgetting. The algorithms in Renate help mitigating the negative impact of forgetting and increase the model performance overall.

Renate vs Model Fine-Tuning.

Renate's update mechanisms improve over naive fine-tuning approaches. [1]

Renate also offers hyperparameter optimization (HPO), a functionality that can heavily impact the performance of the model when continuously updated. To do so, Renate employs Syne Tune under the hood, and can offer advanced HPO methods such multi-fidelity algorithms (ASHA) and transfer learning algorithms (useful for speeding up the retuning).

Impact of HPO on Renate's Updating Algorithms.

Renate will benefit from hyperparameter tuning compared to Renate with default settings. [2]

Key features

  • Easy to scale and run in the cloud
  • Designed for real-world retraining pipelines
  • Advanced HPO functionalities available out-of-the-box
  • Open for experimentation

Resources

Cite Renate

@misc{renate2023,
  title           = {Renate: A Library for Real-World Continual Learning},
  author          = {Martin Wistuba and
                     Martin Ferianc and
                     Lukas Balles and
                     Cedric Archambeau and
                     Giovanni Zappella},
  year            = {2023},
  eprint          = {2304.12067},
  archivePrefix   = {arXiv},
  primaryClass    = {cs.LG}
}

What are you looking for?

If you did not find what you were looking for, open an issue and we will do our best to improve the documentation.

[1]To create this plot, we simulated domain-incremental learning with CLEAR-100. The training data was divided by year, and we trained sequentially on them. Fine-tuning refers to the strategy to learn on the first partition from scratch, and train on each of the subsequent partitions for few epochs only. We compare to Experience Replay with an infinite memory size. For both methods we use the same amount of training time and choose the best checkpoint using a validation set. Results reported are on the test set.
[2]In this experiment, we consider class-incremental learning on CIFAR-10. We compare Experience Replay against a version in which its hyperparameters were tuned.

renate's People

Contributors

wistuba avatar dependabot[bot] avatar lballes avatar 610v4nn1 avatar prabhuteja12 avatar wesk avatar amazon-auto avatar geoalgo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.