深度强化学习(DeepReinforcementLearning,DRL)是一种公认的解决连续决策问题的有效技术。为了应对DRL的数据低效(datainefficiency)问题,受到分布式机器学习技术的启发,分布式深度强化学习(distributeddeepreinforcementlearning,DDRL)已提出并成功应用于计算机视觉和自然语言处理领域。有观点认为,分布式强化学习是深度强化学习走向大规模应用、解决复杂决策空间和长期规划问题的必经之路。
1、SRL:ScalingDistributedReinforcementLearningtoOverTenThousandCores[1]ICLR’24
本文为来自清华大学和上海期智研究院YiWu(吴翼)教授研究团队的工作,该团队主要研究方向包括深度强化学习、多智能体学习、自然语言基础、大规模学习系统。本文已被ICLR’24录用。ICLR是机器学习领域重要的学术会议质疑,每年举办一次。2024年是第十二届,将于5月7日至11日在维也纳召开。据统计,本届会议共收到了7262篇论文,整体接收率约为31%。
强化学习(RL)任务的复杂性与日俱增,需要分布式RL系统高效地生成和处理海量数据来训练智能agent。然而,现有的开源库存在各种局限性,阻碍了它们在需要大规模训练的挑战性场景中的实际应用。尽管OpenAI和DeepMind的工业化系统已经成功实现了大规模RL训练,但它们的系统架构和实现细节仍未向社区公开。本文针对RL训练的数据流提出了一种新颖的系统抽象概念,它将不同应用中的实际RL训练统一到一个通用而灵活的框架中,并实现了细粒度的系统级优化。根据这一抽象概念,作者开发了一种scalable、高效、extensible的分布式RL系统,称为ReaLlyScalableRL(SRL)。SRL的系统架构分离了主要的RL计算组件,允许大规模并行化训练。作者还引入了一系列技术来进一步优化系统性能。此外,SRL还提供用户友好和可扩展的界面,便于开发定制算法。本文评估表明,无论是在单机还是在中型集群中,SRL的性能都优于现有的libraries。在大规模集群中,SRL的新型架构与现有libraries采用的设计相比,速度提高了3.7倍。
1.1架构设计出发点
现有许多开源RL系统都为特定应用场景提供了解决方案。然而,其中只有少数是通用的(general-purposed)。作者发现这些系统在架构设计和实现方面都有其局限性。
首先,在架构设计方面,大多数开源系统都对可用计算资源做了假设,如硬件加速器的类型和物理位置,以及可用计算设备之间的比例。因此,它们的架构倾向于紧密结合多个计算组件,并将其映射到物理上位于同一节点的设备上。因此,在定制的本地集群中部署时,这可能会损害系统性能。例如,SampleFactory[4]和Rlpyt[5]专门用于在本地机器上进行RL训练,不假定分布式计算资源是可用的。其他考虑到分布式设置的库通常可分为两类:IMPALA-style[6]和SEED-style[7]。
以RLlib和ACME为代表的IMPALA-style架构(图1顶部)假定用于环境模拟和策略推断的计算资源之间存在紧耦合。在这种设置下,策略推断只能在与环境位于同一节点的CPU或GPU上进行。使用CPU进行策略模型推理本身效率就不高,而使用本地GPU进行推理也存在严重缺陷。根据应用场景的不同,环境模拟速度、观测值大小和策略模型大小的变化很容易造成本地GPU的推理空闲或过载,从而导致严重的资源浪费。此外,如果agent在多agent环境中遵循不同的策略,本地GPU必须维护多个策略模型,从而导致大量内存占用,并限制了该节点可容纳的环境数量。SEED-style架构(图1下)主要假定有独立的TPU内核可用于训练和策略推理。然而,在使用GPU而不是多核TPU的情况下,要同时处理推理和训练会很吃力。此外,在使用异构GPU时,训练吞吐量会因梯度同步中的滞后而受到限制。
图1.RLlib/ACME(上)和SeedRL(下)的实现,采用IMPALA/SEED-style架构。前者将环境模拟和策略推理合并在一个线程中,后者则将策略推理和训练合并在一个GPU上。请注意,在SEED-style中,运行环境模拟的GPU节点依靠训练GPU节点进行策略推断,而在IMPALA-style中,它们依靠本地CPU/GPU进行策略推断
其次,考虑到实现问题,开源的分布式系统无法在多个节点上扩展训练,这可能会阻碍需要复杂策略和大批量的复杂任务的RL训练。具体来说,RLlib和ACME只能分别通过Pythonthreadedtrainer1和jax.pmap2支持本地多GPU训练,而SeedRL只能在单GPU上运行。
第三,开源库主要集中于中小型规模,导致实施简化,对细粒度性能优化的考虑有限。因此,这些系统导致训练吞吐量低下,尤其是在大规模场景中。通过对它们的设计和实现进行分析,作者发现了几种可能的优化方法,能够显著提高系统性能。应用这些修改后,训练吞吐量有了显著提高,从而使SRL的性能大大超过了现有系统。
此外,尽管现有的一些开源库提供了通用接口,允许用户定制环境和RL算法(如RLlib),但它们的算法实现与其系统API紧密相连。这些系统提供的用户友好界面可以扩展系统组件,这就限制了它们与复杂RL算法的兼容性,因为这些算法要求的计算量超出了主要RL计算组件的范围。
主要RL计算组件包括:1)环境模拟(Environmentsimulation)根据actions产生观察结果和奖励。这种计算通常使用外部黑盒程序执行,如游戏或物理引擎,通常在CPU上执行;2)策略推理(Policyinference)从观察中生成actions,观察是通过神经网络策略的推理(也称为前向传播)进行的。该系统可以使用CPU或GPU设备进行策略推理,尽管在采用GPU时可能具有明显的性能优势;3)训练(Training)使用收集的轨迹在GPU上执行梯度下降迭代以改进策略。
最后,表1给出了一系列SRL的对比方法的工作能力。作者表示,据他们所知,SRL是第一个能提供所有所需特性(包括可扩展性、效率和可扩展性)的学术系统。
1.2SRL架构
1.2.1SRL的high-level设计
SRL包含三种核心worker类型:actorworker、policyworker和trainerworker,他们负责RL训练任务中的三项关键工作。
Actorworker向policyworker发出包含观察结果的推理请求,policyworker通过生成的行动做出响应。作者将这种client-server通信模式抽象为推理流。在进行环境模拟的同时,actorworker会在本地缓冲区中积累observation-action-reward三元组,并定期将它们发送给trainerworker。作者将这种推拉通信模式抽象为样本流。每个训练步骤结束后,更新的参数会被推送到参数服务器,该服务器会处理policyworker为参数同步而提出的拉取请求。
图2.SRL的核心组件。蓝色箭头表示worker和数据流之间的dataflow。蓝色方框代表负责计算工作负载的worker。橙色方框代表数据流,负责worker之间的通信。灰色方框代表服务,也就是本文提及的参数服务器
与以往的设计不同,SRL中的所有worker都可以独立调度,并分布在多台拥有异构资源的机器上,从而在各种资源设置(包括本地机器和大型集群)下实现大规模并行和高效的资源利用。如图3所示,作者将抽象化的worker实例化为不同计算节点上的进程,并将数据流实例化为套接字或共享内存块。每个工作进程都会分配到适合其任务的特定数量的计算资源,工作进程通过最有效的可用接口进行连接,这种接口可以是用于节点间通信的网络接口,也可以是用于进程间通信的共享内存接口。
因此,SRL的新型架构不仅以清晰的设计和实现统一了现有的本地和分布式架构,还能在现有架构无法实现的场景中实现高效的调度、资源分配和数据通信。此外,SRL清晰的设计实现了细粒度的性能优化,与现有库相比,即使使用相同的架构,速度和可扩展性也有显著提高。此外,高级抽象还产生了一个简洁的用户界面,使扩展现有RL算法和定制worker变得更加容易。
1.2.2SRL的系统组件
要说明的是,以下内容假定了大多数流行的RL算法的典型工作流程,以便清楚地介绍这些算法。确实有一些RL算法需要更复杂的系统设计。SRL也可以轻松支持这些不寻常的算法。
1.2.2.1actorworker和policyworker。actorworker负责托管环境,处理黑盒环境程序的执行。环境模拟通常独立于每个actor,因此在计算资源充足的情况下,可以直接进行大规模并行化。另一方面,policyworker托管RLagent(或策略),并为actorworker提供批量推理服务。它们可以有效利用GPU设备来加速神经策略的前向传播。环境模拟通常分为几个阶段。在每一阶段的开始,actorworker会重置其环境并获得第一个观测值。然后,在每一个环境步骤之前,每个actorworker都会发送上一个步骤(或初始重置)的观察结果,并请求policyworker采取行动,以继续下一个步骤。
1.2.2.2Trainerworkers。Trainerworkers负责计算梯度下降迭代。它们接收来自actorworker的样本。每个Trainerworkers都嵌入了一个缓冲区,用于存储等待被提取到GPU的样本。在每次梯度下降迭代之前,Trainerworkers都会从数据缓冲区汇总一批样本,并将其加载到GPU设备中。CPU和GPU上的工作分为两个线程。
SRL支持跨节点的多GPU训练。通过multi-GPU训练设计,每个Trainerworkers都被精确分配到一个GPU设备上,这意味着一个Trainerworkers是训练计算的最小单位。需要注意的是,RL中的策略模型通常很小(见表2),因此在大多数应用中不需要模型并行化。因此,作者在multi-trainer设计中采用了单程序多数据(single-programmulti-data,SPMD)模式。对于一大批样本,作者将样本平均分配给多个trainer,每个trainer都有一份相同的策略模型。每个trainer使用自己的副本计算梯度,并在每次训练迭代结束时同步梯度,更新最终策略模型。Trainerworkers使用PyTorch分布式数据并行(DistributedDataParallel,DDP)作为后端,与trainer进行通信并同步梯度。此外,在某些情况下,单个trainer可能无法充分利用GPU的计算能力。为了防止不必要的计算能力浪费,作者允许其他worker(如policyworker)与trainerworker共享一个GPU。
1.2.2.3样本流和推理流。SRL确定了workers之间两种最基本的数据传输类型。一种是在actorworker和policyworker之间交换观察结果和行动;另一种方法是将样本从actorworker发送给trainerworker。与这两类数据传输相对应,作者开发了推理流和样本流,它们具有不同的数据传输模式。推理流需要是双工的,因为actorworker会发送推理请求,而policyworker则需要回复。同时,样本流是单工的。只有actorworker向trainerworker发送训练样本,而trainerworker无需回复。
对于网络传输,作者将推理流作为一对request-replaysocket来实现,将样本流作为一对push-pullsockets来实现。对于本地共享内存传输,作者将推理流实例化为一个固定的共享内存块,即为每个客户端分配一个读写槽,将样本流实例化为一个精心设计的共享内存FIFO队列。
作者还讨论了数据流的一些特殊用例。在某些RL应用(如多agentRL和基于群体的训练)中,需要在一次训练实验中训练多个策略模型。这表明,不同的actorworker需要与持有特定策略模型的特定policyworker和trainerworker群体进行通信。因此,一个实验中可能需要多个样本流和推理流实例。不同的数据流在各组worker之间建立独立的、可能重叠的通信,以确保来自不同策略的数据不会相互污染。
1.2.2.5控制器。在SRL中,实验表示一个完整的RL训练任务,需要在有多个节点的大型集群上运行。图3显示了使用SRL在集群上运行实验的步骤。作者将整个实验运行分为以下5个步骤:
(1)用实验配置启动控制器并应用资源。
(2)使用资源管理器分配资源。
(3)使用控制器启动和配置worker。
(4)worker连接数据流并运行任务。
(5)完成实验后,停止worker。
在此过程中,控制器是一个关键组件。它从资源管理器分配资源,处理实验配置,管理worker和数据流的生命周期。它的实现分为两个部分。第一部分是资源管理器服务的客户端(作者使用slurm[9]作为集群中的资源管理器)。第二个是RPC客户端,用于启动Worker(作为RPC服务器)并向Worker发送请求。
1.2.3用户友好型和可扩展设计
此外,作者还提出了一些优化SRL的方法,感兴趣的读者可以阅读原文。
1.3实验分析
(1)本地单机设置:32个物理CPU内核、512GBDRAM和一个Nvidia3090GPU。
(2)分布式集群设置:4个节点,64个物理CPU内核和8个NvidiaA100GPU+64个节点,128个物理CPU内核和一个Nvidia3090GPU。集群中的每个节点都有512GBDRAM,并通过100Gbps集群内网络相互连接。集群的存储通过NFS和参数服务实现,所有节点均可使用。
1.3.1训练吞吐量
作者比较了SRL与基线方法在本地和分布式环境下的性能。使用的评估指标是每秒训练环境帧数(FPS),即所有trainerworker每秒消耗的环境帧数。作者在一组学术环境中进行了实验,包括Atari2600游戏(Atari)(游戏Pong)、GoogleResearchFootball(gFootball)(场景11_vs_11)、StarCraftMulti-AgentChallenge(SMAC)(地图27m_vs_30m)和DeepmindLab(场景watermaze),每种环境在观察类型、速度、内存等方面都具有不同的特点(见表3)。在Atari和DMLab环境中,作者采用传统的4帧剪辑设置,即环境帧数为实际训练样本步数的4倍。
图5.在大规模集群中使用三种不同配置的SRL训练FPS,最多使用32个NvidiaA100GPU、32个NvidiaGeforceRTX3090GPU和12800个CPU内核。配置1:解耦worker。每个trainerworker拥有一个A100GPU,4个policyworker共享一个RTX3090GPU。配置2:trainerworker和policyworker耦合。一个trainerworker和4个policyworker共享一个A100GPU。配置3:耦合actorworker和policyworker(innerinference)。trainerworker有一个A100GPU。推理由CPU内核完成
1.3.2学习性能
对SRL的训练吞吐量进行量化有助于深入了解其效率和可扩展性,但同样重要的是,要评估SRL在现实和具有挑战性的环境中开发智能agent的能力(即学习性能)。在这种情况下,捉迷藏(hide-and-seek,HnS)环境是一个很有吸引力的选择。如图6a所示,捉迷藏(HnS)环境模拟了一个物理世界,其中有2-6个agent,包括1-3个躲藏者和1-3个寻找者,以及各种物理对象,包括3-9个盒子、2个斜坡和随机放置的墙壁。Agents可以通过移动或锁定箱子和斜坡来操纵它们,而锁定的物体只能由队友来解锁。每局游戏开始时,都会有一个准备阶段,在这一阶段中,寻找者不能移动,这样躲藏者就可以利用现有物品建造一个庇护所,以保护寻找者。准备阶段结束后,如果寻找者中有人能发现躲藏者,他们就会获得+1的奖励,反之则为-1。躲藏者获得的奖励符号相反。图6b显示了整个学习过程的奖励。由于agent与对象之间的交互是non-trival的,而且任务也很复杂,因此观察这种行为演化需要极大的批次规模,例如单个批次中需要320k个交互步骤。作者尽了最大努力在这种环境下运行基线系统,但没有一个系统能处理如此大规模的训练任务。
2、ParallelQ-Learning:ScalingOff-policyReinforcementLearningunderMassivelyParallelSimulation[2]ICML’23
本文为MIT电气工程与计算机科学系研究员PulkitAgrawal研究团队的研究成果,该团队还曾经获得CoRL2021的最佳论文奖。本文发表在ICML’23中。ICML是计算机人工智能领域的顶级会议,ICML2023是第40届,共收到6538份投稿,有1827份被接收,录用率为27.9%。
2.1方案架构
PQL可以在单个GPU上同时仿真数千个环境。在典型的actor-criticQ-learning方法中,有三个组件依次运行:策略函数、Q值函数和环境。agent在环境中执行策略并收集交互数据,这些数据被添加到重放缓冲区;然后,更新值函数以最小化贝尔曼误差,之后更新策略函数以最大化Q值。这种顺序方案会减慢训练速度,因为每个组件都需要等待其他两个组件完成后才能继续。
如图8所示,PQL将数据收集、策略学习和价值学习并行化为三个过程。作者将它们分别称为Actor、策略学习者(P-learner)和价值学习者(V-learner)。
图8.PQL概述。三个并发进程在运行:Actor、P-learner、V-learner。Actor收集交互数据。P-learner更新策略网络。V-learner更新Q函数
该方案的伪代码如算法1、2和3。
数据传输。假设Actor进程中有N个并行环境。在每个推出步骤中,Actor都会推出策略π^a(s_t),并生成N对(s_t,a_t,s_t+1,r_t,d_t+1)。然后,Actor将整批交互数据{(s_t,a_t,s_t+1,r_t,d_t+1)}发送给V-learner(如图8所示)。由于P-learner中的策略更新只需要状态信息,因此Actor只需向P-learner发送{(s_t)}即可。
网络传输。V-learner定期向P-learner发送Q^v_1(s_t,a_t)的参数,P-learner更新P-learner中的本地Q^p(s_t,a_t)。P-learner将策略网络π^p(s_t)发送给Actor和V-learner。数据传输和网络传输同时进行。
2.2Actor,P-learner,andV-learner之间的均衡
本文方案允许Actor、P-learner和V-learner同时运行。不过,需要适当限制数据收集、策略网络更新和价值网络更新的频率。换句话说,每个进程都不应该以最快的速度单独运行。作者对这三个频率添加了明确的控制,并定义了如下两个比率:
通过β_a:v、β_p:v控制三个进程有三大优势。
2.3MixedExploration
由于很难预测多少探索噪声是合适的,因此通常需要为每项任务调整σ。我们能减轻调整σ的麻烦吗?本文的想法是,与其寻找最佳的σ值,不如尝试不同的σ值,作者称之为混合探索。即使在某个训练阶段,某些σ值会导致糟糕的探索结果,但其他σ值仍能生成良好的探索数据。由于大规模并行仿真,我们可以在不同的并行环境中使用不同的σ值,因此这一策略很容易实施。之前的研究也采用了类似的思路。本文在[σ_min,σ_max]的范围内均匀地生成噪声水平。对于N个环境中的第i个环境:
本文实验中的所有任务都使用了σ_min=0.05、σ_max=0.8。
2.4实验分析
作者证明了本文方法与SOTA基线方法相比的有效性,展示了影响学习的关键超参数的效果,并提供了设置这些值的经验指导。所有实验都是在一台配有少量GPU的工作站上进行的。作者在六项IsaacGym基准任务中对本文方法进行了评估:Ant,Humanoid,ANYmal,ShadowHand,AllegroHand,FrankaCubeStacking(见图9)。此外,还提供了另外两个任务:(1)基于视觉的球体平衡任务;(2)接触丰富的灵巧操作任务,该任务要求学习使用DClawHand调整数百个不同物体的方向,并采用单一策略。
本文实验考虑了以下基线:(1)PPO,这是之前许多使用IsaacGym进行模拟所使用的默认算法;(2)DDPG(n):采用doubleQ-learning和n-stepreturns的DDPG实现;(3)SAC(n):SAC[11]的实现,有n-stepreturns。本文实验中使用NVIDIAGeForceRTX3090GPU作为默认GPU。
要回答的第一个也是最重要的问题是,PQL是否比SOTA基线方法学习速度更快。为了回答这个问题,作者比较了PQL和PQL-D(分布式RL的PQL)与基线在六个基准任务上的学习曲线。如图10所示,与所有基线相比,本文方法(PQL、PQL-D)在六项任务中的五项都实现了最快的策略学习。此外,我们还观察到,在PQL中添加分布式RL可以进一步提高学习速度。
大规模并行仿真使我们能够在不同环境中部署不同的探索策略,从而生成更多样化的探索轨迹。作者使用一种简单的混合探索策略,并将其有效性与所有环境使用相同探索能力(相同的σ值)的情况进行比较。作者试验了σ∈{0.2,0.4,0.6,0.8}。如图11所示,σ值的选择对学习性能影响很大。如果我们在所有并行环境中使用相同的σ值,那么我们就需要为每个任务调整σ。相比之下,混合探索策略(即每个环境使用不同的σ值)的性能优于所有其他固定σ值的策略(学习速度更快或至少与之相当)。这意味着,使用混合探索策略可以减少每个任务所需的σ值调整工作。
图11.通过应用不同的恒定最大噪声值,对本文提出的混合探索方案进行比较。我们可以看到,混合探索方案要么优于其他方案,要么与其他方案相当,这可以节省噪声水平的调整工作
此外,作者还对比了不同参数设置情况下的方案效果,感兴趣的读者可以阅读原文。
3、ACTORQ:QUANTIZATIONFORACTOR-LEARNERDISTRIBUTEDREINFORCEMENTLEARNING
3.1ActorQ介绍
图12.ActorQ系统设置。在learner进程中利用Tensorflow,在actor进程中利用PyTorch,以促进用于优化的全精度GPU推理和用于经验生成的量化推理。作者引入了一个参数量化器,在learner的Tensorflow模型和actor的量化PyTorch模型之间架起了一座桥梁
本文引入了用于量化actor-learner训练的ActorQ。ActorQ包括在actor上使用量化执行的同时,保持learner所有计算的全精度。当learner广播其模型时,会对模型进行训练后量化,actor会在其广播中使用量化后的模型。在实验中,作者测量了learner提供的全精度策略的质量。ActorQ的几个考虑包括:
ActorQ虽然简单,但却有别于传统的量化神经网络训练,因为Actor的纯推理角色可以使用精度很低(≤8位)的算子来加速训练。这与传统的量化神经网络训练不同,传统的量化神经网络训练必须使用更复杂的算法。这增加了额外的复杂性,也可能限制速度,而且在许多情况下,由于收敛问题,仍仅限于半精度运算。ActorQ的好处是双重的:不仅加快了actor的计算速度,还大大减少了learner与actor之间的交流。此外,在这一过程中,训练后量化可以被视为向actorrollout注入噪声。作者证明在某些情况下,这甚至会有利于收敛。最后,ActorQ适用于许多不同的强化学习算法,因为Actor-learner范式适用于各种算法。
3.2实验介绍
作者在Deepmind控制套件的一系列环境中对ActorQ进行了评估。作者选择的环境涵盖了各种难度,以确定量化对简单和困难任务的影响。表5列出了测试环境及其相应的难度和训练步数。每一episode的最长步数为1000步,因此每项任务的最高奖励为1000(尽管不一定能达到)。作者根据任务的特征而不是像素进行训练。
策略架构是具有3个大小为2048的隐藏层的全连接网络。作者在actor的策略网络输出中应用高斯噪声层,以鼓励探索;根据执行的actor,sigma在0到0.2之间均匀分配。在learner方面,critic网络是一个3层隐藏网络,大小为512。在连续控制环境中使用D4PG训练策略,在离散控制环境中使用DQN训练策略。所有实验都在单机设置上运行(但分布在GPU和单机的多个CPU上)。Learner使用的是V100GPU,使用4个actors(每个actor1个内核),每个actor分配一个IntelXeon2.20GHzCPU进行分布式训练。运行每个实验,至少取3次运行的平均值,并计算汇总运行的运行平均值(window=10)。
图13.ActorQ在各种Deepmind控制套件任务中使用8位、16位和32位的端到端速度提升推理(对Learner进行全精度优化)。与全精度基线相比,8位和16位训练的端到端训练速度明显加快
图14展示了使用ActorQ的episode奖励与actor总步数收敛图。数据显示,无论在简单任务还是困难任务中,即使对actor进行8位和16位推理,收敛性也能大致保持。在Cheetah、Run和Reacher、Hard中,8位ActorQ的收敛速度甚至更快,作者认为这可能是因为量化引入了噪声,而噪声可以被视为探索。
图14.ActorQ在各种DeepmindControlSuite任务中使用8位、16位和32位actor推理(对learner进行全精度优化)时的收敛性。8位和16位量化训练的收敛性与全精度训练相同或更好
对actor进行模型拉动的频率可能会对收敛性产生影响,因为它会影响用于填充重放缓冲区的策略的僵化程度;这在之前的研究中都有所体现,图15给出了一个具体示例。因此,作者探讨了在通信量大和计算量大的情况下量化通信与计算的效果。为了量化通信,作者将策略权重量化为8位,并通过将其打包成矩阵的方式进行压缩,从而将模型广播的内存减少了4倍。自然,在重通信的情况下,对通信进行量化会更有利,而在重计算的情况下,对计算进行量化会产生相对更多的奖励。图16显示了在重通信场景(频率=30)和重计算场景(频率=1000)中量化对通信和计算的增益的消减图。图中显示,在通信量大的情况下,量化通信的速度可提高30%;相反,在计算量大的情况下,量化通信的影响很小,因为开销主要来自计算。由于本文的实验是在单个节点的多个内核上运行的(有4个actors),因此通信的瓶颈较小。作者认为,在拥有更多actors的网络集群上,通信成本会更高。
图16.在计算量大和通信量大的训练场景中,量化通信与计算的效果。q是推理的精度;q_c是通信的精度。注意q=8隐含地将通信量化为8比特
在8位和16位量化训练中,PyTorch加载状态判定的成本要高得多。调查显示,加载量化PyTorch模型的成本是将权重从Python对象重新打包到Cdata中。由于内存访问次数较少,8位权重重新打包明显快于16位权重重新打包。模型加载的成本表明,通过对打包的C数据结构进行序列化并降低权重打包的成本,可以获得额外的速度提升。为了证明量化在部署强化学习策略方面的显著优势,作者还评估了机器人应用案例中的量化策略优势,感兴趣的读者可以阅读原文。
参考引用的文献:
[8]HuanzhouZhu,BoZhao,GangChen,WeifengChen,YijieChen,LiangShi,YaodongYang,PeterPietzuch,andLeiChen.2022.MSRL:DistributedReinforcementLearningwithDataflowFragments.arXiv:2210.00882
[9]AndyB.Yoo,MorrisA.Jette,andMarkGrondona.2003.SLURM:SimpleLinuxUtilityforResourceManagement.InJobSchedulingStrategiesforParallelProcessing,DrorFeitelson,LarryRudolph,andUweSchwiegelshohn(Eds.).SpringerBerlinHeidelberg,Berlin,Heidelberg,44–60.
[10]Lillicrap,T.P.,Hunt,J.J.,Pritzel,A.,Heess,N.,Erez,T.,Tassa,Y.,Silver,D.,andWierstra,D.Continuouscontrolwithdeepreinforcementlearning.arXivpreprintarXiv:1509.02971,2015.
[11]Haarnoja,T.,Zhou,A.,Abbeel,P.,andLevine,S.Softactor-critic:Off-policymaximumentropydeepreinforcementlearningwithastochasticactor.InInternationalconferenceonmachinelearning,pp.1861–1870.PMLR,2018.
[12]Makoviychuk,V.,Wawrzyniak,L.,Guo,Y.,Lu,M.,Storey,K.,Macklin,M.,Hoeller,D.,Rudin,N.,Allshire,A.,Handa,A.,etal.Isaacgym:Highperformancegpu-basedphysicssimulationforrobotlearning.arXivpreprintarXiv:2108.10470,2021
[13]Horgan,D.,Quan,J.,Budden,D.,Barth-Maron,G.,Hessel,M.,VanHasselt,H.,andSilver,D.Distributedprioritizedexperiencereplay.arXivpreprintarXiv:1803.00933,2018.