Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / UHO Eröffnungen
- - By Lothar Jung Date 2024-01-26 13:04
Werden die Top-Engines vielleicht auf/mit diesen Eröffnungen trainiert?
Unvorstellbar ist dies nicht.
Parent - By Frank Quisinsky Date 2024-01-26 16:29 Upvotes 1
Es würde gar Sinn machen.
Wie erreiche ich aus einer schwächeren Position noch ein Remis.

Macht genauso Sinn wie vielleicht mit FRC Stellungen zu trainieren.
Vieles was zunächst unlogisch erscheint ist logischer als wir oftmals denken!

Oder so ...
Parent - - By Stefan Pohl Date 2024-01-27 07:08 Edited 2024-01-27 07:31 Upvotes 1
Lothar Jung schrieb:

Werden die Top-Engines vielleicht auf/mit diesen Eröffnungen trainiert?
Unvorstellbar ist dies nicht.


Kommt drauf an, was man unter "trainieren" versteht, also die Weiterentwicklung des Programmcodes einer Engine oder das trainieren (=erstellen) eines nnue-Netzes...

Alle (?) Top-Engines spielen die Millionen (bzw. Milliarden) Testpartien, mit denen neue Patches des Programmcodes auf Tauglichkeit geprüft werden, mit UHO-Eröffnungen. Fishtest (Stockfish CPU-Netzwerk) hat (wie auch auf meiner Website in dem Spielstärke Entwicklungsdiagrammen von Stockfish ersichtlich) seit Ende August 2021 auf UHO als Vorgabe umgestellt. Und auch Openbench, das CPU-Netzwerk von A.Grant, nutzt UHO, sie zogen kurz nach Fishtest nach. Dort werden viele Engines weiterentwickelt, u.a. Berserk, Ethereal, Seer, RubiChess etc. etc.
Torch wird ja von chesscom im stillen Kämmerlein entwickelt, aber ich gehe sehr stark davon aus, daß UHO dort ebenfalls genutzt wird, aber das weiß ich nicht wirklich.

Eine andere Sache sind die nnue-Netze. Die Stockfish-Netze basieren zum großen Teil auf Lc0-Lerndaten. Die dort bei Lc0 benutzten Vorgaben sind wohl diese:
https://storage.lczero.org/files/opening_books/
Dort gibt es, so wie ich das verstehe, beides. Also ausbalanciert und nicht ausbalanciert (man findet dort Eröffnungen mit einem Eval-Offset von 0.40. Das klingt wenig, aber Lc0 bewertet auch sehr "konservativ", 0.40 ist also schon ein "schwaches UHO", sage ich mal). Aber ich bin alles andere als der Experte, der bei Lc0 richtig "drin ist"...
Und die Lerndaten, die von Stockfish selbst kommen, sind aus Partien aus Fishtest, also zwangsläufig auch mit UHO, da ja UHO benutzt wird.
Was Stockfish angeht, sind die nnue-Netze also sehr "UHO-lastig", aber nicht 100% UHO.
Wie es bei den Engines, die in Openbench entwickelt werden, aussieht, weiß ich nicht, da Netz-Lernen nicht in OpenBench stattfindet, das macht jeder Engine-Autor daheim.
Und bei Torch weiß ich es natürlich auch nicht.

Was man hierbei verstehen muß:
Fishtest und Co haben nicht nur auf UHO umgestellt, um die Remisquoten zu senken. Es geht vielmehr darum, daß UHO Elo-Abstände um ca. Faktor 2 spreizt (normalized Elo etwas weniger, klassisches Elo eher mehr, aber der Einfachheit halber gehen wir mal von Faktor 2 aus) . Das hat nun aber den Effekt, daß dadurch (indirekt) die Errorbars, um einen Test eines Patches als Erfolg oder Mißerfolg zu beurteilen, auf die Hälfte schrumpfen, eben weil die Ergebnisse um Faktor 2 gespreizt sind. Warum ist das wichtig? Weil man, um eine Errorbar im Ergebnis zu halbieren, 4x so viele Partien spielen lassen muß. Kennt ja jeder, der ORDO, Elostat und Co benutzt: Um die Errorbar auf die Hälfte zu reduzieren, sind 4x soviele Partien zu spielen.
Und das bedeutet in der Praxis in Fishtest nichts anderes als, daß man mit UHO in der gleichen Zeit (bei der gleichen Zahl der verwendeten CPUs) in Fishtest ca. 4x so viele Patches auf Tauglichkeit prüfen kann, als wenn man ausbalancierte Eröffnungen verwenden würde. Und das bei gleicher statistischer Ergebnissicherheit. UHO vervierfacht also (virtuell) die Rechenleistung von Fishtest (oder Openbench etc.)! Und das ist natürlich ein Gamechanger für die Engine-Entwicklung, die ja heutzutage im Top-Bereich extrem hardwarehungrig ist. (Alleine in Fishtest werden pro Jahr ca. 2 Milliarden Testpartien gespielt!)
Das ist der wesentliche Grund dafür, daß UHO mittlerweile der Quasi-Standard in der Engine-Entwicklung geworden ist (worauf ich natürlich ziemlich stolz bin... das sehe man mir bitte nach)
Parent - - By Peter Martan Date 2024-01-27 08:28
Stefan Pohl schrieb:

