Schachprogramme: Das Duell der Engine-Giganten

Stockfish oder Leela?

von Walter Eigenmann

Seit vielen Monaten und je länger desto stärker beherrscht in der Computerschach-Szene ein Duell die Diskussion: Stockfish gegen Leela. Zwei Schachprogramme, deren Herkunft und Konzeption nicht unterschiedlicher sein könnten, und die sich heute ein Kopf-an-Kopf-Rennen liefern um den ersten Platz unter den modernen Engines. Dem Anwender kann das nur recht sein: Das Duell der Engine-Giganten sorgt für stetig bessere Schachmotoren…

Konträre Programmieransätze

Gary Linscott - Chess Programmer - Stockfish - Glaraen Magazin
Innovativer Kopf und massgeblich beteiligt sowohl bei Stockfish als auch bei Leela Chess: Der kanadische Computer-Wissenschaftler und Spiele-Programmierer Gary Linscott

Auf der einen Seite haben wir also mit dem Open-Source-Programm Stockfish den zurzeit in allen Computerschach-Rankings zuvorderst rangierten Vertreter der sog. Alpha-Beta-Richtung. Die Engine, ursprünglich als Glaurung von Tord Romstod im Jahre 2008 entwickelt, zählt als Freeware mittlerweile auf eine weltweite Entwicklergemeinde, deren wöchentlicher Input – koordiniert von den Programmierern M. Costalba, J. Kiiski und G. Linscott – aus diesem ehemals mittelmässigen UCI-Programm nach und nach ein extrem schnelles und extrem tief rechnendes CPU-Monster geschaffen hat, welches z.B. den amtierenden Weltmeister Magnus Carlsen – wahrscheinlich das grösste Genie der Schachgeschichte – in einem Match über mehrere Turnierpartien mit grosser Wahrscheinlichkeit in Grund und Boden spielen würde.

Goethe - Schach ist ein Prüfstein des Gehirns - Künstliche Intelligenz mit Computer - Glarean Magazin
Goethe sprach vom Schach noch als von einem „Prüfstein des Gehirns“ – die jüngste Entwicklung der Künstlichen Intelligenz holt das Gehirn in den Computer…

Auf der anderen Seite sorgte in der Szene innerhalb der letzten zwanzig Monate ein ganz anderer Entwicklungsstrang der Programmierung für Furore: Das (ebenfalls frei downloadbare) KI-Schach-Leela-Projekt „Lc0“ mit seiner ausschliesslich Netzwerk-basierten Spielweise ohne jedes „menschliche Knowhow“. (Näheres zu diesem bahnbrechend neuen Ansatz findet sich u.a. hier: Künstliche Schach-Intelligenz Leela Chess Zero – Als Autodidakt zur Weltspitze).
Auch Leela’s atemberaubende Progression wäre nicht möglich gewesen ohne den Einsatz der internationalen Community, die nonstop „selfplayed games“ beisteuert(e) und so das „Wissen“ des KI-Programmes in Form von ständig neuen „Networks“ sukzessive vermehrt. (Mittlerweile dürfte die Grenze von 1,5 Milliarden Traningspartien überschritten sein…)

Turnier mit diversen Derivaten und Netzen

Lenovo IdeaPad S340 35,6 cm (14,0 Zoll Full HD IPS matt) Slim Notebook
Anzeige

Wer diese beiden unterschiedlichen Konzepte, ihre deutlich voneinander abweichenden Spielweisen konkret studieren will, kann das anhand spezifisch ausgewählter Aufgaben-Stellungen tun – z.B. mit der ERET-Testsammlung. Oder aber er lässt sie in eigens konzipierten Turnieren gegeneinander antreten – mit unterschiedlichen Bedenkzeiten und unterschiedlichen Konfigurationen hinsichtlich CPU und Datenbanken.

Solch ein grösseres Turnier mit über tausend Partien und 33 teilnehmenden Engines habe ich kürzlich auf meinem AMD-Ryzen7-Rechner ausspielen lassen. Um möglichst ein breites Feld von Stockfish- und Leela-Zweigen vergleichen zu können, wurden neben den Default-Programmen auch diverse Derivate bzw. Network-Entwicklungen der Leela-Chess-Community integriert.

Duell der Engine-Giganten - Stockfish vs Lc0 - Glarean Magazin
Läutet das KI-Schachprogramm Leela Chess Zero bald definitiv das Ende der Herrschaft von Stockfish ein?

