AlphaZero対Stockfishマッチで使用されるハードウェア


22

AlphaZeroは通常のStockfishとは異なる種類のハードウェアを使用する必要があることを理解しています。ハードウェアがエンジンの強度に大きな影響を与えると思います。そのため、両方に匹敵するハードウェアを提供する試みが行われたかどうか疑問に思います。ここで「同等」とはどういう意味ですか?

具体的には、人々は以下について不平を言うと読みました。

  • Stockfishには1 GBのキャッシュのみが与えられます。
  • 1分/移動の制限時間(これはStockfishにどのように不利になりますか?)

明らかにキャッシュではなくハッシュサイズ。
フェデリコポロニ

2
ここでの答えは良くないので、テクニカルフォーラム(おそらく「AlphaZeroとStockfishのマッチの評価の公平性」というタイトルのAI Stack Exchangeなど)でこれを尋ねることを強くお勧めします。
Veedrac

回答:


20

そのため、両方に匹敵するハードウェアを提供する試みが行われたかどうか疑問に思います。

これがあなたが話しているGoogleです!したがって、答えは明らかに「いいえ」です。

初期化とトレーニングに使用される元の紙のハードウェアから-

ランダムに初期化されたパラメーターから開始し、セルフプレイゲームを生成するために5,000の第一世代TPU(15)とニューラルネットワークを訓練するために64の第二世代TPUを使用して、700,000ステップ(サイズ4,096のミニバッチ)でトレーニングを進めました

ゲームに使用されるハードウェア-

AlphaZeroと以前のAlphaGo Zeroは、4台のTPUを備えた単一のマシンを使用しました。StockfishとElmoは、64スレッドと1GBのハッシュサイズを使用して、最強のスキルレベルでプレイしました。

そのため、AlphaZeroはGoogleが開発した特別なハードウェアを使用しました。市販されている一般的な中央処理装置(CPU)ではなく、特殊なTensorプロセッサユニット(TPU)を使用しました。

これは、ウィキペディアが使用した第2世代のTPUの説明です。

Googleは、2017年5月に第2世代TPUを発表しました。Googleは、第1世代TPU設計はメモリ帯域幅が制限されていると述べました。TPUは、4チップ180 TFLOPSモジュールに配置されます

ゲームには4つのTPUを使用したため、処理能力は180 TFLOPSでした。TFLOPS = 1秒あたり1,000億の浮動小数点演算に注意してください。

比較のために、Intelの最新の最も強力なチップは、1 TFLOPで動作するCore i9 Extreme Editionプロセッサです。ゲーム機で見られるI7の最上位は、通常約100 GFLOP(つまり、TFLOPの10分の1)です。

AlphaZeroは、Stockfishesマウスと比較して800ポンドのハードウェア構成のゴリラを使用していたと言ってもいいと思います。


1
FLOPSは、1秒あたりの浮動小数点演算を表します。StockfishとAlphaZeroのコアアルゴリズムでは、おそらく浮動小数点演算はまったく使用されません。したがって、FLOPSの数は、実際にはチェスエンジンに関連するプロセッサ速度の意味のある測定値ではありません。
ルネPijl

9
それどころか、ニューラルネットは浮動小数点演算をかなり集中的に使用していると思います。(もちろん、あなたの発言は完全に理にかなっていて、Stockfishに当てはまります。)
Federico Poloni

3
はるかに適切な比較はGPUを使用する場合です。NVIDIA Tesla V100は、前の世代(P100)から20 TFLOPSまでの120 TFLOPSを実行できます。CPUは、膨大な数のGPUから最適化された方法とは大きく異なります。
ニックT

12

ゲーム1のAlphaZeroとStockfishの間の動きを例に挙げて、2番目のポイントについて詳しく説明すると、今日の好奇心を満たすのに最適だと思います。

1分/移動の制限時間(これはStockfishにどのように不利になりますか?)

Stockfishのパフォーマンスは、制限時間ハードウェア構成の両方に依存しているため、誰かがCPUスレッドを2倍にした場合、Stockfishは最初の構成よりも解決策を見つけるのに必要な時間(必ずしも半分ではない)を考えるだけです。

Chess.comに投稿された最初のレポートでは、Stockfishがコンピューターで同じStockfishを使用しても同じ結果を再現できなかったため、Stockfishが最適にプレイされていないと主張しました。彼は、下の位置(ゲーム1-11番)で、StockfishがKg1-h1(キングを動かした)をプレーしたが、まったく意味がないと言いました。一方、彼のコンピューター上のstockfishは、Be3(暗い四角の司教を動かしてください)のような、より発展している動きを示しました、位置を見てみましょう:

