当前位置: 首页 > 科技观察

DeepMind发布高效分布式强化学习算法框架Acme,轻松编写RL智能体

时间:2023-03-17 15:59:54 科技观察

DeepMind本周发布了强化学习优化框架Acme,允许AI驱动的智能体运行在不同的执行规模,从而简化强化学习算法开发过程.根据Acme背后的工程师和研究人员的说法,他们共同撰写了一篇关于这项工作的技术论文,可以通过这种方式创建具有更好并行性的代理。强化学习允许代理与环境交互并生成自己的训练数据,已在视频游戏、机器人技术、自动驾驶机器人出租车等领域取得突破。随着使用的训练数据量的增加,这激发了系统的设计,在该系统中,代理与环境实例进行交互,从而迅速积累经验。DeepMind断言,将算法的单进程原型扩展到分布式系统通常需要重新实现相关代理,这就是Acme框架的用武之地。DeepMind研究人员写道,“Acme是一个用于构建可读、高效、面向研究的RL算法的框架Acme的核心旨在简单地描述可以在不同执行规模上运行的RL代理,包括分布式代理。“通过发布Acme,我们的目标是让整个机器学习社区更容易复制和扩展学术界和工业实验室开发的各种RL算法的结果。”Acme框架想要实现什么?研究人员明确了Acme框架的高层目标:1.实现方法和结果的可重复性2.简化设计新算法的方式3.提高RLagent的可读性Howto实现这个目标?在最高层次上,我们可以将Acme视为一个经典的强化学习接口,它将演员(例如动作选择代理)连接到环境。演员是一个简单的接口,具有选择动作的能力,观察并实施自我更新。在内部,学习代理可以分为“执行”和“学习”两部分。从表面上看,这使我们能够在不同的多代理之间重用代理部分。但是,更多重要的是,这提供了一个关键边界,学习过程可以在此边界上进行分区和并行化。我们甚至可以从这里缩小规模,在没有环境的情况下无缝地攻击批量RL设置,只有一个固定的数据集。这些不同的级别复杂性如下图所示:除了Acme的基本框架外,研究人员还发布了使用Acme框架创建的大量代理的单进程实例。通过跨越执行/学习边界,我们能够以分布式方式运行这些相同的代理,而过程中的更改最少。Acme框架的第一个版本针对单进程代理,学生和研究人员使用最多。研究人员在控制套件、Atari和bsuite等环境中对这些代理进行了基准测试。Acme框架有哪些优势?Acme是一套开发工具包,用于训练强化学习代理来解决复杂性和规模化的问题。它的组件用于指导不同抽象级别的代理,从算法和策略到学习者。这样做可以在生产中快速迭代想法和评估这些想法,主要是通过训练循环、强迫性日志记录和检查点。一种特殊类型的Acmeactor由执行组件和学习组件组成——都称为“代理”——它们的状态更新由学习组件中的某些步骤触发。也就是说,agents大部分会将自己的行动选择交给自己的执行组件。在Acme框架中,参与者通过观察环境、执行动作并反过来向环境提供材料来与环境密切交互。在观察到随后的变化后,参与者有机会更新他们的状态,通常与他们的行动选择策略有关,这决定了他们为响应环境而采取的行动。Acme提供了一个位于actor和learner组件之间的数据集模块,由一个名为Reverb的低级存储系统提供支持,DeepMind本周也刚刚发布了该系统。此外,该框架为Reverb建立了一个通用接口,支持不同风格的预处理和观察数据的连续聚合。Reverb是一个高效易用的数据存储和传输系统,专为机器学习研究而设计。Reverb主要用作分布式强化学习算法的经验回放系统,但该系统也支持多种数据结构表示,如FIFO、LIFO、优先队列。在Acme中,执行、学习和存储组件被划分到不同的线程或进程中,这带来了两个好处:环境交互和学习过程异步发生,以及数据生成加速。在其他地方,Acme允许学习执行以任何速率运行,只要该过程保持在某些定义的公差范围内而不受阻碍。例如,如果一个进程由于网络问题或资源不足而落后于另一个进程,速率限制器将阻止落后者,而另一个进程则赶上来。除了这些工具和资源之外,Acme还附带了一组示例代理,它们用作各自强化学习算法的参考实现以及稳健的研究基线。DeepMind研究人员写道,“通过提供这些……我们希望Acme将有助于提升[强化学习]的可重复性状态,并为学术研究人员提供简单的组件来创建新代理。”此外,我们的基线应该提供额外的指标来衡量领域的进展。”GitHub地址:https://github.com/deepmind/acme论文地址:https://arxiv.org/pdf/2006.00979v1.pdf