Nibbler im großen Überblick: die Analyse-Oberfläche für Lc0 und andere UCI-Engines

Wir haben in den letzten Monaten mehrere Einzelartikel zu Nibbler veröffentlicht – zu WDL Contempt, zu den Statistiken N/P/Q/U/D/V, zur Partie-Nachbereitung und zur manuellen Neuerungssuche. Dieser Artikel fasst nun alles in einem großen Überblick zusammen: Herkunft, Installation, Bedienoberfläche, alle Konfigurationsmöglichkeiten und die Besonderheiten, die Nibbler von den anderen in dieser Serie getesteten Programmen unterscheiden.

Hinweis zu den Abbildungen: Da Nibbler eine reine Desktop-Anwendung ohne Weboberfläche ist, zeigen die Grafiken in diesem Artikel schematische, selbst erstellte Darstellungen der jeweiligen Funktion – keine Original-Screenshots des Programms.

Herkunft und Philosophie

Nibbler wird von einem Entwickler unter dem Pseudonym „rooklift“ auf GitHub gepflegt und ist als reine Analyse-Oberfläche für Leela Chess Zero (Lc0) entstanden – lose inspiriert von Lizzie (der bekannten Analyse-GUI aus der Go-Welt) und Sabaki. Der Name des Programms und sein Anspruch sind Programm: Nibbler „knabbert“ kontinuierlich an der aktuellen Stellung, während Leela im Hintergrund läuft, und zeigt permanent aktualisierte Einschätzungen an.

Mittlerweile funktioniert Nibbler nach Angaben des Entwicklers auch mit klassischen Engines wie Stockfish weitgehend problemlos – vorausgesetzt, MultiPV steht auf 1, Threads sind passend gesetzt und ausreichend Hash-Speicher ist konfiguriert. Das Icon des Programms stammt von einem Mitwirkenden namens ciriousjoker und basiert auf einer freien SVG-Vorlage.

Installation: Windows, Linux und Mac

Für Windows und Linux stellt der Entwickler von Zeit zu Zeit fertige Standalone-Releases über die GitHub-Releases-Seite bereit. Linux-Nutzer können zusätzlich ein Einzeiler-Installationsskript verwenden, das automatisch die neueste Version lädt. Alternativ lässt sich Nibbler auch direkt aus dem Quellcode heraus betreiben: Da die Anwendung auf Electron basiert, genügt eine lokale Electron-Installation (z. B. über npm install -g electron), um die Anwendung im /src-Verzeichnis per electron . zu starten – kompatibel ab Electron Version 5.

Bei macOS ist die Lage etwas unübersichtlicher, da es keinen offiziellen Mac-Build vom Hauptentwickler gibt. Stattdessen existieren mehrere von der Community gepflegte Portierungen (u. a. von den GitHub-Nutzern twoplan, Jac-Zac und Zamana), wobei die Version von Zamana nach Angaben im offiziellen Repository aktuell am ehesten auf dem neuesten Stand ist. Wer die üblichen Gatekeeper-Probleme mit unsignierten Apps umgehen möchte, kann alternativ ein bereitgestelltes Installationsskript nutzen, das Nibbler direkt auf dem eigenen Mac zusammenbaut, statt eine vorgefertigte, unsignierte App zu laden.

Die Bedienoberfläche im Überblick

Im Zentrum steht, wie bei den meisten Analyse-GUIs, das Schachbrett mit eingeblendeten Zugpfeilen für die von der Engine favorisierten Kandidatenzüge. Rechts daneben listet Nibbler die aktuell berechneten Züge mit ihren Kennzahlen auf, darunter wahlweise N, P, Q, S, U, V und WDL für jeden Zug einzeln. Unterhalb des Bretts zeigt ein fortlaufender Winrate-Graph, wie sich die Bewertung über den Verlauf der Partie entwickelt hat – nützlich, um markante Wendepunkte auf einen Blick zu erkennen, statt jede Stellung einzeln durchzuklicken.

Schematische Darstellung des Nibbler-Hauptfensters: Brett, Zugliste mit Kennzahlen, Winrate-Graph.

Zu den Grundfunktionen zählen außerdem: PGN-Laden per Menü, Zwischenablage oder Drag-and-Drop, Unterstützung für PGN-Varianten beliebiger Tiefe, FEN-Laden, Chess960-Unterstützung sowie die Möglichkeit, direkt gegen Leela zu spielen oder Leela von einer beliebigen Stellung aus gegen sich selbst spielen zu lassen.

