Skip to main content

RLink is a lightweight, high-performance communication layer specifically designed for distributed reinforcement learning systems.

Project description

RLink

้กน็›ฎLogo

RLink is a lightweight, high-performance communication layer specifically designed for distributed reinforcement learning systems. It enables seamless data exchange between actors (environment interaction) and learners (model training), decoupling sampling from training to scale your RL experiments efficiently.

โœจ Key Features

๐Ÿš€ Low-Latency Communication โ€“ Optimized for fast transfer of trajectories, actions, observations, and model parameters

๐Ÿ“ˆ Scalability โ€“ Supports many-to-one and one-to-many communication patterns for flexible scaling

๐Ÿ”Œ Easy Integration โ€“ Simple API to connect existing RL frameworks and training pipelines

๐ŸŒ Language-Agnostic Design โ€“ Currently supports Python with plans for C++/Rust backends

๐Ÿ›ก๏ธ Fault-Tolerant โ€“ Optional reliability features to handle intermittent connection drops

๐ŸŽฏ Why RLink?

Building distributed RL systems often involves complex communication infrastructure. RLink simplifies this by providing a dedicated, optimized layer that:

  • Decouples sampling and training processes

  • Accelerates experimentation across multiple processes or machines

  • Reduces infrastructure overhead

  • Enables seamless scaling of actors and learners

๐Ÿ“Š Architecture Overview

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 โ”‚     โ”‚                 โ”‚     |                 |
โ”‚   RL Actors     โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚    RLink        โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚   RL Learners   โ”‚
โ”‚  (Sampling)     โ”‚โ—€โ”€โ”€โ”€โ”€โ”‚  Communication  โ”‚โ—€โ”€โ”€โ”€โ”€โ”‚   (Training)    โ”‚
โ”‚                 โ”‚     โ”‚     Layer       โ”‚     โ”‚                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
arch

๐Ÿš€ Quick Start

Installation

pip install rlinks

Basic Usage

As a actor

from rlinks.actor import RLinkActor

actor = RLinkActor("http://learner-ip:8443")

# Send data to learner.
data = {
        "image_0": np.random.randint(0, 255, (480, 640, 3), dtype=np.uint8),
        "action": np.random.randint((50, 14)).astype(np.float32),
        "index": 0,
}

for i in range(4):
    data["index"] = i
    actor.put(data)

# Get model from learner.
models = actor.get_remote_model()

As as Learner

# To start the leaner, you can either run it directly in a terminal or daemonize it to run in the background.
rlinks learner --gpu-num 8 --port 8443

rlinks learner --help
from rlinks.dataset import RLinkDataset

class YourDataset:
    def __init__(self):
        self._rl_dataset = RLinkDataset(gpu_id=torch.cuda.current_device())

    def __getitem__(self,idx):
        data = self._rl_dataset.__getitem__(idx)
from rlinks.learner import RLinkSyncModel

RLinkSyncModel.sync("your model path")

๐Ÿ“š Use Cases

Distributed RL Training โ€“ Scale to hundreds of parallel environments

Multi-Agent Systems โ€“ Coordinate communication between agents

Federated RL โ€“ Train across distributed data sources

Hybrid Cloud/Edge Training โ€“ Deploy actors and learners across different infrastructure

๐Ÿ”„ Communication Patterns

Pattern Description Use Case
Many-to-One Multiple actors โ†’ Single learner Centralized training
One-to-Many Single learner โ†’ Multiple actors Parameter distribution
Bidirectional Two-way communication Advanced coordination

๐Ÿ› ๏ธ Integration with Popular Frameworks

๐Ÿ“ˆ Performance Benchmarks

๐Ÿ”ฎ Roadmap

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details. CONTRIBUTING

๐Ÿ“„ License

RLink is released under the MIT License. See LICENSE for details LICENSE.

๐Ÿ“ž Support & Community

๐Ÿ“– Documentation

๐Ÿ› Issue Tracker

๐Ÿ’ฌ Discord Community

๐Ÿฆ Twitter Updates

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rlinks-1.0.3.tar.gz (342.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rlinks-1.0.3-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page