KataGo是由David J. Wu(lightvector)所研究並開發的一套圍棋軟體。
簡介
KataGo是David J. Wu依照DeepMind的AlphaGo Zero與AlphaZero論文為基礎[6],以及許多在DeepMind論文之後的相關研究及原創的研究,大幅改善了訓練速度(超過50倍[7]:1)[1],也因此搭配所釋出訓練網路資料,成為目前世界上最強的電腦圍棋軟體之一。
KataGo所實做的電腦圍棋程式包括了[1]:
另外由Jane Street Capital(作者所在的公司)提供運算所需資源外,也公開釋出訓練的成果(訓練網路資料)[1]。
KataGo因豐富的分析能力,被用在圍棋線上分析網站AI Sensei作為預設的分析引擎[8]。
“KataGo”这个名字来源于日语单词“かた (kata)”(类型)[9]。目前,即使在英语中,武道的形式也被称为“kata”。作者 lightvector (David J. Wu) 表示,它作为一个通过强化学习永久训练自己并旨在完成自己的形式的人工智能的名称似乎是合理的。
差異
AlphaZero
除了開放原始碼與開放資料以外,KataGo與AlphaZero主要差異在於透過研究大幅降低了初期自我訓練的成本[7],使得一般家用的高階電腦可以在數天內,從零訓練出一個具有中高段水準的業餘高手水準的訓練網路[1]。
Leela Zero
KataGo與Leela Zero的主要差異在於,KataGo的GTP引擎支援了kata-analyze
指令,可以讓前端的程式(像是Lizzie)取得KataGo的目數分析,這可以輔助人類棋手判斷,減輕讓子棋中黑棋不會下出最好的選擇的問題[1]。
另外一個差異是KataGo同時支援OpenCL(自v1.2
支援[10])與CUDA[1](在OpenCL上,最新版本做了優化,不再是CUDA版本快數倍,而是兩個版本相差無幾),但Leela Zero只支援OpenCL[11]。
強度
第一個版本
第一個版本(編號g65,v1.0
)是在2019年二月使用35顆NVIDIA Tesla V100訓練7天,從6 blocks x 96 filters訓練到15 blocks x 192 filters[12],棋力大約與LZ130(Leela Zero的第130代)相符[13],大約是超越人類的強度[1]。
權重代號 |
版本 |
註解 |
訓練長度(天) |
Elo
|
b6c96-s103408384-d26419149 |
v1.0 |
6x96權重 |
- |
-
|
b10c128-s101899520-d60734663 |
10x128權重 |
- |
-
|
b15c192-s279618816-d164990022 |
15x192權重 |
- |
-
|
第二個版本
第二個版本(編號g104,v1.1
)是在2019年五月與六月使用28顆NVIDIA Tesla V100訓練,從6 blocks x 96 filters訓練到20 blocks x 256 filters[14],由於大幅改善了超參數(hyperparameters),只使用了3.5天就超越第一版的棋力[1][15],另外引入了LCB(英語:Lower confidence bound)大幅提昇了棋力[15]。最後訓練了19天產生出20 blocks的版本,棋力超越了LZ-ELFv2(ELF OpenGo的v2權重配上Leela Zero的程式),另外與Leela Zero 40 blocks版本的比較,大約落在LZ200的棋力[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
|
第三個版本
第三個版本的訓練一開始使用29個GPU,到第14天後增加為37個GPU,再24天後(38天)增加為47個GPU[1]。
自v1.5.0[16]開始支援純CPU運算(使用Eigen函式庫)。並自v1.8.0版開始支援分散式訓練,允許全球的使用者一起訓練權重。
權重代號 |
版本 |
註解 |
訓練長度(天) |
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
|
相關連結
參考資料
註解
外部連結