AlphaZero与Stockfish比赛中使用的硬件


22

我知道AlphaZero必须使用与普通Stockfish不同的硬件。我希望硬件对引擎强度有很大的影响。这就是为什么我想知道是否曾尝试为两者提供可比较的硬件。另外,“可比”在这里意味着什么?

具体来说,我读到人们抱怨:

  • 仅给鱼类提供1 GB的缓存,并且
  • 1分钟/移动的时间限制(这将给Stockfish带来什么不利影响?)

哈希大小,而不是缓存,显然。
Federico Poloni

2
强烈建议在一个技术论坛(例如AI Stack Exchange,可能标题为“ AlphaZero vs.Stockfish比赛中的评估公正性”)中提出这个问题,因为这里的答案并不理想。
Veedrac

Answers:


20

这就是为什么我想知道是否曾尝试为两者提供可比较的硬件。

您正在谈论的是Google!因此,答案显然是“否”。

从用于初始化和培训的原始纸质硬件-

训练从随机初始化的参数开始进行了700,000步(大小为4,096的迷你批次),使用5,000个第一代TPU(15)生成自玩游戏,使用64个第二代TPU训练神经网络。

和用于游戏的硬件-

AlphaZero和以前的AlphaGo Zero使用一台具有4个TPU的机器,Stockfish和Elmo发挥了他们最强的技能,使用64个线程和1GB的哈希值。

因此,AlphaZero使用了Google开发的特殊硬件。它使用专用的Tensor处理器单元(TPU),而不是商用的通用中央处理器(CPU)。

维基百科就是这样描述他们使用的第二代TPU的-

第二代TPU于2017年5月发布。Google表示第一代TPU设计的内存带宽有限,第二代设计中使用16 GB的高带宽内存将带宽提高到600 GB / s,性能提高到45 TFLOPS。然后将TPU安排到4芯片180 TFLOPS模块中

他们在游戏中使用了4个TPU,因此处理能力为180 TFLOPS。注意TFLOPS =每秒1万亿个浮点运算。

作为比较,英特尔最新最强大的芯片是Core i9 Extreme Edition处理器,其时钟频率为1 TFLOP。在游戏机中找到的I7线的顶部通常约为100 GFLOP(即TFLOP的十分之一)。

我认为可以说,相比于Stockfishes鼠标,AlphaZero使用的是800磅重的大猩猩。


1
FLOPS代表每秒的浮点操作。在Stockfish和AlphaZero的核心算法中可能根本不使用浮点算法。因此,FLOPS的数量并不是与象棋引擎相关的处理器速度的有意义的度量。
勒内PIJL

9
相反,我认为神经网络相当广泛地使用浮点算法。(但是您的发言当然很合理,并且适用于鳕鱼。)
Federico Poloni

3
与GPU进行更恰当的比较。NVIDIA Tesla V100的处理能力为120 TFLOPS,而上一代(P100)的处理能力仅为20TFLOPS。CPU的优化性能与处理大量数字的GPU完全不同。
尼克T

12

我认为最好以第二个例子来说明您的第二点,该例子在AlphaZero和Stockfish之间进行,这也满足了我今天的好奇心。

1分钟/移动的时间限制(这将给Stockfish带来什么不利影响?)

Stockfish的性能取决于时间限制硬件配置,因此,想一想当某人将CPU线程加倍时,与第一种配置相比,Stockfish需要更少的时间(不一定是一半)来找到解决方案。

在Chess.com上发布的第一份报告中,有人声称Stockfish表现不佳,因为他无法在计算机上使用相同的Stockfish来再现相同的结果。他说,在下面的位置(第1局–第11步),Stockfish玩了Kg1-h1(移动了国王),这完全没有道理。另一方面,他的计算机上的鳕鱼显示出更发达的动作,例如Be3(移动黑暗方形主教),让我们看一下位置:

比赛第1步11

