0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

騰訊微信翻譯團隊開源的人工智能圍棋項目 PhoenixGo

MqC7_CAAI_1981 ? 來源:未知 ? 作者:李倩 ? 2018-05-15 11:29 ? 次閱讀

本文介紹了騰訊微信翻譯團隊開源的人工智能圍棋項目 PhoenixGo,該項目是對 DeepMindAlphaGo Zero論文《Mastering the game of Go without human knowledge》的實現(xiàn)。

PhoenixGo 是騰訊微信翻譯團隊開發(fā)的人工智能圍棋程序。據(jù)介紹,該項目由幾名工程師在開發(fā)機器翻譯引擎之余,基于 AlphaGo Zero 論文實現(xiàn),做了若干提高訓(xùn)練效率的創(chuàng)新,并利用微信服務(wù)器的閑時計算資源進行自我對弈,緩解了 Zero 版本對海量資源的苛刻需求。

4 月底,在 2018 世界人工智能圍棋大賽上,PhoenixGo 取得冠軍。參賽隊伍包括絕藝,LeelaZero、TSGo、石子旋風、Golois,HEROZ Kishi、Baduki 等來自中、日、韓、歐美等國家和地區(qū)的人工智能圍棋高手。

5 月 11 日,PhoenixGo 在 Github 上正式開源,以下是技術(shù)細節(jié):

如果你在研究中使用 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}}}

構(gòu)建和運行

Linux

1 要求

支持 C++11 的 GCC;

Bazel(0.11.1);

(可選)CUDA 和 cuDNN(支持 GPU);

(可選)TensorRT(加速 GPU 上的計算,建議使用 3.0.4 版本)。

2 構(gòu)建

復(fù)制庫,并進行構(gòu)建配置:

git clone https://github.com/Tencent/PhoenixGo.gitcd PhoenixGo./configure

./configure 將詢問 CUDA 和 TensorRT 的安裝位置,如果必要指定二者的位置。

然后使用 bazel 進行構(gòu)建:

bazel build //mcts:mcts_main

TensorFlow 等依賴項將會自動下載。構(gòu)建過程可能需要很長時間。

3 運行

下載和提取訓(xùn)練好的網(wǎng)絡(luò)

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 的數(shù)量和是否使用 TensorRT):

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

該引擎支持 GTP 協(xié)議,這意味著它可以和具備 GTP 能力的 GUI 一起使用,如 Sabaki。

--logtostderr 使 mcts_main 向 stderr 寫入日志消息,如果你想將消息寫入文件,將 --logtostderr 改成 --log_dir={log_dir} 即可。

你可以按照此說明更改配置文件:https://github.com/Tencent/PhoenixGo#configure-guide

4 分布模式

如果不同的機器上有 GPU,PhoenixGo 支持分布式 worker。

構(gòu)建分布式 worker:

bazel build //dist:dist_zero_model_server

在分布式 worker 上運行 dist_zero_model_server,每個 worker 對應(yīng)一個 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 要求 & 構(gòu)建

同 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:應(yīng)與 GPU 的數(shù)量一致;

num_search_threads:應(yīng)比 num_eval_threads * eval_batch_size 大一些;

timeout_ms_per_step:每步使用的時間;

max_simulations_per_step:每步要做多少模擬

gpu_list:使用哪塊 GPU,用逗號隔開;

model_config -> train_dir:訓(xùn)練好的網(wǎng)絡(luò)的存儲目錄;

model_config -> checkpoint_path:使用哪個檢查點,如果沒設(shè)定,則從 train_dir/checkpoint 中獲取;

model_config -> enable_tensorrt:是否使用 TensorRT;

model_config -> tensorrt_model_path:如果 enable_tensorrt,使用哪個 TensorRT 模型;

max_search_tree_size:樹節(jié)點的最大數(shù)量,根據(jù)存儲容量進行更改;

max_children_per_node:每個節(jié)點的子節(jié)點的最大數(shù)量,根據(jù)存儲容量進行更改;

enable_background_search:在對手下棋的時候思考;

