Ich verstehe, dass AlphaZero eine andere Art von Hardware als normale Stockfish verwenden muss. Ich würde erwarten, dass die Hardware einen großen Einfluss auf die Motorstärke hat. Deshalb frage ich mich, ob es Versuche gegeben hat, beiden vergleichbare Hardware zur Verfügung zu stellen. Auch was würde "vergleichbar" hier bedeuten?
Insbesondere habe ich gelesen, dass sich die Leute beschweren über:
- Stockfisch erhält nur 1 GB Cache und
- das Zeitlimit von 1 min / Zug (Wie würde dieser Nachteil Stockfisch?)
Antworten:
Dies ist Google, über das Sie sprechen! Die Antwort lautet also offensichtlich "Nein".
Von der ursprünglichen Papierhardware, die für die Initialisierung und Schulung verwendet wurde -
und Hardware für die Spiele -
AlphaZero verwendete daher spezielle Hardware, die von Google entwickelt wurde. Es wurden spezialisierte Tensor Processor Units (TPUs) anstelle der im Handel erhältlichen allgemeinen Central Processing Units (CPUs) verwendet.
So beschreibt Wikipedia die TPUs der zweiten Generation -
Sie verwendeten 4 TPUs für die Spiele, also eine Rechenleistung von 180 TFLOPS. Hinweis TFLOPS = 1000 Milliarden Gleitkommaoperationen pro Sekunde.
Zum Vergleich: Intels jüngster leistungsstärkster Chip ist der Core i9 Extreme Edition-Prozessor, der mit 1 TFLOP einspielt. Ein Spitzenwert I7, den Sie in einem Spielautomaten finden würden, wären normalerweise etwa 100 GFLOPs (dh ein Zehntel eines TFLOP).
Ich denke, es ist fair zu sagen, dass AlphaZero einen 800-Pfund-Gorilla einer Hardware-Konfiguration im Vergleich zur Stockfishes-Maus verwendete.
quelle
Ich denke, es ist am besten, wenn ich Ihren zweiten Punkt mit einem Beispielzug in Spiel 1 zwischen AlphaZero und Stockfish erläutere, der auch meine heutige Neugier befriedigt hat.
Die Leistung von Stockfish hängt sowohl vom Zeitlimit als auch von der Hardwarekonfiguration ab. Denken Sie also daran, dass Stockfish weniger Zeit (nicht unbedingt die Hälfte) benötigt, um die Lösung zu finden, als dies bei der ersten Konfiguration der Fall wäre.
In dem ersten Bericht, der auf Chess.com veröffentlicht wurde , behauptete jemand, Stockfish spiele nicht optimal, weil er mit demselben Stockfish auf seinem Computer nicht dieselben Ergebnisse reproduzieren könne. Er sagte, dass Stockfish auf der Position unten (Spiel 1 - Zug 11) Kg1-h1 gespielt hat (seinen König bewegt hat), was überhaupt keinen Sinn ergab. Auf der anderen Seite zeigte der Stockfisch auf seinem Computer eine sich entwickelnde Bewegung wie Be3 (bewege den dunklen Läufer). Schauen wir uns die Position an:
Ja, es war ein passiver Zug und es scheint, dass Stockfish einen sich entwickelnden Zug gespielt haben sollte. Aber er hat sich geirrt. Warum? Weil er 15 Sekunden mit Stockfish gefahren ist und wenn er eine Stunde gefahren wäre, hätte er Kg1-h1 als den besten Zug in dieser Position bekommen. Stockfish ändert seine Entscheidung, wenn es alle möglichen Bewegungen ausführlicher analysiert. Folgendes habe ich ursprünglich in meiner Antwort gesagt :
Ich habe den letzten Stockfisch auf der Position ausgeführt (bei Zug 11):
Aber nach 5 Minuten auf meiner Hardware, die mit 1.400.000 Knoten / s läuft, entscheidet sie sich dafür, Kh1 als optimalen Schritt zu wählen.
In der Zeitung heißt es, dass Stockfisch 70.000.000 Positionen pro Sekunde berechnet und 1 Minute pro Zug ausgeführt wird, das ist ungefähr das 50-fache meiner Hardware, also lasse ich meine 50 Minuten laufen ... Kg1-h1 ist immer noch die Wahl für Stockfisch.
Zeitlimit ist der Schlüssel
In dem obigen Fall war es wahrscheinlich egal, ob Stockfish zweimal lief, da die Entscheidung dieselbe gewesen wäre, aber beim nächsten Schritt würde es definitiv :
In dieser Position zog Stockfish den Bauern auf die linke Seite ( a4-a5 ). Nehmen wir an, ich habe einen Computer, auf dem die Stockfish-Engine mit einer Geschwindigkeit von 1.400.000 Knoten pro Sekunde ausgeführt wird. Dies ist ungefähr 50-mal niedriger als die Geschwindigkeit des Stockfish im realen Spiel ( in der Zeitung werden 70.000 Kn / s angegeben). So kann ich das Spiel simulieren, wenn ich es bei jedem Zug 50 Minuten lang laufen lasse. Okay.
Ich habe die Stockfisch-Analyse auf der obigen Position durchgeführt und die folgenden Ergebnisse erhalten:
Das ist gut, aber ich habe es 50 Minuten lang laufen lassen, um die Berechnungen des Stockfisches in dem Spiel zu erreichen, das 1 Minute lang erlaubt war:
Die traurige Wahrheit ist, dass ich glaube, dass Stockfish alle seine Spiele wegen des Zeitlimits verloren hat. Stockfisch wird im Laufe der Zeit eingehender gesucht und ausgewertet, und im Spiel durfte kein Eröffnungsbuch verwendet werden, wodurch viele Bewegungen in geringen Tiefen berücksichtigt werden. Beachten Sie, dass im aktuellen Spiel a4-a5 gespielt wurde, was zeigt, dass der Stockfisch im Spiel nicht mehr als 21,6 Sekunden unterwegs war (vorausgesetzt, er konnte 70 Millionen Positionen pro Sekunde auswerten). Andernfalls hätte es seine Entscheidung in diese drei anderen Züge im eigentlichen Spiel geändert. Der Grund dafür ist mir immer noch unklar, da mein Stockfish auch weniger Speicher verbraucht hat (ca. 130 MB RAM im Vergleich zu 1 GB im Originalpapier , vorausgesetzt, alles wird in Hash-Tabellen gespeichert ).
Fazit
Die Hardware, auf der Stockfish lief, war bestenfalls 18-mal schneller als meine (Update: auf einem einzigen Kern), basierend auf dem von mir analysierten Schritt. Ich bin mir nicht sicher, ob AlphaZero diese Hardware wirklich in 4 Stunden zum Trainieren seiner Netzwerke einsetzen kann. Ich kann nur davon ausgehen, dass sie für ein Spiel wie Schach zu niedrig ist. Außerdem hat AlphaZero diese Stunden damit verbracht, zu lernen, was auch das Bauen fester Öffnungen einschließt (und wie das Papier darauf hinweist, Vorlieben gegenüber bestimmten Öffnungen). Auf der anderen Seite war Stockfish bei Eröffnungen behindert, und es wurden nicht 60 Sekunden lang bei jeder Bewegung 70 Millionen Positionen pro Sekunde ausgewertet.
Abschließend sei angemerkt, dass alle meine Aussagen auf meinen Annahmen beruhten. Natürlich waren das Ergebnis von AlphaZero und die Spiele für mich super interessant. Ich hätte mir jedoch gerne ein Spiel angesehen, bei dem das Stockfischspiel genau so war, wie ich es auf meinem Computer erhalte. Das heißt, mehr Zeit und ein Eröffnungsbuch erlaubt. Es ist auch einfach, die Ergebnisse der Stockfish-Analyse bei jeder Bewegung abzurufen, und ich wünsche mir, dass sie veröffentlicht wird, um zu zeigen, wie gut sie funktioniert.
quelle
Einer der Originalautoren von Stockfish beantwortet die spezifischen Beschwerden, die Sie hier erwähnt haben:
Quelle: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
quelle
Das Ausführen auf vergleichbarer Hardware wäre erforderlich, wenn Googles Endziel darin bestand, eine überlegene Schachengine zu entwickeln, aber in dieser Übung ging es nicht wirklich um Schach. Schach ist nur ein praktischer Weg, um die Fähigkeit der KI zu demonstrieren, komplizierte Aufgaben von Grund auf zu lernen. Wenn es mit einer vage vernünftigen Konfiguration von Stockfish gut funktioniert, ist das Kontrollkästchen aktiviert.
Ich gehe davon aus, dass sich das Google-Team nicht mehr mit Schach befassen wird. Stattdessen werden sie sich anderen Problemen zuwenden, die die KI nie bewältigen konnte.
quelle
Besuchen Sie das Talkchess Forum, um mehr zu erfahren. Dort finden Sie etwa 3000 Programmierer. Das war alles ein Betrug. Alpha spielte auf 30 mal größerer Hardware als SF, 4TPUs gegen 64 Kerne. 4TPUs sind ungefähr 1000 Kerne oder sogar mehr. Alpha hatte das Eröffnungsbuch simuliert und in unzähligen Top-GM-Gewinnspielen trainiert. SF hatte sehr wenig Hash. TC wurde auf 1 Minute pro Zug festgelegt, was wiederum für SF nachteilig ist, das ein erweitertes Zeitmanagement hat. Bei TPUs fehlen die SMP-Ineffizienzen mit mehr Kernen, sodass der Hardwarevorteil noch größer war. Usw. Im Grunde war dies nur ein riesiger Werbegag von Google. Derzeit liegt Alpha mit Single Core bei 2800, also 400 Elos unter SF, und wird in Zukunft nicht viel weiterentwickelt, da es von nun an eine erweiterte Evaluierung benötigt, die es nicht mehr entdecken kann. In Bezug auf die 4-Stunden-Ausgabe, na ja, LOL, Das war vor 48 Stunden, also ist Alpha jetzt bei 5000 elo? Komm schon.
quelle
Stockfish ist auf CPUs beschränkt, sodass es niemals auf das Niveau skaliert werden kann, das GPUs können.
Gor-Matrix-Berechnungen GPUs skalieren mit n, während CPUs mit n 3 skalieren . Diese Tensorkerne werden weiter optimiert, sodass die Leistung beim Skalieren wahrscheinlich noch besser ist.
quelle
Erster Absatz ausführlicher, zweiter kurzer und einfacher Antwort auf den dritten Absatz meiner Meinung zur Situation
Mit AlphaZero hat die Hardware einen 0-Effekt auf die Stärke ihres Spiels. Es kann länger dauern, aber nicht, weil es denkt. Es ist ein neuronales Netzwerk, das heißt, Sie geben die Informationen in einem Vektor ein (eine einspaltige Tabelle). Es führt einfache Berechnungen durch einen riesigen Tensor (eine dreidimensionale Tabelle oder mehr) und gibt dann die Antwort aus. Stockfisch braucht Zeit, um gut zu sein, da er mögliche Positionen überprüft, um festzustellen, ob ein Zug von Vorteil ist. Je länger er sich mit dem Problem befasst, desto mehr Positionen / Züge können überprüft werden.
Es gibt kein vergleichbares Hardware-Setup. Weil sie unterschiedliche Bedürfnisse haben, muss Stockfish mehr Positionen analysieren, während AlphaZero nur einen Schritt machen muss. Und die Leute sind verärgert, weil AlphaZeros Computer technisch viel leistungsfähiger ist und sie denken, dass sie in dieser Hinsicht gleich sein sollten. AlphaZero benötigt diesen Supercomputer nach dem Training jedoch nicht.
Meiner Meinung nach spielt es keine Rolle, was sie beiden Seiten geben, es sei denn, Stockfish hat eine unangemessene Zeit, die wahrscheinlich ein paar Spiele mehr bindet, aber im Allgemeinen wird ein ähnlicher Effekt eintreten. Aus diesem Grund denke ich, bewertet Stockfish zunächst mit Stücken und ihren Werten, während Alpha (wahrscheinlich) Millionen von Spielen spielte, um zu erkennen, was strategisch wichtig ist. Aus diesem Grund sackt Alpha viel mehr als Stockfish jemals, gewinnt aber enorme Positionsvorteile.
quelle