• 您当前的位置:首页 > 科技新闻 > 互联网新闻 > Facebook开源AI围棋源代码 击败职业的只需块GPU
  • Facebook开源AI围棋源代码 击败职业的只需块GPU

    时间:2018-05-07  来源:其他  作者:PConline

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

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

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

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

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

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

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

    (1)AlphaGoZero/AlphaZero算法很有意思,我们想知道为什么它有效果,是怎么会有效果的,是不是如同宣传的那样是百试百灵的通用算法,是不是只要堆机器,强人工智能马上就来了?还是说其实这个算法有什么问题和弱点?DeepMind不开源也不透露细节,文章里面一些地方也没有写得很清楚。我之前写过Blog讨论过,但是没有第一手经验总不是很踏实。所以本着研究目的,我们需要复现一下,先有复现,才有创新,这个是做研究的习惯。

    (2)今年年初我重写了ELF的核心代码,另外也加了分布式训练,需要找个具体应用来测试一下。站在这个角度上,AlphaGoZero/AlphaZero是个完美的选择,再说之前也有DarkForest的代码和围棋程序的经验,所以把它们拼起来不用花太多力气。

    (3)不管是通用算法还是分布式平台,都可以用来干很多别的事情,不一定是围棋,不一定是游戏。如果我们去看ELFOpenGo的代码,会发现其实很大一部分和围棋一点关系也没有,完全适用于其它方向的工作。而围棋对我们来说,只是一个把算法和平台做好的手段。在这一点上,花点时间把围棋做好是值得的。

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

    ELF平台

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

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

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

    ELF具有以下特征:

    • 端到端:ELF为游戏研究提供了端到端的解决方案。它提供微型实时策略游戏环境、并行模拟、直观的API、基于Web的可视化,并且还具有由Pytorch授权的强化学习后端,资源需求最少。

    • 可扩展性:任何具有C/C++接口的游戏都可以通过编写一个简单的包装器插入到这个框架中。

    • 轻量级:ELF运行速度非常快,开销很小。在一台MacBookPro上,基于RTS引擎构建的简单游戏(MiniRTS)使用ELF平台,能够单核每秒运行40K帧;而只使用6块CPU+1块GPU从零开始训练MiniRTS,也只需要六天。

    • 灵活性:环境和参与者之间的配对非常灵活。例如单个agent与单个环境(例如VanillaA3C)、多个agent与单个环境(Self-play/MCTS),或者单个agent与多个环境(BatchA3C、GA3C)等。而且,任何构建在RTS引擎之上的游戏都可以完全访问其内部表示和动态。

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

    关键词:
    最近更新
    推荐资讯