Das Resultat dieser Matches – welche selbstverständlich keinerlei Anspruch auf Vollständigkeit oder statistische Relevanz erheben wollen – zeigt jenes Bild, das aufgrund zahlreicher anderer Computerschach-Turniere zu erwarten war: Auch im Spätsommer 2019 kann noch immer nicht eindeutig ausgemacht werden, wer nun genau aufs Siegespodest gehievt werden kann. Stockfish und Leela sind, was ihre Turnier-Performance anbelangt, momentan gleich stark, wiewohl ihr Schachstil sehr unterschiedlich daherkommt.
Was hingegen als ziemlich sicher gelten darf, ist der Befund, dass die beiden engsten Verfolger, nämlich die zwei kommerziell vermarkteten Programme Komodo und Houdini mittlerweile distanziert sind. Bis vor ca. einem halben spielten diese beiden Engines noch auf Augenhöhe mit dem Sieger-Duo.


Exkurs: Der „menschlich“ spielende Computer

Der AI-Engine Leela wird ein quasi „menschliches Schachverständnis“ nachgesagt; ihr Schach erinnere an „planvolles“ und „kreatives“ Spiel, wie man es bei Grossmeistern kennt und liebt. (Allerdings müssten die Begriffe „Plan“ und „Strategie“ heutzutage überholt bzw. neu definiert werden; das enorm tiefe, weil ausgeklügelt selektive Berechnen auch der aktuellen konservativen Alpha-Beta-Programme zeigt ein taktisch fast fehlerloses, aber durch keinerlei schöpferisches Planen charakterisiertes Schachspielen; ihre Zugfolgen basieren rein auf raffinierten Bewertungsalgorithmen und selektiven Cut-Techniken. Was früher der Mensch „Strategie“ nannte, entpuppt sich mit Computern oft als blosse „Taktik“…)

Walter Eigenmann - 100 brillante Schachzüge
Anzeige

Woher kommt also der „humanoide“ Nimbus der neuen KI-Programme wie Alpha-Zero, Leela-Zero oder Allie u.a? Gilt womöglich das Paradoxon, dass Lc0 darum so „menschlich“ spielt, weil der Mensch bei seiner Entwicklung jar gar nicht involviert war?! (Am Anfang der Schach-AI-Forschung standen nur die nackten Spielregeln, ansonsten keinerlei implentiertes Schachwissen.)

Das folgende Partien-Beispiel – generiert auf meinem AMD-Ryzen7-Rechner in einem Match Leela vs Komodo (mit PermantBrain on) – mag veranschaulichen, dass das Etikett „Menschliches Spiel“ bei modernen AI-Schachprogrammen so völlig nicht aus der Luft gegriffen ist.
Nach den Zügen…

… kam diese Stellung aufs Brett:

Leela - Komodo - Königswanderung - Glarean Magazin
Das KI-Programm Leela Chess Zero mit weiss gegen den amtierenden Computerschach-Weltmeister Komodo

Die Position ist im leichten materiellen Ungleichgewicht, aber zugleich so festgefahren, dass keine Partei vorwärtskommt. Friedliche Gemüter würden hier durchaus nicht zu Unrecht an ein Remis denken.

Doch weiss hat einen langfristigen Plan in petto: Der König wird nach a2 überführt. Dort blockiert er einerseits den schwarzen Freibauern und löst gleichzeitig die Wache des Turmes ab, der dadurch für Angriffszwecke mobil wird. Hinzu kommt, dass Springer in solch fixierten Bauernstellungen den Läufern und sogar Türmen überlegen sein können – trotz Minus-Bauerneinheit ist also die Partiestellung für weiss „strategisch“ gewonnen.
Es folgte eine Lehrbuch-mässige Verwertung durch das AI-Programm Leela:

34. Kg3 Kd8 35. Kf2 Ke7 36. Ke2 Rd8 37. Kd3 Ra5 38. Kc2 Bd7 39. Ne4 Ra6 40. Kb1 Kf8 41. Ka2 und Schwarz ist chancenlos gegen den Turm-unterstützten Bauernhebel c4-c5 (oder wie in der Partie gegen z.B. Läufertausch inkl. g-Linie-Öffnen mit Attacke gegen den Rückständigen g7)  1-0
(Hier lässt sich die Original-Partie downloaden / CBH-Format -ZIP-Datei)

Strategie oder Taktik?

Matthew Sadler - Game Changer - Alpha Zero's Groundbreaking
Anzeige

