深度强化学习框架Ray|RLLib|Tune学习笔记

0 Ray深度强化学习框架概述

在这里插入图片描述

  • Ray——分布式框架的基础设施,提供多进程通信和集群维护等功能
  • Tune——基于Ray的中间库,主要功能是调参(如使用BPT算法异步调参)和多实验排队管理
  • RLLib——基于Ray的分布式和Tune的调参,实现抽象RL算法,可支持层次RL和Multi Agent学习等

1 Ray使用场景—多进程(通过ray.remote装饰器实现)

在这里插入图片描述

2 Ray使用场景—进程间通信

通过拿到远程函数的ID,可以在集群的任何地方,通过get(ID)获取该函数返回值
在这里插入图片描述

3 Tune使用场景—调参

对于PPO通过5个学习率参数,每组实验做两遍,总共10个实验,目前共有8个CPU,每个实验需要1个CPU,Tune可以把这些实验放入到队列中。若目前CPU已满,则等待,下图所示为8个CPU正在作业,剩余2个实验正在等待中
在这里插入图片描述

4 RLLib使用场景—RL算法

RLLib基于Tune和Ray实现强化学习算法,下图基于IMPALA框架,图中Trainer维护一个model,每个Rollout Worker会创建1个进程,根据model去异步Trajectory Sampling,然后将多个采样结果反馈给Trainer,Trainer根据采样更新model网络权重,再更新Rollout worker

  • Trainer 包含采样、训练、优化、数据处理和传输功能

在这里插入图片描述
RLLib对于算法的抽象,一切算法本质都是以下两者的交互

  • Workers
  • Learner
while True:
	trainer.train():
		# 1.通过worker去采样data
		data = trainer.worker.sample();
		# 2.通过data和相应loss反向传播计算更新weight
		trainer.optimizer.undate(data);
		# 3.将新weight同步到worker中
		trainer.worker.sync_weight();

在这里插入图片描述

5 Ray、Tune和RLLib关系

在这里插入图片描述

6 Ray系统架构(实现多进程和跨节点通信)

6.1 Ray系统架构—概述

  • Object Store是跨进程的数据库,类似全局数据库,不同进程可以通过Obj Store数据库获取对应函数Obj ID从而获取数据
    在这里插入图片描述
    在Slurm集群上的脚本案例
    在这里插入图片描述

6.2 Ray系统架构—内存管理

在这里插入图片描述

7 Tune系统架构(实验资源分配+调参)

Tune同时维护多个实验,合理为每个实验的不同请求分配资源,每个实验被抽象成1个TrainableTrialExecutor会根据每个Trainable需要的CPU/GPU分配合理资源,本质就是优先队列

while (true) {
	trainable.train();  // 需设定终止条件
	...
}

在这里插入图片描述
使用PBT异步调参算法,借鉴遗传算法思想,不同于传统随机算法调参,传统的不同参数是并行且独立调整,因为是固定变量法,有些参数越调越好(比如学习率),有些参数在较差的参数组合下始终无法调好(比如折扣因子),使得浪费计算资源。PBT使得参数调整之间并非独立,会将好的其他参数(如学习率)拿到其他较差的参数(折扣因子)中进行试探,使得在不额外增加计算资源的情况下快速调优

在这里插入图片描述

8 RLLib系统架构(Trainer、Policy和Agent)

在这里插入图片描述

8.1 Policy实现功能

RLLib有一套完善的build model系统,只要给定Env,比如图像,它就会自动创建CNN Model

Policy主要实现功能

  • Loss Fun——用来优化
  • Postprocess Function——用于数据处理
  • Build Model——根据Env自动创建适配Model
    在这里插入图片描述

8.2 Trainer实现功能

  • 指定Policy——如上1步的PPOTFPolicy
  • 选择Optimizer——此处为更抽象的optimizer(比Adam更抽象),包含模型 + 数据的输入,loss的计算和GPU多卡训练等

在这里插入图片描述
在这里插入图片描述

参考文献

[1] 强化学习系统怎么实现?Ray是啥?Tune和RLLib又是什么?
[2] Ray v1.2 官方文档

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SL_World

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值