是的,这是一个被动的举动,看来斯托克菲什应该发挥更大的作用。但是他错了。为什么?因为他跑了Stockfish 15秒钟,而且如果跑了一个小时,他将得到Kg1-h1作为该位置上最佳的移动。当更深入地分析所有可能的移动时,Stockfish会改变其决策。这是我最初在回复中说的

我在该位置上运行了最新的鳕鱼(第11步):

  • 首先,当发动机运转约一分钟时,它将b4作为最佳移动。之后,它决定Be3更好。
  • 但是在运行速度为1400k节点/秒的硬件上运行5分钟后,它将决定选择Kh1作为最佳选择。

  • 在本文中,据说stock鱼每秒计算70,000k位置,并且每移动一分钟运行一次,这大约是我的硬件的50倍,所以我让我的运行50分钟... Kg1-h1仍然是鱼的选择。

时限是关键

在上述情况下,Stockfish是否运行两次,可能并没有多大关系,因为决定是相同的,但是接下来的行动肯定会

在此处输入图片说明

在此位置,Stockfish选择将棋子移到左侧(a4-a5)。假设我有一台计算机,该计算机以每秒1400万个节点的速度运行Stockfish引擎,这比真实游戏中的Stockfish低约50倍(在本文中为70,000kn / s)。因此,如果每次移动50分钟,我就可以模拟游戏。好的。

我在上述位置上进行了Stockfish分析,得到以下结果:

  • Stockfish最初建议采取一些措施,但是在我的计算机上运行6分钟(相当于真实游戏中Stockfish上的7.2秒)后,就像游戏进行时一样,它选择了a4-a5

很好,但是我让它运行了整整50分钟,以便在允许1分钟的游戏中达到Stockfish的计算结果:

可悲的事实是,我相信Stockfish会因为时间限制而输掉所有比赛。随着时间的流逝,Stockfish得到了更深入的搜索和评估,并且在游戏中不允许使用开头的书,这使它不得不考虑浅深度的许多动作。请注意,在实际的a4-a5游戏中,该游戏显示(假设它每秒可以评估7000万个职位),游戏中的Stockfish在移动上花费的时间不超过21.6秒。否则,它将决定更改为实际游戏中的其他三个动作。我的原因仍然不清楚,因为我的Stockfish还消耗更少的内存(假设所有内存都散列表,与原始论文中提到的1GB相比,RAM约为130MB )。


结论

正如我所指出的那样,运行Stockfish的硬件最快比我的快18倍(更新:在单个内核上),这是根据我分析的结果得出的。我不确定AlphaZero是否真的可以在4小时内利用这样的硬件来训练其网络,我只能假设它对于象棋这样的游戏来说太低了。此外,AlphaZero将这些时间花在学习上,其中还包括建立坚实的空缺(并且如论文所指出的,对某些空缺的偏好)。另一方面,Stockfish的开口处有残障,并且每次移动60秒都无法评估每秒7000万个位置。

最后一点,我所说的一切都是基于我的假设。当然,AlphaZero和游戏的结果对我来说非常有趣。但是,我很希望看到Stockfish玩起来就像我在电脑上一样的游戏。就是说,允许更多的时间和一本开始的书。在每一步中获取Stockfish分析的输出也很容易,我希望他们发布它以显示其执行情况。


1
关于时间限制,AlphaZero论文中的图2展示了相反的情况:在可用预算较低的情况下,鳕鱼更好,但缩放比例更差。arxiv.org/pdf/1712.01815.pdf
old-ufo

1
@ old-ufo感谢您指出这一点。正如我所说,Stockfish(和AlphaZero)的性能取决于硬件以及时间限制。例如,如果我们给Stockfish更多硬件(而减少AlphaZero)并重新生成该图形,则可以对其线条进行转换,使其始终保持在AlphaZero线条之上。因此,我认为这是比较两个系统的硬件的好点,这也回答了主要问题。
ReZzT

