Skip to content
Pikafish: Der vollständige Leitfaden zur stärksten Xiangqi-Engine

Pikafish: Der vollständige Leitfaden zur stärksten Xiangqi-Engine

Was Pikafish ist, wie stark es wirklich spielt und wie man es installiert, konfiguriert und liest

Matthew Leroy7 min

Was ist Pikafish?

Pikafish ist eine kostenlose, quelloffene Xiangqi-Engine: ein Programm, das eine Stellung entgegennimmt und den Zug zurückgibt, den es für den besten hält, zusammen mit einer numerischen Einschätzung, wer besser steht. Es hat keine eigene Oberfläche. Es ist ein Rechenkern, der über Textbefehle mit einem grafischen Programm spricht, so wie ein Motor unter der Motorhaube sitzt. Diese Trennung ist Absicht: Wer Engine und Oberfläche trennt, kann denselben Kern für ein Analysebrett am Rechner, eine Handy-App oder eine Website verwenden. Pikafish ist aus denselben Gründen zur Referenz-Engine der Xiangqi-Welt geworden wie Stockfish im Schach: stärker als die kommerziellen Alternativen, kostenlos, und der Quellcode ist öffentlich, sodass jeder nachprüfen kann, was das Programm tut. Wer den größeren Zusammenhang sucht, wie Computer das Xiangqi übernommen haben, findet in unserem Überblick über Xiangqi-KI-Engines die ganze Geschichte; dieser Artikel widmet sich Pikafish selbst.

Woher kommt Pikafish? Die Stockfish-Linie

Pikafish ist eine Ableitung von Stockfish, der quelloffenen Schach-Engine, die den Computerschach seit über einem Jahrzehnt dominiert. Statt einen Suchalgorithmus neu zu bauen, übernahmen die Autoren Stockfishs bewährte Suche — jenen Teil, der entscheidet, welche Äste des Zugbaums es zu untersuchen lohnt und welche sich gefahrlos abschneiden lassen — und passten sie an ein Spiel mit 9x10-Brett, Fluss, Palast und Figuren an, die sich in nichts wie ihre Schach-Gegenstücke verhalten. Die Bewertung musste dagegen komplett neu entstehen: Zu wissen, dass ein Turm auf offener Linie stark ist, sagt nichts darüber, wie eine Kanone zu bewerten ist, die zum Schlagen eine Blende braucht. Dieses Erbe erklärt vieles: Befehlssprache, Konfigurationsoptionen, Veröffentlichungskonventionen und Lizenz stammen alle aus der Stockfish-Familie. Verbreitet wird es unter der GPL v3, also frei nutzbar und veränderbar, wobei jede Ableitung ebenfalls unter denselben Bedingungen veröffentlicht werden muss.

Wie stark ist Pikafish wirklich?

Sehr stark — so stark, dass die Frage, wie man es schlägt, keine ernsthafte Antwort mehr hat. Auf gewöhnlicher moderner Hardware und mit wenigen Sekunden pro Zug spielt Pikafish weit oberhalb der stärksten menschlichen Großmeister. Es patzt nicht, ermüdet nie, rechnet forcierte Varianten tiefer, als ein Mensch sie im Kopf halten kann, und bewertet ruhige Stellungen mit einer Konstanz, die niemand über eine lange Partie durchhält. Interessant ist nicht der Vergleich Mensch gegen Engine, sondern wofür die Engine nützlich ist. Ein Spieler mit 1400 gewinnt nichts durch die Auskunft, eine Stellung stehe zwei Punkte schlechter; er gewinnt durch das Verständnis, welcher Zug das Problem geschaffen hat. Deshalb zählt die rohe Stärke weit weniger als der Umgang damit. Unser Artikel über Elo-Zahlen im Xiangqi ordnet die menschlichen Skalen ein und zeigt, dass der Abstand zwischen Klubspieler und Großmeister kleiner ist als der zwischen Großmeister und Engine.

Was ist NNUE, und warum braucht Pikafish eine separate Datei?

NNUE steht für ein effizient aktualisierbares neuronales Netz und ist derjenige Teil von Pikafish, der Stellungen beurteilt. Klassische Engines bewerteten mit handgeschriebenen Regeln: Ein Turm ist so viel wert, ein gedeckter Soldat jenseits des Flusses so viel, ein entblößter General kostet Abzug. NNUE ersetzt diese handgeschriebene Tabelle durch ein kleines neuronales Netz, das auf Millionen von Stellungen trainiert wurde und Feinheiten erfasst, die niemand als Regel formulieren konnte. Entscheidend ist das Wort effizient: Das Netz ist so gebaut, dass bei einem einzelnen Zug nur ein kleiner Teil der Rechnung neu erfolgen muss — erst das macht es schnell genug für Millionen Auswertungen pro Sekunde. In der Praxis liegt dieses Netz in einer separaten Datei, meist mit einem Namen wie pikafish.nnue. Die ausführbare Datei allein enthält es nicht. Das ist mit Abstand die häufigste Stolperfalle für Einsteiger und Thema des nächsten Abschnitts.

Wie lädt und startet man Pikafish?