移動11のゲーム1

はい、それは受動的な動きであり、Stockfishはより発展的な動きをするべきだったようです。しかし、彼は間違っていました。どうして?ストックフィッシュを15秒間実行し、1時間実行した場合、その位置でのベストムーブとしてKg1-h1を獲得できたからです。Stockfishは、考えられるすべての動きをより詳細に分析すると、決定を変更します。ここだ、私はもともと私の返事に言いました

私はその位置で最新のストックフィッシュを走らせました(11番手):

  • 最初は、エンジンが約1分間作動しているときの最適な動きとしてb4を与えます。その後、Be3の方が優れていると判断します。
  • しかし、1,400kノード/秒で実行するハードウェアで5分後に、Kh1を最適な移動として使用することにします。

  • 論文では、stockfishは毎秒70,000kポジションを計算し、1移動につき1分間実行されると言われています。これは私のハードウェアの約50倍であるため、Kg1-h1はまだストックフィッシュの選択。

制限時間が鍵です

上記の場合、意思決定は同じだったのでStockfishが2回実行されても大した問題ではなかったでしょうが、次の動きでは間違いなく次のようになります。

ここに画像の説明を入力してください

この位置で、Stockfishはポーンを左側に移動することを選択しました(a4-a5)。ストックフィッシュエンジンを毎秒1,400kノードの速度で実行するコンピューターがあるとします。これは、実際のゲームのストックフィッシュの約50倍低い(論文では、70,000kn / sと表示されています)。したがって、各移動で50分間実行すると、ゲームをシミュレートできます。はい。

上記の位置でStockfish分析を実行すると、次の結果が得られました。

  • Stockfishはいくつかの動きを提案し始めましたが、コンピューターで6分(実際のゲームではStockfishで7.2秒に相当)した後、ゲームが進むにつれてa4-a5を好みました

それは良いことですが、1分間許可されたゲームでStockfishの計算に到達するために、完全に50分間実行し続けました。

悲しい真実は、Stockfishが時間制限のためにすべてのゲームを失ったと信じていることです。Stockfishは、時間が経つにつれてより詳細な検索と評価を取得し、ゲームでは浅い深さでの多くの動きを考慮するオープニングブックの使用が許可されませんでした。実際のゲームではa4-a5がプレイされたことに注意してください(ゲームが毎秒7000万ポジションを評価できると仮定すると)、ゲームのStockfishは移動に21.6秒以上費やしていません。そうでなければ、その決定を実際のゲームの他の3つの動きに変更することになります。Stockfishのメモリ消費量が少ないため(これはすべてがハッシュテーブルに送られると仮定した場合、元の論文で言及された 1GBと比較して約130MBのRAM)、この理由はまだわかりません。


結論

私が指摘したように、Stockfishを実行したハードウェアは、分析した動きに基づいて、最高で私のものよりも18倍高速でした(更新:シングルコア上)。AlphaZeroがそのようなハードウェアを実際に使用して4時間でネットワークをトレーニングできるかどうかはわかりませんが、チェスのようなゲームには低すぎるとしか考えられません。その上、AlphaZeroはこれらの時間を学習に費やしました。これには、堅実な開口部の構築も含まれます(そして、論文が指摘するように、特定の開口部に対する選好)。一方、Stockfishは開始時に障害があり、各移動で60秒間、1秒あたり7000万のポジションを評価しませんでした。

最後に、私が言ったことはすべて私の仮定に基づいていました。もちろん、AlphaZeroとゲームの結果は私にとって非常に興味深いものでした。しかし、Stockfishのプレイがコンピューターでのプレイと同じようなゲームを楽しみたいと思っていました。つまり、より多くの時間と最初の本が許可されます。Stockfish分析の出力を移動するたびに簡単に取得することもできます。パフォーマンスを確認するためにリリースすることを希望します。


1
制限時間に関しては、AlphaZero論文の図2はその逆を示しています。Stockfishは低予算では優れていますが、より多くの電力が利用可能な場合はスケールが悪化します。arxiv.org/pdf/1712.01815.pdf
old-ufo

1
@ old-ufoそれを指摘してくれてありがとう。前述したように、Stockfish(およびAlphaZero)のパフォーマンスは、ハードウェアと時間制限に依存しています。インスタンスの場合、Stockfishのハードウェアを増やし(AlphaZeroを減らし)、その図を再生成すると、AlphaZeroラインよりも常に上にとどまるようにラインを変換できます。だから、それは両方のシステムのハードウェアを比較する上で良い点だと思う。
ReZzT

4

