題:
AlphaZero與Stockfish比賽中使用的硬件
user1583209
2017-12-08 18:17:59 UTC
view on stackexchange narkive permalink

我知道AlphaZero必須使用與普通Stockfish不同的硬件。我希望硬件對引擎強度有很大的影響。這就是為什麼我想知道是否曾嘗試為兩者提供可比較的硬件。另外,“可比”在這裡是什麼意思?

特別是我讀到人們抱怨:

  • Stockfish僅獲得1 GB的緩存,並且
  • 每分鐘移動1分鐘的時間限制(這將給Stockfish帶來什麼不利影響?)
*哈希*大小,而不是緩存,顯然。
我*強烈*建議在技術論壇(例如[AI Stack Exchange](https://ai.stackexchange.com/)上提問,也許標題為“ AlphaZero與Stockfish比賽中的評估公平”),因為答案這裡不好。
七 答案:
Brian Towers
2017-12-08 19:12:40 UTC
view on stackexchange narkive permalink

這就是為什麼我想知道是否曾嘗試過提供兩者可比的硬件。

這就是您要談論的Google!因此答案顯然是“否”。

從用於初始化和培訓的原始論文硬件中-

培訓進行了700,000步(從隨機初始化的參數開始,使用大小為4,096的微型批次),使用5,000個第一代TPU(15)生成自玩遊戲,使用64個第二代TPU訓練神經網絡

遊戲中使用的硬件和硬件-

AlphaZero和以前的AlphaGo Zero使用一台具有4個TPU的機器,Stockfish和Elmo發揮了他們最強的技術水平,使用了64個線程,散列大小為1GB。 / p>

因此,AlphaZero使用了Google開發的特殊硬件。它使用了專用的Tensor處理器單元(TPU),而不是商用的通用中央處理器(CPU)。

這是Wikipedia如何描述他們使用的第二代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的十分之一)。

我認為可以說AlphaZero使用的是800磅大猩猩與Stockfishes鼠標相比的硬件配置。

FLOPS代表每秒的浮點操作。在Stockfish和AlphaZero的核心算法中可能根本不使用浮點算法。因此FLOPS的數量並不是與象棋引擎相關的處理器速度的有意義的度量。
相反,我認為神經網絡相當廣泛地使用浮點算法。 (但是您的發言當然很合理,並且適用於Stockfish。)
與GPU進行更恰當的比較。 NVIDIA Tesla V100的處理能力為120 TFLOPS,而上一代(P100)的處理能力僅為20TFLOPS。CPU的優化性能與處理大量數字的GPU完全不同。
ReZzT
2017-12-09 23:17:44 UTC
view on stackexchange narkive permalink

我認為最好以在AlphaZero和Stockfish之間的遊戲1中的舉動來舉例說明第二點,這也滿足了我的好奇心。

時限為1 min / move(這個不利於Stockfish的方式?)

Stockfish的性能取決於時間限制硬件配置,因此,請考慮一下有人翻倍CPU線程,那麼與第一種配置相比,Stockfish需要更少的時間(不一定是一半)來找到解決方案。

在Chess.com上發布的第一份報告中有人聲稱Stockfish表現不佳,因為他無法在計算機上使用相同的Stockfish再現相同的結果。他說,在下面的位置(第1局-第11步),Stockfish玩了Kg1-h1(移動了國王),這完全沒有道理。另一方面,他的電腦上的鱈魚顯示出更像Be3(移動黑暗方形主教)的動作,讓我們看一下位置:

Game 1 on move 11

是的,這是一個被動的舉動,看來斯托克菲什應該發揮更大的發展作用。但是他錯了。為什麼?因為他跑了Stockfish 15秒鐘,而且如果跑了一個小時,他將獲得Kg1-h1作為該位置上最佳動作。當更深入地分析所有可能的移動時,Stockfish會改變其決策。這是我最初在答復中說的話

我在該位置(第11步)運行了最新的干魚:

  • 首先,當發動機運轉約一分鐘時,它將b4作為最佳移動。之後,它決定Be3會更好。
  • 但是在我的以1400k節點/ s運行的硬件上運行5分鐘後,它將決定選擇Kh1作為最佳移動。

  • 在本文中,據說stock魚每秒計算70,000k位置,並且每移動一分鐘運行一次,這大約是我的硬件的50倍,所以我讓我的運行50分鐘... Kg1-h1仍然是鱈魚的選擇。

時間限制是關鍵

在上述情況下,是否可能沒有太大關係鱈魚跑了兩次,因為決定是相同的,但是接下來的決定肯定會

enter image description here

在此位置,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佔用的內存也更少(假設原始文件假定所有這些都用於哈希表,則RAM約為130MB)。


結論

基於我所指出的,運行Stockfish的硬件最多比我的快18倍(更新:在單核上)。我分析過了。我不確定AlphaZero是否真的可以在4小時內利用這種硬件來訓練其網絡,我只能假設它對於象棋這樣的遊戲來說太低了。此外,AlphaZero將這些時間花費在學習上,其中還包括建立堅實的空缺(並且如論文所指出的那樣,對某些空缺的偏好)。另一方面,Stockfish在開口處受到限制,並且每次移動60秒都無法評估每秒7000萬個職位。

最後一點,我所說的一切都是基於我的假設。當然,AlphaZero和遊戲的結果對我來說非常有趣。但是,我很希望看到Stockfish玩起來就像我在電腦上一樣的遊戲。就是說,有更多的時間和開書的機會。在每一步中獲得Stockfish分析的輸出也很容易,我希望他們發布它以顯示其執行情況。

關於時間限制,AlphaZero論文中的圖2顯示了相反的情況:在有更多功能可用的情況下,乾魚在較低的預算中更好,但是規模更糟.https://arxiv.org/pdf/1712.01815.pdf
@old-ufo感謝您指出這一點。正如我所說,Stockfish(和AlphaZero)的性能取決於硬件以及時間限制。例如,如果我們為Stockfish提供更多的硬件(減少AlphaZero的數量)並重新生成該圖形,則可以對其線條進行轉換,使其始終保持在AlphaZero線條之上。因此,我認為這是比較兩個系統的硬件的一個好點,這也回答了主要問題。
Xonatron
2017-12-10 08:00:29 UTC
view on stackexchange narkive permalink

Stockfish的原始作者之一回答了您在此處提到的具體投訴:

同時Chess.com也收到了原始Stockfish的原始作者之一Tord Romstad的冗長評論,我們'將給出全部信息:

由於時間控制和Stockfish參數設置的選擇非常奇怪,因此比賽結果本身並不是特別有意義:遊戲以固定的1分鐘時間進行/ move,這意味著Stockfish不使用其時間管理試探法(已投入大量精力使Stockfish識別遊戲中的關鍵點並決定何時花一些額外的時間進行移動;每次移動固定時間,實力將遭受重大損失)。使用的Stockfish版本已有一年的歷史,使用的搜索線程數量遠遠超過任何經過大量測試的數量,並且哈希表的數量對於線程數量而言太小。我相信,在更正常的情況下,抽獎的百分比會更高。

另一方面,毫無疑問的是,如果在項目中投入更多的工作,AlphaZero的表現會更好。 (儘管考慮到在這4個小時中使用的大量硬件資源,本文中提到的“ 4個小時的學習”是極具誤導性的)。但無論如何,Stockfish vs AlphaZero很大程度上是蘋果與猩猩的比較。一種是在普通計算機上運行的常規象棋程序,另一種是使用根本不同的技術,並且在無法購買的定制設計的硬件上運行(如果有的話,將超出普通用戶的預算)。

從另一個角度來看,蘋果與猩猩的關係是最令人興奮的事情:我們現在有兩個截然不同的地方(兩者 在硬件和軟件方面)都具有超人下棋能力的人造實體。這比另一個與現有國際象棋程序具有相同功能的國際象棋程序更有趣,只是略好一點。此外,AlphaZero方法對新領域的適應性為未來帶來了令人興奮的可能性。

對於使用計算機國際象棋程序作為工具的國際象棋棋手,這一突破不太可能產生重大影響,至少在

對於國際象棋引擎程序員以及許多其他有趣領域的程序員而言,機器學習技術的興起需要大量的硬件資源,這是短期內的事情。有效是有點令人沮喪的。幾年後,很有可能可以製作像AlphaZero這樣的象棋程序在普通計算機上運行,但是創建所需的硬件資源仍將超出業餘愛好者或普通人的預算。大型公司。擁有由志願者運行的具有大型分佈式計算機網絡的開放源代碼項目可能會起作用,但是數百種獨特的國際象棋引擎(各自具有自己的怪癖和個性)的時代將會消失。

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

T Scherer
2017-12-19 03:16:53 UTC
view on stackexchange narkive permalink

如果Google的最終目標是構建出色的國際象棋引擎,則需要在可比較的硬件上運行,但是此練習並非真的與國際象棋有關。國際象棋只是展示AI從頭學習複雜任務的能力的便捷方式。如果在某些模糊合理的Stockfish配置下仍能正常工作,請選中此框。

我預計Google團隊不會在國際象棋上花費更多的精力;取而代之的是,他們將繼續研究AI無法解決的其他問題。

我給+1是因為我有相同的感覺。
聽起來很可能,儘管我懷疑他們是否會出版,如果Alphazero僅以很小的幅度損失(這意味著它仍然具有與stock魚相當的強度)。
-1
Lyudmil Tsvetkov
2017-12-09 19:21:27 UTC
view on stackexchange narkive permalink

訪問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嗎?來吧。

您似乎相信AlphaZero與Stockfish的功能相同,只是速度提高了1000倍,因為它使用了1000倍的強大硬件。這根本不是真的。它使用了非常不同的方法,並且該方法非常耗費資源。實際上,比賽期間AlphaZero每秒評估8萬個職位,而Stockfish每秒評估7000萬個職位。現在告訴我,AlphaZero憑藉強大的硬件而獲勝。當然,在64位CPU上,速度會更慢,誰知道它會如何運行,但關鍵是AlphaZero會做得更好,儘管成本更高。
SF硬件的成本不到1萬美元,Alpha的成本超過25萬美元。自己得出結論。 Nps是沒有意義的,每個國際象棋程序員都知道這一點。您可以做各種技巧,​​使nps降低,但這並不意味著您會變得更強。我希望看到它在SF硬件上實現該方法,並且在Alpha硬件上實現SF。猜結果嗎? SF +85 -0 = 15如果太棒了,讓他們發布自己的代碼。
“阿爾法模擬了開本,接受了無數頂級通用汽車獲獎遊戲的訓練。”是模擬開場書,是的,但是接受過通用汽車遊戲的培訓嗎?你有這個來源嗎?我的理解是Alpha已完全啟動。
Famous Jameis
2018-09-14 07:08:46 UTC
view on stackexchange narkive permalink

Stockfish受CPU限制,因此將永遠無法縮放到GPU能夠達到的水平。

Gor矩陣計算GPU的縮放比例為n,而CPU的縮放比例為n 3 ,這些張量核心得到了進一步優化,因此在擴展時可能會獲得更好的性能。

Ezecal
2017-12-12 17:16:08 UTC
view on stackexchange narkive permalink

第一段更詳細,第二段簡短回答第三段我對情況的看法

對於AlphaZero,硬件對其發揮的作用有0影響。可能需要更長的時間,但不是因為它在考慮。這是一個神經網絡,這意味著您將信息輸入向量(單列表)中,並通過巨型張量(3維或更大的維數表)進行簡單的數學運算,然後吐出答案。 fish魚需要時間,因為它會檢查可能的位置以查看某舉動是否有益,因此,看問題的時間越長,可以檢查的位置/動作就越多。

確實沒有可比的硬件設置。因為他們有不同的需求,所以Stockfish需要分析更多的職位,而AlphaZero只是需要採取行動。人們感到不安,因為AlphaZero的計算機在技術上要強大得多,他們認為在這方面應該平等。但是,AlphaZero在訓練後並不需要那台超級計算機。

在我看來,他們提供給雙方什麼都沒有關係,除非Stockfish有不合理的時間,它可能會再增加一些遊戲但通常會發生類似的效果。這就是為什麼我認為,Stockfish最初會評估作品及其價值,而Alpha玩了(可能)數百萬場遊戲以意識到戰略上的重要性。這就是為什麼Alpha囊袋比Stockfish囊袋要多得多,但卻獲得了巨大的位置優勢。

那是錯誤的。 AlphaZero進行樹搜索。更多的硬件使其更強大。而且它需要大量的硬件才能發揮得比干魚更好。
這篇文章中沒有什麼是正確的...
該系統基於3個神經網絡和部分Monroe Carlo樹搜索,因此使用樹搜索對它是正確的。在遊戲中,它使用在價值和政策的alphago中開發的2條神經網絡原理。圍棋是一種無法通過計算能力完成的遊戲,因為它在天文學上比國際象棋更加複雜。因此,如果我認為它比蠻力算法需要更多的計算能力,那麼您就錯了。或錯過消息。第三個神經網絡用於通過猜測反向傳播的變化來嘗試和優化學習過程。 Alphazeros的力量在於網絡而不是Mct。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...