Leela Zero是由比利时程序员Gian-Carlo Pascutto(英语:Gian-Carlo Pascutto)起头所开发的电脑围棋软件,以及相关的运算项目。项目在2021年2月15日已经中止,并推荐改参与SAI与KataGo。
Leela Zero是依照DeepMind在科学期刊《自然》上对于AlphaGo Zero所发表的论文《Mastering the game of Go without human knowledge》所实做出的开源电脑围棋程序,也就是不使用人类棋谱与累积的围棋知识,仅实做围棋规则,使用单一人工神經网络从自我对弈中学习(不像AlphaGo以人类角度思考,设计了Policy Network与Value Network)。
软件使用蒙特卡洛树搜索(MCTS)模拟与ResNet(英语:ResNet),在蒙特卡洛树搜索模拟与自我训练时都采用Tromp–Taylor规则,这个规则的贴目虽然与中国规则相同,都是由黑棋贴7.5目,但在某些情境下可能会有差异。
代码部分,客户端对弈的代码与训练的代码以GPLv3授权公开,分布式运算的服务端程序则以AGPLv3授权公开;资料的部分,训练对弈资料以及训练对弈的原始资料也可以公开下载。
初期时Leela Zero在确认算法以及程序是否实做正确,所以对论文里提到的部分参数进行调整,以加快验证速度:
这些调整是希望在比较小的网络与训练盘数下快速确认程序的正确性。在每个阶段确认没有重大问题以及bug后会重新评估调昇,并且正式公开向社群寻求运算资源。
另外作者发现在原论文里有瑕疵:论文里的第一层输入只有17个,会导致白棋较容易看到棋盘边缘(指人工神經网络),这在Leela Zero内被修正为18个。
早期Leela Zero刚出来时,Gian-Carlo Pascutto的目标是重制AlphaGo Zero的论文结果。在后来受到更多关注后,有更多的计算资源与人力投入Leela Zero项目之中,使得Leela Zero的强度迅速提升,甚至已经超越先前开发的Leela以及其他对手。
现在的目标是希望在移动电话上也能够有足够强的围棋软件可以使用。
由于作者估算以当时的高阶硬件(以Nvidia的GeForce GTX 1080 Ti估算)大约需要1700年的计算量才能达到AlphaGo Zero自我学习2900万盘的水平,所以在2017年十一月开始,让自愿者使用自己的硬件,透过作者群开发的AutoGTP程序参加分布式运算项目(以GTP自动与服务器沟通以获取计算工作):
2018年初,志愿者申请到超级电脑的部分计算资源,印第安纳大学的Big Red II(申请到3360 cores,约该台超级电脑的10.7%资源),另外自0.10版支持纯CPU版本(不需GPU),现有算法的优化以及新算法的引入,这些因素大幅提升了整体的计算速度。
Leela Zero官方曾鼓励参与者使用Google Colaboratory所提供的免费运算资源帮助训练,但后来因为文件里的操作步骤过时而失效而移除文件。
在2019年十一月时,由于Gian-Carlo Pascutto(英语:Gian-Carlo Pascutto)个人时间的限制,加上最近的50万盘没有推进,而且其他的项目有不错的前景(包括SAI与KataGo),宣布先将训练盘数加到75万盘以确认是否到了极限,并暂定于2020年1月31日结束这次长达两年的训练。
Minigo同样也是依照AlphaGo Zero论文所独立实做出来的软件,而Minigo项目获取Google赞助的计算资源,透过大量计算资源得到质量还不错的训练网络资料。因此Leela Zero的团队与Minigo的团队基于双方的经验,讨论参数的调整能带来的改善,以及双方训练资料共享的可能性。
ELF OpenGo是Facebook依照AlphaGo Zero与AlphaZero所实做出来的软件,由于Facebook使用大量资源运算(使用2000颗GPU计算两周)并公开训练网络资料,Leela Zero团队得以将资料转换为Leela Zero可以使用的格式(Hash值为62b5417b
),并进行分析。
Leela Zero后来决定将ELF OpenGo的资料混入自我对弈,在2018年5月7日后引入了ELF OpenGo的资料。
在CGOS(英语:Computer Go Server)上会有志愿者将每次演化的版本挂上进行测试(19x19)以比较与其他围棋软件的差距。
程序名称会以LZ
或LeelaZero
之类的名称命名。大致上有几个不同的版本,像是使用训练网络的Hash值为名(如LZ-d6f3a6-t1-p1600
),或是使用训练世代的次数为名(如LZ-000-p1600-t1-r1
)。
有几个特别的训练网络不是自我训练产生,而是透过人类顶尖棋手的对弈棋谱产生,用以作为阶段性的指针。
名为LZ-HBest1-t1-p1600
的账号是使用Leela Zero的程序加上以人类棋谱计算出的20 blocks x 256 filters训练网络所产生的的版本(BayesElo约2650分)。
另一个账号是LZH256x20-t4-nolim
,也是使用20 blocks x 256 filters训练网络,但以CGOS的时间限制,找出Leela Zero的程序与人类棋谱训练的网络可以达到的最高成绩(BayesElo约3610分)。
另外由于CGOS可以任意注册名称,有些人会拿较强的软件摸鱼混珠(而非使用Leela Zero),因此CGOS上面的数据需要确认后才有参考价值。在CGOS上测试比较完整的基准参数是t1-p1600
(Thread 1、Playouts 1600),但目前(2018年四月)已暂时没有使用这个参数测试训练网络:
2017年12月16日,贴吧上的志愿者以alphaleela
的账号在野狐围棋上开始测试,以快棋对弈为主,并随时更新为最新版的训练网络。于2017年12月30日(约150万盘训练)从级位升到一段,在2018年3月8日(约497万盘训练)升到九段。
在预赛获取第三名,仅输给PhoenixGo与绝艺。