Stockfishの元の著者の1人が、ここで言及した特定の苦情に答えます。

一方、Chess.comは、元のStockfishの著者の1人であるTord Romstadから長いコメントを受け取りました。

時間制御とStockfishパラメーター設定のかなり奇妙な選択のため、試合自体は特に意味がありません:ゲームは1分/移動の固定時間でプレイされました、つまりStockfishは時間管理ヒューリスティックを使用しません(ストックフィッシュがゲーム内の重要なポイントを特定し、移動に余分な時間を費やす時期を決定するために多くの努力が注がれました.1回の移動ごとに一定の時間で、強さが著しく低下します)。使用されたStockfishのバージョンは1年前であり、これまでにかなりの量のテストを受けたよりもはるかに多くの検索スレッドで遊んでおり、スレッド数に対してハッシュテーブルが小さすぎました。ドローの割合は、より通常の条件との試合ではるかに高いと思います。

一方、AlphaZeroがプロジェクトにもっと多くの作業を投入した場合、より良い結果が得られたことは間違いありません(ただし、この論文で言及されている「4時間の学習」は、使用される大規模なハードウェアリソースを考慮すると、それらの4時間の間に)。しかし、いずれにしても、Stockfish対AlphaZeroは、リンゴとオランウータンの比較に非常に近いものです。1つは通常のコンピューターで実行される従来のチェスプログラムであり、もう1つは根本的に異なる技術を使用し、購入できないカスタムデザインのハードウェアで実行されます(そして、もしあれば一般ユーザーの予算からは外れます)。

別の観点からは、リンゴ対オランウータンの角度がこれについて最もエキサイティングなことです:私たちは現在、2つの非常に異なる(ハードウェア側とソフトウェア側の両方)人工エンティティがあり、どちらも超人的なチェスの演奏能力を示しています。これは、既存のチェスプログラムと同じことを行う別のチェスプログラムよりもはるかに興味深いものです。さらに、AlphaZeroアプローチの新しいドメインへの適応性は、将来のエキサイティングな可能性を開きます。

コンピュータチェスプログラムをツールとして使用するチェスプレーヤーにとって、手頃な価格で適切なハードウェアが不足しているため、このブレークスルーが少なくとも短期的には大きな影響を与えることはほとんどありません。

チェスエンジンプログラマー、および他の多くの興味深いドメインのプログラマーにとって、効果的であるために大量のハードウェアリソースを必要とする機械学習技術の出現は、少しがっかりさせられます。数年後、AlphaZeroのようなチェスプログラムを通常のコンピューターで実行できるようになる可能性は十分にありますが、それらを作成するために必要なハードウェアリソースは、愛好家や平均的な企業の予算をはるかに超えます。ボランティアによって実行されるコンピューターの大規模な分散ネットワークを備えたオープンソースプロジェクトが機能する可能性はありますが、それぞれが独自の癖と個性を持つ数百のユニークなチェスエンジンの時代はなくなります。

ソース:https : //www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author


2

Googleの最終目標が優れたチェスエンジンの構築である場合、同等のハードウェアで実行する必要がありますが、この演習は実際にはチェスに関するものではありません。チェスは、複雑なタスクをゼロから学習するAIの能力を示す便利な方法です。Stockfishの漠然と合理的な構成に対してうまく機能する場合は、チェックボックスをオンにします。

Googleチームはチェスにこれ以上の労力を費やすことはないと予測しています。代わりに、AIが達成できなかった他の問題に進みます。


私は同じ気持ちを持っているので、+ 1を与えました。
SmallChess

Alphazeroがわずかなマージンで失われた場合、それが出版されたのではないかと思われますが(おそらく、ストックフィッシュに匹敵する強度であることを意味します)。
user1583209

@ user1583209彼らは、Stockfishを粉砕するために必要な学習時間の最小量を把握するために、おそらく何度も実行しました。その後、最終的な実行を行い、それらの結果を公開しました。
Tシェラー

1

Talkchessフォーラムにアクセスして詳細を確認してください。約3000人のプログラマーがいます。これはすべて詐欺でした。Alphaは、64コアに対してSF、4TPUの30倍のハードウェアでプレイしました。4TPUは約1000コア以上です。アルファはオープニングブックをシミュレートし、無数のトップGM優勝ゲームでトレーニングを受けました。SFのハッシュはほとんどありませんでした。TCは1移動につき1分に修正されましたが、これも高度な時間管理を行っているSFにとって有害で​​す。TPUには、コアが多いSMPの非効率性がないため、ハードウェアの利点はさらに大きくなりました。などなど、基本的に、これはGoogle側の巨大な宣伝スタントでした。現在、アルファはシングルコアで約2800であるため、SFから400エロス下にあり、今後は発見することができない高度な評価が必要になるため、今後はあまり進歩しません。4時間の問題については、まあ、LOL、これは48時間前だったので、アルファは5000 eloになりましたか?いい加減にして。


