Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / LeelaFish - Hybrid-Engine
- - By Stefan Pohl Date 2019-02-19 15:44 Edited 2019-02-19 15:46
https://github.com/killerducky/lc0/wiki/LeelaFish

(Killerducky ist einer der Leela-Entwickler (siehe Discord-App developer- und devleoper-log-Threat) - also jemand mit Kernkompetenz!)

Dieser Hybridansatz ist insofern besonders interessant, da er in die Suche von lc0 selbst eingreift, und nicht etwa extern die Suchergebnisse von einer AB-Engine und von Leela gegeneinander abwägt:
"LeelaFish is a modified version of the Lc0 engine that gets help from an outside (auxiliary) engine. Leela uses the AuxEngine's PV to boost the Policy of those moves. Otherwise Leela's search runs the same as before, including all position evaluations."

Allerdings würde ich nun nicht unbedingt Stockfish als auxiliary-Engine nehmen, da es ja schlußendlich darum geht, Stockfish als weltbeste Engine zu überholen, und das will man ja nicht mit Stockfish selbst als "Berater" machen. Daher wäre evt. Komodo/Houdini/Ethereal etc. als auxiliary-Engine interessanter.
Parent - By Stefan Pohl Date 2019-02-19 16:20
Also mit Komodo 12.3 läßt sich das Ganze in der Fritz16 GUI problemlos zum Laufen bringen (Tiefe 16 hab ich bei Komodo eingestellt). Pondern geht allerdings leider nicht, das führt alsbald zum Crash (caused an exception)...
Parent - - By Benno Hartwig Date 2019-02-19 16:21

> Allerdings würde ich nun nicht unbedingt Stockfish als auxiliary-Engine nehmen, da es ja schlußendlich darum geht, Stockfish als weltbeste Engine zu überholen, und das will man ja nicht mit Stockfish selbst als "Berater" machen. Daher wäre evt. Komodo/Houdini/Ethereal etc. als auxiliary-Engine interessanter.


Das ist wohl Ansichtssache.

- Man kann Spaß daran haben, eine Engine zu bauen, die stärker ist als SF. So auch als Konkurrenz zu SF.
   Dann sollte man dazu nicht wesentlich schon SF nutzen. (in den Fertigungsprozess "einbauen")
   Das sehe ich auch so!

- Man kann aber auch das Ziel verfolgen, mit Hilfe von SF und Lc0 etwas noch stärkeres zu fertigen.
   Warum nicht. Aber darin wäre dann eben SF und  Lc0 enthalten, irgendwie.

Benno
Parent - By Stefan Pohl Date 2019-02-19 16:35
Ich kombiniere mal alles...