Die Leela-Statistiken verstehen: N, P, Q, S, U, V, WDL

Wer zum ersten Mal die Zusatzstatistiken in Nibbler aktiviert, sieht sich einer Wand aus Buchstaben gegenüber. Hier die Kurzfassung dessen, was jeder Wert bedeutet:

Schematische Übersicht der wichtigsten Leela-Kennzahlen pro Kandidatenzug.

  • N (Besuche): wie viel der verfügbaren Rechenzeit/Simulationen in diesen Zug geflossen ist – der zuverlässigste Hinweis darauf, welchen Zug Leela tatsächlich für den besten hält.
  • P (Policy): die Ersteinschätzung des neuronalen Netzes vor jeder tieferen Suche – ein Bauchgefühl, das die Suche lenkt, aber nicht das letzte Wort hat.
  • Q (Value/Auswertung): die aus der bisherigen Suche abgeleitete Bewertung dieses Zuges.
  • U (Unsicherheits-Bonus): ein sich selbst abbauender Vertrauensvorschuss für Züge, die noch wenig untersucht wurden – der Mechanismus, der verhindert, dass Leela sich zu früh auf einen einzigen Kandidatenzug versteift.
  • D (Draw-Wahrscheinlichkeit): Teil der WDL-Ausgabe des Netzes.
  • V: die reine, ungefilterte Netzwerk-Bewertung der Ausgangsstellung, ohne jede Suche – nützlich, um das „Bauchgefühl“ des Netzes von der tatsächlichen Rechenarbeit zu unterscheiden.

Diese Werte lassen sich in Nibblers Analyse-Menü einzeln ein- und ausblenden, je nachdem, wie viel Detailtiefe man während der Analyse sehen möchte.

WDL Contempt konfigurieren

Seit Version 2.4.5 bietet Nibbler einen direkten GUI-Weg, um Leelas WDL-Contempt-Funktion zu nutzen, ohne Konfigurationsdateien von Hand bearbeiten zu müssen: Grundlegende Einstellungen finden sich im Engine-Menü. Seit 2.4.6 kam zusätzlich die Option WDLEvalObjectivity hinzu.

Schematischer Vergleich: WDL-Balken ohne und mit aktiviertem Contempt gegen einen schwächeren Gegner.

Für Parameter, die nicht über die Nibbler-Oberfläche zugänglich sind – etwa WDLDrawRateReference, WDLContemptAttenuation oder MovesLeftThreshold – bleibt weiterhin der Weg über Leelas eigene Konfigurationsdatei lc0.config oder über Nibblers engines.json (erreichbar über das Dev-Menü). Beide Wege lassen sich kombinieren: die gängigen Einstellungen komfortabel über die Oberfläche, die selteneren Spezialparameter direkt in der Konfigurationsdatei.

Automatische Partie-Analyse und Winrate-Graph für die Nachbereitung

Für die Nachbereitung eigener Vereinspartien ist die automatische Ganzpartie-Analyse die praktisch nützlichste Funktion: Nibbler rechnet die komplette Partie einmal automatisch durch und trägt die Bewertungen in den Winrate-Graphen ein. Der bewährte Workflow, den wir in unserem separaten Nibbler-Workflow-Artikel bereits ausführlich beschrieben haben, lässt sich hier kurz zusammenfassen:

  • PGN laden – per Menü, Zwischenablage oder Drag & Drop.
  • Automatische Ganzpartie-Analyse mit sinnvollem Node- oder Zeitlimit starten.
  • Den Winrate-Graphen nach deutlichen Ausschlägen absuchen, statt Zug für Zug vorzugehen.
  • Kritische Stellen mit den Kennzahlen N/P/Q/WDL im Detail untersuchen, ggf. mit realistischer Contempt-/Kalibrierungseinstellung.
  • Erkenntnisse mit eigener Einordnung festhalten, nicht nur die reine Engine-Zahl übernehmen.

Ein derart strukturierter Durchlauf reduziert den Zeitaufwand einer gründlichen Partienachbereitung erfahrungsgemäß deutlich, bei mindestens ebenso hohem Erkenntnisgewinn wie beim vollständigen Durchklicken jeder Einzelstellung.

Manuelle Neuerungssuche: Contempt-Wert neben Lichess-Datenbank

