KataGo(カタゴ)は、David J. Wu(通称 lightvector)によって開発されたコンピュータ囲碁プログラムである。

概要

DeepMindが発表したAlphaGo ZeroとAlphaZeroの論文に基づいてDavid J. WuがKataGoを作成した。さらに、DeepMindの論文に加え、多くの関連研究と独自の研究の結果、強化学習の速度を大幅に向上させた(50倍以上)。ニューラルネットワークのデータが公開されている、世界で最も強いコンピュータ囲碁ソフトウェアの一つとなった。

KataGoによって実装されたコンピュータ囲碁プログラムには以下が含まれる :

セルフプレイトレーニングプログラム (C++、Python 3、TensorFlowで実装) ソフトウェアで操作できるGTPエンジン(C++で実装)

(作者所属の会社)はトレーニングに必要な計算資源に加えて、トレーニング結果(ニューラルネットワークデータ)も公開している。

KataGoは囲碁AI検討ソフト「Lizzie」の思考エンジンに採用された(2019年10月1日に公開されたLizzieバージョン0.7以降)。

その豊富な分析機能によって、囲碁オンライン分析Webサイト「AI Sensei」でデフォルトの分析エンジンとして使用されている。

"KataGo" という名称は、日本語の「かた(形・型)」に因んでいる。現在は、英語でも武道の形を "kata" という。作者である lightvector (David J. Wu) は、自己の強化学習によって永続的に鍛錬し、独自の形の完成を目指すボットの名称として合理的に思えたと述べている。

差異

AlphaZero

AlphaZeroとの主な違いは、KataGoがオープンソースとオープンデータであることに加えて、強化学習のコストが大幅に削減されたので、自宅のPCでも比較的高いレベルの強化学習が行えることである。数日でアマチュア高段者に到達した。

Leela Zero

LeelaZeroとの主な違いは、KataGoのGTPエンジンが"kata-analyze"コマンドをサポートしていることである。フロントエンドプログラム(Lizzieなど)がKataGoの目数差の分析結果を取得できるので、人間の目数計算と判断の助けになる。LeelaZeroなどに見られる終盤のヨセで損な手を打つ可能性を減らすことができる。

もう一つの違いは、KataGoはOpenCL(v1.2以降でサポート)とCUDAの両方をサポートしていることである(OpenCLの最新版は最適化されており、CUDA版より数倍も高速ということはなく、二つの版はほぼ同じ)。 LeelaZeroはOpenCLだけをサポートしている。

強さ

最初のバージョン 最初のバージョン(番号はg65,v1.0)では、2019年2月に35台のNVIDIA Tesla V100を使用して7日間の強化学習が行われた。6ブロックx96フィルターから15ブロックx192フィルターまでで、棋力はLeelaZeroの(ニューラルネットワークの130番目に相当する)LZ130とほぼ同じになった。これは人間の棋力を既に超えている。

重みコード 版 注釈 訓練日数 Elo b6c96-s103408384-d26419149 v1.0 6x96 - - b10c128-s101899520-d60734663 10x128 - - b15c192-s279618816-d164990022 15x192 - -

2番目のバージョン 2番目のバージョン(番号はg104,v1.1)は、2019年5月から6月に作成された。28台のNVIDIA Tesla V100で、6ブロックx96フィルターから20ブロックx256フィルターまで強化学習が行われた。ハイパーパラメータが大幅に改善されたので、わずか3.5日で最初のバージョンの棋力を超えた。さらに、LCB()の導入によって、棋力が大幅に向上した。 最後に、19日間のトレーニングの後、20ブロック版が作成され、棋力が「LZ-ELFv2」(ELF OpenGoのv2の重みファイルをLeela Zeroで動かしたもの)を上回った。Leela Zeroの40ブロック版と比較すると、LZ200と同等の棋力になった。

重みコード 版 注釈 訓練日数 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

3番目のバージョン 3番目のバージョン(番号はg170,v1.3とv1.4)は、2020年1月から6月にかけて作成された。29GPUで始まり、14日後に37GPUに増加し、24日(合わせて38日)後に47GPUに増加した。

v1.5.0以降、GPUを使用しない純粋なCPUだけでの動作がサポートされた(ライブラリを使用)。また、バージョン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(実験的) 145.5 1539 g170-b30c320x2-s4432082944-d1149895217 30x320(実験的) 1648 g170-b40c256x2-s4679779328-d1149909226 40x256(実験的) 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

関連項目

AlphaGo Zero AlphaZero コンピュータ囲碁 Minigo Leela Zero

脚注

注釈

出典