Dr.
Erhard
Henkes
- 11.02.2022
Eröffnungen
Nimzowitsch-Indisch (Videos und Studien)
Nimzoindisch
Klassische
Variante mit 7.Sf3
Nimzoindisch
Klassische
Variante mit 7.Lg5
Nimzoindisch
Rubinstein Variante
Nimzoindisch
Sämisch
Variante
Nimzoindisch
Leningrader Variante
Nimzoindisch
Romanovsky-Gambit
Nimzoindisch_(Klassische
Variante) Partie Capablanca - Nimzowitsch (1928)
Lichess
Studie zur Vertiefung der Nimzoindisch-Videos
Damen-Indisch (Videos
und Studien)
Damenindisch_Bogoljubow-Variante
Damenindisch_Klassische
Variante
Damenindisch_Hauptvariante
mit ...La6
Damenindisch_Moderne
Hauptvariante mit ...La6
Damenindisch_Petrosjan-System
mit 4.a4
Lichess
Studie zur Vertiefung der Damenindisch-Videos
Russisch (Videos
und Studien)
Russisch
Hauptvariante und 3.Lc4
Blog
zu einer interessanten Nebenvariante des Urusov-Gambits
Computerschach
und Engines (mein Artikel aus 2020)
(wird demnächst
upgedatet auf die aktuellen Engines)
Stockfish 11 Sourcecode wird kompiliert/gelinkt und in Fritz17 via UCI eingebunden (23.10.2020)
Video
Als Tool zur Erstellung der exe-Datei für Windows (64bit) wird hier die freeware MS Visual Studio 2019 eingesetzt.
Video
Stockfish 11 als Konsolenanwendung, Eingaben im UCI-Format. Positionen im fen-Format, Züge im einfachen Format (ohne Figurenangabe) e2e4 e7e5 g1f3 b8c6 ...
Leela Chess Zero als
"Fat Fritz" (Stand
13.04.2020)
Das KI-Schachprogramm
LC0 wurde von Chessbase Fritz 17 als "Fat Fritz" implementiert.
"Gefüttert" wurde das lernfähige Open-Source-Programm mit
erstklassigen Partien aus der Chessbase Datenbank. Ich setze die
Kombination Fat Fritz, Fritz 17 und Stockfish 11 als Engines in der Fritz
17 GUI ein, so verfüge ich über ein m.E. unschlagbares Sekundanten-Team
mit ELO-Werten über 3500. Ich denke, GM und ihre Sekundanten nutzen
das inzwischen ebenso. Ein Engine-Match zwischen Stockfish 11 und Fat
Fritz zeigt, dass beide ebenbürtig sind.
Leela Chess Zero -
Schach Reloaded (Stand
31.05.2019)
Schach, das
königliche Spiel, das auf 8 * 8 = 64 Feldern gespielt wird, hat sich
geändert. Es begann 1996 mit der berühmten Partie IBM Deep Blue gegen Garri Kasparow. Die
Maschine besiegte den amtierenden Schachweltmeister. Kasparow konnte zwar
das Turnier für sich entscheiden, ein Jahr später verlor er aber gegen den
Supercomputer
Deep Blue.
Die Software war in C geschrieben und berechnete mit Hilfe der
gigantischen Hardware ca. 126 Millionen Positionen pro Sekunde. Das ist der klassische
brute force Ansatz, den auch heute noch viele Systeme nutzen. Der Vorteil
ist, dass keine Matt- oder Gewinnabfolge in der Betrachtungstiefe
übersehen wird. Heutige Software wie Stockfish 10 schafft blitzschnell
eine Tiefe von 25 bis 30 Halbzügen. Das Problem besteht darin, dass aber
mit jedem Halbzug etwa ein Faktor 20 hinzu kommt. Es ist also ein Kampf
der Hard- und Software gegen die Unendlichkeit.
Mit tiefen neuronalen Netzwerken geht das Ganze anders. Hier lernt die
"Software" (sprich das Netz) durch vertieftes Lernen. Alpha Zero ist in
den letzten Jahren bekannt geworden, weil zunächst alle menschlichen
Spieler und dann die brute force Software besiegt wurde. Letztendlich kann
diese neue Art von Software nur noch im Spiel gegen sich selbst dazu
lernen, und das beherrscht sie in Windeseile. Erkenntnisse, für die
Menschen Jahre brauchen, werden hier in wenigen Stunden gewonnen und
dauerhaft im "Netzwerk" gespeichert, und das ist der Beginn dieser
interessanten Entwicklung, die nun unumkehrbar abläuft sowohl zum Nutzen
als auch zum Schaden der Menschheit, wie immer wenn neue technische
Systeme sich ihren Weg bahnen.
Bisher konnte man als Schachspieler diese Entwicklung nur aus der Ferne
verfolgen. Seit dem Auftauchen von Leela Chess Zero
als Übertragung auf gewöhnliche Betriebssysteme ist nun eine Schach-Engine
mit am Start, die mit dieser (schwachen) künstlichen Intelligenz arbeitet.
Das Beste daran ist, dass man die Spielweise dieses neuen Schachmonsters
auf dem heimischen Rechner beobachten kann, und genau dies machen wir
jetzt sofort!
Ich zeige an einem konkreten Beispiel zunächst die Zutaten für ein Match Leela Chess Zero v0.21.2
vs.
Stockfish 10:
Mein Test-Computer:
CPU: Intel Core i7 3930K ("Sandy Bridge-E")
Grafikkarte: NVIDIA GeForce GTX 1080
RAM: 32 GB
Die NVIDIA Grafikkarte ist für einen raschen Ablauf wichtig, da sie
schnelles paralleles Rechnen mit optimaler Grafikkarten-Hardware erlaubt.
Die von NVIDIA entwickelte Architektur CUDA ist hier das Zauberwort. Die GPU wird hier
neben der CPU eingebunden. Man hört es am rauschenden Grafikkarten-Lüfter.
Deep Fritz 14:
Diese Schachsoftware verwende ich als GUI zur Durchführung des
Engine-Matches. Prinzipiell gibt es eine ganze Reihe alternativer freier
GUI-Systeme, wie z.B. Arena. Da ich den Deep Fritz 14 aber seit einigen
Jahren auf meinem PC habe, werde ich diesen natürlich nutzen, da man damit
halbwegs komfortabel arbeiten kann.
Leila Chess Zero:
Hier
findet man die freien Releases. Ich verwende hier v0.21.2-rc2 und zwar die Version mit CUDA für die NVIDIA
Grafikkarte.
Diese Software und die entsprechenen neuronalen Netze werden ständig
weiterentwickelt. Die Tester kommen da gar nicht mehr hinterher.
Stockfish 10:
Hier findet man den
Download der freien Schachengine, die sich mit der Zeit an die Weltspitze
gearbeitet hat. Ich verwende für den aktuellen Test Stockfish 10 for Windows.
Nach Downloads und Entpacken der komprimierten Zip-Files findet sich eine
Datei namens "lc0.exe" auf dem Rechner, ebenso die entsprechende
"stockfish_10_x64.exe". Dies sind die Engines (bei Arena auch Motoren
genannt). Bei Leela Chess Zero (lc0) sollte man noch folgende Punkte
vorbereiten:
1) Möglichst NVIDIA Grafikkarte wegen CUDA
2) Aktuellen NVIDIA-Grafikkartentreiber installieren, damit CUDA gut läuft
3) client.exe oder LCZero_client.exe zumindest einmal ausführen, damit das
passende neuronale Netzwerk (weights file) geholt wird. Sobald Spiele
gegen sich selbst erzeugt und hochgeladen werden (Futter für das Training
der neuronalen Netzwerke), ist alles richtig vorbereitet.
In Deep Fritz 14 wählt man den Menüpunkt "Engine".
Dort findet man "UCI Engine erstellen". Man wählt die Datei ...\lc0.exe
aus und stellt bei den Parametern den Parameter "Backend" auf
"cudnn-fp16".
Wir binden auch Stockfish durch Anwahl der stockfish_10_x64.exe als Engine ein.
Unter "Engines verwalten" sieht man alle aktiven UCI-Engines.
Nun zum Match, das in Deep Fritz 14 leicht zu starten ist:
Wir wählen "Enginematch" und legen folgendes File neu an:
lc0_vs_stockfish10.cbmatch (Name beliebig einzugeben)
Mit Neu/Öffnen bestätigen! Die Partienanzahl legen wir auf eine gwünschte
Anzahl, z.B. sechs, fest. Wir lassen beide auf Gegnerzeit (oder auch
nicht) rechnen.
Bei "Weiß" definieren wir Lc0 und bei "Schwarz" Stockfish 10 64.
Die Zeit legen wir z.B. auf Blitz 4m+2s fest.
Sobald wir OK drücken geht es sofort los! Die beiden Schach-Monster mit
ihren völlig verschiedenen Strategien bekämpfen sich sofort in
atemberaubenden Tempo. Da kommt kein live-Kommentator hinterher. Zum Glück
zeichnet Deep Fritz 14 die Partien für uns in der angegeben Datenbank auf.
Persönlich bin ich ein Fan der Spielweise von Leela Chess Zero. Sie wirkt
"menschlicher" als die Zugfolgen der brute force Maschinen. Man darf nicht
vergessen, dass wir es hier mit Software zu tun haben, die zurzeit(!) ca.
700 ELO-Punkte über dem amtierenden Weltmeister liegt. Das ist also nicht
einfach ein Ersatz der Spitzenspieler, sondern eine ganz neue Klasse des
Schachspiels.
Kombiniert man geistig beide Arten von Software, so hat man ein echtes
"Schach-Monster" auf dem virtuellen Brett.
Nun zum Match zweier Engines, das Sie hoffentlich auch selbst zum Laufen
bekommen:
Viel Spaß dabei!
Es geht sogar noch mehr in Deep Fritz 14, nämlich ein Engine-Turnier,
bei dem man sogar Menschen einladen kann. Bedingungen, Bücher und Zeiten
kann man als "Turnierleiter" festlegen.
Ich habe Deep Fritz 14, Leela Chess Zero
und Stockfish 10 (alle 64 bit Engines) zum Rundenturnier mit 40
Zügen in 10 Minuten "eingeladen", und schon geht es los.
Mich beeindruckt die Tiefe, bis zu der Stockfish 10 rechnet, nämlich im
Bereich von 25 bis 30 Halbzügen. Fritz 14 kommt da eher auf 20 bis 25
Halbzüge. Interessant ist deutlich voneinander abweichende Bewertung der
verschiedenen Engines. Bei Analysen sollte man also am besten alle drei
als Kiebitze einladen.
Nach meiner Einschätzung hat Fritz 14 gegen die beiden anderen Engines
keine Chance. Seine Zeit ist vorbei.
Bei Leela Chess Zero (Lc0) und Stockfish 10 hängt es von den zeitlichen
Bedingungen ab, wer die Nase vorne hat. Der Halbzüge-Horizont von
Stockfish ist auf meinem PC beachtlich. Dagegen spielt Lc0 m.E. das
elegantere Schach, und dies erfolgt mit viel weniger Aufwand in Bezug auf
die durchgerechneten Positionen. Auf längere Sicht könnte Leela mit seiner
Lernfähigkeit die Nase vorn behalten.
Hier folgt das Ergebnis meines kleinen Turniers (ohne Rückrunde):
Hier findet sich die Partie
zwischen Stockfish und Lc0, die durch dreifache Stellungswiederholung in
einem Remis endet.
Bei einem Test über 8 Partien lag übrigens Stockfish 10 deutlich mit 5,5 :
2,5 vor Lc0. Das macht die Angelegenheit spannend. Wir sind genau am
Punkt, an dem die alpha-beta-Maschinen durch den Audodidakten Lc0
eingeholt werden. Viele erwarten, dass Lc0 seinen Gegner Stockfish 10 bald
in den Schatten stellt.
Wie "genial" (aus menschlicher Sicht) ist Lc0? Schauen wir es uns an.
Interessant ist folgende Taktikaufgabe aus dem Spiel von Nigel Short gegen
Jan Timman (Tilburg, 1991):
Damit die weiße Dame auf g7 Matt setzen kann , läuft der weiße König nach
vorne durch bis h6. Ein berühmt gewordenes Manöver.
Diese Idee
wirkt auf uns Menschen genial und außergewöhnlich. Die klassischen
brute-force Engines finden den Schlüsselzug relativ rasch. Stockfish
10 (64 bit) schafft den Schlüsselzug Kg3 auf meinem PC in 6,7 Sekunden.
Alle Achtung! Dass dieser Zug zu einem Matt führt, zeigt Stockfish erst
bei Tiefe 38 an. Hierzu benötigt er bereits 3,5 Minuten. Nun
lassen wir noch den Crafty 23.05. x64 ran. Er hat den Schlüsselzug
in ca. 4 Sekunden gefunden. Deep Fritz 14 schafft es in 9 Sekunden. Da
gibt es nix zu meckern.
Daher
ist es ein guter Test für Leela Chess Zero, denn man kann ihn eher mit
einem menschlichen Spieler vergleichen. Leela
Chess
Zero v0.21.2 benötigt für den Schlüsselzug Kg3 fast 50 Sekunden. Hierbei
wird eine Tiefe von 12 angezeigt. Lc0 benötigt einfach mehr Zeit, um in
die Tiefe vorzudringen, als der rasend schnelle Stockfish 10. Sobald
dieses Thema abgehakt ist, wird Leela glänzen.
Edit
28.04.2020: Auf dem gleichen PC mit Fat Fritz (KI Bestandteil von
Fritz17): 30 sec mit Tiefe 8, also ist ein spürbarer Fortschritt
erkennbar.
Bei Stockfish 11 ist gegenüber Stockfish 10 kein Vorteil erkennbar,
denn er benötigt genauso lange.