Die Frage ist nun, ob diese Königswanderung auf dem Leela-Mist alleine gewachsen ist, oder ob der gleiche „Plan“ auch bei konventionellen Engines im Output des „Denkprozesses“ auftaucht. Hierzu habe ich mal einige der besten Programme exakt 5 Sekunden lang auf die Stellung angesetzt (mit je 16 Threads) und ihre Hauptvarianten verglichen (unter „Fritz-16“ auf einem AMD-Ryzen-7):

Analysis by Stockfish 10:

34.Kg2 Kd8 35.Kf2 Ke7 36.Se4 Td8 37.Ke2 Ta6 38.Le6 g6 39.Kd3 Tb8 40.Kc2 gxh5 41.Sf5+ Kd8 42.Sfxd6 hxg4 43.Lxg4 Lg6 44.Lf5 Lxf5 45.Sxf5 Kc7
weiss steht deutlich besser: +/- (1.34) Tiefe: 25/39 00:00:05 102MN, tb=15


Analysis by Houdini 6.03:

34.Kg3 Kd8 35.Kf3 Kc7 36.Se4 a2 37.Ke2 Ta3 38.Kd2 Txb3 39.Txa2 Ta3 40.Tb2 Ta5 41.Le6 Tba8 42.Sf5 Ta2 43.Kc2
weiss steht etwas besser: +/= (0.41 ++) Tiefe: 20/41 00:00:05 122MN, tb=2056


Analysis by Komodo 12.3:

34.Ta2 Kd8 35.Kg2 Ke7 36.Kf3 Ta6 37.Le6 Kf8 38.Sf5 Td8 39.Se4 Tb6 40.Kf2 Ta6 41.Kg2 Tb6 42.Kh3 Ta6 43.Kg3 Tb6 44.Kg2 Ta6 45.Kf2 Tb6 46.Ke3 Ta6 47.Kd2 Tb6 48.Kd3 Ta6 49.Ke2 Tb6 50.Kf3 Ta6 51.Ke3 Tb6 52.Ke2 Ta6 53.Kd3 Tb6 54.Sd2
weiss steht etwas besser: +/= (0.64) Tiefe: 32 00:00:05 89390kN, tb=2


Analysis by Ethereal 11.50:

34.Kg3 Lf7 35.Kf3 Tb6 36.Ke2 Te8 37.Kd3 Td8 38.Se4 Th8 39.Kc2 Ta6 40.Kd2 Tb6 41.Kd3 Ta8 42.Lh7 Kf8 43.Sf5 Td8 44.Kc2 Ta6 45.Kd3 Tb6
Die Stellung ist ausgeglichen: = (0.00) Tiefe: 22/36 00:00:00 11065kN, tb=3


Analysis by Fire 7.1:

34.Kg2 Ta6 35.Kf3 Td8 36.Se4 Lf7 37.Ke2 Te8 38.Kd3 Td8 39.Ta2 Tb6 40.Ta1 Th8 41.Ta2 Tf8 42.Lh7 Td8 43.Sf5+ Kf8 44.Se3 Ta6 45.Lf5 Ke7 46.Lh7 Kf8
Die Stellung ist ausgeglichen: = (0.00) Tiefe: 26 00:00:04 44069kN, tb=300


Analysis by Xiphos 0.5.4:

34.Lg6 Ld7 35.Lf5 Td8 36.Kg2 Ta7 37.Se4 Tc7 38.Lxd7 Tcxd7 39.Sf5+ Kf8 40.Kf3 Kf7 41.Ke3 Ke8 42.Kd3 Kf7 43.Ke2 Kf8 44.Kf3
Die Stellung ist ausgeglichen: = (0.00) Tiefe: 29 00:00:04 95544kN


Analysis by Deep Shredder 13:

34.Se4 a2 35.Le6 g6 36.hxg6 Lxg6 37.Lf5 Le8 38.c5 dxc5 39.d6+ Kd8 40.Sxc5 Ta5 41.Se6+ Kd7 42.Sg7+ Kc6 43.Tc1+ Tc5 44.Le4+ Kd7 45.Ta1 Ta5 46.Sc4 Ta6
Die Stellung ist ausgeglichen: = (0.21 ++) Tiefe: 27/48 00:00:05 100MN, tb=38


Wie ersichtlich haben die Engines zwar die ersten paar Stationen der Königswanderung durchaus auf ihrem Radar, weil ihre Programmierer ihnen eingebleut haben, dass der König im Endspiel vom Rande ins Zentrum geführt werden sollte. Aber die zwei finalen Ziel-Züge des Königs (Kb1 und Ka2) tauchen bei keinem dieser starken Alpha-Beta-Programme im Output auf.
Kommt hinzu, dass (deswegen) ihre Stellungsbewertung nicht über ein „weiss steht besser“ hinauskommt, ja sogar Remis-Einschätzungen werden ausgegeben. (Hier findet sich eine Analyse der Partie-Fortsetzung nach 34.Se4).

