Avalanche: End-to-end library for Continual Learning

Published by Pye.ai

ContinualAI Avalanche open source library is based on Pytorch, used for fast prototyping, training and reproducible evaluation of continual learning algorithms.

Avalanche helps data scientist, machine learning model developers, continual learning researchers in several ways:

  • Write less code, prototype faster & reduce errors,
  • Improve reproducibility,
  • Improve modularity and reusability,
  • Increase code efficiency, scalability & portability,
  • Augment impact and usability of your research products.

The open-source library allows researchers to learn continually from non-stationary data streams.  This is a challenging problem in machine learning. Recently, ContinualAI has witnessed a renewed and fast-growing interest in continual learning, especially within the deep learning community. However, algorithmic solutions are often difficult to re-implement, evaluate and port across different settings, where even results on standard benchmarks are hard to reproduce. In this work, ContinualAI propose Avalanche, introduced an end-to-end library for continual learning research based on PyTorch. Avalanche is designed to provide a shared and collaborative codebase for fast prototyping, training, and reproducible evaluation of continual learning algorithms.

The library is organized into four main modules:

  • Benchmarks: This module maintains a uniform API for data handling: mostly generating a stream of data from one or more datasets. It contains all the major CL benchmarks (similar to what has been done for torchvision).
  • Training: This module provides all the necessary utilities concerning model training. This includes simple and efficient ways of implement new continual learning strategies as well as a set of pre-implemented CL baselines and state-of-the-art algorithms you will be able to use for comparison!
  • Evaluation: This module provides all the utilities and metrics that can help evaluate a CL algorithm with respect to all the factors we believe to be important for a continually learning system. It also includes advanced logging and plotting features, including native Tensorboard support.
  • Extras: In the extras module you’ll be able to find several useful utilities and building blocks that will help you create your continual learning experiments with ease. This includes configuration files for quick reproducibility and model building functions for example.
    Models: In this module you’ll be able to find several model architectures and pre-trained models that can be used for your continual learning experiment (similar to what has been done in torchvision.models).
  • Logging: It includes advanced logging and plotting features, including native stdout, file and TensorBoard support (How cool it is to have a complete, interactive dashboard, tracking your experiment metrics in real-time with a single line of code?)

The Avalanche framework in constant development.  It already support several Benchmarks, Strategies and Metrics.  The developer community focus is to separate of what to monitor and how to monitor it. This current alpha version focuses on supervised learning for vision tasks that contains feedforward, convolutional neural network, and has pretrained MobileNet model. 

In the future, the developer community is seeking to add reinforcement learning, and/or unsupervised learning, with tasks around detection, segmentation, and ability to handle contexts for Natural Language Processing (NLP) and Speech Recognition.

All the People that Made Avalanche Great. The Project is maintained mostly by ContinualAI Research members,

Additional Resources:

Published by Pye.ai

Spread the word

Related posts