Welcome to DI-engine’s documentation!

_images/di_engine_logo.svg

Overview

DI-engine is a generalized Decision Intelligence engine. It supports most basic deep reinforcement learning (DRL) algorithms, such as DQN, PPO, SAC, and domain-specific algorithms like QMIX in multi-agent RL, GAIL in inverse RL, and RND in exploration problems. The whole supported algorithms introduction can be found in Algorithm.

For scalability, DI-engine supports three different training pipeline:

  • serial

    • feature: single-machine, learner-collector loop executes sequencially

    • usage: academic research

  • parallel

    • feature: single-machine, learner and collector execute in parallel

    • usage: speed up serial pipeline and introduction to the whole distributed training

  • dist

    • feature: for GPU and CPU mixed computing clusters, learner-collector distributed execution

    • usage: large scale AI decision application, such as AlphaStar league training

_images/system_layer.png

Main Features

  • DI-zoo: High performance DRL algorithm zoo, algorithm support list. Link

  • Generalized decision intelligence algorithms: DRL family, IRL family, MARL family, searching family(MCTS) and etc.

  • Customized DRL demand implementation, such as Inverse RL/RL hybrid training; Multi-buffer training; League self-play training

  • Large scale DRL training demonstration and application

  • Various efficiency optimization module: DI-hpc, DI-store, EnvManager, DataLoader

  • k8s support, DI-orchestrator k8s cluster scheduler for dynamic collectors and other services

To get started, take a look over the quick start and API documentation. For RL beginners, DI-engine advises you to refer to hands-on RL for more discussion. If you want to deeply customize your algorithm and application with DI-engine, also checkout key concept and Feature.

User Guide