切换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/

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
3月前
|
机器学习/深度学习 存储 PyTorch
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
77 0
|
5月前
|
机器学习/深度学习 弹性计算 TensorFlow
阿里云GPU加速:大模型训练与推理的全流程指南
随着深度学习和大规模模型的普及,GPU成为训练和推理的关键加速器。本文将详细介绍如何利用阿里云GPU产品完成大模型的训练与推理。我们将使用Elastic GPU、阿里云深度学习镜像、ECS(云服务器)等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
976 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多GPU并行训练:深度解析与实战代码指南
本文介绍了PyTorch中利用多GPU进行深度学习的三种策略:数据并行、模型并行和两者结合。通过`DataParallel`实现数据拆分、模型不拆分,将数据批次在不同GPU上处理;数据不拆分、模型拆分则将模型组件分配到不同GPU,适用于复杂模型;数据和模型都拆分,适合大型模型,使用`DistributedDataParallel`结合`torch.distributed`进行分布式训练。代码示例展示了如何在实践中应用这些策略。
121 2
【多GPU炼丹-绝对有用】PyTorch多GPU并行训练:深度解析与实战代码指南
|
6月前
|
存储 人工智能 芯片
多GPU训练大型模型:资源分配与优化技巧 | 英伟达将推出面向中国的改良芯片HGX H20、L20 PCIe、L2 PCIe
在人工智能领域,大型模型因其强大的预测能力和泛化性能而备受瞩目。然而,随着模型规模的不断扩大,计算资源和训练时间成为制约其发展的重大挑战。特别是在英伟达禁令之后,中国AI计算行业面临前所未有的困境。为了解决这个问题,英伟达将针对中国市场推出新的AI芯片,以应对美国出口限制。本文将探讨如何在多个GPU上训练大型模型,并分析英伟达禁令对中国AI计算行业的影响。
|
5月前
|
机器学习/深度学习 缓存 PyTorch
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
Yolov5如何训练自定义的数据集,以及使用GPU训练,涵盖报错解决
448 0
|
5月前
|
机器学习/深度学习 人工智能 弹性计算
阿里云林立翔:基于阿里云GPU的AIGC小规模训练优化方案
阿里云弹性计算林立翔在【AIGC】话题下带来了题为《基于阿里云GPU的AIGC小规模训练优化方案》的主题演讲,围绕生成式AI技术栈、生成式AI微调训练和性能分析、ECS GPU实例为生成式AI提供算力保障、应用场景案例等相关话题展开。
|
5月前
|
XML 数据格式 异构计算
笔记 ubuntu18.04安装cuda10.2 cudnn7.5,然后进行物体检测gpu训练
笔记 ubuntu18.04安装cuda10.2 cudnn7.5,然后进行物体检测gpu训练
51 1
|
7月前
|
弹性计算 自然语言处理 数据安全/隐私保护
GPU实验室-通过GPU云服务器训练GPT-2
本文介绍如何使用GPU云服务器,使用Megatron-Deepspeed框架训练GPT-2模型并生成文本。
GPU实验室-通过GPU云服务器训练GPT-2
|
8月前
|
存储 人工智能 Cloud Native
云原生AI套件:一键训练大模型及部署GPU共享推理服务
本实验指导您如何基于容器服务ACK,使用云原生AI套件提交Bloom模型的微调训练作业,并使用GPU共享能力部署推理服务。
1126 0