4

Stockfish的原始作者之一回答了您在此处提到的特定投诉:

同时,Chess.com还收到了Stockfish的原始作者之一Tord Romstad的冗长评论,我们将对其进行完整介绍:

由于时间控制和Stockfish参数设置的选择非常奇怪,因此比赛结果本身并不特别有意义:游戏以固定的1分钟/移动时间进行游戏,这意味着Stockfish不使用其时间管理试探法(为了使Stockfish能够识别游戏中的关键点并决定何时花一些额外的时间进行移动工作,已经付出了很多努力;在每次移动的固定时间,力量将受到极大的影响)。使用的Stockfish版本已有一年的历史,使用的搜索线程数量远远超过任何经过大量测试的数量,并且哈希表的数量对于线程数量而言太小了。我相信,在更加正常的情况下,抽签的百分比会更高。

另一方面,毫无疑问,如果将更多的工作投入到项目中,AlphaZero可能会表现得更好(尽管考虑到所用的大量硬件资源,本文中提到的“ 4小时学习”在很大程度上是误导性的)在这4个小时内)。但是无论如何,Stockfish vs AlphaZero很大程度上是苹果与猩猩的比较。一种是在普通计算机上运行的常规国际象棋程序,另一种是使用根本不同的技术,并且在无法购买的定制设计的硬件上运行(如果有的话,将超出普通用户的预算)。

从另一个角度来看,苹果与猩猩的关系是最令人兴奋的事情:我们现在有两个极其不同的(无论在硬件还是在软件方面)人造物体,它们都具有超人下棋的能力。这比另一个与现有国际象棋程序具有相同功能的国际象棋程序有趣得多。此外,AlphaZero方法对新领域的适应性为未来带来了令人兴奋的可能性。

对于使用计算机国际象棋程序作为工具的国际象棋棋手,这一突破不太可能产生重大影响,至少在短期内是这样,因为缺乏价格合理的合适硬件。

对于国际象棋引擎程序员以及许多其他有趣领域的程序员来说,需要大量硬件资源才能有效运行的机器学习技术的出现让人有些沮丧。几年之内,很可能可以使像AlphaZero这样的象棋程序运行在普通计算机上,但是创建它们所需的硬件资源仍将超出业余爱好者或中等规模公司的预算。由志愿者运行的具有大型分布式计算机网络的开源项目可能可以工作,但是数百种独特的国际象棋引擎(各自具有自己的怪癖和个性)的时代将消失。

资料来源:https : //www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author


2

如果Google的最终目标是构建一个出色的国际象棋引擎,则需要在可比较的硬件上运行,但这并不是真正意义上的国际象棋。国际象棋只是展示AI从头学习复杂任务的能力的便捷方式。如果在Stockfish某种模糊合理的配置下仍能表现良好,请选中此框。

我预计Google团队不会在国际象棋上花费更多的精力;取而代之的是,他们将继续研究AI无法解决的其他问题。


我给+1是因为我有相同的感觉。
SmallChess

听起来很可能,尽管我怀疑他们是否会出版,如果Alphazero仅以很小的幅度损失(这意味着它仍然具有与stock鱼相当的强度)。
user1583209 '17

@ user1583209他们可能会运行很多次,以找出粉碎Stockfish所需的最少学习时间。然后,他们进行了最后的测试并发布了这些结果。
T Scherer

1

访问Talkchess论坛以了解更多信息,在这里您可以找到3000名程序员。这全都是骗局。Alpha使用的硬件比SF,4TPU和64核大30倍。4TPU大约有1000个内核甚至更多。Alpha模拟了开场白,接受了无数顶级通用汽车获奖游戏的训练。SF的哈希值很小。TC固定为每次移动1分钟,这再次不利于SF,SF具有先进的时间管理功能。TPU缺少具有更多内核的SMP低效率,因此硬件优势更大。等等,因此,基本上,这只是Google的巨大宣传st头。目前,Alpha在单核上大约为2800,因此比SF低400 elo,并且在将来不会进步​​很多,因为从现在开始,它将需要无法发现的先进评估。关于4小时问题,哈哈,这是48个小时前,所以现在Alpha的价格是5000 elo?来吧。


