专栏首页目标检测和深度学习Facebook 开源 AI 围棋源代码,击败职业棋手只需一块GPU

Facebook 开源 AI 围棋源代码,击败职业棋手只需一块GPU

文 | camel

来自雷锋网(leiphone-sz)的报道

雷锋网 AI 科技评论消息:5 月 2 日,Facebook AI Research(FAIR)官网博客中宣布开源其 AI 围棋机器人 ELF OpenGo(包括源代码和一个训练好的模型),该机器人是基于 ELF 平台研发而成,曾击败了 4 位世界排名前 30 的围棋棋手。

据雷锋网了解,该工作主要是受启于 DeepMind 的工作。今年早些时候 FAIR 启动了该项工作,期望基于其进行强化学习研究而开发的可扩展、轻量级框架(Extensible Lightweight Framework,ELF)再现 AlphaGoZero 最近的结果。其目的则是创建一个开源实现的系统,该系统能够自学围棋进而达到人类职业棋手的水平或更高水平;同时他们也希望通过发布的代码和模型,激励更多的人去思考这项技术新的应用和研究方向。

据这个项目的负责人田渊栋介绍,他们用了两千块 GPU 训练该模型,约两到三周后得到当前版本的围棋 AI模型,该模型基本上超过了强职业棋手的水平。ELF OpenGo 在与世界排名前 30 的四位职业围棋棋手(金志锡,申真谞,朴永训及崔哲瀚)的对弈中,OpenGo 以 14:0 的成绩赢得了所有的比赛;在比赛中OpenGo使用单块 GPU 每步50秒的搜索时间(每步搜索 8 万个局面),而人类棋手可以有任意长时间的思考。

另外,ELF OpenGo 在与目前公开可用的、最强的围棋机器人 LeelaZero 的对一种,后者采用了除ponder外的缺省配置,以及公开权重(192x15,158603eb, Apr. 25, 2018),结果 OpenGo 赢得了全部 200 场比赛。

田渊栋博士随后在知乎上发表的一篇感想文章中提到,OpenGo 这个项目「不是为了做最好的围棋程序,不是说要打败谁」。之所以做这个项目有三个目的:

(1) AlphaGoZero/AlphaZero 算法很有意思,我们想知道为什么它有效果,是怎么会有效果的,是不是如同宣传的那样是百试百灵的通用算法,是不是只要堆机器,强人工智能马上就来了?还是说其实这个算法有什么问题和弱点?DeepMind 不开源也不透露细节,文章里面一些地方也没有写得很清楚。我之前写过 Blog 讨论过,但是没有第一手经验总不是很踏实。所以本着研究目的,我们需要复现一下,先有复现,才有创新,这个是做研究的习惯。 (2) 今年年初我重写了 ELF 的核心代码,另外也加了分布式训练,需要找个具体应用来测试一下。站在这个角度上,AlphaGoZero/AlphaZero 是个完美的选择,再说之前也有 DarkForest 的代码和围棋程序的经验,所以把它们拼起来不用花太多力气。 (3) 不管是通用算法还是分布式平台,都可以用来干很多别的事情,不一定是围棋,不一定是游戏。如果我们去看 ELF OpenGo 的代码,会发现其实很大一部分和围棋一点关系也没有,完全适用于其它方向的工作。而围棋对我们来说,只是一个把算法和平台做好的手段。在这一点上,花点时间把围棋做好是值得的。

田渊栋博士表示,随着今天 ELF OpenGo 的发布,这三个目的都已达到。当然,他们更希望的是能够借此机会推广一下 ELF 平台和 PyTorch 深度学习框架,让更多的人使用和完善它。

代码见:https://github.com/pytorch/ELF

模型见:https://github.com/pytorch/ELF/releases

英文 blog 见:https://research.fb.com/facebook-open-sources-elf-opengo/

ELF 平台

ELF 平台是一个可扩展、轻量级且非常灵活的游戏研究平台,尤其适用于实时战略(RTS)游戏的研究,于 2016 年 6 月首次发布。

在 C++端,ELF 与 C++线程同时托管多个游戏;而在 Python 端,ELF 可以一次返回一批游戏状态,这使得其对现代的强化学习非常友好。相比之下,其他平台(例如 OpenAI Gym)则只是使用一个 Python 界面封装一个单一的游戏,这种情况使得并发游戏(许多现代的强化学习算法都有此要求)的执行就变得比较复杂。

