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

简介: DeepMind 本周发布了一个强化学习优化框架Acme,可以让AI驱动的智能体在不同的执行规模上运行,从而简化强化学习算法的开发过程。

微信图片_20220109010702.jpg


DeepMind 本周发布了一个强化学习优化框架 Acme,可以让AI驱动的智能体在不同的执行规模上运行,从而简化强化学习算法的开发过程。 Acme 背后的工程师和研究人员共同撰写了一篇关于这项工作的技术论文,根据他们的说法,用这种方法创建智能体,并行性会更好。      


 微信图片_20220109010704.png


强化学习可以让智能体与环境互动,生成他们自己的训练数据,这在电子游戏、机器人技术、自动驾驶机器人出租车等领域取得了突破。 


随着所使用的培训数据量的增加,这促使设计了一个系统,使智能体与环境实例相互作用,迅速积累经验。


DeepMind 断言,将算法的单进程原型扩展到分布式系统通常需要重新实现相关的智能体,这就是 Acme 框架的用武之地 


DeepMind研究员写道,「Acme 是一个用于构建可读、高效、面向研究的 RL 算法的框架。Acme 的核心是设计用于简单描述 RL 智能体,这些智能体可以在不同规模的执行中运行,包括分布式智能体。」


「通过发布 Acme,我们的目标是使学术界和工业实验室开发的各种 RL 算法的结果更容易为整个机器学习社区复制和扩展。」


Acme 框架要实现的目标?


研究者明确指出了Acme框架的高级目标


 1 实现方法和结果可重复性2 简化新算法设计的方式3 提高RL智能体的可读性 如何实现这一目标? 从最高层次来看,我们可以将 Acme 视为一个经典的强化学习接口,其作用是将 actor(比如一个动作选择智能体)连接到环境。 actor 是一个具有选择动作、观察并实现自我更新能力的简单接口。


 从内部看,学习智能体可以拆分为「执行」和「学习」两部分。从表面上看,这使得我们在不同的多智能体之间重复使用 acting portion。


 但是,更重要的是,这提供了一个可以对学习过程进行划分和并行化处理的关键边界。我们甚至可以从此处按比例缩小规模,并在没有环境,只有固定数据集的情况下无缝攻击批RL设置(batch RL setting)。


这些不同级别的复杂度的图示如下:


      微信图片_20220109010706.gif


除了 Acme 的基础框架之外,研究人员还发布了用 Acme 框架创建的大量智能体的单进程实例。 通过跨越执行/学习边界,我们能够以分布式方式运行这些相同的智能体,过程中的改变最小。


Acme 框架首个版本主要针对学生和研究人员使用最多的单进程智能体。 研究者在 control suite、Atari 和 bsuite 等环境中对这些智能体进行了基准测试。

QQ图片20220109010759.png

点击查看原视频链接

利用 Acme 框架进行智能体训练的示例  


Acme 框架有哪些优势?


Acme是一组开发套件,用于培训强化学习智能体,用来解决复杂性和规模的问题,其组件用于从算法和策略到学习者等不同抽象层次来指导代理。 


这样做可以让idea快速迭代,并在生产过程中对这些 idea 进行评估,主要是通过训练循环、强迫性日志记录和检查点。 


一种特殊类型的 Acme actor 包括执行和学习两个组件ーー它们都被称为「智能体」ーー它们的状态更新是由learner组件中的一些步骤触发的。也就是说,智能体大部分情况会把他们的行动选择权交给他们自己的执行组件。


在 Acme 框架中,actors与环境密切交互,通过观察环境,执行动作,反过来为环境提供素材。


  微信图片_20220109010709.png


在观察了随后发生的变化后,actors 有机会更新其状态,这通常与其行动选择策略有关,这些策略决定了它们为应对环境而采取的行动。 


Acme 提供了一个位于 actor 和 learner 组件之间的数据集模块,该模块由一个名为 Reverb 的低级存储系统支持,DeepMind 本周也刚刚发布这个系统。此外,该框架建立了一个接入Reverb的通用接口,使不同风格的预处理和观察数据的持续聚合成为可能。 


Reverb是一个专为机器学习研究设计的高效、易用的数据存储和传输系统。

Reverb主要作为分布式强化学习算法的经验回放(experience replay)系统,但该系统也支持多种数据结构表示,如FIFO、LIFO和优先级队列等。


      微信图片_20220109010711.png


在 Acme 当中,执行、学习和存储组件被划分为不同的线程或进程,这带来了两个好处: 环境交互与学习过程非同步发生,以及数据生成的加速。


在其他地方,Acme允许从学习到执行以任何速率运行,只要流程保持在一定的定义公差内就可以不受阻碍。


例如,如果一个进程由于网络问题或资源不足而落后于另一个进程,速率限制器将阻塞落后者,而另一个进程将赶上来。 除了这些工具和资源,Acme 还附带了一组示例智能体,作为各自强化学习算法以及强大研究基线的参考实现。 


DeepMind研究人员写道,「通过提供这些... ... 我们希望 Acme 将有助于提高[强化学习]的可再生性地位,并为学术研究者提供简单的组件来创造新的智能体。」「此外,我们的baseline应该提供额外的衡量标准,以衡量该领域的进展。」


GitHub地址:https://github.com/deepmind/acme


论文地址:https://arxiv.org/pdf/2006.00979v1.pdf


参考链接:
https://venturebeat.com/2020/06/03/deepmind-releases-acme-a-distributed-framework-for-reinforcement-learning-algorithm-development/https://deepmind.com/research/publications/Acme

相关文章
|
7月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
633 0
分布式爬虫框架Scrapy-Redis实战指南
|
11月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
11月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
5月前
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
507 4
|
10月前
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
3552 66
|
11月前
|
数据库
如何在Seata框架中配置分布式事务的隔离级别?
总的来说,配置分布式事务的隔离级别是实现分布式事务管理的重要环节之一,需要认真对待和仔细调整,以满足业务的需求和性能要求。你还可以进一步深入研究和实践 Seata 框架的配置和使用,以更好地应对各种分布式事务场景的挑战。
335 63
|
9月前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
385 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
11月前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
762 53
|
10月前
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
448 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
9月前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
394 8

热门文章

最新文章