清华本科生开发强化学习平台「天授」:千行代码实现,性能吊打国外成熟平台,刚刚开源

简介: 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 江山代有才人出,开源一波更比一波强。 就在最近,一个简洁、轻巧、快速的深度强化学习平台,完全基于Pytorch,在Github上开源。

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


江山代有才人出,开源一波更比一波强。

就在最近,一个简洁、轻巧、快速的深度强化学习平台,完全基于Pytorch,在Github上开源。

如果你也是强化学习方面的同仁,走过路过不要错过。

而且作者,还是一枚清华大学的本科生——翁家翌,他开发了”天授(Tianshou)“平台。

没错,名字就叫“天授”。

1

Why 天授?

主要有四大优点:

1、速度快,整个平台只用1500行左右代码实现,在已有的toy scenarios上面完胜所有其他平台,比如3秒训练一个倒立摆(CartPole)。

2

2、模块化,把所有policy都拆成4个模块:

  • init:策略初始化。
  • process_fn:处理函数,从回放缓存中处理数据。
  • call:根据观测值计算操作
  • learn:从给定数据包中学习

只要完善了这些给定的接口就能在100行之内完整实现一个强化学习算法。

3、天授平台目前支持的算法有:

4

随着项目的开发,会有更多的强化学习算法加入天授。

4、接口灵活:用户可以定制各种各样的训练方法,只用少量代码就能实现。

如何使用天授

以DQN(Deep-Q-Network)算法为例,我们在天授平台上使用CartPole小游戏,对它的agent进行训练。

配置环境

习惯上使用OpenAI Gym,如果使用Python代码,只需要简单的调用Tianshou即可。

CartPole-v0是一个可应用DQN算法的简单环境,它拥有离散操作空间。配置环境时,你需要注意它的操作空间是连续还是离散的,以此选择适用的算法。

设置多环境层

你可以使用现成的gym.Env:

5

也可以选择天授提供的三种向量环境层:VectorEnv、SubprocVectorEnv和RayVectorEnv,如下所示:

6

示例中分别设置了8层和100层环境。

建立网络

天授支持任意用户自主定义的网络或优化器,但有接口限制。

7

以下是一个正确的示例:

8

设置策略

我们使用已定义的net和optim(有额外的策略超参数)来定义一个策略。下方我们用一个目标网络来定义DQN算法策略。

9

设置收集器

收集器是天授的关键概念,它使得策略能够高效的与不同环境交互。每一步,收集器都会将该策略的操作数据记录在一个回放缓存中。

10

训练

天授提供了训练函数onpolicy_trainer和offpolicy_trainer。当策略达到终止条件时,他们会自动停止训练。由于DQN是无策略算法,我们使用offpolicy_trainer。

11

训练器支持TensorBoard记录,方法如下:

12

将参数writer输入训练器中,训练结果会被记录在TensorBoard中。

13

记录显示,我们在几乎4秒的时间内完成了对DQN的训练。

保存/加载策略

因为我们的策略沿袭自torch.nn.Module,所以保存/加载策略方法与torch模块相同。

14

观察模型表现

收集器支持呈现功能,以35帧率观察模型方法如下:

15

用你自己的代码训练策略

如果你不想用天授提供的训练器也没问题,以下是使用自定义训练器的方法。

16

上手体验

天授需要Python3环境。以CartPole训练DQN模型为例,输入test_dqn.py代码进行训练,其结果统计如下:

17

可以看出整个训练过程用时7.36秒,与开发者给出的训练时间符合。

模型训练结果如下:

18

作者介绍

天授的开发者:翁家翌,清华大学的在读大四本科生。

高中毕业于福州一中,前NOI选手。

大二时作就作为团队主要贡献者获得了强化学习国际比赛vizdoom的冠军。他希望能将天授平台深入开发,成为强化学习平台的标杆。开源也是希望有更多的小伙伴加入这个项目。


【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-01
本文作者:贾浩楠
本文来自:“量子位”,了解相关信息可以关注“公众号 QbitAI”

相关文章
|
1月前
|
人工智能 自然语言处理 算法
完全开源的代码大模型OpenCoder来了,跻身性能第一梯队
在人工智能领域,大型语言模型(LLM)尤其在代码生成等任务中展现出巨大潜力。然而,高质量、可复现的开源代码LLM仍稀缺。为此,多领域专家团队推出了OpenCoder,一个顶级开源代码LLM。它不仅性能卓越,还提供了完整的数据处理流程和训练协议,确保研究的可复现性。OpenCoder的开放性为研究社区提供了从数据准备到模型训练的全流程指导,成为推动代码AI领域发展的关键工具。论文链接:https://arxiv.org/abs/2411.04905
167 91
|
8月前
|
机器学习/深度学习 人工智能 算法
清华、华为等提出iVideoGPT:专攻交互式世界模型
【6月更文挑战第6天】清华和华为团队联合推出iVideoGPT,这是一种创新的交互式世界模型,旨在解决视频生成模型的互动性和扩展性挑战。iVideoGPT采用可扩展的自回归变换器框架,整合多模态信号,通过预测标记序列提升智能体交互体验。模型利用压缩标记技术处理高维视觉数据,预训练于大量人类和机器人操控轨迹,适用于视频预测、视觉规划等任务,展现出与顶级方法相当的性能。尽管存在数据多样性、长视频处理和高分辨率视频预测等问题,iVideoGPT仍展现了在视觉机器人操控等领域的巨大潜力。[论文链接](https://arxiv.org/pdf/2405.15223)
79 1
|
人工智能 自然语言处理 IDE
人手一个编程助手!北大代码大模型CodeShell-7B开源,魔搭社区最佳实践来了!
CodeShell是北京大学知识计算实验室联合四川天府银行AI团队研发的多语言代码大模型基座。
|
9月前
|
搜索推荐 开发者
开源打败商业 —— 敲敲云 apaas 平台成为了零代码领域的黑马,开启零代码新时代
随着数字化转型的浪潮席卷全球,企业对于高效、灵活的业务系统需求日益增长。在这个背景下,零代码开发平台应运而生,成为了市场上备受瞩目的产品。而在众多零代码产品中,敲敲云 以其开源的身份和高效的研发速度,彰显了其与众不同的竞争力。
642 0