Nachdem Leela Zero (Lc0) zunächst ein Geheimtipp war und sich schnell zum Must-Have bei Profi-Schachspielern entwickelt hat, hat der einstige Branchenprimus Stockfish nachgezogen. Mit der Version Stockfish NNUE (Stockfish 12) wurde die Rechenpower von Stockfish mit den Bewertungs-(Lern)Techniken einer Leela Zero Engine kombiniert.
Das Ergebnis kann sich sehen lassen, denn nach nur wenigen Entwicklungsstufen konnte eine Steigerung der Spielstärke von etwa 90 ELO-Punkten gegenüber der Vorgängerversion erreicht werden (Stockfish 11).
Um die Leela Zero Engine zu Höchstleistungen in der Analyse und im Spiel zu bewegen, müssen Anwender tief in die Tasche greifen und sich kostspielige Grafikkarten mit ordentlich GPU-Power zulegen. Bei der Stockfish NNUE Engine braucht man das nicht. Wie bei allen bisherigen Versionen von Stockfish, nutzt auch Stockfish NNUE ausschließlich CPUs, was zum Einen Geld spart und zum Anderen die Zugänglichkeit für gute Analysen erleichtert.
Die Installation von Leela Zero ist zudem auch mit vielen weiteren Hürden verbunden. Will man von dieser Engine Spitzenleistung, muss man sich durch die Konfiguration kämpfen und an gefühlt tausend Schräubchen drehen. Das ist nicht jedermanns Sache. Stockfish NNUE zu installieren ist im Gegenzug ziemlich einfach.
Unter Windows wird Stockfish NNUE praktisch wie jede andere UCI Engine in beliebige Schachprogramme eingebunden. Ich habe ein Paket zusammengestellt, mit dem man sofort loslegen kann:
Stockfish NNUE (2734 Downloads)
Nach dem Herunterladen entpacken wir das Zip-Archiv und finden drei verschiedene UCI-Engines im Ordner. Je nachdem, welche CPU wir in unserem Rechner haben, binden wir eine der drei EXE-Dateien als UCI-Engine in unser Schachprogramm ein. In meinem Fall habe ich mich für Fritz 17 entschieden.
Klicken wir nun auf Parameter, können wir die bei UCI-Engines üblichen Parameter einstellen:
Wichtiger Hinweis! Ich habe es an anderer Stelle auf dieser Webseite bereits ausgeführt, möchte aber nochmals kurz auf den Contempt-Faktor eingehen. Dieser ist bei Stockfish standardmäßig auf den Wert 24 eingestellt. Da die meisten Anwender Stockfish zum Analysieren verwenden, sollte man diesen Wert auf jeden Fall auf 0 (Null) stellen. Mit dem Contempt-Faktor kann man der Engine sagen, wie positiv oder negativ die Engine eine Stellung beurteilen soll. Der voreingestellte Wert 24 bewirkt, dass Stockfish eine Stellung für sich immer positiver bewertet, als sie tatsächlich ist. Damit will man verhindern, dass Stockfish in Engine-Zweikämpfen in ausgeglichenen Stellungen zu früh ins Remis abdriftet und weiter kämpft. Analysieren wir mit Stockfish, wollen wir aber die tatsächliche Bewertung der Stellung wissen und deshalb setzen wir den Wert auf 0 (Null).
Nachtrag: Wie Forenmitglied Herman in den Kommentaren richtig anmerkt, reicht es auch aus, wenn man im Parameterfenster den Punkt Analysis Contempt einfach auf Off stellt.
Neu ist in dem Parameter-Fenster die Einstellung der Bewertungs-Datei (EvalFile). Genau hier liegt der Kern von Stockfish NNUE. Wie bei Leela Zero, ist es nun auch beim neuen Stockfish notwendig eine Bewertungsdatei einzubinden. Diese Bewertungsdateien werden durch eine Vielzahl von gespielten Partien generiert und auf folgender Webseite zum Download bereitgestellt:
https://www.comp.nus.edu.sg/~sergio-v/nnue/
Die neusten Bewertungs-Dateien befinden sich oben in der Liste. Lädt man sich nun die neuste Bewertungsdatei herunter, muss man den Pfad zu dieser Bewertungsdatei in dem Parameter-Fenster eintragen/ersetzen (im Bild ./eval/nn.bin).
Das war es auch schon. Nun können wir Stockfish NNUE für unsere Analysen nutzen. Nun gibt es unter den Schachspielern aber nicht nur Windows-Nutzer, sondern auch Nutzer anderer Betriebssysteme. Wie schon bei allen anderen Stockfish-Versionen zuvor, kann man sich Stockfish für ein beliebiges Betriebssystem kompilieren lassen. Unter folgendem Link finden Sie den Quellcode:
https://github.com/nodchip/Stockfish
Aktuelle Infos zum Stockfish-Projekt gibt es auf folgender Webseite:
https://blog.stockfishchess.org/post/625828091343896577/introducing-nnue-evaluation
Viel Spaß mit dem neuen Stockfish
Euer Benny
Contempt muss nicht auf 0 gesetzt werden zum Analysieren.
Deshalb gibt es seit Stockfish 10 den UCI Parameter „Analysis Contempt“ und den auf „Off“ setzten.
Hallo Herman, so geht es natürlich auch. Gute Info
Gruß
Benny
Lieber Benny, vielen Dank für Deine Info.
Ich habe das folgende Problem: die von Dir empfohlenen Parameteränderungen werden nicht gespeichert – wenn ich mir die Eingine-Parameter wieder anschaue, steht bei „Contempt“ wieder 24 statt 0,“both“ statt „off“ usw. Hast Du eine Idee, was man damit machen kann? Vielen Dank im Voraus.
Hallo Valéri,
das Problem mit dem Speichern der Parameter kenne ich. Um nicht jedesmal bei einer neuen Analyse den Parameter umstellen zu müssen, muss zunächst die Stockfish-Engine wieder aus dem Schachprogramm entfernt werden. Anschließend startet mal das Schachprogramm neu mit Administrator-Rechten und wenn man nun die Stockfish-Engine einbindet, geht man direkt beim Einbinden in die Parameter und stellt dort den Contempt-Wert auf Null. Schließt man nun die Einbindung der Engine ab, ist Stockfish dauerhaft mit dem Contempt-Wert Null gespeichert.
Noch ein kurzer Hinweis. Im Parameter-Fenster befindet sich bei den neueren Stockfish-Versionen auch die Option Analysis-Contempt. Diese ist standardmäßig auf Null gestellt. Dies bedeutet, dass die neueren Stockfish-Versionen automatisch im Analysemodus den Contempt-Faktor auf Null stellen.
Solltest Du noch Fragen haben, stehe ich Dir gerne zur Verfügung 😉
Gruß
Benny
PS:
Mit Deinen Schachbüchern habe ich immer gerne gearbeitet. Wird es von Dir bald wieder einen neuen Titel geben?
Pingback: Stockfish 12 - Das Steckerlfisch schlägt zurück - Schachcomputer Topschach.de
Hallo Benny. Wie installiert man NNue auf ein Android PAD?
Danke und liebe Grüße Micha
Hallo Michael,
Die NNUE-Technik musst Du nicht separat installieren. Diese ist bereits in Stockfish 12 und Stockfish NNUE enthalten. Um die Engine Stockfish 12 mit der NNUE-Technik unter Android (Smartphone, Tablet, etc.) einzubinden, lädst Du Dir die für Android-Geräte kompilierte Engine unter folgendem Link auf Deinem Android-Gerät herunter:
https://stockfishchess.org/files/stockfish_12_android.zip
Anschließend das ZIP entpacken und die für die vorhandene Hardware entsprechende ARM-Version in ein beliebiges Android-Schachprogramm einbinden. Auf der Download-Webseite von Stockfish findest Du Empfehlungen:
https://stockfishchess.org/download/ (Etwas runterscrollen)
Gruß
Benny
Liebe Schachspieler,
zur Zeit verwende ich noch Stockfish 11 und habe bei Analysen, wo ich Bäume aufbauen lasse, ein Problem.
Ich benutze dafür in der Chessbase Oberfläche die Funktion „Analyse – Stellungsanalyse“, Tiefe =46, und gebe dort bei den Verzweigungen 4-4-4-1 ein. Wenn nun Stockfish in der ersten Verzweigung eine Variante um vieles besser, wie die anderen Varianten bewertet, so analysiert er stundenlang an in dieser Verzweigung statt in die die nächste Verzweigung zu gehen. Wie verhindert man das ?
mfg
Heinz
Hallo Heinz,
zunächst einmal ist eine vorgegebene Suchtiefe von 46 zu viel des Guten. Hier reicht ein Wert um die 20. Die Ergebnisse werden bei höheren Suchtiefen nicht besser, da die Logik (Das Schachwissen) des Programms den Weg der Varianten bereits frühzeitig ebnet. Mit Suchtiefe 46 teilst Du Stockfish mit, dass die Ergebnisse erst bei dieser Suchtiefe eine Wertigkeit besitzen. Weiterhin schneidet Stockfish in der Standardeinstellung Varianten mit schlechten Bewertungen frühzeitig ab. Das kannst Du verhindern, indem Du die Schwelle, wann ein/e Zug/Variante schlecht ist, erhöhst.
Bei Deiner Einstellung 4-4-1 passiert Folgendes:
Stockfish wählt die ersten 4 Kandidatenzüge. Bei jedem dieser Kandidatenzüge werden wieder jeweils 4 Kandidatenzüge ermittelt. Anschließend wird innerhalb dieser Kandidatenzüge die einzig beste Fortsetzung gesucht. Jeder einzelne Zug innerhalb der Varianten hat dann auch erst bei Suchtiefe 46 eine Abschlussbewertung.
In Stellungsanalysen wählt man normal ein 1-3-4 Setting. Der Baum soll mit den Varianten wachsen. Wenn Du 4 verschiedene Anfangszüge berechnen willst, erstellst Du 4 verschiedene Stellungsanalysen und gibst die 4 Anfangszüge jeweils vor.
Nochmal ein Wort zur Suchtiefe. In Stellungsanalysen verwendet man grundsätzlich eine kleine schlanke Suchtiefe, durch welche die Stellunsanalyse mit allen Varianten schnell erstellt wird. Anschließend kann man eine Tiefe Variantenanalyse vornehmen. Die Stellungsanalyse ist in erster Linie nur dazu da, das Gerüst für weitere Analysen zu erstellen.
Viele Grüße
Benny
Hallo Benny,
hast du einen PC mit GPU ?
Falls ja, könntest Du die UCI-kompatiben Engines Allie https://github.com/manyoso/allie sowie Chessfighter https://drive.google.com/drive/folders/0B5Ao6h_yMCl6ay04RjVtUDVTUG8 testen, und deren Installation Schritt für Schritt erklären.
Bei Leelenstein https://www.patreon.com/posts/binary-35904027 reicht wahrscheinlich eine normale CPU auch nicht aus.
CUDA https://developer.nvidia.com/cuda-zone
Ich erstelle Listen für die ComputerChess Wiki http://www.computer-chess.org/doku.php zusammen mit Ron und möchte dort einen Beitrag schreiben über GPU-Engines. Gibt es auch eine SF-Version nur für GPUs?
Gruß,
Norbert
Hallo Norbert,
zum Testen der einzelnen Engines und dem Schreiben der einzelnen Tutorials bleibt momentan leider recht wenig Zeit. Ein eventueller Corona-Lockdown könnte das aber ändern. Ich habe Zugriff auf einige PC mit GPUs, jedoch halte ich die SF 12 Variante, welche auf GPUs verzichtet, für zukunftsweisender. Bei Stockfish 12 wird bewusst auf den Einsatz von GPUs verzichtet, womit ein breiteres Publikum erreicht wird. Eine SF 12 Version mit GPU-Unterstützung gibt es daher meines Wissens nicht. Die Komplexität der neuronalen Suche ist bei SF 12 ist im Vergleich zu beispielsweise LeelaZero um Einiges „oberflächlicher“, jedoch reicht es aus, um für sagenhaft gute Ergebnisse zu sorgen.
Bei SF 12 konzentriert man sich auf das Wesentliche und macht es zum Prinzip.
Viele Grüße
Benny
Hallo….ich habe SF 12 heruntergeladen. Leider kann ich die NNUE Datei nicht finden um Stockfisch zu konfigurieren….kann mir jemand helfen?
Wenn man auf der offiziellen Seite Stockfish 12 herunterlädt, wird automatisch eine NNUE Datei mit installiert. Wenn man anschließend die UCI-Engine in seine Schach-GUI einfügt, sollte in den Settings der Engine der entsprechende Pfad automatisch eingetragen sein.
Welches Schach-GUI verwendest Du?
Viele Grüße
Benny
Hallo Benny,
das hier ist eine sehr interessante Seite.
um die Frage von Harald mal fortzuführen: Ich habe ChessBase 16. Laut der Parametern der Engine heißt die NNUE Datei bei mir nn-82215d0fd0df.nnue. Die finde ich aber nicht auf meinem Computer. Die Engine von Stockfish 12 ist bei mir unter C:\Users\torst\AppData\Roaming\ChessBase\Engines.UCI gespeichert.
Wo sollte also die NNUE-Datei sein oder wo sollte ich eine NNUE-Datei speichern, wenn ich eine herunterladen will? Warum hat die Datei bei dir statt NNUE die Endung bin?
Hallo Benny,
Fat Fritz 2: Ist das ggfls. wieder eine verkaufte Mogelpackung von Stockfish NNUE ? Immerhin für 99 € !
MFG
Joachim
Recht hast Du! Ich habe bereits auf Twitter meinem Ärger Luft gemacht und werde hierzu noch einen Artikel schreiben.
Benny
Pingback: Fat Fritz 2 - Ein unmoralisches Angebot - Schachcomputer Topschach.de
Hallo an Alle,
habe mir gerade SF 13 heruntergeladen. Leider bekomme ich keine der Versionen zum Laufen. Es kommt immer: Programmabbruch ohne Exit Code. Hatte mit allen vorherigen SFs keine Probleme. Meine GUI ist Scid, mein Prozessor ein AMD Ryzen 7. Hat jemand eien Tip? Vielen Dank im voraus.
Gruß Horst
Hallo Horst,
normalerweise hilft der Chessbase-Support sehr gut bei Installationsproblemen. Du kannst Dich aber auch gerne an mich wenden. Probleme mit der Installation oder dem Ausführen von Fritz kann es geben, wenn man die Installation und die Ausführung des Programms nicht als Administrator startet. Klicke bei der Installation mit der rechten Maustaste auf die Setup.exe und wähle „Als Administrator installieren/starten/ausführen“ aus und nach der Installation startest Du Fritz ebenfalls mit der rechten Maustaste und wählst „Als Administrator ausführen“ aus.
Wenn das nicht hilft, können wir gerne eine Teamviewer-Session machen, in welcher ich mal einen genaueren Blick auf das Problem werfen kann.
Viele Grüße
Benny
Hallo, habe eine Frage zu dem Thema NNUE. Ich Habe S13 installiert und auf der Seite https://www.comp.nus.edu.sg/~sergio-v/nnue als link verwiesen wie dargestellt.Braucht man für NNUE eine Nvidia GF?
Nun bekomme ich aber eine Fehlermeldung wie folgt:
Stockfish 13 NNUE Caused an exception.This is a problem in the engine.
W10x64
32678MB
AMD Ryzen 93900X 12 Core Processor
N=1/P=1/C=12/L=24/G=1
AMD Radeon RX 5700 XT
AMD Radeon RX 5700 XT
AMD Radeon RX 5700 XT
AMD Radeon RX 5700 XT
AMD Radeon RX 5700 XT
AMD Radeon RX 5700 XT
AMD Radeon RX 5700 XT
AMD Radeon RX 5700 XT
Hallo Ludger,
der Vorteil der NNUE Technik ist, dass man für die Berechnungen keine GPUs benötigt. Also keine Grafikkarte. Was die Fehlermeldung von Stockfish 13 beim Starten betrifft, hast Du eventuell eine Version heruntergeladen, welche nicht zu Deinem Prozessortyp passt. Auf der Download-Seite von Stockfish findest Du die passende Version:
https://stockfishchess.org/download/
Viele Grüße
Benny
habe den Eindruck, meine Gegner spielen auf playchess mit eingebettetem Stockfish und weiß nicht wie die das machen
Auf Playchess gibt es einen sog. Computerraum. Dort kann man Engines einbinden und im Normalfall spielen diese eingebundenen Engines dann gegeneinander. Man kann sich auch selbst ins Unglück stürzen und ohne Engines dort spielen. Eventuell bist Du einfach im falschen Raum. Die meisten „normalen“ Spieler findet man im „Großen Spielsaal“.