Fishtest und Co haben nicht nur auf UHO umgestellt, um die Remisquoten zu senken. Es geht vielmehr darum, daß UHO Elo-Abstände um ca. Faktor 2 spreizt (normalized Elo etwas weniger, klassisches Elo eher mehr, aber der Einfachheit halber gehen wir mal von Faktor 2 aus) . Das hat nun aber den Effekt, daß dadurch (indirekt) die Errorbars, um einen Test eines Patches als Erfolg oder Mißerfolg zu beurteilen, auf die Hälfte schrumpfen,

Das wär' natürlich fein, leider wird aber halt die error bar mit dem Spreizen der  Elo in aller Regel mitgespreizt

Nicht um den selben Faktor, dafür aber halt manchmal auch wieder um mehr als die Elo- Differenzen steigen, dann nämlich, wenn mehr als die Remis sinken, die 1:1- Paare steigen. Da kommt's dann halt drauf an, wie groß der einseitige Eröffnungsvorteil relativ zum Spielstärke- Unterschied zwischen den teilnehmenden Engines und der jeweiligen Hardware- TC ist.
Parent - - By Stefan Pohl Date 2024-01-27 08:42 Edited 2024-01-27 09:04 Upvotes 1
Peter Martan schrieb:

Stefan Pohl schrieb:

Fishtest und Co haben nicht nur auf UHO umgestellt, um die Remisquoten zu senken. Es geht vielmehr darum, daß UHO Elo-Abstände um ca. Faktor 2 spreizt (normalized Elo etwas weniger, klassisches Elo eher mehr, aber der Einfachheit halber gehen wir mal von Faktor 2 aus) . Das hat nun aber den Effekt, daß dadurch (indirekt) die Errorbars, um einen Test eines Patches als Erfolg oder Mißerfolg zu beurteilen, auf die Hälfte schrumpfen,

Das wär' natürlich fein, leider wird aber halt die error bar mit dem Spreizen der  Elo in aller Regel mitgespreizt

Nicht um den selben Faktor, dafür aber halt manchmal auch wieder um mehr als die Elo- Differenzen steigen, dann nämlich, wenn mehr als die Remis sinken, die 1:1- Paare steigen. Da kommt's dann halt drauf an, wie groß der einseitige Eröffnungsvorteil relativ zum Spielstärke- Unterschied zwischen den teilnehmenden Engines und der jeweiligen Hardware- TC ist.


Ich habe das nur vereinfacht ausgedrückt. In Fishtest wird ein hochkomplexes statistisches Auswertungssystem genutzt, daß auf den normalized Elo basiert, nicht klassische Errorbars. Und diese normalized Elo werden um knapp Faktor 2 gespreizt.
Und auch bei den klassischen Errorbars gilt: Sie werden durch UHO nur leicht mitgespreizt. Aber eben nur leicht, längst nicht in demUmfang der zusätzliche Elo-Spreizung, das ist einfach nicht der Fall. Und die Spreizung in klassischen Elo liegt mit UHO eher bei Faktor 3 oder mehr. Siehe meine Testresultate:
https://www.sp-cc.de/uho_2022.htm

Ergo, auch wenn die Errorbars durch UHO etwas gespreizt werden (das sind meist nur 3-4 Punkte), ist die Ergebnisspreizung um Welten höher (Faktor 3!), daher kann man diesen Effekt eigentlich sogar vernachlässigen. Das ist Fakt.

Die Tests, die auf Fishtest gemacht wurden, sind da völlig eindeutig:
Guckt ihr hier:
https://github.com/official-stockfish/Stockfish/issues/3323#issuecomment-911982470

Die Elospreizung liegt hier bei UHO verglichen mit dem zuvor verwendeten 8moves balanced book bei fast Faktor 3. Ob da die Errorbar durch die geringere Remisquote bei UHO um ein paar Punkte breiter wird, ist statistisch quasi unerheblich. Auf jeden Fall bleibt ein "echter" Spreizungsfaktor von mindestens 2 locker erhalten.

Aber wir können uns das auch ganz konkret ansehen, wenn man auf den Link "Tests" drückt, dann sieht man das Ergebnis mit der 95%-Errorbar (in dem grünen Zahlenfeld, was das Ergebnis ja ist):
UHO: Spreizung 10.94 Elo. Errorbar: +/- 1.3 Elo (60000 Partien!)
8moves balanced: Spreizung: 3.94 Elo. Errorbar: +/- 0.7  Elo (60000 Partien).

