Einzelnen Beitrag anzeigen
  #189  
Alt 15.04.2018, 12:54
StPohl StPohl ist offline
TASC R30
 
Registriert seit: 30.03.2018
Land:
Beiträge: 424
Abgegebene Danke: 71
Erhielt 550 Danke für 247 Beiträge
Aktivitäten Langlebigkeit
2/20 7/20
Heute Beiträge
0/3 ssssss424
AW: Selbstlernende KI: Neue Engine spielt auf Profi-Niveau

Also, ich hab Version 0.6 unter Fritz zum Laufen bekommen. Die Anleitung auf der Leela-Seite führte mich aber nicht zum Ziel. Ich hab stattdessen den Polyglot-Adapter benutzt. Damit haut es hin.
Zunächst mal lädt man sich die GPU- (oder CPU-)Version von Leela herunter, entpackt diese Dateien in einen Leela-Ordner. Dann das aktuelle Network, entpackt dieses, nennt die entpackte Datei in weights.txt um und kopiert diese ebenfalls in den Leela-Ordner.

Dann lädt man sich den aktuellen Polyglot-Adapter herunter (ältere Versionen laufen nicht unbedignt in neuen Fritzen!) und zwar hier:
http://hgm.nubati.net/polyglot.exe

Dann braucht man noch ein Textfile namens polyglot.ini
Das sieht bei mir ungefähr so aus:

[PolyGlot]

EngineName =
EngineDir = .
EngineCommand = lczero.exe --uci --noponder

Log = false
LogFile = polyglot.log

Book = false
BookFile = blosskeinbuch.bin
BookRandom = false
BookLearn = false
BookDepth = 256
BookTreshold = 0
UseNice = false
NiceValue = 5
Affinity = -1
STFudge = 20
OnlyWbOptions = true

Chess960 = false

UCIVersion = 2
CanPonder = false
SyncStop = false
PromoteWorkAround = false
RepeatPV = true

[Engine]


Wichtig ist die Zeile:
EngineCommand = lczero.exe --uci --noponder

Wenn man die CPU-Version von Leela nutzen will, muß man noch die Zahl der Threads/Cores spezifizieren. Mit t (default-Wert ist 2). Das sähe dann für 4 Cores so aus:

EngineCommand = lczero.exe -t 4 --uci --noponder




Dann bindet man die Engine über Fritz ein, indem man polyglot.exe als Engine-Datei auswählt (NICHT lczero.exe!!!). Fritz erzeugt als Enginenamen lczero v0.6. Da kann man aber noch was dranhängen. Also ich nenne meine Leela z.B: "lczero v0.6 (GPU) Net 131"
Der Daueranalysemodus funktioniert nicht. Und Bewertungen gibt Leela in Fritz auch nicht aus. Aber spielen tut sie.
Und nach dem Zug zeigt sie aber immerhin die Anzahl der Rollouts als kn/s an. Damit kann man anhand der Zugzeit ausrechnen, wie schnell Leela ungefähr ist. Allerdings schwanken diese Zahlen von Zug zu Zug sehr stark, also muß man das ein bißchen mitteln.
Es empfiehlt sich dringend, auf seinem Rechner beide Versionen (also CPU und GPU) zu installieren und zu schauen, welche Version schneller läuft, denn das ist individuell abhängig von CPU-Speed und der Grafikkarten-Qualität.
Auf meinem i7-6700HQ Notebook von HP ist die GPU-Leela einen Tick schneller, also nehme ich die GPU-Version.

Hier steckt aber dann das nächste Problem: Die GPU-Version eignet sich nicht dafür, mehrere Partien parallel spielen zu lassen (LittleBlitzerGUI z.B.). Dazu Gary Linscott auf talkchess: "Great point - the GPU is a shared resource, but even a very powerful GPU can only have 2 or so instances of LCZero running at the same time. Otherwise it will just wait until the other instance finishes, so it will run quite a bit slower. It's tricky, but testing LCZero on one cpu is not representative of it's strength on a good GPU."

Insofern habe ich Leela jetzt mal in Fritz eingebunden und lasse jetzt Leela gegen Aristarch 4.50 ((eine alte singlecore-Engine von den Brüdern Zipproth) knapp 2400 CEGT-Elo) auf meinem long thinking-time Rechner spielen. Mit 15'+10''. Leela als GPU-Version mit Net 131. Ich hab auch die CPU-Version probiert, da mein Notebook keine Super-Grafikkarte hat. Aber da läuft Leela mit -t 7 (mein Notebook ist eine Quadcore CPU (i7-6700HQ) mit Hyperthreading = 8 virtuelle CPUs) etwas langsamer, als die GPU-Version. Aber viel macht das nicht aus. Das muß man auf seinem Rechner selber probieren, ob Leela als CPU oder GPU schneller ist.
Ich hab aus den 8-Züge Vorgabestellungen des Stockfih-Frameworks schnell ein Buch erzeugt und nehme das als Vorgabe. Die Remisqoute ist in diesen Elo-Regionen ja kein Problem. Beide Engines aus der Grundstellung spielen zu lassen, scheint mir nicht sinnvoll, das wird zuviele gleichförmige Partien ergeben.
Mal gucken, was so rauskommt. Knapp 50 Partien sollten in 24h durchlaufen, schätze ich.

Update: Aristarch ist wohl doch noch ein paar Nummern zu groß für Leela. Ich nehme erst mal Gaia 3.5 als Gegner (CEGT-Elo (bei 40Z/20'): 2211). Vielleicht läuft es da besser.

Geändert von StPohl (15.04.2018 um 13:24 Uhr)
Mit Zitat antworten
Folgender Benutzer sagt Danke zu StPohl für den nützlichen Beitrag:
Hartmut (15.04.2018)