Leela Chess Zero auf dem DGT Pi

An der Leela Chess Zero Schachengine bastelt die Schach-Community nun schon eine ganze Weile. Genauso wie der große Bruder Alpha Zero, zieht die Engine Leela Chess Zero ihre Spielstärke aus vielen „Trainings“-Partien. Diese Engine lernt das Schachspielen durch Erfahrungswerte, um es oberflächlich auszudrücken.

Dank der Arbeit von Al und Jürgen, läuft diese Engine nun auch auf dem DGT Pi / PicoChess. Hier nun eine Schritt für Schritt Anleitung, wie man diese spannende Engine auf dem DGT Pi / PicoChess zum Laufen bekommt:

Zunächst müssen wir unseren DGT Pi mit dem Internet/Intranet verbinden. Dies geht am Einfachsten, indem man den DGT Pi mit einem RJ45-Kabel (LAN-Kabel) mit dem Router verbindet. Startet man nun den DGT Pi, erhalten wir über das System-Menü an der Uhr die IP-Adresse des DGT Pi.

Nun starten wir das Programm Putty und verbinden uns mit dem DGT Pi, indem wir dessen IP-Adresse in das entsprechende Feld eintragen und „Open“ anklicken. Als Benutzernamen geben wir pi ein und als Passwort picochess.

Um die Engine zum Laufen zu bekommen, müssen wir bei unserem DGT Pi einige Sachen nachinstallieren. Da ständig neue Versionen der notwendigen Installationspakete veröffentlicht werden und ältere Pakete nicht mehr verfügbar sein können, ist es zunächst wichtig, dass wir unsere Paket-Liste im DGT Pi auf den neusten Stand bringen. Hierzu führen wir folgenden Befehl aus:

sudo apt-get update

Ist das Update durchgelaufen, können wir mit der Installation der Pakete beginnen. Bitte folgenden Code komplett kopieren und in das Putty-Shell-Fenster hineinkopieren und mit der Enter-Taste ausführen:

sudo apt install cmake g++ git libboost-all-dev libopenblas-dev opencl-headers ocl-icd-libopencl1 ocl-icd-opencl-dev zlib1g-dev

Der Installations-Assistent wird uns ein paarmal fragen, ob wir mit der Installation des einen oder anderen Paketes einverstanden sind, was wir natürlich bejahen. Auf Grund der Vielzahl der Pakete und der doch nicht geringen Größe, kann das Installieren durchaus 20 Minuten Zeit in Anspruch nehmen.

Wurde die Installation erfolgreich beendet, laden wir uns die von Al Scally Cooper compilierte Engine Leela Chess Zero herunter:

LcZero kompiliert von Al Scally Cooper (96 Downloads)

 

Nach dem Entpacken der ZIP-Datei, haben wir eine Datei namens lczero auf dem Rechner. Diese Datei müssen wir nun in den Engine-Ordner auf unserem DGT Pi kopieren. Um dies halbwegs komfortabel zu machen, verwenden wir zum Hoch- und Herunterladen von Dateien die Software FileZilla.

Wer dieses Programm noch nicht auf dem Rechner hat, sollte es spätestens jetzt installieren und starten. Oben links können wir eine Schnellverbindung zu unserem DGT Pi aufbauen, indem wir die IP-Adresse des DGT Pi eingeben, den Port 22 wählen und die bekannten Zugangsdaten Benutzer: pi Passwort: picochess verwenden.

Hat alles geklappt, befinden wir uns im rechten Teil des Fensters in unserem Home-Ordner. Wir wechseln nun in folgenden Ordner:

/opt/picochess/engines/armv7l

Nun ziehen wir die auf unserem Computer befindliche entpackte Datei lczero in diesen Ordner. Der nun folgende Schritt wird gerne vergessen. Zwar befindet sich die Datei nun im richtigen Verzeichnis, aber für das System ist es einfach nur eine Datei, mehr nicht. Da es sich bei lczero um ein Programm handelt, welches das System ausführen muss, müssen wir der Datei die entsprechende Berechtigung geben. Wir klicken hierzu im Filezilla mit der rechten Maustaste auf die Datei und wählen den Menüpunkt Dateiberechtigungen. In dem sich nun öffnenden Fenster setzen wir die Häkchen so, wie auf dem hier gezeigten Bild:

