原作者 | Gian-Carlo Pascutto |
---|---|
開發者 | Gian-Carlo Pascutto |
首次发布 | 2017年10月26日 |
当前版本 |
|
源代码库 | github |
编程语言 | C++ |
类型 | 電腦圍棋 |
许可协议 | GPLv3 |
网站 | github |
原作者 | Jonathan Roy |
---|---|
開發者 | Jonathan Roy |
首次发布 | 2018年1月14日 |
源代码库 | github |
编程语言 | Node.js |
类型 | 電腦圍棋 |
许可协议 | AGPLv3 |
网站 | zero |
Leela Zero是由比利時程式設計師Gian-Carlo Pascutto起頭所開發的電腦圍棋軟體,以及相關的運算計畫。專案在2021年2月15日已經中止,並推薦改參與SAI與KataGo[2]。
Leela Zero是依照DeepMind在科學期刊《自然》上對於AlphaGo Zero所發表的論文《Mastering the game of Go without human knowledge[3]》所實做出的開源電腦圍棋程式[4],也就是不使用人類棋譜與累積的圍棋知識,僅實做圍棋規則,使用單一類神經網路從自我對弈中學習(不像AlphaGo以人類角度思考,設計了Policy Network與Value Network)。
軟體使用蒙特卡洛树搜索(MCTS)模擬與ResNet[4],在蒙特卡洛树搜索模擬與自我訓練時都採用Tromp–Taylor規則[5],這個規則的貼目雖然與中國規則相同,都是由黑棋貼7.5目,但在某些情境下可能會有差異。
程式碼部份,用戶端對弈的程式碼與訓練的程式碼以GPLv3授權公開[4],分散式運算的伺服器端程式則以AGPLv3授權公開[6];資料的部份,訓練對弈資料[7]以及訓練對弈的原始資料[8]也可以公開下載[註 1]。
初期時Leela Zero在確認演算法以及程式是否實做正確,所以對論文裡提到的部份參數進行調整,以加快驗證速度:
這些調整是希望在比較小的網路與訓練盤數下快速確認程式的正確性[5]。在每個階段確認沒有重大問題以及bug後會重新評估調昇,並且正式公開向社群尋求運算資源[5]。
另外作者發現在原論文裡有瑕疵:論文裡的第一層輸入只有17個,會導致白棋較容易看到棋盤邊緣(指類神經網路),這在Leela Zero內被修正為18個[4]。
早期Leela Zero剛出來時,Gian-Carlo Pascutto的目標是重製AlphaGo Zero的論文結果[4][14]。在後來受到更多關注後,有更多的計算資源與人力投入Leela Zero計畫之中,使得Leela Zero的強度迅速提昇,甚至已經超越先前開發的Leela以及其他對手[14]。
現在的目標是希望在行動電話上也能夠有足夠強的圍棋軟體可以使用[14]。
由於作者估算以當時的高階硬體(以Nvidia的GeForce GTX 1080 Ti估算)大約需要1700年的計算量才能達到AlphaGo Zero自我學習2900萬盤的水平[15],所以在2017年十一月開始,讓自願者使用自己的硬體,透過作者群開發的AutoGTP程式參加分散式運算計畫(以GTP自動與伺服器溝通以取得計算工作)[7]:
2018年初,志願者申請到超級電腦的部份計算資源,印第安纳大学的Big Red II(申請到3360 cores,約該台超級電腦的10.7%資源)[16][17][註 2],另外自0.10版支援純CPU版本(不需GPU),現有演算法的最佳化以及新演算法的引入,這些因素大幅提昇了整體的計算速度。
Leela Zero官方曾鼓勵參與者使用Google Colaboratory所提供的免費運算資源幫助訓練[18],但後來因為文件裡的操作步驟過時而失效而移除文件[19]。
在2019年十一月時,由於Gian-Carlo Pascutto個人時間的限制,加上最近的50萬盤沒有推進,而且其他的專案有不錯的前景(包括SAI與KataGo),宣佈先將訓練盤數加到75萬盤以確認是否到了極限,並暫定於2020年1月31日結束這次長達兩年的訓練[20]。
Minigo同樣也是依照AlphaGo Zero論文所獨立實做出來的軟體[21],而Minigo專案取得Google贊助的計算資源[21],透過大量計算資源得到品質還不錯的訓練網路資料。因此Leela Zero的團隊與Minigo的團隊基於雙方的經驗,討論參數的調整能帶來的改善,以及雙方訓練資料共用的可能性[22]。
ELF OpenGo是Facebook依照AlphaGo Zero與AlphaZero所實做出來的軟體[23],由於Facebook使用大量資源運算(使用2000顆GPU計算兩週)並公開訓練網路資料,Leela Zero團隊得以將資料轉換為Leela Zero可以使用的格式(Hash值為62b5417b
[7]),並進行分析。
Leela Zero後來決定將ELF OpenGo的資料混入自我對弈,在2018年5月7日後引入了ELF OpenGo的資料[24][25]。
在CGOS(英語:Computer Go Server)上會有志願者將每次演化的版本掛上進行測試(19x19)[26]以比較與其他圍棋軟體的差距。
程式名稱會以LZ
或LeelaZero
之類的名稱命名。大致上有幾個不同的版本,像是使用訓練網路的Hash值為名(如LZ-d6f3a6-t1-p1600
[27]),或是使用訓練世代的次數為名(如LZ-000-p1600-t1-r1
[28])。
有幾個特別的訓練網路不是自我訓練產生,而是透過人類頂尖棋手的對弈棋譜產生,用以作為階段性的指標。
名為LZ-HBest1-t1-p1600
[29][註 3]的帳號是使用Leela Zero的程式加上以人類棋譜計算出的20 blocks x 256 filters訓練網路[31]所產生的的版本[32](BayesElo約2650分[33])。
另一個帳號是LZH256x20-t4-nolim
[34],也是使用20 blocks x 256 filters訓練網路,但以CGOS的時間限制,找出Leela Zero的程式與人類棋譜訓練的網路可以達到的最高成績(BayesElo約3610分[33])。
另外由於CGOS可以任意註冊名稱,有些人會拿較強的軟體摸魚混珠(而非使用Leela Zero),因此CGOS上面的數據需要確認後才有參考價值[35]。在CGOS上測試比較完整的基準參數是t1-p1600
(Thread 1、Playouts 1600),但目前(2018年四月)已暫時沒有使用這個參數測試訓練網路:
LZ-c99f1a-t1-p1600
[36](第36代,約136萬盤訓練)的BayesElo分數約1830分[33],超越CGOS的分數基準GNU Go(1800分),不過此時對GNU Go的勝率還不高。LZ-097dee-t1-p1600
[37](第41代,約146萬盤訓練)後可以穩定對GNU Go獲勝。此時BayesElo分數約2000分[33]。LZ-c83e1b-t1-p1600
[38](第57代,約266萬盤訓練)的BayesElo分數約2480分[33],這是最後一個5 blocks x 64 filters的版本。LZ-ed002c-t1-p1600
[39](第58代,約286萬盤訓練)的BayesElo分數約2460分[33],這是第一個6 blocks x 128 filters的版本。LZ-5773f4-t1-p1600
[40](第65代,約314萬盤訓練)的BayesElo分數約2670分[33],是第一個在相同執行參數下,超越以人類棋譜訓練出的版本(即LZ-HBest1-t1-p1600
[29]的2650分)。2017年12月16日,贴吧上的志願者以alphaleela
的帳號在野狐圍棋上開始測試,以快棋對弈為主,並隨時更新為最新版的訓練網路。於2017年12月30日(約150萬盤訓練)從級位升到一段,在2018年3月8日(約497萬盤訓練)升到九段[41]。
leelazeroserver"
的参考文献提供内容