RLlib:工业级强化学习#

../_images/rllib-logo.png

RLlib语言是一个用于强化学习(RL)的开源库,为提供支持生产级、高度分布式的RL工作负载,同时维护用于多种行业应用程序的统一简单API。您是否希望在多代理设置,纯粹来自脱机(历史)数据集,或使用外部连接的模拟器,RLlib为您的每个决策提供了一个简单的解决方案创造需求。

如果您将问题编码为RL环境或者拥有大量预先记录的历史行为数据以供学习只需几天即可启动和运行。

RLlib已经被许多不同垂直领域的行业领导者用于生产,例如气候控制工业控制制造和物流金融游戏汽车机器人技术船舶设计以及其他许多人。

60秒内RLlib#

../_images/rllib-index-header.svg

只需几个步骤即可获得第一个RLlib工作负载在笔记本电脑上启动并运行。

RLlib不会自动安装深度学习框架,但支持TensorFlow公司(带有静态图的1.x和带有急切模式的2.x)以及PyTorch公司.根据您的需要,确保安装TensorFlow或PyTorch(或两者,如下所示):

pip安装“ray[rllib]”张量流炬

这就是开始针对RLlib进行编码所需的全部内容。以下是在出租车领域.我们首先创建一个配置对于设置正确环境的算法,以及定义我们想要的所有训练参数。接下来,我们建造算法和火车总共5迭代。培训迭代包括由环境工作者并行采集样本,以及对采集的批次进行损失计算和模型更新。最后一步,我们评价经过训练的算法:

 射线.rllib.algorithms.ppo 进口 PPOConfig(PPO配置)

配置 = (  # 1. 配置算法,
    PPOConfig(PPO配置)()
    .环境(“出租车-v3”)
    .卷展栏(数量rollout_workers=2)
    .框架(“火炬”)
    .训练(模型={“fcnet_hiddens”以下为: [64 64]})
    .评价(评估num_workers=1)
)

阿尔戈 = 配置.建造()  # 2. 构建算法,

对于 _ 在里面 范围(5):
    打印(阿尔戈.火车())  # 3. 训练它,

阿尔戈.评价()  # 4. 并进行评估。

请注意,您可以使用任何Farama-Foundation Gymnasium环境作为环境价值.卷展栏例如,您可以指定从环境中收集样本的并行工作线程的数量。这个框架config允许您在“tf2”、“tf”和“torch”之间进行选择以执行。您还可以调整RLlib的默认值模型config,并为评价.

如果您想了解有关RLlib培训API的更多信息,你可以在这里了解更多.另请参见这里是一个关于如何在训练后编写动作推理循环的简单示例。

如果你想快速预览算法环境RLlib支持,单击下面的下拉列表:

RLlib算法
RLlib环境

功能概述#

RLlib关键概念

进一步了解RLlib的核心概念,如环境、算法和政策。

RLlib算法

查看RLlib的许多可用RL算法,以实现无模型和基于模型RL、政策内和政策外培训、多代理RL等。

RLlib环境

开始使用RLlib支持的环境,如Farama基金会的体育馆、宠物动物园、,以及用于矢量化和多代理环境的许多自定义格式。

以下是RLlib最引人注目的特性的摘要。单击下面的图像,查看列出的每个功能的示例脚本:

../_images/rllib-sigil-tf-and-torch.svg

最多流行的深度学习框架以下为:PyTorch公司TensorFlow公司(tf1.x/2.x静态图/渴望/跟踪).

../_images/rllib-sigil-distributed-learning.svg

高度分布式学习:我们的RLlib算法(如“PPO”或“IMPALA”)允许您设置人数(_W)config参数,以便您的工作负载可以运行在100个CPU/节点上实现并行化并加快学习。

../_images/rllib-sigi-vector-envs.svg

矢量化(批处理)和远程(并行)环境:RLlib自动矢量化你的健身房。环境通过编号envs_per_worker配置。环境工作者可以然后进行批处理,从而显著加快动作计算的前向传递。除此之外,RLlib还提供远程工作人员会话配置以创建单个环境(在矢量化环境中)作为光线演员从而使env步进过程并行化。

../_images/rllib-sigil-multi-agent.svg
多代理RL(MARL):转换您的(自定义)健身房。环境变成多智能体通过几个简单的步骤,开始以以下任何方式培训您的代理人:
1) 与合作共享分离策略和/或价值函数。
2) 对抗场景使用自娱自乐基于联盟的培训.
3)独立学习中性/共存代理。
../_images/rllib-sigi-external-simulators.svg

外部模拟器:不要把模拟跑步当作健身房。蟒蛇中的环境?没问题!RLlib支持外部环境API,并带有可插拔、,离机客户/服务器允许您在“外部”运行100个独立模拟器的设置(例如Windows云)连接到学习的中央RLlib Policy-Server并为行动服务。或者,可以在客户端计算操作以节省网络流量。

../_images/rllib-sigil-offline-rl.svg

离线RL和模仿学习/行为克隆:你没有模拟器针对您的特定问题,但遗留下来的大量历史数据(可能非RL/ML)系统?这个强化学习的分支是为你准备的!RLlib有几个离线RL算法(CQL公司马维尔、和DQfD公司)允许您行为克隆或者学习如何进一步改进现有系统。

自定义RLlib#

RLlib提供了简单的API来定制培训和实验工作流的所有方面。例如,您可以编写自己的代码环境在python中使用Farama-Foundation的健身房或DeepMind的OpenSpiel,提供自定义TensorFlow/Keras公司-或者,火炬型号,自己写保单和损失定义,或定义习俗探索行为.

通过将环境中的一个或多个代理映射到(一个或更多)策略,多代理RL(MARL)成为用户易于使用的低级原语。

../_images/rllib-stack.svg

RLlib的API堆栈:RLlib构建于Ray之上,提供了非现成的、高度分布式的算法、策略、损失函数和默认模型(包括用LSTM或注意网自动捕获神经网络)。此外,我们的图书馆带有内置的服务器/客户端设置,允许您连接数百个外部模拟器(客户端)通过网络连接到RLlib服务器进程,它提供学习功能并提供动作查询。用户自定义通过对现有抽象进行子分类和重写某些这些子类中的方法定义自定义行为。#