KataGo
原作者 | David J. Wu[1] |
---|---|
開發者 | David J. Wu |
初始版本 | 2019年2月27日[2] |
穩定版本 | 1.8.0 (2021年1月14日[2]) |
源代码库 | github |
编程语言 | C++、Python |
类型 | 電腦圍棋 |
许可协议 | MIT許可證 |
网站 | github |
原作者 | David J. Wu and Tycho Tatitscheff[3] |
---|---|
開發者 | David J. Wu and Tycho Tatitscheff |
初始版本 | 2020年11月8日[4] |
穩定版本 | v0.9 (2020年12月14日[5]) |
源代码库 | github |
编程语言 | Python |
类型 | 電腦圍棋 |
许可协议 | MIT許可證 |
网站 | katagotraining |
KataGo是由David J. Wu(lightvector)所研究並開發的一套圍棋軟體。
簡介
KataGo是David J. Wu依照DeepMind的AlphaGo Zero與AlphaZero論文為基礎[6],以及許多在DeepMind論文之後的相關研究及原創的研究,大幅改善了訓練速度(超過50倍[7]:1)[1],也因此搭配所釋出訓練網路資料,成為目前世界上最強的電腦圍棋軟體之一。
KataGo所實做的電腦圍棋程式包括了[1]:
- 自我對弈訓練的程式(使用C++、Python 3與TensorFlow實做)
- 可以透過軟體操作的GTP引擎(使用C++實做)
另外由Jane Street Capital(作者所在的公司)提供運算所需資源外,也公開釋出訓練的成果(訓練網路資料)[1]。
KataGo因豐富的分析能力,被用在圍棋線上分析網站AI Sensei作為預設的分析引擎[8]。
差異
強度
第一個版本
權重代號 | 版本 | 註解 | 訓練長度(天) | Elo |
---|---|---|---|---|
b6c96-s103408384-d26419149 | v1.0 | 6x96權重 | - | - |
b10c128-s101899520-d60734663 | 10x128權重 | - | - | |
b15c192-s279618816-d164990022 | 15x192權重 | - | - |
第一個版本(編號g65,v1.0
)是在2019年二月使用35顆NVIDIA Tesla V100訓練7天,從6 blocks x 96 filters訓練到15 blocks x 192 filters[11],棋力大約與LZ130(Leela Zero的第130代)相符[12],大約是超越人類的強度[1]。
第二個版本
權重代號 | 版本 | 註解 | 訓練長度(天) | Elo |
---|---|---|---|---|
g104-b6c96-s97778688-d23397744 | v1.1 | 最後一個6x96權重 | 0.75 | -1146 |
g104-b10c128-s110887936-d54937276 | 最後一個10x128權重 | 1.75 | -476 | |
g104-b15c192-s297383936-d140330251 | 最後一個15x192權重 | 7.5 | 327 | |
g104-b20c256-s447913472-d241840887 | 最後一個20x256權重 | 19 | 908 |
第二個版本(編號g104,v1.1
)是在2019年五月與六月使用28顆NVIDIA Tesla V100訓練,從6 blocks x 96 filters訓練到20 blocks x 256 filters[13],由於大幅改善了超參數(),只使用了3.5天就超越第一版的棋力[1][14],另外引入了LCB(英語:)大幅提昇了棋力[14]。最後訓練了19天產生出20 blocks的版本,棋力超越了LZ-ELFv2(ELF OpenGo的v2權重配上Leela Zero的程式),另外與Leela Zero 40 blocks版本的比較,大約落在LZ200的棋力[1]。
第三個版本
權重代號 | 版本 | 註解 | 訓練長度(天) | Elo |
---|---|---|---|---|
g170-b6c96-s175395328-d26788732 | 最後一個6x96的權重 | 0.75 | -1184 | |
g170-b10c128-s197428736-d67404019 | 最後一個10x128的權重 | 1.75 | -280 | |
g170e-b10c128-s1141046784-d204142634 | v1.3 | 延伸再訓練10x128的權重 | - | 300 |
g170-b20c256x2-s668214784-d222255714 | 20x256的權重 | 15.5 | 959 | |
g170-b15c192-s497233664-d149638345 | 15x192的權重 | 7.5 | 512 | |
g170-b20c256x2-s1039565568-d285739972 | v1.3.1 | 20x256的權重 | 21.5 | 1073 |
g170e-b15c192-s1305382144-d335919935 | v1.3.1-nets | 延伸訓練15x192的權重 | - | 867 |
g170-b20c256x2-s1420141824-d350969033 | 20x256的權重 | 27.5 | 1176 | |
g170e-b15c192-s1672170752-d466197061 | v1.3.2 | 延伸訓練15x192的權重 | - | 935 |
g170-b20c256x2-s1913382912-d435450331 | 20x256的權重 | 35.5 | 1269 | |
g170-b20c256x2-s2107843328-d468617949 | 20x256的權重 | 38.5 | 1293 | |
g170e-b20c256x2-s2430231552-d525879064 | v1.3.3 | 20x256的權重 | 47.5 | 1346 |
g170-b30c320x2-s1287828224-d525929064 | 30x320的權重 | 47.5 | 1412 | |
g170-b40c256x2-s1349368064-d524332537 | 40x256的權重 | 47 | 1406 | |
g170e-b20c256x2-s2971705856-d633407024 | v1.3.3-nets | 20x256的權重 | 64.5 | 1413 |
g170-b30c320x2-s1840604672-d633482024 | 30x320的權重 | 1524 | ||
g170-b40c256x2-s1929311744-d633132024 | 40x256的權重 | 1510 | ||
g170e-b20c256x2-s3354994176-d716845198 | v1.3.4 | 20x256的權重 | 78 | 1455 |
g170-b30c320x2-s2271129088-d716970897 | 30x320的權重 | 1551 | ||
g170-b40c256x2-s2383550464-d716628997 | 40x256的權重 | 1554 | ||
g170e-b20c256x2-s3761649408-d809581368 | v1.3.5-nets | 20x256的權重 | 92 | 1513 |
g170-b30c320x2-s2846858752-d829865719 | 30x320的權重 | 96 | 1619 | |
g170-b40c256x2-s2990766336-d830712531 | 40x256的權重 | 1613 | ||
g170e-b20c256x2-s4384473088-d968438914 | v1.4.0 | 20x256的權重 | 117 | 1529 |
g170-b30c320x2-s3530176512-d968463914 | 30x320的權重 | 1643 | ||
g170-b40c256x2-s3708042240-d967973220 | 40x256的權重 | 1687 | ||
g170e-b20c256x2-s4667204096-d1045479207 | 20x256的權重(實驗性) | 129 | 1561 | |
g170-b30c320x2-s3910534144-d1045712926 | 30x320的權重(實驗性) | 1651 | ||
g170-b40c256x2-s4120339456-d1045882697 | 40x256的權重(實驗性) | 1698 | ||
g170e-b20c256x2-s4842585088-d1091433838 | 20x256的權重(實驗性) | 136.5 | 1547 | |
g170-b30c320x2-s4141693952-d1091071549 | 30x320的權重(實驗性) | 1653 | ||
g170-b40c256x2-s4368856832-d1091190099 | 40x256的權重(實驗性) | 1680 | ||
g170e-b20c256x2-s5055114240-d1149032340 | v1.4.2-nets | 20x256的權重(實驗性[註 1]) | 145.5 | 1539 |
g170-b30c320x2-s4432082944-d1149895217 | 30x320的權重(實驗性[註 1]) | 1648 | ||
g170-b40c256x2-s4679779328-d1149909226 | 40x256的權重(實驗性[註 1]) | 1690 | ||
g170e-b20c256x2-s5132547840-d1177695086 | 20x256的權重 | 150 | 1577 | |
g170-b30c320x2-s4574191104-d1178681586 | 30x320的權重 | 1759 | ||
g170-b40c256x2-s4833666560-d1179059206 | 40x256的權重 | 1788 | ||
g170e-b20c256x2-s5303129600-d1228401921 | v1.4.5 | 20x256的權重 | 157 | 1645 |
g170-b30c320x2-s4824661760-d1229536699 | 30x320的權重 | 1908 | ||
g170-b40c256x2-s5095420928-d1229425124 | 40x256的權重 | 1919 |
第三個版本的訓練一開始使用29個GPU,到第14天後增加為37個GPU,再24天後(38天)增加為47個GPU[1]。
自v1.5.0[16]開始支援純CPU運算(使用Eigen函式庫)。並自v1.8.0版開始支援分佈式訓練,允許全球的用家訓練為作者訓練權重。
相關連結
- AlphaGo Zero
- AlphaZero
- SAI,修改自Leela Zero,支援動態貼目的圍棋軟體。
- 计算机围棋
- 圍棋軟體
參考資料
- . [2020-01-01]. (原始内容存档于2021-01-14).
- . [2020-01-01]. (原始内容存档于2021-01-26) (英语).
- . [2021-01-14]. (原始内容存档于2020-11-19).
- . [2021-01-14]. (原始内容存档于2020-11-19) (英语).
- . [2020-01-14]. (原始内容存档于2020-11-19) (英语).
- . 2019-02-28 [2020-01-01]. (原始内容存档于2020-11-07) (英语).
- David J. Wu. . 2020. arXiv:1902.10565v4 [cs.LG].
- . [2020-01-14]. (原始内容存档于2020-10-30) (英语).
- . 2019-07-20 [2020-05-12]. (原始内容存档于2020-10-30) (英语).
- . [2020-01-02]. (原始内容存档于2021-01-06) (英语).
- . [2020-01-01]. (原始内容存档于2020-01-01).
- . 2019-02-27 [2020-01-14]. (原始内容存档于2020-10-30) (英语).
- . [2020-01-01]. (原始内容存档于2020-01-01).
- . 2019-06-18 [2020-01-14]. (原始内容存档于2020-10-30) (英语).
- . 2020-06-06 [2020-06-07]. (原始内容存档于2020-10-30) (英语).
- . 2020-08-02 [2020-08-26]. (原始内容存档于2020-10-30) (英语).
註解
- 實驗性質,加入了人類的棋譜,未必會比v1.4.0所提供的網路強。[15]
外部連結
- 官方网站 (英文)
- 分散式訓練網站 (英文)
- katago-public 页面存档备份,存于,訓練的資料與訓練出來的網路。
- Accelerating Self-Play Learning in Go 页面存档备份,存于,KataGo研究所寫下的論文。