SkillAgentSearch skills...

Sequoia

The Research Tree - A playground for research at the intersection of Continual, Reinforcement, and Self-Supervised Learning.

Install / Use

/learn @lebrice/Sequoia
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Sequoia - The Research Tree

A Playground for research at the intersection of Continual, Reinforcement, and Self-Supervised Learning.

Note: This project is not being actively developed at the moment. If you encounter any difficulties, please create an issue and I'll help you out.

If you have any questions or comments, please make an issue!

Motivation:

Most applied ML research generally either proposes new Settings (research problems), new Methods (solutions to such problems), or both.

  • When proposing new Settings, researchers almost always have to reimplement or heavily modify existing solutions before they can be applied onto their new problem.

  • Likewise, when creating new Methods, it's often necessary to first re-create the experimental setting of other baseline papers, or even the baseline methods themselves, as experimental conditions may be slightly different between papers!

The goal of this repo is to:

  • Organize various research Settings into an inheritance hierarchy (a tree!), with more general, challenging settings with few assumptions at the top, and more constrained problems at the bottom.

  • Provide a mechanism for easily reusing existing solutions (Methods) onto new Settings through Polymorphism!

  • Allow researchers to easily create new, general Methods and quickly gather results on a multitude of Settings, ranging from Supervised to Reinforcement Learning!

Installation

Requires python >= 3.7

Basic installation:

$ git clone https://www.github.com/lebrice/Sequoia.git
$ pip install -e Sequoia

Optional Addons

You can also install optional "addons" for Sequoia, each of which either adds new Methods, new environments/datasets, or both. using either the usual extras_require feature of setuptools, or by pip-installing other repositories which register Methods for Sequoia using an entry_point in their setup.py file.

pip install -e Sequoia[all|<plugin name>]

Here are some of the optional addons:

  • avalanche:

    Continual Supervised Learning methods, provided by the Avalanche library:

    $ pip install -e Sequoia[avalanche]
    
  • CN-DPM: Continual Neural Dirichlet Process Mixture model:

    $ cd Sequoia
    $ git submodule init  # to setup the submodules
    $ pip install -e sequoia/methods/cn_dpm    
    
  • orion:

    Hyper-parameter optimization using Orion

    $ pip install -e Sequoia[orion]
    
  • metaworld:

    Continual / Multi-Task Reinforcement Learning environments, thanks to the metaworld package. The usual setup for mujoco needs to be done, Sequoia unfortunately can't do it for you ;(

    $ pip install -e Sequoia[metaworld]
    
  • monsterkong:

    Continual Reinforcement Learning environment from the Meta-MonsterKong repo.

    $ pip install -e Sequoia[monsterkong]
    
  • continual_world: The Continual World benchmark for Continual Reinforcement learning. Adds 6 different Continual RL Methods to Sequoia.

    $ cd Sequoia
    $ git submodule init  # to setup the submodules
    $ pip install -e sequoia/methods/continual_world   
    

See the setup.py file for all the optional extras.

Additional Installation Steps for Mac

Install the latest XQuartz app from here: https://www.xquartz.org/releases/index.html

Then run the following commands on the terminal:

mkdir /tmp/.X11-unix 
sudo chmod 1777 /tmp/.X11-unix 
sudo chown root /tmp/.X11-unix/

Documentation overview:

Current Settings & Assumptions:

| Setting | RL vs SL | clear task boundaries? | Task boundaries given? | Task labels at training time? | task labels at test time | Stationary context? | Fixed action space | | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ---------------------- | ---------------------- | ----------------------------- | ------------------------ | ------------------- | ------------------ | | Continual RL | RL | no | no | no | no | no | no(?) | | Discrete Task-Agnostic RL | RL | yes | yes | no | no | no | no(?) | | Incremental RL | RL | yes | yes | yes | no | no | no(?) | | Task-Incremental RL | RL | yes | yes | yes | yes | no | no(?) | | Traditional RL | RL | yes | yes | yes | no | yes | no(?) | | Multi-Task RL | RL | yes | yes | yes | yes | yes | no(?) | | Continual SL | SL | no | no | no | no | no | no | | Discrete Task-Agnostic SL | SL | yes | no | no | no | no | no | | (Class) Incremental SL | SL | yes | yes | no | no | no | no | | Domain-Incremental SL | SL | yes | yes | yes | no | no | yes | | Task-Incremental SL | SL | yes | yes | yes | yes | no | no | | Traditional SL | SL | yes | yes | yes | no | yes | no | | Multi-Task SL | SL | yes | yes | yes | yes | yes | no |

<!--| | [Class-Incremental SL](sequoia/settings/sl/class_incremental/setting.py) | SL | **yes** | **yes** | no | no | no | |-->

Notes

  • Active / Passive: Active settings are Settings where the next observation depends on the current action, i.e. where actions influence future observations, e.g. Reinforcement Learning. Passive settings are Settings where the current actions don't influence the next observations (e.g. Supervised Learning.)

  • Bold entries in the table mark constant attributes which cannot be changed from their default value.

  • *: The environment is changing constantly over time in ContinualRLSetting, so there aren't really "tasks" to speak of.

Running experiments

--> (Reminder) First, take a look at the Examples <--

Directly in code:

from sequoia.settings import TaskIncrementalSLSetting
from sequoia.methods import BaseMethod
# Creat
View on GitHub
GitHub Stars197
CategoryEducation
Updated2mo ago
Forks15

Languages

Python

Security Score

95/100

Audited on Jan 19, 2026

No findings