切换JAX,强化学习速度提升4000倍!牛津大学开源框架PureJaxRL,训练只需GPU(2)

简介: 切换JAX,强化学习速度提升4000倍!牛津大学开源框架PureJaxRL,训练只需GPU

Deep RL的元进化发现


元学习,或者说「学会学习」,通过发现可以应用于广泛任务的一般原则和算法,有潜力彻底改变强化学习领域。


在FLAIR时,作者使用上述计算技术通过进化(evolution)为Meta-RL的新发现提供基础,并有望提高对强化学习算法和智能体的理解,这些优势非常值得探索。


传统的元学习技术,通常使用元梯度或高阶导数,注重只使用少量的样本来快速适应相似但没见过的任务。


虽然这种方法在特定领域内运行良好,但它不能实现通用的学习算法,虽然这种算法可以在更新中处理不同的任务,当试图跨越数百万个时间步和数千个更新进行元学习时,这种局限性变得更加明显,因为基于梯度的方法通常会导致高方差更新,从而影响性能。


另一方面,进化方法提供了一个有前景的选择方案,通过把潜在的问题作为一个黑盒子来处理,并避免显式地计算导数,可以有效地跨越long horizons进行元学习。


进化策略(evolutionary strategies, ES)的主要优势包括:


  • 学习时间步的不可知论(Agnosticism)
  • 不用担心梯度消失或梯度爆炸
  • 无偏见的更新
  • 通常较低的方差
  • 高可并行性


在更高的层面上,这种方法反映了自然界中学习的出现,在自然界中,动物已经进化出在大脑中执行强化学习的基因。


对进化方法的主要批评是,它们可能速度比较慢,并且样本效率较低,往往需要同时评估数千个参数,而这个框架可以通过在有限的硬件上实现快速并行评估来解决这些问题,使元强化学习中的进化成为一个有吸引力的和实用的选择。


一个比较方便的库是evosax(由Gymnax开发者打造),可以很容易地将强化学习训练循环连接到这个库,并完全在GPU上执行极其快速的元进化。


比如说,通过元学习获得Cartpole-v1上 PPO智能体的价值损失函数;在外部循环中,采样这个神经网络的参数(元参数) ,在内部循环中,从头开始训练强化学习智能体,并使用这些元参数对值损失函数进行训练。


在一个Nvidia A40 GPU上,通过超过1000亿帧训练了1024 generations,得到512个智能体,也就是说在9个小时内就在一个 GPU 上训练了超过50万的智能体!


元学习价值距离函数,得到的学习距离函数优于L2


元学习值距离函数


实验结果看起来很有趣,看起来一点也不像标准的L2损失,并不对称,甚至不凸,总之,元进化发现框架包括:


  • 使用 Jax 在 GPU 上运行一切
  • 使用进化方法跨整个训练轨迹的元学习。
  • 解释学习的元参数来「发现」关于学习算法的新见解

案例研究


这是一个非常强大的框架,作者团队在FLAIR发表的多篇论文中都用到它来更好地理解强化学习算法的行为。


发现策略优化(Discovered Policy Optimisation)


在过去的十年里,强化学习已经取得了巨大的进步,这些进步中的大部分来自于新算法的不断发展,这些算法是使用数学推导、直觉和实验相结合的方法设计的,这种手工创建算法的方法受到人类理解力和独创性的限制。


相比之下,元学习为自动机器学习方法优化提供了一个工具包,可能会解决这个缺陷。


然而,试图以最小先验结构发现强化学习算法的黑盒方法迄今为止还没有优于现有的手工算法。


论文链接:https://arxiv.org/pdf/2210.05639.pdf


镜像学习(Mirror Learning),可能是一个潜在的中间起点:虽然这个框架中的每一个方法都有理论上的保证,但是区分它们的组件受制于设计。


这篇论文探讨了镜像学习空间中元学习的一种「漂移」(drift)函数,称其为「学习策略优化」(LPO)。


通过对 LPO 的分析,研究人员获得了对策略优化的独到见解,并用它来构造一个新颖的、封闭形式的 RL 算法,发现策略优化(DPO)。


最后在 Brax 环境中的实验证实了LPO和DPO的最先进性能,以及迁移到未见过环境的能力。


Model-Free Opponent Shaping


在非零和博弈(general-sum game)中,self-interested学习智能体的相互作用通常导致集体最坏情况的结果,如重复囚徒困境(IPD)。


为了克服这一问题,一些方法,如对手学习意识学习(LOLA) 形成了对手的学习过程,不过这些方法通常是短视的,因为只有少数步骤可以预测,并且是不对称的,主要是因为它们将其他智能体视为朴素的学习者,并且需要通过白盒访问对手的可微学习算法来计算高阶导数。


论文链接:https://arxiv.org/pdf/2205.01447.pdf


为了解决这些问题,研究人员提出了无模型对手形成算法(M-FOS)。


M-FOS 在一个元游戏中学习,其中每一个元步骤都是潜在的内在游戏的一个回合;元状态由内部策略组成,元策略产生一个新的内部策略,将在下一episode中回合;然后,M-FOS 使用通用的无模型优化方法来学习元策略,以形成长期的对手。


根据经验,M-FOS 近乎最优地利用了朴素的学习者和其他更复杂的文献算法,它是学习知识产权保护中著名的零行列式(ZD)勒索策略的第一种方法。


在相同的设置下,M-FOS 可以获得meta-self-play游戏下的社会最优结果,并可以扩展到高维设置。


Adversarial Cheap Talk


