据雷锋网理解,该事情紧张是受启于 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 这个项目「不是为了做最好的围棋程序,不是说要打败谁」。
之以是做这个项目有三个目的:

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

(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 能够是研究职员能轻松地考试测验不同的强化学习思想,并进行快速、灵巧的实验。

雷锋网宣布。