ELF 具有以下特征:

  • 端到端:ELF 为游戏研究提供了端到端的解决方案。它提供微型实时策略游戏环境、并行模拟、直观的 API、基于 Web 的可视化,并且还具有由 Pytorch 授权的强化学习后端,资源需求最少。
  • 可扩展性:任何具有 C / C ++接口的游戏都可以通过编写一个简单的包装器插入到这个框架中。
  • 轻量级:ELF 运行速度非常快,开销很小。在一台 MacBook Pro 上,基于 RTS 引擎构建的简单游戏(MiniRTS)使用 ELF 平台,能够单核每秒运行 40K 帧;而只使用 6 块 CPU+1 块 GPU 从零开始训练 MiniRTS,也只需要六天。
  • 灵活性:环境和参与者之间的配对非常灵活。例如单个 agent 与单个环境(例如 Vanilla A3C)、多个 agent 与单个环境(Self-play/MCTS),或者单个 agent 与多个环境(BatchA3C、GA3C)等。而且,任何构建在 RTS 引擎之上的游戏都可以完全访问其内部表示和动态。

随着这次 OpenGo 的开源,FAIR 也对 ELF 平台进行了改进,升级了更高效、更友好的 API 以及支持对数千台计算机进行分布式计算的框架。作为 PyTorch 的一部分,ELF 能够是研究人员能轻松地尝试不同的强化学习思想,并进行快速、灵活的实验。

- END -、

本文分享自微信公众号 - 目标检测和深度学习(The_leader_of_DL_CV),作者:camel

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 适合移动端的压缩神经网络压缩技术:DeppThin

    英特尔的研究者提出新型深度神经网络压缩技术 DeepThin,适合移动端设备,性能优于其他压缩技术。

    朱晓霞
  • 教程 | 先理解Mask R-CNN的工作原理,然后构建颜色填充器应用

    选自matterport 作者:Waleed Abdulla 机器之心编译 参与:刘晓坤 上年 11 月,matterport 开源了 Mask R-CNN 实...

    朱晓霞
  • 从零开始PyTorch项目:YOLO v3目标检测实现

    在过去几个月中,我一直在实验室中研究提升目标检测的方法。在这之中我获得的最大启发就是意识到:学习目标检测的最佳方法就是自己动手实现这些算法,而这正是本教程引导你...

    朱晓霞
  • 任正非答外媒51问最全版: 美国搞不垮华为,感谢给华为打广告,终端销量每月增长50%

    近期华为创始人任正非频繁接受了外媒的采访,阐明华为的立场以及对美国的态度。3月19日晚间,华为首次公布了任正非接受BBC和CBS两家外媒采访的全文实录。

    用户1272076
  • 为什么很多公司不喜欢招培训机构出来的

    2016年修完化学专业的硕士之后,3月份进了某500强日企,拿着5000的月薪,谋者研发工程师的虚职,在荒凉郊县的机器轰隆声和堆积的化学品之间穿梭,工作十年的部...

    用户1093975
  • bat与jscript开发工具时遇到的一些问题

    之前使得bat调用luac进行编译时,会弹出一个“黑色的界面”,闪烁一下,感觉不太好。而脚本vbs或者jscript调用bat是可以利用Run方法,将其第二个参...

    meteoric
  • 2019年AI大事件票选:量子霸权、黑洞照片、华为备胎等

    圣母大学计算机系终身副教授一家人遭两名劫匪抢去汽车,在不到24小时之内,这名教授和博士生二人通过手机发动应用程序和计算机算法中的“贪心算法”,成功将车找回。

    新智元
  • 如何分析ANR问题

    上一篇介绍了ANR问题的相关知识,本篇介绍如何分析ANR问题。下面链接是我之前分析的一个ANR问题实例,实战与理论结合更容易理解。 https://blog....

    用户7557625
  • 全球媒体热评美国封杀华为:一场没有赢家的战争

    据财联社最新消息,华为消费者业务CEO余承东透露,华为面向下一代技术而设计的操作系统OS最快在今年秋天、最晚于明年春天将可能面市。这套系统打通了手机、电脑、平板...

    人称T客
  • Python 异常处理大全

    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。

    Python知识大全

扫码关注云+社区

领取腾讯云代金券