Pikafish wird als kompiliertes Programm im öffentlichen Repository github.com/official-pikafish/Pikafish verteilt, mit Builds für Windows, Linux, macOS und Android. Die Veröffentlichungen enthalten meist mehrere Varianten derselben Version, benannt nach Prozessor-Befehlssätzen — avx2, bmi2, vnni und ähnliche. Das sind keine verschiedenen Engines, sondern dasselbe Programm, übersetzt für mehr oder weniger neue Prozessorfunktionen. Nehmen Sie die neueste, die Ihr Rechner unterstützt; verweigert sie den Start mit einem Fehler über eine ungültige Instruktion, gehen Sie eine Stufe zurück. Das Release-Archiv enthält das NNUE-Netz bereits; ein normaler Download braucht keinen Zusatzschritt. Selbst holen müssen Sie das Netz nur, wenn Sie aus den Quellen kompilieren — dann liegt es im Networks-Repository und gehört neben das Programm. Subtil scheitert das übrigens nicht: Eine Engine, die ihr Netz nicht laden kann, nennt den versuchten Pfad und die Download-URL und beendet sich — sie spielt nie einfach schwach weiter. Und denken Sie daran: Das Programm hat weder Fenster noch Brett — Sie brauchen eine grafische Oberfläche, die dasselbe Protokoll spricht.

Wie konfiguriert man Pikafish richtig?

Drei Einstellungen machen praktisch den ganzen Unterschied. Threads legt fest, wie viele Prozessorkerne die Engine nutzt. Mehr Threads bedeuten mehr geprüfte Stellungen pro Sekunde, doch ein freigelassener Kern hält den Rechner bedienbar; mehr Threads als tatsächliche Kerne bremsen nur. Hash ist der Speicher, in dem sich die Engine bereits bewertete Stellungen merkt, angegeben in Megabyte. Zu wenig, und sie rechnet dieselben Dinge endlos neu; zu viel, und sie konkurriert mit dem übrigen System. Ein paar hundert Megabyte sind für Analyse auf einem normalen Rechner bequem. Die dritte Einstellung ist eigentlich keine: wie lange Sie sie denken lassen. Die Stärke wächst mit der Zeit, aber mit abnehmendem Ertrag — der Sprung von einer auf zehn Sekunden ist groß, der von zehn auf hundert deutlich kleiner. Für das Studium eigener Partien genügen wenige Sekunden pro Stellung. Dieselben Abwägungen, angewandt auf Gegner statt auf Analyse, beschreiben wir in wie wir die Schwierigkeit der Bots austarieren.

Wie liest man die Ausgabe von Pikafish?

Die Engine gibt einen fortlaufenden Strom von Zeilen aus, und drei Zahlen zählen. Die Bewertung steht in Bauerneinheiten aus Sicht der Seite am Zug: ein positiver Wert heißt, die Seite am Zug steht besser, ein Wert um null bedeutet Ausgleich. Etwa +1 entspricht ungefähr dem Vorteil eines gesunden Mehrsoldaten, nicht einer gewonnenen Partie. Die Tiefe gibt an, wie viele Halbzüge weit gerechnet wurde; eine hohe Bewertung bei geringer Tiefe verdient deutlich weniger Vertrauen als eine bescheidene bei großer Tiefe. Die Hauptvariante ist die Zugfolge, die die Engine für beide Seiten als beste ansieht, und sie ist bei Weitem der lehrreichste Teil: Die Bewertung sagt Ihnen, dass etwas nicht stimmt, die Variante sagt warum. Anfänger lesen nur die Zahl; wer besser wird, liest die Zugfolge. Ist Ihnen die Notation in diesen Zeilen fremd, erklärt unser Leitfaden zur Xiangqi-Notation die gebräuchlichen Systeme.

Mit einer Engine besser werden — und wo die Grenze liegt

Eine Engine ist eine gnadenlose Antwortmaschine, und damit zugleich der beste und der schlechteste Lernpartner. Der produktive Weg ist, eigene Partien nach dem Spiel zu analysieren und vor dem Nachschauen selbst zu denken: erst ein eigenes Urteil bilden, wo die Partie kippte, dann prüfen. Wo die Engine widerspricht, liegt die Lektion. Der unproduktive Weg ist, sich durch eine Partie zu klicken und dem Bewertungsbalken beim Wandern zuzusehen: Es fühlt sich nach Arbeit an und lehrt nichts. Unterhalb von etwa 2000 entstehen die meisten Niederlagen aus Taktik, die man mit mehr Disziplin selbst findet, nicht aus Feinheiten, die nur eine Engine aufdeckt — unser Leitfaden zur Verbesserung im Xiangqi beschreibt einen wirksameren Weg. Und das Offensichtliche, das trotzdem gesagt gehört: Engine-Hilfe während einer laufenden Partie gegen einen Menschen ist Betrug, auf jeder ernsthaften Plattform und in jedem Verband. Engines gehören hinter die Partie oder in Stellungen, die gerade niemand spielt.

Pikafish nutzen, ohne etwas zu installieren

Wer nur eine starke Engine für seine Stellungen will, muss überhaupt nichts installieren. Xiangqi One führt Pikafish direkt aus, nativ in den mobilen Apps und als WebAssembly im Browser, sodass die Analyse auf dem eigenen Gerät läuft — ohne Installation, ohne Netzdatei zum Herunterladen, ohne Konfiguration. Sie öffnen ein Brett, spielen eine Partie nach und erhalten genau die oben beschriebene Engine-Einschätzung, so tief, wie Ihre Geduld reicht. Die Bots, gegen die Sie spielen, nutzen denselben Kern, bewusst gebremst, um Gegner auf einem Niveau zu erzeugen, gegen das zu spielen tatsächlich lohnt — die Überlegungen dazu stehen in wie wir die Schwierigkeit der Bots austarieren. Um sofort eine Stellung zu analysieren oder gegen einen kalibrierten Gegner zu spielen, öffnen Sie Xiangqi One. Für das größere Bild zu Engines und dazu, wie Computer das Spiel verändert haben, geht es weiter mit unserem Überblick über Xiangqi-KI-Engines oder der Kategorie Engines.

Weiterlesen