本文最初发表在 WIRED 网站,由InfoQ 中文站翻译并分享。
近日,DeepMind 发布了 Acme,该框架旨在通过使人工智能驱动的智能体能够在不同的执行规模下运行,从而简化强化学习(Reinforcement learning,RL)算法的开发。Acme 背后的工程师和研究人员共同撰写了一篇关于该项工作的技术论文,根据这篇论文的说法,Acme 可以用来创建比以前的方法更具并行性的智能体。
强化学习涉及到智能体与环境交互以生成自己的训练数据,它已经在电子游戏、机器人技术、自动驾驶机器人出租车等领域取得了突破。最近取得的进展,在一定程度上要归因于所使用的训练数据量的增加,这激发了智能体与环境实例交互以快速积累经验的系统的设计。DeepMind 曾断言,这种从算法的单进程原型到分布式系统的扩展通常需要重新实现相关的智能体,这正是 Acme 框架的用武之地。
Acme 是一个用于训练强化学习智能体的开发套件,它试图解决复杂性和规模化的问题,其组件用于构建从算法和策略到学习者的不同抽象层次的智能体。我们的思路是,这样可以对想法进行迅速迭代,并在生产中对这些想法进行评估,主要是通过训练循环、强制日志记录和检查点。
在 Acme 中,行为者(actor)与环境密切互动,对环境进行观察,并采取行动,而这些行动又反过来反馈到环境中。在观察到随之而来的过渡后,行为者有机会更新它们的状态;这通常与它们的行动选择政策有关,这些政策决定了它们为应对环境采取哪些行动。一种特殊类型的 Acme actor 包括行为和学习组件,它们被称为“智能体”,它们的状态更新是由学习者(learner)组件中的一些步骤触发的。也就是说,智能体在大多数情况下都会将它们的行动选择权交给它们自己的行为组件。
Acme 提供了一个位于行为者和学习者组件之间的数据集模块,该模块由一个名为 Reverb 的低级存储系统提供支持,DeepMind 日前也发布了这个系统。此外,该框架还建立了一个用于插入 Reverb 的通用接口,从而实现了不同风格的预处理和观测数据的持续聚合。
行为组件、学习组件和存储组件被划分到 Acme 内部的不同线程或进程中,这带了两个好处:环境交互和学习过程异步发生,以及数据生成得到加速。在其他地方,Acme 的速率限制允许执行从学习到执行的理想速率,只要进程保持在某个定义的容忍度内,进程就可以畅通运行。例如,如果其中一个进程由于网络问题或资源不足而开始落后于另一个进程,速率限制器将阻止落后的进程,而另一个进程则迎头赶上。
除了这些工具和资源之外,Acme 还附带了一套示例智能体,作为各自强化学习算法的参考实现,以及强大的研究基线。DeepMind 表示,未来可能会有更多的产品问世。“通过提供这些……我们希望 Acme 将有助于改善强化学习中的可重复性问题,并赋予学术研究界用简单的构建模块来创建新智能体的能力,”研究人员写道,“此外,我们的基线应该提供额外的标准,以衡量该领域的进展。”
Kyle Wiggers,技术记者,现居美国纽约市,为 VentureBeat 撰写有关人工智能的文章。
原文链接:
领取专属 10元无门槛券
私享最新 技术干货