内容来源:ATYUN AI平台

PhoenixGo是一个围棋AI程序,它执行AlphaGo Zero论文“掌握无人知识的Go游戏”。它也被称为FoxGo中的“BensonD​​arr”,CGOS中的“cronus”。在中国福州举办的“World AI Go Tournament 2018”中,来自微信团队的人工智能围棋程序PhoenixGo获得了冠军。

如果您在项目中使用PhoenixGo,请在您的自述文件中提及。

如果您在研究中使用PhoenixGo,请考虑引用库:

@misc{PhoenixGo2018,author = {Qinsong Zeng and Jianchang Zhang and Zhanpeng Zeng and Yongsheng Li and Ming Chen and Sifan Liu}title = {PhoenixGo},year = {2018},journal = {GitHub repository},howpublished = {\url{https://github.com/Tencent/PhoenixGo}}
}

建立和运行

在Linux上

要求

支持C++11的GCC
Bazel(0.11.1最好)
(可选)CUDA和cuDNN(用于GPU支持)
(可选)TensorRT(用于加速GPU上的计算,已知为3.0.4)

建立

$ git clone https://github.com/Tencent/PhoenixGo.git
$ cd PhoenixGo
$ ./configure

./configure 会询问CUDA和TensorRT的安装位置,如果需要请指定它们。

然后用bazel建立:

$ bazel build //mcts:mcts_main

诸如Tensorflow之类的将自动下载。此命令可能需要很长时间。

运行

下载并提取经过训练的网络:

$ wget https://github.com/Tencent/PhoenixGo/releases/download/trained-network-20b-v1/trained-network-20b-v1.tar.gz
$ tar xvzf trained-network-20b-v1.tar.gz

使用配置文件以gtp模式运行(取决于GPU的数量和是否使用TensorRT):

$ bazel-bin/mcts/mcts_main --config_path=etc/{config} --gtp --logtostderr --v=1

该引擎支持GTP协议,这意味着它可以用于具有GTP功能的GUI,如Sabaki。

–logtostderr让mcts_main日志消息到stderr,如果你想登录到文件,–logtostderr改为–log_dir={log_dir}

你可以在#configure-guide之后修改你的配置文件。

分配模式

PhoenixGo支持与分配式工作人员一起运行,如果在不同机器上有GPU的话。

建立分配者:

$ bazel build //dist:dist_zero_model_server

dist_zero_model_server在分布式工作器上运行,每个GPU运行一个。

$ CUDA_VISIBLE_DEVICES={gpu} bazel-bin/dist/dist_zero_model_server --server_address="0.0.0.0:{port}" --logtostderr

ip:port在配置文件中填充工作人员(etc/mcts_dist.conf是32位工作人员的示例配置),然后运行分布式主服务器:

$ bazel-bin/mcts/mcts_main --config_path=etc/{config} --gtp --logtostderr --v=1

在macOS上

注意:自1.2.0起,Tensorflow停止在macOS上提供GPU支持,因此您只能在macOS中的CPU上运行。

要求和建设

与Linux相同

运行

添加libtensorflow_framework.so到LD_LIBRARY_PATH第一个:

$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:{project_root}/bazel-bin/external/org_tensorflow/tensorflow"

其余步骤应与Linux相同。

在Windows上

这项工作正在进行。

配置指南

以下是配置文件中的一些重要选项:

  • num_eval_threads:应该等于GPU的数量
  • num_search_threads:应该大于 num_eval_threads * eval_batch_size
  • timeout_ms_per_step:每一步移动将花费多少时间
  • max_simulations_per_step:每次移动会做多少次模拟
  • gpu_list:使用哪个GPU,用逗号分隔
  • model_config -> train_dir:存储经过培训的网络的目录
  • model_config -> checkpoint_path:使用哪个检查点,train_dir/checkpoint如果没有设置,则从中获取
  • model_config -> enable_tensorrt:使用TensorRT或不使用
  • model_config -> tensorrt_model_path:如果使用哪个TensorRT模型 enable_tensorrt
  • max_search_tree_size:树节点的最大数量,改变它取决于内存大小
  • max_children_per_node:每个节点的最大孩子数量,取决于内存大小
  • enable_background_search:思考对手的时间
  • early_stoptimeout_ms_per_step如果结果不会再改变,则genmove可能会返回
  • unstable_overtimetimeout_ms_per_step * time_factor如果结果仍然不稳定,请多考虑一下
  • behind_overtimetimeout_ms_per_step * time_factor如果胜利率小于,就多想想act_threshold

分配模式的选项:

  • enable_dist:启用分配模式
  • dist_svr_addrsip:port分布式工人,多行,ip:port每行一行
  • dist_config -> timeout_ms:RPC超时

异步分配模式的选项:

异步模式用于有大量分布式工作人员(超过200人),这需要太多的eval线程和同步模式下的搜索线程。etc/mcts_async_dist.conf是256名工作人员的示例配置。

  • enable_async:启用异步模式
  • enable_dist:启用分配模式
  • dist_svr_addrs:多行,ip:port每行的逗号分隔列表
  • num_eval_threads:应该等于dist_svr_addrs行数
  • eval_task_queue_size:取决于分销人员的数量
  • num_search_threads:取决于分销人员的数量

mcts/mcts_config.proto获取更多配置选项。

命令行选项

mcts_main 接受来自命令行的选项:

  • --config_path:配置文件的路径
  • --gtp:作为GTP引擎运行,如果禁用,则仅下一步移动
  • --init_moves:在棋盘上进行初始移动
  • --gpu_listgpu_list在配置文件中覆盖
  • --listen_port:使用--gtpTCP协议在端口上运行gtp引擎
  • --allow_ip:使用--listen_port,允许连接的客户端IP列表
  • --fork_per_request:使用--listen_port,为每个请求分配或不分配

Glog选项也受支持:

  • --logtostderr:将消息记录到stderr
  • --log_dir:登录到此目录中的文件
  • --minloglevel:日志级别,0 – INFO,1 – 警告,2 – 错误
  • --v:详细日志,--v=1用于打开某些调试日志,--v=0关闭

mcts_main --help 获取更多命令行选项。

本文转自ATYUN人工智能媒体平台,原文链接:腾讯开源围棋AI程序PhoenixGo,复现AlphaGo Zero

更多推荐

Petuum:分布式深度学习、机器学习与GPU

5G,大数据,区块链…扒一扒《长安十二时辰》里的黑科技

为你的Jupyter Notebooks注入一剂强心针

欢迎关注ATYUN官方公众号,商务合作及内容投稿请联系邮箱:bd@atyun.com

腾讯开源围棋AI程序PhoenixGo,复现AlphaGo Zero相关推荐

  1. 围棋 android 开源,腾讯正式开源围棋AI技术PhoenixGo

    PingWest 品玩 5 月 11 日消息,微信团队研发的 PhoenixGo 正式开源,这也是国内第一个开源的围棋 AI 项目.PhoenixGo 是腾讯微信翻译团队开发的人工智能围棋程序,旨在学 ...

  2. 【镜像复现】开源围棋AI—— ikataGo 快速复现教程

    iKataGo 快速复现教程 01 镜像详情 镜像简介: 极链AI云内置iKatago专用卡塔狗围棋AI服务器端,各种主流配置显卡V100.3080.2080ti单卡到8卡多种组合,创建实例一键启动调 ...

  3. php围棋源码,腾讯围棋AI技术 PhoenixGo 正式开源,源码、模型全公开

    5 月 11 日,腾讯微信团队研发的 PhoenixGo 正式开源,这也是国内第一个开源的围棋 AI 项目. PhoenixGo 是腾讯微信翻译团队开发的人工智能围棋程序,旨在学习人工智能前沿技术.从 ...

  4. 腾讯围棋AI技术PhoenixGo正式开源 1

    5月11日,微信团队研发的PhoenixGo正式开源,这也是国内第一个开源的围棋AI项目. PhoenixGo是腾讯微信翻译团队开发的人工智能围棋程序,旨在学习人工智能前沿技术.从1月底开始,Phoe ...

  5. 围棋 android 开源,开源围棋AI项目RN围棋

    更多:开源围棋- RN围棋 https://github.com/zakki/Ray 喜欢围棋编程的朋友,可以看看.C++源码. 这也是能在个人电脑上跑的围棋AI https://github.com ...

  6. 12种编程语言训练,开源的AI “程序员”来了,CMU出品

    点击上方"CSDN精品课",选择"置顶公众号" 第一时间获取精品编程教程 在自然语言处理领域,常用语言模型(LMs)可以实现为字符(tokens)序列分配概率. ...

  7. 腾讯围棋AI绝艺战胜DeepZenGo又夺一冠

    问耕 发自 凹非寺 量子位 出品 | 公众号 QbitAI 昨天,2017围棋AI龙星战在日本秋叶原落幕. 在终极对决中,来自腾讯的围棋AI绝艺执白战胜日本的DeepZenGo夺得冠军.同样来自中国的 ...

  8. 围棋棋盘怎么编程python_python实现围棋ai

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 腾讯野狐围棋上经常有直播讲解,和电视节目讲解有所不同,解说会搬出绝艺(腾讯出品的 ...

  9. Katago+Sabaki个人围棋AI工具安装配置

    作为亲身经历第一届中日围棋擂台赛的菜鸟老棋迷和1995年拥有第一台自己电脑的IT从业人员,AlphaGo出现后经历了两年多的震惊.关注.学习.羡慕,直到出现了Leela和Katago等开源围棋AI,终 ...

  10. Linux安装围棋AI(q5go和katago)

    最近一个多月开始学习围棋,因为平时常用的系统是Linux,所以想要在Linux上安装一个围棋AI,可以借助AI分析棋局.经过一番查找,决定使用q5go和katago,安装还是挺复杂的,特地记录(/摸鱼 ...

最新文章

  1. 如果现在只能用汇编和 Goto 编程......
  2. idea如何打war包?(部署tomcat后具有class文件)
  3. canvas 将图形设置为button_将Excel设置为存放文件的文件夹:自动提醒直观摘要免压缩发微信...
  4. centos编译安装python_centos编译安装python3.6.4
  5. tomcat(10)安全性
  6. LaTeX indicator function
  7. 李开复老师的《给中国学生的第一封信——从诚信谈起》
  8. csdn中让图片居中
  9. SQL最全基础教程(有本事别看啊!)
  10. 投票群体案例介绍(36)
  11. 【LCD1602----LiquidCrystal库的使用1
  12. 内核仿阿里巴巴小说网站源码 PC端+WAP端
  13. Python 思维锻炼
  14. Cisco防火墙概述和产品线
  15. ACI注册国际心理师/营养师1903期考场规则及注意事项
  16. 1.Android系统源代码目录与系统目录
  17. linux dns主配置文件,RHEL 5下DNS的主配置文件详解
  18. dhl寄件邮编错了_如果从国外邮寄DHL往中国.邮编怎么写?
  19. cgb2111-day02
  20. 至少8位密码,包括大写、小写、数字、特殊字符中的三种即可(一般强密码规则)

热门文章

  1. python 提取代码中的所有汉字
  2. db2数据库基础知识
  3. Java调用cplex求解泊位分配模型_CPLEX约束问题
  4. 深入浅出 Python Iterators 迭代器
  5. CAD工程制图软件中洁具图库的使用
  6. 产品配件类目税目分类_商品及税收分类编码选择技巧
  7. 【ML经典书籍系列1】解读PRML
  8. 小米路由器r3gv2/r4a Lean的OpenWrt固件
  9. Quartus II 15详细安装教程
  10. 超精华的unity2d同屏显示9千人,看完还怕学不会?