early_stop:如果結(jié)果不再更改,則 genmove 可能在 timeout_ms_per_step 之前返回;

unstable_overtime:如果結(jié)果仍然不穩(wěn)定,則更多地考慮 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:根據(jù)分布 worker 的數(shù)量調(diào)整

num_search_threads:根據(jù)分布式 worker 的數(shù)量調(diào)整

參看 mcts/mcts_config.proto 更詳細的了解 config 選項。

命令行選項

mcts_main 接受以下命令行選項:

--config_path:配置文件路徑;

--gtp:作為 GTP 引擎來運行,如果禁用,則只能進行 genmove;

--init_moves:圍棋棋盤上最初的落子;

--gpu_list:覆寫配置文件中的 gpu_list;

--listen_port:與 --gtp 一起使用,在 TCP 協(xié)議端口上運行 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 即記錄調(diào)試日志,--v=0 即關(guān)閉記錄。

mcts_main --help 支持更多命令行選項。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1789

    文章

    46652

    瀏覽量

    237064
  • 機器翻譯
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    14862
  • 微信
    +關(guān)注

    關(guān)注

    6

    文章

    509

    瀏覽量

    26482

原文標題:業(yè)界 | 微信團隊開源圍棋AI技術(shù)PhoenixGo,復(fù)現(xiàn)AlphaGo Zero論文