5
您似乎相信AlphaZero的功能与Stockfish相同,只是速度提高了1000倍,因为它使用了1000倍的强大硬件。这根本不是真的。它使用了非常不同的方法,并且该方法非常耗费资源。实际上,比赛期间AlphaZero每秒评估8万个职位,而Stockfish每秒评估7000万个职位。现在告诉我,AlphaZero凭借强大的硬件而获胜。当然,在64位CPU上,速度会更慢,谁知道它会如何运行,但关键是AlphaZero会做得更好,尽管成本更高。
IA彼得·哈拉西莫维奇

3
SF硬件的成本不到1万美元,Alpha的成本超过25万美元。自己得出结论。Nps是没有意义的,每个国际象棋程序员都知道这一点。您可以做各种技巧,使nps降低,但这并不意味着您会变得更强。我希望看到它在SF硬件上实现该方法,并且在Alpha硬件上实现SF。猜结果吗?SF +85 -0 = 15 如果太棒了,让他们发布自己的代码。
Lyudmil Tsvetkov

3
“阿尔法模拟了开本,接受了无数顶级通用汽车获奖游戏的训练。” 是模拟开场书,是的,但是经过了通用汽车游戏的培训吗?你有这个来源吗?我的理解是Alpha已完全启动。
Akavall

0

Stockfish受CPU限制,因此它将永远无法扩展到GPU所能达到的水平。

Gor矩阵计算GPU按n进行缩放,而CPU按n 3进行缩放,这些张量核心得到了进一步优化,因此在进行缩放时可能会获得更好的性能。


-2

第一段更详细,第二段简短回答第三段我对情况的看法

使用AlphaZero,硬件对其播放强度的影响为0。可能需要更长的时间,但不是因为它在考虑。这是一个神经网络,这意味着您将信息输入向量(单列表)中,并通过巨型张量(3维或更多维表)进行简单的数学运算,然后吐出答案。fish鱼需要时间来保持良好状态,因为它会检查可能的位置以查看某举动是否有益,因此,对问题的关注时间越长,可以检查的位置/动作就越多。

确实没有可比的硬件设置。因为他们有不同的需求,所以Stockfish需要分析更多的职位,而AlphaZero只是需要采取行动。人们感到不安,因为AlphaZero的计算机在技术上要强大得多,他们认为这方面应该平等。但是,经过培训后,AlphaZero不需要该超级计算机。

以我的观点,无论双方给予什么,都没有关系,除非Stockfish有一段不合理的时间,它可能会与另外几局比赛并列,但总的来说会产生类似的效果。这就是为什么我认为,Stockfish最初会评估作品及其价值,而Alpha玩了(可能)数百万场游戏以意识到战略上的重要性。这就是为什么Alpha囊比Stockfish囊囊要多得多,但却获得了巨大的位置优势。


那是错误的。AlphaZero进行树搜索。更多的硬件使其更强大。而且它需要大量的硬件才能发挥得比干鱼更好。
BlindKungFuMaster

这篇文章中没有什么是正确的...
SmallChess

该系统基于3个神经网络和部分Monroe Carlo树搜索,因此使用树搜索对它是正确的。在游戏中,它使用在价值和政策的alphago中开发的2条神经网络原理。Go是一款无法通过计算能力来完成的游戏,因为它在天文学上比国际象棋更加复杂。因此,如果我认为它比蛮力算法需要更多的计算能力,那么您就错了。或错过通知。第三神经网络用于通过猜测反向传播的变化来尝试和优化学习过程。Alphazeros电源在网络中而不是mcts。
Ezecal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.