Jetzt noch mit OK bestätigen. Als nächstes müssen wir die Engine noch in unsere Engine-Liste eintragen. Hierzu klicken wir auf die im selben Ordner /opt/picochess/engines/armv7l befindliche Datei engines.ini mit der rechten Maustaste und wählen im Menü Ansehen/Bearbeiten. Die Datei sollte nun in einem Editor geöffnet sein. Wir gehen ans Ende der Datei und geben folgende Zeilen ein:

[lczero]
name = lczero v0.10
small = lczero
medium = lczero
large = lczero 0.10
elo = 2700

Das Ganze speichern wir ab und übertragen die Datei zurück in den Ordner. Sollte FileZilla fragen, ob wir die bestehende Datei überschreiben wollen, bestätigen wir das natürlich.

Nun kommen wir zu zu dem besonderen Teil. Damit Leela Chess Zero Schach spielen kann, benötigt es „Wissen“. Dieses Wissen erhält Leela Chess Zero durch unzählig gespielte Partien und wird in sog. Weights-Dateien abgespeichert. Zum Spielen ist immer nur eine Weights-Datei notwendig. Unter folgendem Link könnt ihr euch eine große Auswahl an Weights-Dateien herunterladen:

http://lczero.org/networks

Sehr aktuelle Weights-Dateien findet ihr unter folgendem Link:

http://testserver.lczero.org/networks

Zum Herunterladen einer Datei, klickt man einfach in der Spalte Network einen Eintrag an:

Die geschätzte Spielstärke der einzelnen Weights-Dateien könnt ihr unter folgendem Link find:

https://docs.google.com/spreadsheets/d/1XSJiCcQpCLv0fNwrUn7jXjdkZFU63YFEWpdXv6dSSg0/htmlview#

Nach dem Herunterladen müssen wir die Datei noch in weights.txt umbenennen.

Nun gehen wir wieder zurück ins FileZilla-Fenster und wechseln auf unserem DGT Pi in den Ordner

/opt/picochess

In genau diesen Ordner müssen wir nun die Datei hineinkopieren. Manche Weights-Datei kann unter Umständen 60-100 Megabyte groß sein. Es kann mit dem Kopieren als etwas dauern.

Ist auch dieser Schritt geschafft, kommen wir zum Finale. 🙂

Wir gehen zurück ins Putty-Fenster und geben folgenden Befehl ein:

sudo reboot now

Der DGT Pi startet nun neu und wenn wir nun einen Blick in die Engine-Auswahl werfen, sehen wir, dass uns mit lczero 0.10 ab sofort die Engine Leela Chess Zero zur Verfügung steht.

WICHTIG! >>> Wenn wir nun diese Engine auswählen, kann es durchaus 15 bis 20 Sekunden dauern, bis die Rückmeldung EngineOK im Display erscheint. Also nicht die Geduld verlieren und wild auf den Knöpfen des DGT Pi herumdrücken. 😉

Eurer ersten Partie gegen diese wirklich interessante Engine kann nun starten. Eine direkte Spielstärken-Einstellung der Engine gibt es nicht. Allerdings kann man sich anhand der oben genannten Links eine für die eigene Spielstärke passende Weights-Datei herunterladen und auf diese Weise die Spielstärke heben und senken. Hierzu einfach die auf dem DGT Pi befindliche weights.txt austauschen.

Und jetzt viel Spaß

Euer Benny

8 Gedanken zu „Leela Chess Zero auf dem DGT Pi

  1. Hallo. Da mir die fachliche Kompetenz (Linux) fehlt möchte ich anfragen, ob man mit einem IMG Leela Chess Zero für SD-Card und DGT PI (wie auch als Download momentan v0.9l bei DGT möglich) rechnen kann. Gruß Esser

    • Hallo Herr Esser,

      schreiben Sie mich einfach kurz per Mail an, dann sende ich Ihnen den Download-Link des 0.9n-Images, bei welchem Leela enthalten ist.

      Viele Grüße

      Benny

    • Hallo Raphael,

      die 0.10 ist natürlich nicht mehr die aktuellste Version, aber dafür läuft sie stabil und hat in der Anwendung keine Nachteile gegenüber der neusten Version. Bei Bedarf kann ich natürlich auch die neuste Version kompilieren und bereitstellen. Bisher war das noch nicht notwendig.

      Gruß

      Benny

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.