文章出處:【微信號:CAAI-1981,微信公眾號:中國人工智能學(xué)會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    人工智能是什么?

    。 說了那么多關(guān)于人工智能機器人的發(fā)展,我們來看看當前市面上可以看到的落地化機器人有哪些?,如:法國的人形機器人NAO,軟銀公司的帶有情緒的機器人Pepper等等,大家會發(fā)現(xiàn),這些機器人的硬件都做
    發(fā)表于 09-16 15:40

    人工智能技術(shù)—AI

      人工智能技術(shù)的概念從出來到現(xiàn)在已經(jīng)有很多年的歷史了,其實所謂的人工智能技術(shù)本身就是一種模擬人類大腦的思考方式的一種技術(shù),它的英文簡稱是AI技術(shù),在西方國家,人工智能技術(shù)被認為是計算機技術(shù)
    發(fā)表于 10-21 12:03

    人工智能VS圍棋名將李世石,誰會贏?

    上來看比國際象棋更復(fù)雜,而復(fù)雜程度要高出多個數(shù)量級。此外,這也被認為是全球最古老、最困難的棋類游戲。 另一方面,DeepMind團隊開發(fā)的人工智能系統(tǒng)AlphaGo通過自學(xué)掌握了圍棋技巧。通過深度學(xué)習(xí)和
    發(fā)表于 03-07 10:53

    人工智能--失業(yè)將是人類面臨的最大挑戰(zhàn)

    以前總覺得類似機器人可能會奪走人類的工作,甚至?xí)刂迫祟悾罱K奪取這個星球等議論,只是科幻迷們的自娛自樂,離現(xiàn)實還很遙遠,但在圍棋高手李世石和AlphaGo人機大戰(zhàn)中失??;日本開發(fā)的人工智能會寫小說
    發(fā)表于 06-27 11:06

    "星陣"大勝柯潔 中國人工智能的崛起之路

    ,只是輸給了無數(shù)的棋手,以及研究人工智能的科學(xué)家、工程師的集合體。值得注意的是,與柯潔對弈的圍棋人工智能機器人"星陣",是由中國人工智能
    發(fā)表于 04-29 22:05

    “洗牌”當前 人工智能企業(yè)如何延續(xù)熱度?

    在少數(shù)的企業(yè)身上,強者恒強、弱者淘汰的局面已經(jīng)形成。此外,截然不同的是,上至***機構(gòu)下至平民百姓,對當下的人工智能項目不再盲目追捧,而是提出異議和擔憂。9月20日,知乎用戶質(zhì)疑科大訊飛翻譯技術(shù)“造假
    發(fā)表于 11-07 11:49

    解讀人工智能的未來

    `已歷經(jīng)60多年的人工智能在物聯(lián)網(wǎng)以及大數(shù)據(jù)的推動下,實現(xiàn)飛躍式的發(fā)展,并且迎來了第三個黃金周期。必優(yōu)傳感今天和大家解讀一下關(guān)于人工智能的未來。自從有了人工智能,引發(fā)了人類的各種“未來論”。有人說
    發(fā)表于 11-14 10:43

    優(yōu)必選攜手騰瑪人工智能探索:AI智能的未來之路

    輪領(lǐng)投方鼎暉資本也追加投資。騰瑪人工智能的前身是這內(nèi)汽車智能制造的龍頭企業(yè)(東莞市瑞風至有限公司),公司從2004年成立,2010年接觸人工智能行業(yè),2015年成立了人工智能技術(shù)專家
    發(fā)表于 12-21 17:19

    什么是基于云計算的人工智能服務(wù)?

    如今,采用人工智能的企業(yè)遇到了一個主要障礙,那就是在內(nèi)部開發(fā)人工智能產(chǎn)品成本高昂,因此有了外包人工智能產(chǎn)品的需求。而對于從中小企業(yè)到預(yù)算受限的大型企業(yè)來說,通過云計算來采用人工智能的成
    發(fā)表于 09-11 11:51

    路徑規(guī)劃用到的人工智能技術(shù)

    路徑規(guī)劃用到的人工智能技術(shù)二 人工智能編程語言/數(shù)據(jù)結(jié)構(gòu)與算法三 人工智能基礎(chǔ)原理四 智能信息獲?。ê喎Q爬蟲) 與數(shù)據(jù)分析1、發(fā)起請求3、解析內(nèi)容4、保存數(shù)據(jù)二、Requests庫介紹
    發(fā)表于 07-20 06:53

    人工智能芯片是人工智能發(fā)展的

    人工智能芯片是人工智能發(fā)展的 | 特倫斯謝諾夫斯基責編 | 屠敏本文內(nèi)容經(jīng)授權(quán)摘自《深度學(xué)習(xí) 智能時代的核心驅(qū)動力量》從AlphaGo的人機對戰(zhàn),到無人駕駛汽車的上路,再到AI合成主播
    發(fā)表于 07-27 07:02

    一文看懂人工智能語音芯片 精選資料分享

    以來,谷歌、百度、阿里、騰訊等互聯(lián)網(wǎng)巨頭以及多家知名的風險投資基金瘋狂涌入人工智能行業(yè),大力推動各初創(chuàng)算法(方案)公司在多個應(yīng)用領(lǐng)域商業(yè)化落地。隨著人工智能在視覺識別...
    發(fā)表于 07-29 08:42

    《移動終端人工智能技術(shù)與應(yīng)用開發(fā)》人工智能的發(fā)展與AI技術(shù)的進步

    ,隨機森林,K-均值算法,支持向量機和人工神經(jīng)網(wǎng)絡(luò)等等。在應(yīng)用方面表現(xiàn)也異常突出,目前89%的人工智能專利申請和40%人工智能范圍相關(guān)專利都屬于機器學(xué)習(xí)的范疇,可見機器學(xué)習(xí)的時代化進程多么迅速。歸結(jié)到
    發(fā)表于 02-17 11:00

    騰訊AI Lab打造的騰訊輔助翻譯,探索人工智能賦能翻譯行業(yè)新思路

    深圳 - 騰訊AI Lab今日發(fā)布了一款A(yù)I輔助翻譯產(chǎn)品 - “騰訊輔助翻譯”(Transmart),可滿足用戶快速翻譯的需求,用AI輔助
    的頭像 發(fā)表于 11-16 17:04 ?4388次閱讀

    騰訊推出人工智能輔助翻譯 實現(xiàn)實時交互式翻譯

    Lab官方介紹,“騰訊輔助翻譯”采用自研的人機交互式機器翻譯技術(shù),融合神經(jīng)網(wǎng)絡(luò)機器翻譯、統(tǒng)計機器翻譯
    發(fā)表于 11-26 20:55 ?620次閱讀