全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2018-05-14_业界 | 微信团队开源围棋AI技术PhoenixGo,复现AlphaGo Zero论文

您的位置:首页 >> 新闻 >> 行业资讯

业界 | 微信团队开源围棋AI技术PhoenixGo,复现AlphaGo Zero论文 选自GitHub 机器之心编译 参与:李亚洲、路 本文介绍了腾讯微信翻译团队开源的人工智能围棋项目 PhoenixGo,该项目是对 DeepMind AlphaGo Zero 论文《Mastering the game of Go without human knowledge》的实现。 PhoenixGo 是腾讯微信翻译团队开发的人工智能围棋程序。据介绍,该项目由几名工程师在开发机器翻译引擎之余,基于 AlphaGo Zero 论文实现,做了若干提高训练效率的创新,并利用微信服务器的闲时计算资源进行自我对弈,缓解了 Zero 版本对海量资源的苛刻需求。 4 月底,在 2018 世界人工智能围棋大赛上,PhoenixGo 取得冠军。参赛队伍包括绝艺,LeelaZero、TSGo、石子旋风、Golois,HEROZ Kishi、Baduki 等来自中、日、韩、欧美等国家和地区的人工智能围棋高手。 5 月 11 日,PhoenixGo 在 Github 上正式开源,以下是技术细节: 项目地址:https://github.com/Tencent/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 上 1 要求 支持 C++11 的 GCC; Bazel(0.11.1); (可选)CUDA 和 cuDNN(支持 GPU); (可选)TensorRT(加速 GPU 上的计算,建议使用 3.0.4 版本)。 2 构建 复制库,并进行构建配置: git clone https://github.com/Tencent/PhoenixGo.git cd PhoenixGo ./configure ./configure 将询问 CUDA 和 TensorRT 的安装位置,如果必要指定二者的位置。 然后使用 bazel 进行构建: bazel build //mcts:mcts_main TensorFlow 等依赖项将会自动下载。构建过程可能需要很长时间。 3 运行 下载和提取训练好的网络: 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} 即可。 你可以按照此说明更改配置文件:https://github.com/Tencent/PhoenixGo#configure-guide 4 分布模式 如果不同的机器上有 GPU,PhoenixGo 支持分布式 worker。 构建分布式 worker: bazel build //dist:dist_zero_model_server 在分布式 worker 上运行 dist_zero_model_server,每个 worker 对应一个 GPU: CUDA_VISIBLE_DEVICES={gpu} bazel-bin/dist/dist_zero_model_server --server_address="0.0.0.0:{port}" --logtostderr 在 config 文件中填充 worker 的 ip:port(etc/mcts_dist.conf 是 32 个 worker 的配置示例),并运行分布式 master: bazel-bin/mcts/mcts_main --config_path=etc/{config} --gtp --logtostderr --v=1 在macOS 上 注意:TensorFlow 在 1.2.0 版本之后停止支持macOS 上的 GPU,因此在macOS 上的操作只能在 CPU 上运行。 1 要求 & 构建 同 Linux。 2 运行 首先添加libtensorflow_framework.so 到LD_LIBRARY_PATH 中: $ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:{project_root}/bazel-bin/external/org_tensorflow/tensorflow" 在 Windows 上 正在进行。 配置指南 以下是 config 文件中的一些重要选项: 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:如果 enable_tensorrt,使用哪个 TensorRT 模型; max_search_tree_size:树节点的最大数量,根据存储容量进行更改; max_children_per_node:每个节点的子节点的最大数量,根据存储容量进行更改; enable_background_search:在对手下棋的时候思考; early_stop:如果结果不再更改,则 genmove 可能在 timeout_ms_per_step 之前返回; unstable_overtime:如果结果仍然不稳定,则更多地考虑 timeout_ms_per_step * time_factor; behind_overtime:如果赢率低于 act_threshold,则更多地考虑 timeout_ms_per_step * time_factor。 分布模式的选项: enable_dist:启动分布模式; dist_svr_addrs:分布式 worker 的 ip:port,多条线,每条线中有一个 ip:port; dist_config - timeout_ms:RPC 超时。 async 分布模式的选项: Async 模式是在有大量分布式 worker 的时候使用的(多余 200),而在 sync 模式中需要过多的 eval 线程和搜索线程。 etc/mcts_async_dist.conf 是 256 个 worker 模式的 config 示例。 enable_async:开启 async 模式 enable_dist:开启分布模式 dist_svr_addrs:每个命令行 ip:port 的多行、用逗号分开的列表 eval_task_queue_size:根据分布 worker 的数量调整 num_search_threads:根据分布式 worker 的数量调整 参看 mcts/mcts_config.proto 更详细的了解 config 选项。 命令行选项 mcts_main 接受以下命令行选项: --config_path:配置文件路径; --gtp:作为 GTP 引擎来运行,如果禁用,则只能进行 genmove; --init_moves:围棋棋盘上最初的落子; --gpu_list:覆写配置文件中的 gpu_list; --listen_port:与 --gtp 一起使用,在 TCP 协议端口上运行 gtp 引擎; --allow_ip:与 --listen_port 一起使用,是允许连接的客户端 ip 列表; --fork_per_request:与 --listen_port 一起使用,表示是否 fork 每个请求。 Glog 选项还支持: --logtostderr:向 stderr 写入日志消息; --log_dir:向该文件夹中的文件写入日志消息; --minloglevel:记录级别:0 - INFO、1 - WARNING、2 - ERROR; --v:详细记录,--v=1 即记录调试日志,--v=0 即关闭记录。 mcts_main --help 支持更多命令行选项。 本文为机器之心编译,转载请联系本公众号获得授权。 ?------------------------------------------------ 加入机器之心(全职记者/实习生):hr@jiqizhixin.com 投稿或寻求报道:content@jiqizhixin.com 广告&商务合作:bd@jiqizhixin.com

上一篇:2023-03-28_播客仍在“自娱自乐“ 下一篇:2021-05-31_北大数学系「扫地僧」韦东奕爆红!拒绝哈佛offer,留任北大

TAG标签:

15
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价