Indem ich LeelaFish mit Komodo als Assitent benutze und das Antifish NeuralNetz nutze, welches Stockfishpartien eingespeist bekam (Antifish hat nämlich bei den Test auf twitch sehr gut gescored (https://www.twitch.tv/potato_chess))

Ich unterbreche mein long thinking-Turnier mal (die 40xxx Nets sind sowieso noch nicht sooo stark) und lasse stattdessen mal diese Konfiguration gegen Stockfish 10 antreten. Alles Settings so, wie auf der Website zu sehen, nur ohne pondern, da das LeelaFish leider nicht verkraftet.

https://www.sp-cc.de/long-thinkingtime.htm

Könnte interessant werden! Ich lass das mal eine Woche oder so durchlaufen. Vorausgesetzt, LeelaFish schmiert nicht irgendwann auch ohne pondern ab... Werde berichten
Parent - - By Lothar Jung Date 2019-02-19 18:20
Ich fände SF als Zweitengine auch nicht so interessant.
Houdini und Komodo sind nicht-opensource, kommerzielle Engines und der Bewertungsprozess ist nicht transparent.
Laser und Ethereal, also aufstrebende Engines aus der zweiten Reihe, wären spannender.
Im Mittelspiel stünde der tiefe positionelle Leela-Ansatz mit dem eher taktischen A/B-Ansatz im Widerspruch.
Viel gewonnen wäre schon, wenn die A/B-Engine-Zweitengine, die Endspielschwächen von Leela ausgleichen würde.
Parent - - By Stefan Pohl Date 2019-02-19 20:30
Ich finde Komodo insofern interessant, als das sowohl Komodo als auch Leela (zumindest auf meiner langsamen GPU) beide etwa 60-90 Elo schwächer als Stockfish 10 sind. Und somit Komodo und Leela auch etwa gleichstark sind.
Das ergibt nun die interessante Konstellation, ob zwei grundlegend verschieden “denkende“ Engines, die beide etwas aber meßbar schwächer als SF10 sind, gemeinsam SF10 Paroli bieten oder gar gewinnen können. Laser und Ethereal sind doch noch deutlich schwächer.
Parent - - By Peter Martan Date 2019-02-19 20:58 Edited 2019-02-19 21:11
Das interessiert dich, Stefan, und ich versteh's auch.
Aber das Hauptinteresse liegt momentan natürlich woanders, es geht darum, SF überhaupt, wie auch immer, messbar zu überholen, und ich meine eben nicht nur in einem einzelnen Match wie dem Sufi, mit Ausnahms-Hardware, relativ langer TC, Ausnahms- Eröffnungen und dergl. Besonderheiten mehr, vor allem auch der Besonderheit einer reinen 1:1- Auseinandersetzung zwischen einer bestimmten Dev.-Version von LC0 und von SF und einem bestimmten Netzwerk mit eigens ausgesuchten Eröffnungsstellungen.

Das Problem, das ich aber dadurch auch und erst recht nicht gelöst sehe, wie es dann in der Folge weiterhin gelingen soll, die ständig neuen Netzwerke gegeneinander zu vergleichen, wenn man irgendwelche andere Engines auch einbinden wird müssen, damit der Vergleich irgendeine Eichung hat zum Unterschied vom reinen Selfplay.

Und wenn jetzt Antifish, Leelafish usw. usf. noch dazukommen, dann erst recht weiterhin viel Spaß mit der statistischen Signifikanz, noch dazu, wenn sie nicht auch noch immer mehr und eigentlich auch jetzt schon völlig Eröffnungs- abhängig sein soll.


Uups, Kai Laskos weiß es besser:

http://talkchess.com/forum3/viewtopic.php?p=790504#p790504

Na, mal sehen, ob das außer im Bullet und gegen bessere Hardware von LC0 und mit anderen Eröffnungen nicht wieder anders ausschaut, und wie es sich ändert, wenn SF allein auch mitspielt.
Und ob nicht schneller, als bis man das statistisch signifikant gemessen hat für "vernünftige" TCs, nicht schon die nächste Netzwerk- und oder- Hybrid- Engine da ist.
Parent - By Stefan Pohl Date 2019-02-20 10:19 Edited 2019-02-20 10:23 Upvotes 1
Ja, Laskos hat schon mal getestet. Ich werde das erstmal wieder abbrechen, ich habe einfach nicht genug Kapazitäten, jetzt auch noch Hybriden zu testen. Ich teste also doch mal Leela pur mit dem Antifish-Network...Denn primär interessiert mich der NeuralNetz-Ansatz, weil er so total konträr zu allem ist, was es bisher gab. Ein Hybride verwässert diesen Ansatz natürlich. Interessant ist es natürlich dennoch.

Aber ich verfolge das natürlich weiter, mal sehen, wie sich das entwickelt.
Parent - - By Jörg Oster Date 2019-02-19 23:08
Vom Grundgedanken her passt wohl eher eine schnelle, taktisch starke Engine.
Also z. B. Houdini Tactical oder halt Stockfish, evtl. sogar Matefinder oder Sting.
Parent - By Peter Martan Date 2019-02-19 23:34
Willst du Elo bolzen oder Studien lösen?
Parent - By Stefan Pohl Date 2019-02-20 10:23
Jörg Oster schrieb:

Vom Grundgedanken her passt wohl eher eine schnelle, taktisch starke Engine.
Also z. B. Houdini Tactical oder halt Stockfish, evtl. sogar Matefinder oder Sting.


Houdini Tactical wäre dann wohl interessant. Das Anwählen des Tactical modes sollte über den String mit UCI-Optionen, den man ja an die Assistenzengine übergeben kann, kein Problem sein.
Parent - - By Clemens Keck Date 2019-02-25 11:42
Hallo

in der Fritz GUI kriege ich es zum laufen.

Für die Infinity GUI muß ich den lc0.config file verwenden weil die GUI beim Erstellen der engine sehr viele Parameter nicht anzeigt.
Bisher hat das einwandfrei funktioniert
mit den Einträgen
Zitat:
--aux-engine-path=
--aux-engine-options=


stürzt lc0 ab

die pfade für die engine passen.

Was stimmt nicht?

C.K.
Parent - - By Stefan Pohl Date 2019-02-25 12:50 Edited 2019-02-25 12:52
Schwer zu sagen. Zunächst mal läuft bei mir nur Leelafish V0.3. V0.4 stürzt nach einigen Sekunden ab.
Der Paramter --aux-engine-options= ist etwas tricky. Manche benutzen irrtümlich Anführungszeichen. Auch Leerzeichen sind nicht erlaubt.

Also so geht es
aux-engine-options=Threads=1;Hash=1024

In Fritz... zu Infinitychess kann ich mich nicht äußern, sorry

Es klappt auch nicht mit allen Engines. Bei Komodo stürzt das Ganze beim pondern ab. Mit Ethereal bekommt man gar keine Partie ganz durch.
Was ich sagen kann, ist, daß v0.3 mit Houdini 6 fehlerfrei läuft, auch mit pondern.
Parent - By Clemens Keck Date 2019-02-25 13:44
ich habs

es darf kein Bindestrich zwischen aux und engine sein
also auxengine-path
und nicht aux-engine-path
Parent - By Stefan Pohl Date 2019-02-26 12:54
Habe doch mal spaßeshalber in meinem long thinking-time Turnier LeelaFish loslaufen lassen. Erst 86 Partien, aber bisher sehr stark.

https://www.sp-cc.de/long-thinkingtime.htm

Da ich bei meinen 3'+1'' Testruns sowieso gerade Lc0 mit Net 32930 habe durchlaufen lassen, wiederhole ich den Testrun jetzt mal mit LeelaFish. Siehe meine Haupt-Website. Wird eine gute Woche dauern, falls alles glattgeht. Aber mit Houdini 6 als AuxEngine scheint LeelaFish stabil zu laufen (Daumen drücken!)...das wird dann ein interessanter Vergleich.
Leider sind es jeweils "nur" 1200 Partien, statt 5000 wie sonst üblich, da ich auf der GPU natürlich keine Partien parallel laufen lassen kann. Damit müssen wir leben.
- - By Guenter Stertenbrink Date 2019-02-19 16:16 Edited 2019-02-19 16:31
ich denke, das Prinzip ist, die StockFish evals am Ende der vielen Verzweigungen effektiv abzuschaetzen
(mit weights-Parametern) und miteinzubauen in die MCTS.
Dazu reicht jeweils eine schwaechere Analyse, StockFish oder Lc0 oder andere Engine.

Dasselbe Argument, warum Lc0 von Schnellpartien lernen kann, um im langsamen Schach
auf guter Hardware besser zu werden. Oder warum Deus-X sogar aus Menschenpartien lernen kann.

Also StockFish im Hybrid sollte m.E. ok sein

------------edit-------------------

ahh, ich hab das wohl misverstanden. Leelafish wird nicht neu trainiert,
sondern benutzt die existierenden weights-Dateien

https://github.com/killerducky/lc0/wiki/LeelaFish

------ich seh trotzdem kein Problem, Stockfish als auxiliary engine zu benutzen
Parent - - By Stefan Pohl Date 2019-02-19 16:39
Guenter Stertenbrink schrieb:


------ich seh trotzdem kein Problem, Stockfish als auxiliary engine zu benutzen


Ein Problem sehe ich darin auch nicht. Ich finde es nur nicht sinnvoll, wenn es darum geht gegen Stockfish zu spielen, sich Stockfish als Berater dazuzuholen. Außerdem ist mein teures Komodo-Abo so wenigstens noch zu irgendwas gut, wenn Komodo schon seit Version 11 stagniert. Außerdem ist Komodo als neutraler "Bewerter" sehr gut geeignet, da er nicht so extreme Bewertungen wie Stockfish raushaut und positionell sehr solide spielt. Daher nutze ich ja auch Komodo seit Jahren für die Evaluierung meiner Eröffnungs-Bücher und -Stellungssets.
Parent - - By Guenter Stertenbrink Date 2019-02-19 19:06
man koennte auch argumentieren, dass sf gerade geeignet ist, da er die Schwaechen und Staerken von sf kennt.

Lc0 "pondert" sozusagen besser , "weiss, was der Gegner denkt"

-----------------------------
6:59sparrow_88: it seems like someone figured out a way to get
a hybrid Leela + SF and is killing everything on Playchess
Parent - - By Reinhold Stibi Date 2019-02-19 21:27
Wollte bei Leelafish  Stockfish einbinden. Nach Eingabe bei AuxEnginePath und Start

kam die Meldung caused an exception.

Muss im Feld Aux Engine Option etwas eingetragen werden ?

Habe ich etwas vergessen ?

Vielleicht weiß Stefan Pohl, wie so oft, Rat ?
Parent - - By Michael Hoeppenstein Date 2019-02-19 21:59 Upvotes 1
Parent - - By Reinhold Stibi Date 2019-02-19 22:08
Vielen Dank !
Parent - - By Reinhold Stibi Date 2019-02-20 10:23
Leela Fish  mit GTX 960   gegen  Stockfish 10  1 CPU   2 Min. + 6 Sek.Zug   4 Züge Vorgabe Stefan Pohl

Nach 24 Partien  + 0   =17   -7    = 35,4 %   =  -104 Elo

Für den Anfang einer Entwicklung gar nicht so schlecht.

Man sollte die Erwartungen nicht zu hoch schrauben.
Parent - - By Guenter Stertenbrink Date 2019-02-20 12:42 Edited 2019-02-20 12:44
40 Elo besser als lc0 les ich im talkchess-thread

> With default settings and SF10 auxiliary on 1 thread, +40 Elo points to pure Lc0 with t30 and t40 nets
> at bullet TC. Much better tactically. With late t30 nets, strongest engine on my PC.
Parent - - By Reinhold Stibi Date 2019-02-20 13:41
Nach 34 Partien   +2   =23   -9     =39,7 %    - 73  Elo

Um einiges verbessert,  beachtenswert.

Bin gespannt, ob der gute Wert gehalten werden kann.

Match geht bis 58 Partien.
Parent - - By Reinhold Stibi Date 2019-02-20 21:46
Nach 58 Partien ist das Match zu ende.

Leela Fish erreichte ein Superergebnis mit   +7   =37   -14   = 43,9%   = - 42 !  Elo

Mich würde es interessieren wie hoch der Anteil in % von der Aux Engine Stockfish 10 ist.

Ich schätze 15 % aber ohne Hintergrundwissen.
Parent - By Guenter Stertenbrink Date 2019-02-22 07:39 Edited 2019-02-22 07:44
"um einiges verbessert" plus 31 Elo
talkchess : 40 Elo, 50 Elo
" killing everything on Playchess "

immer noch schlechter als aktuelle StockFish Versionen unter "normalen" Bedingungen.
Aber vermutlich bereits staerker unter TCEC-Bedingungen  (agreed ?)

vielleicht gibt's ja mal ein "bonus" match ...
Parent - By Stefan Pohl Date 2019-02-21 13:01
Kritisch ist m.E. dieser Parameter, da er stark von der Geschwindigkeit der GPU abhängt. Auf einer langsamen GPU, wie meiner, mit gut 1000-1200 n/s ist der Default-Wert von 100 wahrscheinlich deutlich zu hoch. Auf einer schnellen RTX-GPU könnte er möglicherweise auch höher gedreht werden.

--auxengine-threshold=1..1000000
               The auxiliary engine is called when a node reaches this many visits
               [UCI: AuxEngineThreshold  DEFAULT: 100  MIN: 1  MAX: 1000000]

PS: Habe in talkchess beim Autor angeregt, statt fixer Suchtiefe der Assitenzengine lieber fixe Suchzeit als Parameter anzubieten. Denn Suchtiefen, die im Mittelspiel schon recht lange brauchen, sind im Endspiel viel zu flach und sehr schnell erreicht. Bei fixer Suchzeit würde sich die Suchtiefe im Endspiel natürlich beträchtlich erhöhen. Und das Endspiel ist ja eine der großen Schwachpunkte von Leela. Mal sehen, ob das geändert wird.
Up Topic Hauptforen / CSS-Forum / LeelaFish - Hybrid-Engine

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill