0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

腾讯微信翻译团队开源的人工智能围棋项目 PhoenixGo

MqC7_CAAI_1981 来源:未知 作者:李倩 2018-05-15 11:29 次阅读

本文介绍了腾讯微信翻译团队开源的人工智能围棋项目 PhoenixGo,该项目是对 DeepMindAlphaGo 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 上正式开源,以下是技术细节:

如果你在研究中使用 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.gitcd 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.gztar xv*** 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 支持更多命令行选项。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1776

    文章

    43824

    浏览量

    230584
  • 机器翻译
    +关注

    关注

    0

    文章

    138

    浏览量

    14793
  • 微信
    +关注

    关注

    6

    文章

    508

    浏览量

    26077

原文标题:业界 | 微信团队开源围棋AI技术PhoenixGo,复现AlphaGo Zero论文

文章出处:【微信号:CAAI-1981,微信公众号:中国人工智能学会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人工智能是什么?

    。 说了那么多关于人工智能机器人的发展,我们来看看当前市面上可以看到的落地化机器人有哪些?,如:法国的人形机器人NAO,软银公司的带有情绪的机器人Pepper等等,大家会发现,这些机器人的硬件都做
    发表于 09-16 15:40

    人工智能技术—AI

      人工智能技术的概念从出来到现在已经有很多年的历史了,其实所谓的人工智能技术本身就是一种模拟人类大脑的思考方式的一种技术,它的英文简称是AI技术,在西方国家,人工智能技术被认为是计算机技术
    发表于 10-21 12:03

    人工智能VS围棋名将李世石,谁会赢?

    上来看比国际象棋更复杂,而复杂程度要高出多个数量级。此外,这也被认为是全球最古老、最困难的棋类游戏。 另一方面,DeepMind团队开发的人工智能系统AlphaGo通过自学掌握了围棋技巧。通过深度学习和
    发表于 03-07 10:53

    人工智能--失业将是人类面临的最大挑战

    以前总觉得类似机器人可能会夺走人类的工作,甚至会控制人类,最终夺取这个星球等议论,只是科幻迷们的自娱自乐,离现实还很遥远,但在围棋高手李世石和AlphaGo人机大战中失败;日本开发的人工智能会写小说
    发表于 06-27 11:06

    "星阵"大胜柯洁 中国人工智能的崛起之路

    ,只是输给了无数的棋手,以及研究人工智能的科学家、工程师的集合体。值得注意的是,与柯洁对弈的围棋人工智能机器人"星阵",是由中国人工智能
    发表于 04-29 22:05

    “洗牌”当前 人工智能企业如何延续热度?

    在少数的企业身上,强者恒强、弱者淘汰的局面已经形成。此外,截然不同的是,上至***机构下至平民百姓,对当下的人工智能项目不再盲目追捧,而是提出异议和担忧。9月20日,知乎用户质疑科大讯飞翻译技术“造假
    发表于 11-07 11:49

    解读人工智能的未来

    `已历经60多年的人工智能在物联网以及大数据的推动下,实现飞跃式的发展,并且迎来了第三个黄金周期。必优传感今天和大家解读一下关于人工智能的未来。自从有了人工智能,引发了人类的各种“未来论”。有人说
    发表于 11-14 10:43

    优必选携手腾玛人工智能探索:AI智能的未来之路

    轮领投方鼎晖资本也追加投资。腾玛人工智能的前身是这内汽车智能制造的龙头企业(东莞市瑞风至有限公司),公司从2004年成立,2010年接触人工智能行业,2015年成立了人工智能技术专家
    发表于 12-21 17:19

    【2019人工智能大会】大咖齐聚,共同探讨加速人工智能技术落地

    ```▌活动背景随着包括谷歌、脸书、微软、亚马逊以及百度在内的巨头相继入局,人工智能已经开启它庞大的市场机遇。2017 年,针对人工智能企业的投资金额为 754 亿元,到了 2018 上半年投资
    发表于 01-21 17:20

    什么是基于云计算的人工智能服务?

    如今,采用人工智能的企业遇到了一个主要障碍,那就是在内部开发人工智能产品成本高昂,因此有了外包人工智能产品的需求。而对于从中小企业到预算受限的大型企业来说,通过云计算来采用人工智能的成
    发表于 09-11 11:51

    路径规划用到的人工智能技术

    路径规划用到的人工智能技术二 人工智能编程语言/数据结构与算法三 人工智能基础原理四 智能信息获取(简称爬虫) 与数据分析1、发起请求3、解析内容4、保存数据二、Requests库介绍
    发表于 07-20 06:53

    人工智能芯片是人工智能发展的

    人工智能芯片是人工智能发展的 | 特伦斯谢诺夫斯基责编 | 屠敏本文内容经授权摘自《深度学习 智能时代的核心驱动力量》从AlphaGo的人机对战,到无人驾驶汽车的上路,再到AI合成主播
    发表于 07-27 07:02

    一文看懂人工智能语音芯片 精选资料分享

    以来,谷歌、百度、阿里、腾讯等互联网巨头以及多家知名的风险投资基金疯狂涌入人工智能行业,大力推动各初创算法(方案)公司在多个应用领域商业化落地。随着人工智能在视觉识别...
    发表于 07-29 08:42

    《移动终端人工智能技术与应用开发》人工智能的发展与AI技术的进步

    ,随机森林,K-均值算法,支持向量机和人工神经网络等等。在应用方面表现也异常突出,目前89%的人工智能专利申请和40%人工智能范围相关专利都属于机器学习的范畴,可见机器学习的时代化进程多么迅速。归结到
    发表于 02-17 11:00

    腾讯AI Lab打造的腾讯辅助翻译,探索人工智能赋能翻译行业新思路

    深圳 - 腾讯AI Lab今日发布了一款AI辅助翻译产品 - “腾讯辅助翻译”(Transmart),可满足用户快速翻译的需求,用AI辅助
    的头像 发表于 11-16 17:04 4144次阅读