我想知道如果我使用 on-policy(例如 PPO)RL 作为模型,使用 GPU 是否有效?
即,我们如何使用 GPU 来减少 on-policy RL 模型的训练时间?
我最近训练了一个模型,GPU 利用率约为 2%。
我想知道如果我使用 on-policy(例如 PPO)RL 作为模型,使用 GPU 是否有效?
即,我们如何使用 GPU 来减少 on-policy RL 模型的训练时间?
我最近训练了一个模型,GPU 利用率约为 2%。
由于GPU/TPU具有并行处理能力,因此在训练深度学习模型时使用 GPU/TPU 来提高处理速度。
另一方面,由于代理和环境之间的顺序交互,强化学习主要是 CPU 密集型的。考虑到你想利用策略上的 RL 算法,这会很困难。
全面分析您的用例,它将帮助您了解是否有可能提高 GPU 利用率。
如果您只想减少训练时间,您可以选择多线程并行强化学习算法 (MPRL)
如果您正在寻找 GPU 利用率,您必须选择深度强化学习,它是 RL + DNN 的组合
少数算法 Deep Q Networks (DQN) 和 Advantage Actor Critic (A2C) 异步 Advantage Actor Critic (A3C) 基于可用于减少整体训练时间的 CPU 内核数量。
由于策略评估和更新的交替过程,深度 RL 模型无法批量训练。为此,可以将深度 RL 部署为仅 CPU 进程。但是,如果模型需要更新数百万个参数,则策略更新的处理时间会急剧增加。同时,如果策略评估和更新阶段相对较快,则将张量加载和检索到 GPU 上进行训练所花费的时间会变得很重要。对于具有数百到数千个参数的较小模型或在 DQN 期间,通常会出现这种情况,其中一批情节记忆是单独训练的。
当前最先进的算法包括 Deep Q Networks (DQN) 和 Advantage Actor Critic (A2C),其中模型通常用 Tensorflow 或 PyTorch 编写并支持 GPU,而其余的环境和训练脚本则是为 CPU 编写的。由于这种实现,策略评估阶段发生在 CPU 中,而策略更新阶段(更新模型权重)发生在 CPU 或 GPU 中。
进行了一项实验来测试深度 RL 的计算仅发生在 CPU 中或在 CPU 和 GPU 之间切换的两种情况。