Ergo: Die Errorbar ist hier zwar mit UHO fast doppelt so groß: Das klingt erst mal schlimm - ist es aber eben nicht, denn sie ist absolut nur um 0.6 Elo angewachsen. Die Spreizung ist aber absolut um 7 Elo angewachsen.
Wie ich schon sagte: Den Effekt, daß UHO die Errorbar vergößert, gibt es zwar, aber man kann ihn vernachlässigen, weil er lächerlich klein ist, im Vergleich, was man an Ergebnisspreizung dank UHO dazubekommt. Andernfalls hätte Fishtest ja niemals auf UHO umgestellt. Wer will schon eine größere Errorbar? Das nimmt man nur in Kauf, wenn die Ergebnisse sonst um Welten besser sind. Und das ist bei UHO nachweislich der Fall.
QED
Parent - - By Peter Martan Date 2024-01-27 09:28 Edited 2024-01-27 09:32 Upvotes 1
Danke für die ausführliche Erläuterung, Stefan, ich weiß das im Wesentlichen schon so ähnlich, was ich halt nur dazu sagen hatte wollen, dass das mit den Verhältnissen von Elo- und Error- Spreizung davon abhängt, um welchen Engine- Pool und welche Hardware- TC es sich handelt.

Wäre das nicht so, hättest du dir nicht die viele Arbeit machen müssen, mehrere verschiedene Sets mit verschiedener Vorteilsrange und verschiedener Länge der Vorgaben zusammenzustellen. Und dass du deine Hauptliste auf die 16 besten Engines reduziert hast, hat wohl auch was damit zu tun, denke ich.
Finde ich übrigens alles sehr gut, so wie es ist, weil man sich dann als User zu Hause daraus auch dasjenige aus den Angeboten aussuchen kann, was einem für die eigenen Engines (sowie auch deren Branches und Netze) und die eigene Hardware- TC am besten passt. Man probiert mal das eine Set für das eine head to head- match, je nach den ersten Ergebnissen ändert man ein bisschen was an der Hardware- TC oder nimmt doch ein anderes Set und kann sich nach den Erfahrungen, die man schon damit hat, dann noch genauer vorstellen, wie's mit einer bestimmten anderen ähnlichen Gegnerschaft im größeren Pool ausschaut, bevor man das Hauptturnier startet.
Bei der Gelegenheit auch mal wieder danke für das alles.
Parent - - By Stefan Pohl Date 2024-01-27 10:08
Peter Martan schrieb:

Danke für die ausführliche Erläuterung, Stefan, ich weiß das im Wesentlichen schon so ähnlich, was ich halt nur dazu sagen hatte wollen, dass das mit den Verhältnissen von Elo- und Error- Spreizung davon abhängt, um welchen Engine- Pool und welche Hardware- TC es sich handelt.

Wäre das nicht so, hättest du dir nicht die viele Arbeit machen müssen, mehrere verschiedene Sets mit verschiedener Vorteilsrange und verschiedener Länge der Vorgaben zusammenzustellen. Und dass du deine Hauptliste auf die 16 besten Engines reduziert hast, hat wohl auch was damit zu tun, denke ich.
Finde ich übrigens alles sehr gut, so wie es ist, weil man sich dann als User zu Hause daraus auch dasjenige aus den Angeboten aussuchen kann, was einem für die eigenen Engines (sowie auch deren Branches und Netze) und die eigene Hardware- TC am besten passt. Man probiert mal das eine Set für das eine head to head- match, je nach den ersten Ergebnissen ändert man ein bisschen was an der Hardware- TC oder nimmt doch ein anderes Set und kann sich nach den Erfahrungen, die man schon damit hat, dann noch genauer vorstellen, wie's mit einer bestimmten anderen ähnlichen Gegnerschaft im größeren Pool ausschaut, bevor man das Hauptturnier startet.
Bei der Gelegenheit auch mal wieder danke für das alles.


Alles gut.
Die UHO 2024 Evaluierung nähert sich übrigens dem Ende, danach ist der Release schon "absehbar" (Evaluierung dauerte ja über 2 Monate), auch wenn die eigentliche Arbeit dann erst anfängt. Ich plane ja, dieses Mal die UHO-Evalstufen von 0.10 auf 0.05 zu halbieren, sodaß eine noch genauere Steuerung der Ergebnisse/Remisquoten/1:1 Paare etc. möglich wird. Genau aus den von dir gennanten Gründen.
Parent - - By Lothar Jung Date 2024-01-27 11:35
Hier die Antwort auf Discord:

There seems to be some misunderstanding on mainly your side, and a bit on Pohl's. Leela doesn't use the opening book he links for training, only for the test matches. Stockfish uses UHO openings for fishtest, but not for training -- so, to some extent the optimization of search parameters etc is done for UHO, but not the actual nnue training.
Parent - - By Stefan Pohl Date 2024-01-28 06:32 Edited 2024-01-28 07:20 Upvotes 1
Lothar Jung schrieb:

Hier die Antwort auf Discord:

