农企新闻网

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

发布者:王悦一
导读雷锋网(大众号:雷锋网)AI 科技评论音讯:5 月 2 日,Facebook AI Research(FAIR)官网博客中宣布开源其 AI 围棋机器人 ELF OpenGo(包括源代码和一个训练好的模型),该机器人是基于 ELF 平台研发而成,曾击败了 4 位世界排名前 30 的围棋棋手。据雷锋网理解,该任务次要是受启于 DeepMind 的任务。往年早些时分 FAIR 启动了该项任务,希冀基于其

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

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

据雷锋网理解,该任务次要是受启于 DeepMind 的任务。往年早些时分 FAIR 启动了该项任务,希冀基于其停止强化学习研讨而开发的可扩展、轻量级框架(Extensible Lightweight framework,ELF)再现 AlphaGoZero 最近的后果。其目的则是创立一个开源完成的零碎,该零碎可以自学围棋进而到达人类职业棋手的程度或更高程度;同时他们也希望经过发布的代码和模型,鼓励更多的人去考虑这项技术新的使用和研讨方向。

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

据这个项目的担任人田渊栋引见,他们用了两千块 GPU 训练该模型,约两到三周后失掉以后版本的围棋 AI模型,该模型根本上超越了强职业棋手的程度。ELF OpenGo 在与世界排名前 30 的四位职业围棋棋手(金志锡,申真谞,朴永训及崔哲瀚)的对弈中,OpenGo 以 14:0 的成果博得了一切的竞赛;在竞赛中OpenGo运用单块 GPU 每步50秒的搜索工夫(每步搜索 8 万个场面),而人类棋手可以有恣意长工夫的考虑。

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

田渊栋博士随后在知乎上宣布的 一篇感想文章 中提到,OpenGo 这个项目「不是为了做最好的围棋顺序,不是说要打败谁」。之所以大多数人都曾因不佳的交通状况而迟过到、叫过苦。经济的快速发展带动的是社会各方面的全面提升,但在此过程中,交通的发展却没跟得上前进的步幅,各类交通难题让交管部门伤透脑筋,如何利用AI来解决相关难题已成当务之急。做这个项目有三个目的:

(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 月初次发布。

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

在 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 可以是研讨人员能轻松地尝试不同的强化学习思想,并停止疾速、灵敏的实验。

雷锋网报道。

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