Leela Zero
作者 | Gian-Carlo Pascutto |
---|---|
開発元 | Gian-Carlo Pascutto |
初版 | 2017年10月25日 |
最新版 |
0.17
/ 2019年4月4日 |
リポジトリ | |
種別 | コンピュータ囲碁 |
ライセンス | GPL-3.0 |
公式サイト |
zero |
作者 | Jonathan Roy |
---|---|
開発元 | Jonathan Roy |
初版 | 2018年1月14日 |
リポジトリ |
github |
プログラミング 言語 | Node.js |
種別 | コンピュータ囲碁 |
ライセンス | AGPL-v3 |
公式サイト |
zero |
Leela Zero(リーラ・ゼロ)は2017年10月25日にリリースされたフリーソフトウェアのコンピュータ囲碁プログラム。チェスエンジンSjengと囲碁ソフトLeelaを開発したベルギーのプログラマー、ジャン=カーロ・パスクットが開発した[1][2][3][4][5]。
概要
[編集]Leela Zeroの思考アルゴリズムは、DeepMindのAlphaGo Zeroに関する2017年の論文に基づいて作られた[3][6]。オリジナルの(Zeroではない)Leelaには多くの定石などの人間による知識やヒューリスティクスがプログラムに書き込まれているのとは異なり、Leela Zeroには囲碁の基本的なルールだけがプログラムされた。Leela Zeroはニューラルネットワークをもち、過去に対局した結果から学習することによって強化された[7]。
Leela Zeroは、自身のWebサイトで調整された分散型の協力によって強化された。コミュニティのメンバーは、計算資源を提供してクライアントプログラムを実行した。クライアントでは自己対戦の対局を行い、結果は新しいニューラルネットの強化に使用された。通常、500以上のクライアントがサーバーに接続して計算資源を提供した[7]。コミュニティは、高品質のプログラムコードの開発にも貢献していた[7]。
Leela Zeroは、2018年4月28日に中国福建省福州で開催された「貝瑞基因杯2018世界人工知能囲棋大戦」(贝瑞基因杯2018世界人工智能围棋大赛)で3位となった[8]。2018年末の雑誌ザ・ニューヨーカーは、LeelaとLeela Zeroを「世界で最も成功しているオープンソースの囲碁エンジン」と評した[9]。
2018年の初頭に、別のチームが同じコードベースからLeela Chess Zeroを分岐させ、チェスのゲームに適用されたAlphaZero論文の方法を検証した。AlphaZeroではGoogleのTPU(テンソル・プロセッシング・ユニット)が使用されていたが、Leela Chess ZeroではクラウドによるインフラストラクチャとOpenCLライブラリを介してGPUを使用する手法に置き換えられた。それでも、AlphaZero論文においてチェスのために必要だったという数十時間の訓練を補うためには、Leela Chess Zeroではクラウドによる1年のトレーニングが必要になると予想された[10]。
2021年2月15日にLeela Zeroの分散トレーニングが終了した。プロジェクト終了に伴い、サーバーも閉鎖した。
AlphaGo Zero論文との差異
[編集]強化学習の初期の段階では、Leela Zeroのアルゴリズムとプログラムが正しく機能するかどうかの確認のため、検証を高速化するために、AlphaGo Zero論文に記載されているいくつかのパラメータを調整していた[11]。
- ニューラルネットワークの構造
- AlphaGo Zeroでは256種類のフィルターで20ブロックまたは40ブロックのCNN(畳み込みニューラルネットワーク)が使われていた[12][13]。
- Leela Zeroはニューラルネットワークのサイズを徐々に拡大した(ニューラルネットワークを変更する際に、Net2Netで変換が行われた[14])。
- 1 ブロック x 8種類のフィルター(2017年11月10日,#0) から始まり
- 4 ブロック x 32種類のフィルター(2017年11月17日,#2,強化学習約1.9万局)、
- 5 ブロック x 64種類のフィルター(2017年11月21日,#5,約13.7万局)、
- 6 ブロック x 128種類のフィルター(2018年1月20日,#58、約286万局)、
- 10 ブロック x 128種類のフィルター(2018年3月5日,#92、約481万局)、
- 15 ブロック x 192種類のフィルター(2018年4月9日,#117、約664万局)、
- 20 ブロック x 256種類のフィルター(2018年7月28日,#158、約872万局) のフィルターが今まで使用された
- 40 ブロック x 256種類のフィルター(2018年9月4日,#174、約997万局)[15]。
- 強化学習のための自己対局の局数
- AlphaGo Zeroは自己対局を50万局行っていた[13]。
- Leela Zeroでは10ブロックより前では直近の25万局の結果が使われていた(2018年3月4日以前)[16](2018年1月1日以前はバグの為、16万局の結果のみの使用[17]),10ブロックx 128種類のフィルター以降は直近の50万局の結果が使われている[18]。
- モンテカルロ木探索(MCTS)シミュレーションの数
- AlphaGo Zeroが論文で自己訓練や正式な対局の際には、一手ごとに1600回のシミュレーションが行われる[13]。
- Leela Zeroでは当初はAlphaGo Zeroと同様に1600回のシミュレーションだったがのちに、3200回のシミュレーションに変更された[19]。
作者は元のAlphaGo Zero論文に欠陥があることを発見した。論文の最初の入力は17チャネルだったが、白番が碁盤の端を認識しやすくするために、Leela Zeroで18に修正されている[20]。
目標
[編集]Leela Zeroの最初の目標は、AlphaGo Zeroの論文の結果を再現することだった。後に注目を集めた後、より多くのコンピューティングリソースと人材がLeela Zeroプロジェクトに投資され、Leela Zeroの強さは急速に増加し、以前に開発されたLeelaや他の囲碁ソフトを上回った[20][21][21]。
2018年5月のインタビューで作者のGian-Carlo Pascuttoは携帯電話で使用できる強力な囲碁ソフトウェアを作ることと答えている[21]。
強化学習
[編集]作者は、開発開始当時のハイエンドPCで使われていたのハードウェア(NvidiaのGeForce GTX 1080 Ti)を使った場合、AlphaGo Zero自己学習レベル2900万局を達成するのに約1700年かかると予測していたため[22]、2017年11月から、有志者が各自のハードウェアを使用して、作者グループが開発した「AutoGTP」プログラムを通じて分散コンピューティングのプロジェクトに参加する仕組みになった(GTPを使用して学習結果をサーバーと自動的に通信する)[15]。
- プロジェクトの開始から34日後(2017年12月13日),強化学習のための自己対局が100万局を超えた。
- 59日後(2018年1月8日)、200万局を超えた。
- 74日後(2018年1月23日)、300万局を超えた。
- 100日後(2018年2月18日)、400万局を超えた。
- 119日後(2018年3月9日)、500万局を超えた。
- 138日後(2018年3月28日)、600万局を超えた。
- 166日後(2018年4月25日)、700万局を超えた。
- 218日後(2018年6月16日)、800万局を超えた。
- 261日後(2018年7月29日)、900万局を超えた。
- 299日後(2018年9月5日)、1000万局を超えた。
2018年の初めに、ボランティアはインディアナ大学のスーパーコンピューターのBig Red IIのコンピューティングリソースの利用を申請した(スーパーコンピューターの約10.7%を占める3360コアを使用)[23][24][注 1]。
Leela Zeroバージョン0.10以降は、GPUが不要な純粋なCPUバージョン、既存のアルゴリズムの最適化、および新しいアルゴリズムの導入がサポートされ、全体的な計算速度を大幅に向上された。
他の囲碁AIとの協業
[編集]Minigo
[編集]MinigoもLeela Zeroと同樣にAlphaGo Zeroの論文をもとに作られたソフトウェアであり[25]、Googleの援助により計算資源を得て[25]、それをもとに多くの学習結果を得た。こうしたことから、Leela ZeroとMinigoのそれぞれの開発チームは学習結果や学習によるパラメータなどのノウハウの共有についての議論を行った[26]。
ELF OpenGo
[編集]ELF OpenGoは、AlphaGo ZeroとAlphaZeroの論文をもとにFacebookが実装したソフトウェアで[27]、Facebookは豊富な計算資源を使用し(2000 GPUを2週間使用)、学習結果を公開。Leela Zero開発チームはELF OpenGoの学習データをLeela Zero用に変換した(ハッシュ値が62b5417b
[15])。
Leela Zeroその後、ELF OpenGoの学習データを取り込むことを決め、2018年5月7日に実際に取り込んだ[28][29]。
成績
[編集]CGOS
[編集]CGOS(英語: Computer Go Server)で、有志者がバージョンアップごとに登録を行い、他の囲碁AIとの棋力の比較が行なわれている[30]。
登録名
[編集]CGOSでの登録名はLZ
やLeelaZero
を頭文字にした名前がつけられている。その後にハッシュ値(例えばLZ-d6f3a6-t1-p1600
[31])や学習回数(LZ-000-p1600-t1-r1
[32])などにちなんだ名前が付けられることが多い。
特例
[編集]自己対戦ではなく、人間の棋譜を元に学習されたニューラルネットワークを使った思考エンジンが登録されている。
登録名LZ-HBest1-t1-p1600
[33][注 2]のアカウントは人間の棋譜で学習した思考エンジンとなっている(20 ブロック x 256種類のフィルター[35])[36](イロレーティングは約2650[37])。
もう一つの登録名はLZH256x20-t4-nolim
[38]で、20 ブロック x 256種類のフィルターは前出のものと同じだが、CGOSの時間制限を考慮した作りになっている(イロレーティングは約3610[37])。
CGOSでの成績
[編集]CGOSでは誰でも自由に名前を登録できるので、「なりすまし」での登録もある(LZの名で登録されているが中身はLeela Zeroではない)[39]。CGOSでは測定のためにt1-p1600
(1スレッド、1600回のプレイアウト)が使われていたが、2018年4月時点ではこのパラメータでの学習は行なわれていない:
- 登録名
LZ-c99f1a-t1-p1600
[40](#36、約136万局の強化学習)ではイロレーティング約1830[37]、CGOSでのGNU Go(1800)のイロレーティングは超えたものの、GNU Goとの直接の対局での勝率は高くなかった。 - 登録名
LZ-097dee-t1-p1600
[41](#41、約146万局の強化学習)GNU Goとの直接の対局ではほぼ勝利し、イロレーティング約1830約2000になった[37]。 - 登録名
LZ-c83e1b-t1-p1600
[42](#57、約266万局の強化学習)でのイロレーティングは約2480[37]に到達。このバージョンは、5ブロック x 64種類のフィルターを使用した最後のバージョン。 - 登録名
LZ-ed002c-t1-p1600
[43](#58、約286万局の強化学習)でのイロレーティングは約2460[37]。このバージョンは、6ブロック x 128種類のフィルターを使用した最初のバージョン。 - 登録名
LZ-5773f4-t1-p1600
[44](#65、約314万局の強化学習)でのイロレーティングは約2670[37]。人間の棋譜で学習した思考エンジン(LZ-HBest1-t1-p1600
[33]、2650)のイロレーティングを超えた。
野狐囲碁
[編集]2017年12月16日、有志者が野狐囲碁に登録名alphaleela
で登録を行った。2017年12月30日(約150万局の強化学習)で級位から初段に上がり、2018年3月8日(約497150万局の強化学習)では九段に到達した[45]。
2018貝瑞基因杯2018世界人工知能囲棋大戦
[編集]貝瑞基因杯2018世界人工知能囲棋大戦では絶芸、PhoenixGoに次いで3位となった[46]。
脚注
[編集]注釈
[編集]- ^ この時5 ブロック x 64種類のフィルターが使用されており、1時間あたり1500局だったものが、およそ倍の3000局に増えた。
- ^ ハッシュ値は「1e2b85cf611d5ede3f8d77ddc56a7bd79a7f1e51a647ddea428b92c00fdf2612」[34]であり「1e2b85cf」として登録もされている[15]。
出典
[編集]- ^ “Feature: One man's Go program looks to remake AlphaGo Zero - and beyond”. 新華社 (2018年4月9日). 2018年4月28日閲覧。[リンク切れ]
- ^ “围棋AI"丽拉"获赞接近职业棋手水准,它的作者竟是一个不太会下棋的程序员” (中国語). 新華社 (2018年2月5日). 2018年4月27日閲覧。
- ^ a b “更开放,更共享,比利时围棋AI“丽拉·元”重塑“阿尔法元”” (中国語). 新華社 (2018年4月8日). 2018年4月27日閲覧。[リンク切れ]
- ^ “프로 수준급 인공지능 바둑 프로그램 ‘릴라(Leela)’ 무료 공개” (Korean). Baduk News (2017年2月23日). 2018年4月27日閲覧。
- ^ “릴라의 출현과 온라인 대국의 비극적인 종말...” (Korean). Cyberoro (2017年3月3日). 2018年4月27日閲覧。
- ^ MaxVanDijck. “Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper.”. GitHub. leela-zero/leela-zero. 2018年4月27日閲覧。
- ^ a b c “Gian-Carlo Pascutto - The man behind LeelaZero”. European Go Federation (2018年5月24日). 2018年5月27日閲覧。
- ^ “世界AI大赛决赛腾讯内战 凤凰2-1绝艺夺冠” (中国語). sina.com.cn (2018年4月28日). 2018年4月28日閲覧。
- ^ “How the Artificial-Intelligence Program AlphaZero Mastered Its Games”. The New Yorker. (2018年12月31日) 2022年1月12日閲覧。
- ^ “Leela Chess Zero: AlphaZero for the PC”. Chess News (2018年4月26日). 2018年6月11日閲覧。
- ^ “Frequently Asked Questions about Leela Zero” (英語). 2017年12月18日閲覧。
- ^ “アルファ碁ゼロに使われているディープラーニングを解き明かす 論文から詳細を紹介”. Codezine. 2019年10月21日閲覧。
- ^ a b c “Mastering the game of Go without human knowledge” (英語). 自然 (期刊) (2017年10月18日). 2017年12月18日閲覧。
- ^ “net2net by Ttl · Pull Request #704 · leela-zero/leela-zero” (英語). 2019年4月6日閲覧。
- ^ a b c d “Leela Zero”. 2017年12月18日閲覧。
- ^ “Is Leelaz trained off all the the games, or just the more recent ones? · Issue #484 · gcp/leela-zero” (英語) (2017年12月24日). 2017年12月27日閲覧。
- ^ “How to find Information about the new best network · Issue #78 · gcp/leela-zero” (英語) (2018年1月1日). 2018年1月3日閲覧。
- ^ “128x10 transition (6615567e) · Issue #965 · gcp/leela-zero” (英語). 2018年4月2日閲覧。
- ^ “Update benchmark to -v3200. · gcp/leela-zero@bce0e3d” (英語) (2018年3月13日). 2018年4月11日閲覧。
- ^ a b “gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper.” (英語). 2017年12月18日閲覧。
- ^ a b c “Gian-Carlo Pascutto - The man behind LeelaZero”. European Go Federation (2018年5月24日). 2018年6月2日閲覧。
- ^ “Zero performance” (英語) (2017年10月20日). 2017年12月18日閲覧。
- ^ “feature request: upload games when time limit is reached · Issue #563 · gcp/leela-zero” (英語). 2018年1月8日閲覧。
- ^ “Big Red II - Cray XK7 , Opteron 6276 16C 2.300GHz, Cray Gemini interconnect, NVIDIA K20 | TOP500 Supercomputer Sites” (英語). 2018年1月8日閲覧。
- ^ a b “tensorflow/minigo: An open-source implementation of the AlphaGoZero algorithm” (英語). 2018年2月2日閲覧。
- ^ “Ideas from Minigo · Issue #785 · gcp/leela-zero” (英語). 2018年2月2日閲覧。
- ^ “ELF | Game Research Platform | Facebook AI” (英語). 2018年5月6日閲覧。
- ^ “Facebook open sources elf opengo · Issue #1311 · gcp/leela-zero” (英語) (2018年5月3日). 2018年5月16日閲覧。
- ^ “two best networks in ten hours, is it related with ELF games? · Issue #1362 · gcp/leela-zero” (英語). 2018年5月8日閲覧。
- ^ “(CGOS) 19x19 Computer Go Server” (英語). 2017年12月20日閲覧。
- ^ “Crosstable for LZ-d6f3a6-t1-p1600” (英語) (2018年2月9日). 2018年2月25日閲覧。
- ^ “Crosstable for LZ-000-p1600-t1-r1” (英語). 2018年2月25日閲覧。
- ^ a b “Crosstable for LZ-HBest1-t1-p1600” (英語). 2017年12月20日閲覧。
- ^ “Version 0.10 released - Next steps · Issue #591 · gcp/leela-zero” (英語). 2018年1月14日閲覧。
- ^ “Question: Is there a way to generate up to date ("stronger"?) weights.txt? · Issue #794 · gcp/leela-zero” (英語). 2018年2月2日閲覧。
- ^ “LZ-HBest1-t1-p1600 -- human supervised learning network on CGOS : cbaduk” (英語) (2017年12月17日). 2017年12月20日閲覧。
- ^ a b c d e f g “19x19 All Time Ranks” (英語). 2018年2月2日閲覧。
- ^ “Crosstable for LZH256x20-t4-nolim” (英語) (2018年2月19日). 2018年3月14日閲覧。
- ^ “Who's running bad LZ bots on CGOS? : cbaduk” (英語). 2018年1月5日閲覧。
- ^ “Crosstable for LZ-c99f1a-t1-p1600” (英語) (2017年12月26日). 2018年1月9日閲覧。
- ^ “Crosstable for LZ-097dee-t1-p1600” (英語) (2017年12月31日). 2018年1月1日閲覧。
- ^ “Crosstable for LZ-c83e1b-t1-p1600” (英語) (2018年1月19日). 2018年2月2日閲覧。
- ^ “Crosstable for LZ-ed002c-t1-p1600” (英語) (2018年1月22日). 2018年2月2日閲覧。
- ^ “Crosstable for LZ-5773f4-t1-p1600” (英語) (2018年1月28日). 2018年1月29日閲覧。
- ^ “腾讯围棋” (中国語). 2018年3月8日時点のオリジナルよりアーカイブ。2018年3月9日閲覧。
- ^ “贝瑞基因杯机机大战预赛战罢 绝艺五连胜出线” (中国語) (2018年4月27日). 2018年5月13日閲覧。
関連項目
[編集]- Lizzie - 思考エンジンにLeela Zeroを使用したGUIフロントエンド
- Go Text Protocol
外部リンク
[編集]- 公式ウェブサイト(英語)
- Leela Zero on GitHub
- Leela Zero on Sensei's Library
- Play Leela Zero on ZBaduk