强化学习中的对抗性攻击(RL)通常假定受害者对参数、环境或数据的访问具有高权限。


相反,这篇论文提出了一种称为简单对话 MDP 的全新对抗设置,在这种设置中,对手只需在被攻击者的观察中附加确定性信息,就可以产生最小范围的影响。


论文链接:https://arxiv.org/pdf/2211.11030.pdf


攻击者不能掩盖ground truth,影响潜在的环境动态或奖励信号,引入非平稳性,增加随机性,查看被攻击者的行为,或访问他们的参数。


此外,研究人员在这个设置下提出了一个简单的元学习算法,也称为简单谈话(ACT)训练对手。


实验证明,尽管存在高度约束的设置,一个对手训练的 ACT 仍然可以显着影响受害者的训练和测试表现;对训练时间性能的影响也提供了一个新的攻击向量,并可以观察理解现有强化学习算法的成功和失败模式。


更具体地说,研究人员展示了 ACT 对手能够通过干扰学习者的函数逼近来损害表现,或者通过输出有用的功能来帮助被攻击者提升表现。


最后展示了一个 ACT对手可以在训练时间操纵消息,在测试阶段任意控制被攻击者。


参考资料:https://chrislu.page/blog/meta-disco/

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
5月前
|
机器学习/深度学习 存储 PyTorch
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
202 0
|
5月前
|
机器学习/深度学习 弹性计算 TensorFlow
阿里云GPU加速:大模型训练与推理的全流程指南
随着深度学习和大规模模型的普及,GPU成为训练和推理的关键加速器。本文将详细介绍如何利用阿里云GPU产品完成大模型的训练与推理。我们将使用Elastic GPU、阿里云深度学习镜像、ECS(云服务器)等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
1850 0
|
5月前
|
机器学习/深度学习 异构计算 Python
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
对于深度学习初学者来说,JupyterNoteBook的脚本运行形式显然更加友好,依托Python语言的跨平台特性,JupyterNoteBook既可以在本地线下环境运行,也可以在线上服务器上运行。GoogleColab作为免费GPU算力平台的执牛耳者,更是让JupyterNoteBook的脚本运行形式如虎添翼。 本次我们利用Bert-vits2的最终版Bert-vits2-v2.3和JupyterNoteBook的脚本来复刻生化危机6的人气角色艾达王(ada wong)。
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
|
2月前
|
机器学习/深度学习 并行计算 PyTorch
GPU 加速与 PyTorch:最大化硬件性能提升训练速度
【8月更文第29天】GPU(图形处理单元)因其并行计算能力而成为深度学习领域的重要组成部分。本文将介绍如何利用PyTorch来高效地利用GPU进行深度学习模型的训练,从而最大化训练速度。我们将讨论如何配置环境、选择合适的硬件、编写高效的代码以及利用高级特性来提高性能。
221 1
|
2月前
|
并行计算 算法 调度
自研分布式训练框架EPL问题之提高GPU利用率如何解决
自研分布式训练框架EPL问题之提高GPU利用率如何解决
|
4月前
|
机器学习/深度学习 自然语言处理 异构计算
单GPU训练一天,Transformer在100位数字加法上就达能到99%准确率
【6月更文挑战第11天】Transformer模型在算术任务上取得重大突破,通过引入Abacus Embeddings,一天内在100位数字加法上达到99%准确率。该嵌入方法帮助模型跟踪数字位置,提升处理长序列的能力。实验还显示,Abacus Embeddings可与其他嵌入方法结合,提升乘法任务性能。然而,模型在更长序列的扩展性和其他类型任务的效果仍有待探究,具体训练技术的影响也需要进一步研究。论文链接:https://arxiv.org/pdf/2405.17399
63 1
|
5月前
|
机器学习/深度学习 弹性计算 自然语言处理
【阿里云弹性计算】深度学习训练平台搭建:阿里云 ECS 与 GPU 实例的高效利用
【5月更文挑战第28天】阿里云ECS结合GPU实例为深度学习提供高效解决方案。通过弹性计算服务满足大量计算需求,GPU加速训练。用户可按需选择实例规格,配置深度学习框架,实现快速搭建训练平台。示例代码展示了在GPU实例上使用TensorFlow进行训练。优化包括合理分配GPU资源和使用混合精度技术,应用涵盖图像识别和自然语言处理。注意成本控制及数据安全,借助阿里云推动深度学习发展。
237 2
|
5月前
|
机器学习/深度学习 人工智能 算法
为什么大模型训练需要GPU,以及适合训练大模型的GPU介绍
为什么大模型训练需要GPU,以及适合训练大模型的GPU介绍
219 1
|
5月前
|
机器学习/深度学习 并行计算 PyTorch
【多GPU炼丹-绝对有用】PyTorch多GPU并行训练:深度解析与实战代码指南
本文介绍了PyTorch中利用多GPU进行深度学习的三种策略:数据并行、模型并行和两者结合。通过`DataParallel`实现数据拆分、模型不拆分,将数据批次在不同GPU上处理;数据不拆分、模型拆分则将模型组件分配到不同GPU,适用于复杂模型;数据和模型都拆分,适合大型模型,使用`DistributedDataParallel`结合`torch.distributed`进行分布式训练。代码示例展示了如何在实践中应用这些策略。
1626 2
【多GPU炼丹-绝对有用】PyTorch多GPU并行训练:深度解析与实战代码指南
|
5月前
|
机器学习/深度学习 缓存 PyTorch
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
898 0

热门文章

最新文章

下一篇
无影云桌面