Ganz anders Leela Chess Zero, der Urheber der Stellung. Ich habe einige aktuelle Lc0-Networks darauf angesetzt – den schönsten, quasi „lupenreinen“ Output habe ich beim NW „T40B.2-106“ gefunden:

Analysis by LC0 v0.22 (T40B.2-106):

34.Kg2 Kd8 35.Kf1 Kc7 36.Ke2 Ta5 37.Kd3 Lf7 38.Se4 Lg8 39.Kc2 Lf7 40.Kb1 Lg8 41.Ka2 Lf7 42.Tc1
Weiss steht deutlich besser: +- (2.21) Tiefe: 8/20 00:00:05 236kN

Der wesentliche Unterschied zu den konventionellen Progammen ist, dass Leela diese Line nicht eigentlich berechnen muss (wie die geringe Ply-Tiefe von 8/20 und die minimale Knotenzahl zeigen), sondern diesen „Plan“ nach nur 5 Sekunden „weiss“ und sofort eine Gewinn-Bewertung auswirft. (Es ist umgekehrt nicht auszuschliessen, dass nach langem Rechnen auch andere herkömmliche Engines genug Tiefe erreichen und einen vergleichbaren Output liefern).

Auch wenn gerade bei Leela Chess Zero die Interface-Angaben bezüglich Rechentiefe und Stellungsbewertung stets mit Vorsicht zu geniessen sind: Ein solcher Mainline-Output in dieser Stellung ist beeindruckend. Ich persönlich kann nachvollziehen, wenn derartigem Schach von Menschen das Etikett „menschlich“ verpasst wird – also eben nicht „taktisch“, sondern „strategisch“…

Leela der Königsbezwinger

Um ganz vorne mitmischen zu können, muss allerdings Leela nicht nur „positionell“, sondern auch angriffstechnisch auf der Höhe sein, damit nicht nur halbe Remis-Punkte, sondern ganze Punkte eingefahren werden können. Und in der Tat: Leela Chess Zero ist – mit seinen jüngeren Networks – einer der stärksten Königsangreifer im aktuellen Engine-Zirkus. Aus dem Nichts ist dieses Programm imstande, tödliche Attacken zu reiten – wie weiland der „Magier aus Riga“, Ex-Weltmeister Michael Tal (wenn auch nicht so spekulativ wie dieser…).
Ein paar Partien-Zitate illustrieren Leelas Durchschlagskraft im Angriff:

FEN-String: r2q1rk1/5p2/p1np1npp/bpp1p3/4P1PB/2PP1NNP/bPB1QP2/2KR3R w – – 0 18

FEN-String: r2q1rk1/1b1nbppp/pn1p4/1ppPp3/4P3/2P1BN1P/PPBN1PP1/R2Q1RK1 w – – 0 13

FEN-String: r1b2r2/pp1qnpkp/2np2p1/2p1p1P1/2P5/2NP1N2/PP2PPBP/R1Q2RK1 b – – 0 14

FEN-String: 1rb1r1k1/1pqn1pb1/p2p1npp/2pP4/P3P2B/2N5/1P1NBPPP/1R1Q1RK1 w – – 0 16


Alpha-Beta- und NN-Schach gleich stark

Die nachstehende Turnier-Rangliste ist das Ergebnis der folgenden Hardware-/Software-Turnierspezifikationen:

– CPU: AMD Ryzen 7 2700X (8CPU/16Threads)
– GPU: GeForce RXT 2080
– Memory/Engine: 1024 MB
– Interface: Fritz 16
– Engines: Defaults 8Threads/Engine
– Leela-Engines: 4Threads (CUDNN-FP-16)
– Bedenkzeit: 2 Min. + 2 Sek. / Engine
– Eröffnungsbuch: 5-moves-Book (M.Scheidl)
– Endspiel-DB: Syzygy (5-men)
– PermanentBrain: On
– Anzahl Partien: 1056
– Anzahl weiss-Siege: 360 (34,1%)
– Anzahl Schwarz-Siege: 287 (27,2%)
– Anzahl Remisen: 409 (38,7%)
– ECO A: 191 Partien
– ECO B: 229 Partien
– ECO C: 175 Partien
– ECO D: 296 Partien
– ECO E: 165 Partien
– Partie-Dubletten: keine
– Zeitüberschreitungen: fünf (Raubfish)
(Raubfish spielte mit einem experimentellen Setting:
„Analysis ICC“ & „Deep Analysis ICC“ ON)

 

