salina  by facebookresearch

PyTorch library for sequential learning agents, including reinforcement learning

created 4 years ago
430 stars

Top 70.1% on sourcepulse

GitHubView on GitHub
Project Summary

SaLinA is a lightweight PyTorch extension for developing sequential decision models, targeting researchers and engineers working with reinforcement learning (RL), imitation learning, and other sequential learning tasks. It simplifies the creation of complex sequential agents and offers efficient multi-CPU/GPU utilization.

How It Works

SaLinA extends PyTorch's nn.Module to an Agent concept, enabling seamless integration of temporal dynamics into standard neural network architectures. This approach allows for the composition of agents like PyTorch modules, facilitating the development of intricate sequential models with minimal code. It supports various sequential decision-making paradigms beyond RL, including supervised and unsupervised learning in NLP and computer vision.

Quick Start & Requirements

  • Install: pip install -e .
  • Dependencies: PyTorch, Hydra, Gym.
  • Documentation: Read the docs

Highlighted Details

  • Offers both classical PyTorch and xformers-based transformer implementations, with xformers showing significant speed and memory improvements for attention mechanisms.
  • Includes a flexible logger that outputs to TensorBoard and pickle files for easy analysis.
  • Provides a catalog of pre-built agents (salina.agents) and numerous examples across different domains.
  • Supports multi-agent RL and model-based RL with differentiable environments.

Maintenance & Community

  • Developed by Facebook Research.
  • Recent updates include salina_cl for continual learning and improved transformer-based agents.
  • Key contributors include Ludovic Denoyer, Alfredo de la Fuente, Song Duong, Jean-Baptiste Gaya, Pierre-Alexandre Kamienny, and Daniel H. Thompson.

Licensing & Compatibility

  • MIT License.
  • Permissive license suitable for commercial use and integration into closed-source projects.

Limitations & Caveats

The library is primarily focused on sequential decision-making and while it supports RL, it is not solely an RL framework. The README mentions a renaming of salina/agents/gym.py to salina/agents/gyma.py to avoid compatibility issues with OpenAI Gym, indicating potential for dependency-related maintenance.

Health Check
Last commit

2 years ago

Responsiveness

1 week

Pull Requests (30d)
0
Issues (30d)
0
Star History
1 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.