Wer keine Lust auf eine separate Python-Umgebung hat, kann Neuerungen und seltene, aber starke Züge auch komplett innerhalb von Nibbler aufspüren: indem man Leelas Contempt-Bewertung neben die tatsächliche Zughäufigkeit aus der (optional in Nibbler integrierten) Lichess-Datenbank-Abfrage legt – Zug für Zug, direkt im gewohnten Analysefenster.

Schematische Gegenüberstellung von Contempt-Bewertung und Lichess-Datenbank-Häufigkeit je Kandidatenzug.

Ein Punkt, der bei dieser Methode häufig zu Verwirrung führt und deshalb eine eigene Anmerkung verdient: Fehlen sowohl der API-Prozentwert als auch der freq-Wert für einen Kandidatenzug vollständig – nicht nur niedrig oder 0 %, sondern komplett – bedeutet das in aller Regel, dass die Stellung selbst nicht in der Lichess-Datenbank erfasst ist, nicht, dass der Zug besonders selten wäre. Das ist ein wichtiger Unterschied zu den Fällen, in denen freq zwar 0 % oder einen niedrigen Wert zeigt, die Stellung aber durchaus vorhanden ist: Nur im letzteren Fall lässt sich der niedrige Wert tatsächlich als „seltener Zug“ interpretieren.

Da die Lichess Explorer-API mittlerweile ein Authentifizierungs-Token voraussetzt, muss dieses seit Nibbler 2.5.4 einmalig in der config.json (ebenfalls über das Dev-Menü erreichbar) unter der Eigenschaft lichess_token hinterlegt werden, bevor die Datenbank-Abfrage funktioniert.

Weitere nützliche Funktionen und Praxistipps

  • UCI searchmoves: Im Analyse-Menü lässt sich Leela auf einen oder mehrere bestimmte Züge einschränken – praktisch, wenn ein Zug offensichtlich zu wenig Aufmerksamkeit bekommt und man ihn gezielt vertiefen möchte.
  • PV-Hover-Vorschau: Da Leela einen Großteil ihrer bisherigen Bewertung verliert, sobald sich die Stellung ändert, bietet das Analyse-Menü eine Option, mit der man über eine Hauptvariante rechts fahren kann, um sie probeweise auf dem Brett durchzuspielen – ohne die tatsächlich analysierte Stellung zu verändern. Es empfiehlt sich, Leela währenddessen zu pausieren, damit sich die angezeigten Linien nicht ständig ändern.
  • Node-Limit setzen: Bei sehr langen Rechenzeiten kann Leela den verfügbaren Arbeitsspeicher aufbrauchen. Ein sinnvolles Node-Limit (z. B. rund 10 Millionen) im Engine-Menü beugt dem vor.

Was Nibbler von den anderen Programmen unterscheidet

Im Vergleich zu allen anderen bisher getesteten Programmen dieser Serie ist Nibbler das mit Abstand fokussierteste Werkzeug: keine Partiedatenbank, kein Turniermanager, kein Repertoire-Trainer – ausschließlich Echtzeit-Analyse einer einzelnen Stellung oder Partie, dafür mit einer Tiefe an Leela-spezifischen Detailinformationen (N/P/Q/S/U/V, WDL, Contempt-Parameter), die kein Datenbankprogramm in dieser Form bietet.

Auch technisch ist Nibbler ein Sonderfall: Als schlanke Electron-Anwendung eines Einzelentwicklers gibt es anders als bei BanksiaGUI oder En Croissant keinen offiziellen Mac-Build, sondern mehrere parallel gepflegte Community-Portierungen unterschiedlicher Aktualität. Wer auf ein möglichst „rundes“, offiziell für alle drei Betriebssysteme gepflegtes Produkt Wert legt, ist bei den anderen Programmen dieser Serie besser aufgehoben. Wer dagegen das Innenleben von Lc0 in Echtzeit und bis ins letzte Detail verstehen will, findet in Nibbler nach wie vor eines der am tiefsten in die Engine hineinreichenden Werkzeuge überhaupt.

Fazit

Nibbler ist kein Ersatz für ein Datenbankprogramm, sondern eine Ergänzung dazu: das Werkzeug der Wahl, sobald es um das tiefe Verständnis einer konkreten Stellung oder Partie im Zusammenspiel mit Lc0 geht – von der einfachen Zugempfehlung über WDL-Contempt-Feintuning bis zur manuellen Neuerungssuche. Für die tägliche Datenbankarbeit empfiehlt sich weiterhin eines der anderen in dieser Serie getesteten Programme parallel dazu.

Schreibe einen Kommentar

Schreibe einen Kommentar

Nach oben scrollen