There seems to be some misunderstanding on mainly your side, and a bit on Pohl's. Leela doesn't use the opening book he links for training, only for the test matches. Stockfish uses UHO openings for fishtest, but not for training -- so, to some extent the optimization of search parameters etc is done for UHO, but not the actual nnue training.


Ich weiß nicht von wem die Antwort ist, aber Teil 2 ("Stockfish uses UHO openings for fishtest, but not for training")  stimmt so nicht. Was Lc0 angeht, das kann korrekt sein, ich schrieb ja, daß ich bei Lc0 nicht wirklich "drin" stecke. Aber ich weiß, daß die nnue-Netze von Stockfish zumindest teilweise mit (Stockfish) Lerndaten gefüttert wurden, die sogar explizit Namen wie UHO-binpack etc. trugen.
Aber es gibt mittlerweile auch unglaublich viele nnue-Netze für Stockfish. Daher kann ich nichts dazu sagen, wieweit das für das jeweils aktuelle nnue-Netz der aktuellen SF-Dev gilt. Sorry.

Per Suchfunktion auf discord im SF nnue Kanal gefunden:
binpack: nodes5000pv2_UHO.binpack                   33GB
Hier der Link dazu (Beitrag ist von Vondele, also einem der Stockfish-Masterminds, 24. Januar 2023):
https://discord.com/channels/435943710472011776/718853716266188890/1126069773273419836

Ergo: Auch auf discord sollte man nicht alles glauben! Aber wenn es um Stockfish geht, sollte man Vondele auf jeden Fall glauben. Stockfish nnue-Netze wurden also defintiv auch mit UHO Lerndaten gefüttert. Das ist hier eine Weile her, aber ich hab auch nur mal auf die Schnelle gesucht. Zudem sind neuere nnue-Netze heutzutage meist alte Netze, die mit zusätzlichem Lernmaterial gefüttert wurden. Insofern kann auch bei heutigen Netzen noch immer dieses Material mit "verbaut" sein.

Typischerweise sieht eine neues Netz dann so aus (auch von discord):
Created by retraining the previous main net nn-b1e55edbea57.nnue with:
some of the same options as before: ranger21 optimizer, more WDL skipping
adding T80 aug filter-v6, sep, and oct 2023 data to the previous best dataset

Man nimmt also ein bestehendes Netz und trainiert es weiter. Das ist der übliche Fall. Hier wurden Lc0-Daten (T80 Run) hinzugefügt. Wenn in so einem Netz früher auch UHO-Daten "gelernt" wurden, so bleiben diese Netzstrukturen, die durch UHO gebildet wurden, erhalten, bzw von dort aus evolviert das Netz weiter. Eine gewisse "Prägung" des Netzes durch zuvor gelernte UHO-Daten kann also mit der Zeit "verblassen", wenn nur noch "nicht-UHO"-Daten gelernt werden, aber sie wird nie ganz verschwinden.

Inwieweit das alles jetzt für das gerade aktuelle SF-Netz gilt, kann ich nicht sagen. Aber die generalisierende Aussage "Stockfish uses UHO openings for fishtest, but not for training" ist definitiv falsch.

Ich betone aber nochmal: Ich bin wirklich kein Experte für die nnue-Netz Entwicklungsgeschichte von Stockfish. Wer es genau wissen will, sollte per discord Vondele kontakten. Er ist sehr höflich und umgänglich, ich kann über ihn nur Gutes sagen: Als ich für Fishtest seinerzeit die UHO XXL Sets erstellt hatte, haben wir öfter auf discord gechattet. Er hat sogar mal über den SourceCode meines primitiven Gamepair Rescorer Tools rübergeschaut, als ich das Tool entwickelt habe und mich ermutigt, es fertigzustellen (das war nämlich für einen Programmier-Dummie wie mich nicht einfach). Dafür bin ich ihm bis heute dankbar. Sonst gäbe es für meine UHO-Rangliste bis heute keine Gamepair-Rescored Rangliste... und immerhin ist das ein wichtiges Feature für eine Rangliste, die mit UHO-Eröffnungen ausgespielt wird.
Parent - - By Andreas Matthies Date 2024-01-28 08:03 Edited 2024-01-28 08:13 Upvotes 3
Ergänzend zwei Links, die das Training des letzten, also aktuellen "großen" Netzes beschreiben:

Commit Beschreibung bei Discord: https://github.com/official-stockfish/Stockfish/pull/4782 (streng genommen nicht das letzte Netz, allerdings wird dort nur verwiesen auf "The dataset is the exact same as in: #4782")
Tatsächlich tauchen dort, soweit ich es überblicke, die UHO-Trainingsdaten nur in der ersten Phase (Stage 1) auf, in der die Netzgewichte grob zurecht geschüttelt werden.
In der letzten Phase, wo es um das Feintuning geht, werden wohl tatsächlich nur noch gefilterte Leela-Trainingsdaten verwendet, die allerdings noch vorgefiltert werden, und in diese Vorfilterung hat Linrock viel Schweiß, Fantasie und Rechenleistung hineingesteckt.