5
AlphaZeroはStockfishと同じことをしており、1000倍のハードウェアを使用しているため、1000倍だけ高速であると信じているようです。これはまったく真実ではありません。それは非常に異なるアプローチを使用し、そのアプローチは非常にリソースを消費します。実際、試合中、AlphaZeroは毎秒8万のポジションを評価していましたが、Stockfishは毎秒7000万のポジションを記録していました。さて、AlphaZeroがより強力なハードウェアのおかげで勝ったと教えてください。もちろん、64 CPUではより遅くなり、どのように再生されるかは誰にもわかりませんが、ポイントは、AlphaZeroの方がコストは高くなりますが、より優れていることです。
IAペトルHarasimovic

3
SFハードウェアのコストは1万ドル未満、アルファ1は25万ドル以上です。自分で結論を導きます。Npsは無意味であり、すべてのチェスプログラマーはそれを知っています。npsが下がるようにあらゆる種類のトリックを行うことができますが、それはあなたがより強くプレーするという意味ではありません。SFハードウェアでそのアプローチを実装し、AlphaハードウェアでSFを実装したいと考えています。結果を推測しますか?SFの場合は+85 -0 = 15。彼らがとても素晴らしいなら、彼らに彼らのコードを公開させてください。
リュドミルツヴェトコフ

3
「アルファはオープニングブックをシミュレートし、数え切れないほどのGM優勝ゲームでトレーニングを受けていました。」シミュレートされたオープニングブック、はい、しかしそれはGMゲームで訓練されましたか?これのソースはありますか?私の理解では、アルファは完全にブートストラップされていました。
アカバール

0

StockfishはCPUに制限されているため、GPUが可能なレベルにスケーリングすることはできません。

Gorマトリックス計算GPUはnでスケーリングしますが、CPUはn 3でスケーリングしますが、これらのテンソルコアはさらに最適化されるため、スケーリングに応じてパフォーマンスがさらに向上する可能性があります。


-2

最初の段落の詳細、2番目の短くて簡単な答え3番目の段落状況に関する私の意見

AlphaZeroを使用すると、ハードウェアはプレイの強さに0の影響を及ぼします。時間がかかるかもしれませんが、考えているからではありません。これはニューラルネットワークです。つまり、情報をベクトル(単一の列テーブル)で供給し、巨大なテンソル(3次元以上のテーブル)を介して簡単な計算を行い、答えを吐き出します。Stockfishは、移動が有益かどうかを確認するために可能な位置をチェックするため、時間がかかる必要があります。したがって、問題を長く見るほど、より多くの位置/移動をチェックできます。

実際に匹敵するハードウェア設定はありません。異なるニーズがあるため、Stockfishはより多くのポジションを分析する必要がありますが、AlphaZeroは移動するだけです。また、AlphaZeroのコンピューターは技術的にはるかに強力であり、その点で平等であるべきだと考えているため、人々は動揺しています。しかし、AlphaZeroはトレーニング後にそのスーパーコンピューターを必要としません。

私の意見では、彼らがどちらの側に何を与えるかは問題ではありません。これが私がこれを考える理由です。Stockfishは最初にピースとその値で評価しますが、Alphaは戦略的に重要なことを実現するために(おそらく)何百万ものゲームをプレイしました。これが、AlphaがStockfishよりもはるかに多いのに、位置的に大きな利点を得る理由です。


それは間違っています。AlphaZeroはツリー検索を行います。より多くのハードウェアはそれをより強くします。そして、stockfishよりも優れたプレイをするには、大量のハードウェアが必要です。
BlindKungFuMaster

この記事では何も...正しくありません
SmallChess

このシステムは3つのニューラルネットと部分的なモンローカルロツリー検索に基づいているため、ツリー検索を使用してそれについて正しいです。プレイ中、価値とポリシーのalphagoで開発された2つのニューラルネットワークの原則を使用します。Goはチェスよりも天文学的に複雑であるため、計算能力では実行できないゲームです。したがって、ブルートフォースアルゴリズムよりも多くの計算能力が必要であると考える場合、妄想になります。または情報不足。3番目のニューラルネットは、逆伝播の変化を推測して学習プロセスを加速しようとするために使用されます。Alphazerosの電力はmctsではなくネットにあります。
エゼカル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.