Programm-Turnier Stockfish vs Leela - Best Chess Engines August-2019 Blitz-Tournament - Glarean Magazin
Schachprogramme: Das Duell der Engine-Giganten – Stockfish oder Leela? (Computer-Turnier August 2019)

Die schachlichen Top Shots

Sony HDR-PJ410 Full HD Camcorder
Anzeige

Abschliessend hier aus diesem Turnier noch ein halbes Dutzend schachlicher Top Shots, die nicht nur besonders ästhetisch sind, sondern auch demonstrieren, zu welchen Glanzzügen moderne Schachprogramme in der Lage sind, auch wenn sie – wenngleich auf flotter Hardware – nur einige Sekunden pro Zug verfügbar haben. Mit durchschnittlichen Rechentiefen von 25-30 Halbzügen spielen heutzutage die Engines auch in Blitzpartien auf einem Niveau, das früher von ihren Vorgängern erst nach stundenlangen Partien (und auch nur annähernd…) erreicht wurde.

Der knappe Turniersieger Brainfish spielte übrigens quasi ausser Konkurrenz mit (war aber als eine Art Referenz gedacht): Im Gegensatz zu allen anderen, die ausser der Vorgabe von 5 Eröffnungszügen keinerlei eigene Opening Books benutzen durften, erhielt Brainfish gleich zwei Default-Bücher, nämlich sein integrales „Cerebellum“ sowie ein spezifisches NN-Book namens „Cerebellum Leela Net„. Dieses Duo erwies sich dann als unwiderstehlich…

♥ Hier lassen sich alle Original-Partien des Turnieres downloaden im CBH- und PGN-Format (zip-File)

Mausklick auf einen Zug oder eine Variante öffnet das Analyse-Fenster mit Download-Option

FEN-String: r1b1k3/p3p1b1/2p3p1/1q1p1pPr/N2PnB1p/7P/PP2PPB1/R2Q1RK1 w q – 0 16

FEN-String: r2q1rk1/pppnbpp1/2npb2p/1B6/4P3/2N1QN1P/PPPB1PP1/R3K2R w KQ – 0 12

FEN-String: r1bqk2r/pp2bpp1/2n4p/2pnp3/7P/1P1P1NP1/P3PPB1/RNBQ1RK1 b kq – 0 9

FEN-String: r2q1rk1/1b1nbppp/1n1p4/pppPp3/4P1P1/2P1BN1P/PPBN1P2/R2Q1RK1 w – – 0 14

FEN-String: 8/2b1k3/2p5/4p3/2P1N3/2B2KP1/1P2RP2/r2r4 w – – 0 49

FEN-String: r3r1k1/3b1ppp/8/1p1p4/nPpP1BP1/4P2P/P4P2/1NQ3K1 b – – 0 24

Lesen Sie im Glarean Magazin zum Thema Computerschach-Partien auch über die neue Version der Schach-Datenbank Chessbase (15)

… sowie zum Vergleich mit älteren Engines-Ranglisten: Die grosse Computerschach-Datenbank COMP 2007

Interessante News-Links zum Thema Schach:

4 Gedanken zu “Schachprogramme: Das Duell der Engine-Giganten

  1. Normalerweise bin ich mit DroidFish unterwegs. Im Packet Chess Engunes 2.5 war auch Leela Chess Zero enthalten, wurde aber wegen Probleme wieder entfernt.
    Ich finde keine weitere dies bezügliche Alternative.
    Deswegen benutze ich Chessify dort ist LCZero enthalten. Einstellungen gibt es dort keine.

  2. Weshalb hat Leela gegen Deep Fritz 15 keine Chance ? Ich habe 4 Partien unter Android gespielt. Ich werde noch weiter testen.

    • Wenn „Leela gegen Deep Fritz 15 keine Chance hat“, dürfte ein fehlerhaftes Lc0-Setting vorliegen.
      Vielleicht schreibst du hier mal deine Leela-Konfiguration rein?
      Und dann müssten die betr. Android-Engines genau beobachtet werden. Bist du mit Droidfish unterwegs?
      Kann drittens aber auch sein, dass nach ein paar hundert Games auch bei dir das AI-Programm mit mind. 90 Gewinnprozenten zu Buche steht…
      Ich bin gespannt 🙂 W.E.

Kommentare sind willkommen! (Keine E-Mail-Pflicht)