Liste der beim Training beteiligten Trainingsdaten inkl. Downloadlinks und kurzer Beschreibung: https://robotmoon.com/nnue-training-data/

Abschließend kann ich das, was du zu Vondele schreibst, nur bestätigen.
Wenn man bedenkt, was für ein Mastermind im wahrsten Sinne des Wortes in ihm steckt und wie selbst andere sehr kluge Köpfe über ihn denken (Andrew Grant hat glaube ich mal von "unbelievable smart" gesprochen), dann ist es wirklich fantastisch zu beobachten, mit wie viel Geduld und Empathie er auf alle Fragen und Probleme eingeht und wie unaufgeregt er Stockfish durch die Wogen der emotional ja häufig sehr aufgeladenen Computerschach Szene lenkt.

Aus meiner Sicht der beste Maintainer, den ein OSS Projekt wie Stockfish sich wünschen kann.

Grüße, Andreas

PS. Irgendwo (ich hab's jetzt nicht gefunden) schreibst du ja sinngemäß, dass dir die Verwendung von Leela Trainingsdaten für das Training von Stockfish und anderen AB-Engines etwas sauer aufstößt.
Das Ganze begann ja tatsächlich als Aprilscherz vom Leela Entwickler Borg, der seinerzeit als Erster einen Stockfish mit dem damals verfügbaren Trainer auf Leela Daten losgelassen und trainiert hat.
Ich glaube, die Kernentwickler beider Teams sind mit diesem wechselseitigen Verwenden von Daten, Techniken und Code (Open Source, Open Data) aus dem jeweils anderen Lager mehr als einverstanden und haben mehr das große Gesamtziel "Weiterentwicklung einer Schach-KI" und weniger den Wettbewerb vor Augen.
Parent - - By Stefan Pohl Date 2024-01-28 10:08 Edited 2024-01-28 10:33
Andreas Matthies schrieb:

Ergänzend zwei Links, die das Training des letzten, also aktuellen "großen" Netzes beschreiben:

Commit Beschreibung bei Discord: <a class='ura' href='https://github.com/official-stockfish/Stockfish/pull/4782'>https://github.com/official-stockfish/Stockfish/pull/4782</a> (streng genommen nicht das letzte Netz, allerdings wird dort nur verwiesen auf "The dataset is the exact same as in: #4782")
Tatsächlich tauchen dort, soweit ich es überblicke, die UHO-Trainingsdaten nur in der ersten Phase (Stage 1) auf, in der die Netzgewichte grob zurecht geschüttelt werden.
In der letzten Phase, wo es um das Feintuning geht, werden wohl tatsächlich nur noch gefilterte Leela-Trainingsdaten verwendet, die allerdings noch vorgefiltert werden, und in diese Vorfilterung hat Linrock viel Schweiß, Fantasie und Rechenleistung hineingesteckt.

Liste der beim Training beteiligten Trainingsdaten inkl. Downloadlinks und kurzer Beschreibung: <a class='ura' href='https://robotmoon.com/nnue-training-data/'>https://robotmoon.com/nnue-training-data/</a>

Abschließend kann ich das, was du zu [url]Vondele[/url] schreibst, nur bestätigen.
Wenn man bedenkt, was für ein Mastermind im wahrsten Sinne des Wortes in ihm steckt und wie selbst andere sehr kluge Köpfe über ihn denken (Andrew Grant hat glaube ich mal von "unbelievable smart" gesprochen), dann ist es wirklich fantastisch zu beobachten, mit wie viel Geduld und Empathie er auf alle Fragen und Probleme eingeht und wie unaufgeregt er Stockfish durch die Wogen der emotional ja häufig sehr aufgeladenen Computerschach Szene lenkt.

Aus meiner Sicht der beste Maintainer, den ein OSS Projekt wie Stockfish sich wünschen kann.

Grüße, Andreas

PS. Irgendwo (ich hab's jetzt nicht gefunden) schreibst du ja sinngemäß, dass dir die Verwendung von Leela Trainingsdaten für das Training von Stockfish und anderen AB-Engines etwas sauer aufstößt.
Das Ganze begann ja tatsächlich als [url]Aprilscherz[/url] vom Leela Entwickler Borg, der seinerzeit als Erster einen Stockfish mit dem damals verfügbaren Trainer auf Leela Daten losgelassen und trainiert hat.
Ich glaube, die Kernentwickler beider Teams sind mit diesem wechselseitigen Verwenden von Daten, Techniken und Code (Open Source, Open Data) aus dem jeweils anderen Lager mehr als einverstanden und haben mehr das große Gesamtziel "Weiterentwicklung einer Schach-KI" und weniger den Wettbewerb vor Augen.


Super, daß du als jemand, der sich mit der Materie nnue-Netze wirklich auskennt (im Gegensatz zu mir!), hier mehr Licht ins Dunkel bringt.

Dieser Link ist wirklich erhellend, und den kannte ich nocht nicht. Da steht ja das Wesentliche drin, daher bringe ich den hier einfach nochmal:
https://robotmoon.com/nnue-training-data/

Hier der wesentliche Abschnit, wie die Lernschritte aussahen, nachdem die Netzarchitektur geändert wurde (das bedeutet ja immer einen "Kaltstart" fürs Netzlernen):

Sep 22, 2023 — SFNNv8 architecture - L1-2560
stage 1: UHOx2-wIsRight-multinet-dfrc-n5000
stage 2: LeelaFarseer-T78juntoaugT79marT80dec.binpack
stage 3: leela93-v1-dfrc99-v2-T78juntosepT80jan-v6dd-T78janfebT79aprT80aprmay.min.binpack
stage 4: leela96-dfrc99-v2-T78juntosepT79mayT80junsepnovjan-v6dd-T80mar23-v6-T60novdecT77decT78aprmayT79aprT80may23.min.binpack
stage 5: 5af11540bbfe dataset
stage 6: 1ee1aba5ed dataset

UHO war hier also die erste Lernstufe, danach gings mit Lc0-Daten weiter...

PS:
Das es mir etwas sauer aufstößt, daß Stockfish Netze mit Lc0-Daten gefüttert werden, bezieht sich für mich primär darauf, daß es Stockfish de facto zum Stockfish/Lc0-Hybriden macht. Wie ich schon schrieb, ist das aus Sicht des Stockfishteams absolut vernünftig. Und ich wußte auch, daß die Lc0-Leute damit kein Problem haben. Ich sehe das eher aus der Tester- bzw. Wettkampf-Perspektive. Insbesondere, was das TCEC Superfinale angeht, wo ja regelmäßig Lc0 vs. Stockfish spielt. Und für diese Events finde ich es eben etwas "semi-optimal", wenn dort Lc0 vs. einen Stockfish/Lc0-Hybriden spielt. Und ich wundere mich bis heute darüber, daß das noch keine endlose, quälende Debatte in der Community losgetreten hat bzgl. Originalität, was ja nun schon bei der unseligen Rybka/Robbolito/Houdini-Debatte sehr unschön ablief.
Prinzipiell habe ich ja Hoffnung, daß chesscom in absehbarer Zeit vielleicht mal Torch am TCEC teilnehmen läßt... Allerdings gibt es darauf bisher keinerlei Hinweise. A.Grant ist wohl auch nicht der größte Fan des TCEC, weil ihm dort die Partienzahl wohl zu gering ist. Insofern weiß man nicht, ob Torch je am TCEC partizipiert. Aber es wäre natürlich toll. Und letzlich entscheidet das auch der CEO von chesscom, nicht A.Grant. Zumindest hatte er mir mal sinngemäß geschrieben, daß Torch 1 ursprünglich nur für die CCRL zum Testen freigegeben wurde und er daraufhin den CEO von chesscom persönlich darum gebeten hat, Torch auch für meine UHO-Top15 Rangliste freizugeben. Und der CEO war dann damit auch einverstanden (zum Glück für mich). Insofern dürfte wohl auch bei der Frage "TCEC oder nicht TCEC" bzgl. Torch, der CEO von chesscom das letzte Wort haben. Nur kann niemand sagen, wie das Wort dann ausfällt. Also hoffe ich mal weiter.
Parent - - By Jörg Oster Date 2024-01-28 10:33
Stefan Pohl schrieb:

PS:
Das es mir etwas sauer aufstößt, daß Stockfish Netze mit Lc0-Daten gefüttert werden, bezieht sich für mich primär darauf, daß es Stockfish de facto zum Stockfish/Lc0-Hybriden macht. ...

Und genau das stößt mir etwas sauer auf, weil dieser naheliegende Schluss meiner Ansicht nach schlichtweg falsch ist.
Beim Training des Netzes werden die Wichtungen und Biases entsprechend korrigiert. Da wird nichts "übernommen".
Und schon gar nicht wird SF dadurch zu einem Hybriden.
Wenn, dann zeigt dies eher einen Schwachpunkt beim Erzeugen der eigenen Trainingsdaten auf,
oder aber sogar des eigentlichen Trainingsvorgangs an sich.
(Warum z. B. wird nicht komplett auf das Partieergebnis hin trainiert?)

Ich persönlich hätte auch nichts dagegen bzw. würde das nicht so eng sehen, wenn andere Entwickler auch Lc0-Daten oder
auch Stockfish-Trainingsdaten zum Training ihrer Netze verwenden würden.
Parent - - By Stefan Pohl Date 2024-01-29 06:22 Edited 2024-01-29 06:25
Jörg Oster schrieb:

Stefan Pohl schrieb:

PS:
Das es mir etwas sauer aufstößt, daß Stockfish Netze mit Lc0-Daten gefüttert werden, bezieht sich für mich primär darauf, daß es Stockfish de facto zum Stockfish/Lc0-Hybriden macht. ...

Und genau das stößt mir etwas sauer auf, weil dieser naheliegende Schluss meiner Ansicht nach schlichtweg falsch ist.
Beim Training des Netzes werden die Wichtungen und Biases entsprechend korrigiert. Da wird nichts "übernommen".
Und schon gar nicht wird SF dadurch zu einem Hybriden.
Wenn, dann zeigt dies eher einen Schwachpunkt beim Erzeugen der eigenen Trainingsdaten auf,
oder aber sogar des eigentlichen Trainingsvorgangs an sich.
(Warum z. B. wird nicht komplett auf das Partieergebnis hin trainiert?)

Ich persönlich hätte auch nichts dagegen bzw. würde das nicht so eng sehen, wenn andere Entwickler auch Lc0-Daten oder
auch Stockfish-Trainingsdaten zum Training ihrer Netze verwenden würden.


Es wäre mir sehr lieb, wenn ich hier irren würde. Und ich bin an diesem Punkt auch alles andere als ein Experte. Aber ist es nicht so, daß, wenn das tiefere positionelle Verständnis von Lc0 in den Lc0 LernPartien eben auch zu völlig anderen Zügen /Abspielen führt, als Stockfish selbst sie spielen würde, dies zwangsläufig dazu führt, daß eben die Spielweise von Lc0 doch auf das Netz von Stockfish "abfärbt"? Selbst wenn man die Lerndaten noch anders gewichtet/korrigiert, bevor man sie ins Stockfish Netz reindrückt?
Immerhin zeigt Stockfish ja mittlerweile typische "Verhaltensmuster", die wir sonst nur von AlphaZero/Lc0 kennen. Klassiker diesbzgl: Bei vollem Brett und auch gerne kurz rochiertem eigenem weißen König, den weißen h-Bauern weit vorzuschieben, am besten bis nach h6.
Parent - - By Lothar Jung Date 2024-01-29 09:29
Zuerst vorweg. Stockfish verwendet LC0 Partien, weil es für das NNUE nützlich ist und seine Spielstärke erhöht.

Jetzt zu den Unterschieden des Trainings zwischen LC0 Und NNUE Netzen:

Der Unterschied im Training zwischen LC0-Netzen (Leela Chess Zero) und NNUE-Netzen (Efficiently Updatable Neural Networks) liegt vor allem in der Art und Weise, wie sie lernen und trainieren, sowie in der Struktur und dem Fokus ihrer jeweiligen Netzwerke. Beide Ansätze werden in der Welt des Computerschachs verwendet, aber sie haben unterschiedliche Stärken und Ansätze.

### LC0-Netze (Leela Chess Zero):

1. **Selbstspiel und Verstärkungslernen**: LC0 verwendet ein Verstärkungslernen-Modell, ähnlich dem von AlphaZero. Es lernt hauptsächlich durch das Spielen gegen sich selbst, beginnend ohne Vorwissen über das Schachspiel.

2. **Deep Learning**: LC0-Netze nutzen tiefe neuronale Netze (Deep Neural Networks, DNNs). Diese Netze sind in der Regel größer und komplexer und können eine Vielzahl von Faktoren und taktischen Überlegungen berücksichtigen.

3. **GPU-Abhängigkeit**: LC0-Netze erfordern in der Regel leistungsstarke Grafikprozessoren (GPUs) für das effektive Training und Spielen, da DNNs rechenintensiv sind.

4. **Allgemeine Strategieentwicklung**: LC0-Netze neigen dazu, eine allgemeinere Verständnis des Spiels zu entwickeln, mit einem stärkeren Fokus auf positionelle und strategische Elemente.

### NNUE-Netze:

1. **Supervised Learning**: NNUE-Netze werden in der Regel durch Supervised Learning trainiert, oft basierend auf hochwertigen Schachpartien und Positionen. Das Training beinhaltet die Anpassung an menschliche Spiele oder an bereits etablierte Engines.

2. **Effiziente Netzstruktur**: NNUE-Netze sind speziell für die effiziente Aktualisierung während des Spiels konzipiert. Sie sind weniger komplex als die DNNs von LC0, was sie schneller und weniger ressourcenintensiv macht.

3. **CPU-Optimierung**: NNUE-Netze sind in der Regel für CPUs optimiert, was sie zugänglicher für normale Computer macht.

4. **Fokus auf taktische Stärke**: NNUE-Netze tendieren dazu, in taktischen Berechnungen stärker zu sein, obwohl sie auch positionelle Konzepte berücksichtigen können.

Zusammenfassend basiert LC0 auf dem Konzept von AlphaZero, das tiefgehendes Lernen und Selbstspiel nutzt, um ein umfassendes Verständnis des Schachspiels zu entwickeln. NNUE hingegen fokussiert sich auf die effiziente Auswertung von Positionen mit einer Struktur, die auf herkömmlichen CPUs gut läuft und durch menschliche Spiele oder bestehende Schachengines trainiert wird. Beide Ansätze haben ihre eigenen Stärken und sind in der modernen Schach-Engine-Entwicklung führend.

Der Text wurde mit ChatGPT generiert.
Parent - - By Max Siegfried Date 2024-01-29 10:19 Upvotes 2
Klärt doch erst mal ab wann eine Engine ein Hybrid ist.
-bzgl. des Codes
-bzgl. NNUE

Wenn ich 1000 Partien von Fischer analysiere / damit trainiere, dann bin ich nicht unbedingt ein Hybrid von Fischer und gleichzeitig wird der eigene Spielstil dem von Fischer ähnlicher.
-Wenn ein Teil vom Code 1 zu 1 übernommen wird, dann ist das ein Hybrid. Ob das jetzt ein 1% von 100% oder 100% von 100% Hybrid ist, sei mal dahingestellt.
-Bei NNUE wird anhand des vorhandenen Wissens trainiert, also kein Hybrid. Zwei Schachspieler die das gleiche Schachbuch lesen, werden dadurch auch nicht zu Hybriden.
Parent - By Lothar Jung Date 2024-01-29 11:22
Im Text wird „Hybrid“ nicht erwähnt.
Parent - - By Olaf Jenkner Date 2024-01-29 10:24 Upvotes 2
Lothar Jung schrieb:

4. **Fokus auf taktische Stärke**: NNUE-Netze tendieren dazu, in taktischen Berechnungen stärker zu sein, obwohl sie auch positionelle Konzepte berücksichtigen können.
Der Text wurde mit ChatGPT generiert.

Da hat ChatGPT halluziniert.
NNUE-Netze sind keinesfalls taktisch stärker. Sie sind den LC0-Netzen in jeder Hinsicht unterlegen.
Da aber durch den extrem schnellen Zugriff das Programm eine deutlich größere Suchtiefe erreicht,
spielt das Programm selbstverständlich taktisch stärker.
Parent - - By Lothar Jung Date 2024-01-29 11:20
Durch die höhere Rechentiefe weisen sie tendenziell eine höhere taktische Stärke auf.
Da gibt es bei Turnieren genügend Beispiele.
Parent - - By Olaf Jenkner Date 2024-01-29 11:27
Wie ich geschrieben hatte, spielt das Programm stärker.
Die Netze sind schwächer.
Parent - By Rainer Neuhäusler Date 2024-01-29 14:24
Olaf Jenkner schrieb:

Wie ich geschrieben hatte, spielt das Programm stärker.
Die Netze sind schwächer.

Zugriffszeit und Netzvalidität, zwei Variablen in Interaktion, nichts ungewöhnliches, komplexer Alltag. Aber monokausales Denken ist und bleibt eine menschliche Lieblingsdisziplin und reicht bis in die höchsten Kreise. "Denkerziehung" als elementares Schulfach, wäre wünschenswert, quer durch alle Jahrgangssufen. Daß der BOT auch nicht genauer denkt, verwundert nicht, von wem hat er es denn
.
Parent - By Stefan Pohl Date 2024-01-28 10:25 Edited 2024-01-28 10:30
Andreas Matthies schrieb:

Abschließend kann ich das, was du zu [url]Vondele[/url] schreibst, nur bestätigen.
Wenn man bedenkt, was für ein Mastermind im wahrsten Sinne des Wortes in ihm steckt und wie selbst andere sehr kluge Köpfe über ihn denken (Andrew Grant hat glaube ich mal von "unbelievable smart" gesprochen), dann ist es wirklich fantastisch zu beobachten, mit wie viel Geduld und Empathie er auf alle Fragen und Probleme eingeht und wie unaufgeregt er Stockfish durch die Wogen der emotional ja häufig sehr aufgeladenen Computerschach Szene lenkt.

Aus meiner Sicht der beste Maintainer, den ein OSS Projekt wie Stockfish sich wünschen kann.


Unbedingt! Der Mann ist für das Stockfish-Projekt ein absoluter Glücksfall.
Auch, wenn er schlauer ist, als seine Gesprächspartner (und bei mir ist das mit der Sicherheit der Fall gewesen, daß er schlauer ist als ich und mehr Ahnung hat als ich), ist er immer freundlich und geduldig, niemals redet er "vom hohen Roß herunter", auf dem er ja definitiv eigentlich sitzen könnte und dürfte.
Kleines Beispiel: Als ich an meinem UHO XXL Eröffnungen für Fishtest gearbeitet habe, hat er sich sogar einmal mir gegenüber in den Urlaub abgemeldet und mir auch gesagt, wann er wieder erreichbar ist...
Parent - By Lothar Jung Date 2024-01-27 08:42
Danke, für die professionelle Antwort.
Ich habe auch den Einsatz von UHO für das Netztraining bei LC0 vorgeschlagen.
Up Topic Hauptforen / CSS-Forum / UHO Eröffnungen

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill