Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / NN Bullet-time testing eingestellt
- - By Stefan Pohl Date 2020-01-05 16:34 Edited 2020-01-05 16:36
Wie schon angekündigt, habe ich ab sofort meine NN-Testruns mit 50''+500ms Bullettime eingestellt. Da Andreas Strangmüller mit fast identischen Bedingungen, aber eben deutlich schnellerer Hardware testet, hat ein Weiterführen dieser Tests für mich keinen Sinn. Auf meiner langsameren (weil Notebook) Hardware ist es dann sinnvoller, mit längerer Bedenkzeit zu testen. Was ich ab sofort mache (habe in den letzten Wochen schon 3 Testruns abgeschlossen). Es gibt dafür eine neue Sektion auf meiner Website. Dort stehen auch alle Testbedingungen.

https://www.sp-cc.de/nn-longtime-testing.htm

Ein richtiges Rating bzw. eine solide Rangliste kann man mit nur 300 Partien pro Testrun (dauert schon 6 Tage!) nicht machen. Also teste ich Lc0 nur gegen einen aktuellen Stockfish und gebe nur die Elo-Performance an. Alles andere wäre statistisch unseriös.
Besonders zu erwähnen ist, daß ich mit normalen Eröffnungsvorgaben bei dieser langen Bedenkzeit (8'+5'' auf 5.5 cores) Remisquoten jenseits von 85% hatte, was m.E. seriöses Testen schon unmöglich macht, da man ja fast nur noch Remisen generiert. Also teste ich mit SALC Armageddon Eröffnungen. Dazu habe ich aus den neuen Noomen Eröffnungen mit nur 4 Zügen Tiefe, 150 Linien ausgewählt und die SALC-Zuglinie vorgesetzt, die Weiß nur die kurze und Schwarz nur die lange Rochade erlaubt. Da dies ein deutlicher Vorteil für Weiß ist, können so die Ergebnisse "Armageddonisiert" werden, will sagen, alle Remisen werden als Sieg für Schwarz gewertet.
Das klappt prime, der Whitescore nach 900 Testpartien liegt bei 51.3%, also im idealen Bereich. Und es gibt keinerlei Remisen mehr. Jede Partie ist nun ein Sieg, entweder für Stockfish, oder eben für Lc0. Wie gesagt, kann man sich das alles auf meiner Website ansehen und durchlesen. Und auch das 150 Linien Vorgabeset dort herunterladen. Hier die ersten 3 Testruns. Mit Leelenstein 12.2 konnte Lc0 gegen den z.Zt. stärksten Stockfish 191210 (11 Threads (5.5 cores) und 4GB Hash) knapp gewinnen! Momentan läuft der Testrun Lc0 0.23.1 384x30-t40-1705 Net (S.Vieri Big Net) - das aktuellste Riesen-Netz basierend auf den t40 Partien von S.Vieri. Das dauert aber noch gut 4 Tage. Mal sehen, wie sich das große Netz mit so langer Bedenkzeit nun schlagen wird.

Code:

300 SALC-Armageddon games each testrun (=all draws are a win for Black)
vs Stockfish 191210 (SPCC-Elo: 3555)

1 Lc0 0.23.1 LS 12.2 (20x256)    : 3562 300 (+153,=  0,-147), 51.0 %
2 Lc0 0.23.1 42741 (20x256)      : 3541 300 (+144,=  0,-156), 48.0 %
3 Lc0 0.23.1 J13B.2-200 (24x320) : 3529 300 (+139,=  0,-161), 46.3 %

Games        : 900 (finished)
White Wins   : 462 (51.3 %)
Black Wins   : 438 (48.7 %)
Draws        : 0 (0.0 %)
Unfinished   : 0
White Score  : 51.3 %
Black Score  : 48.7 %
Parent - - By Ernest Bonnem Date 2020-01-05 17:53
Hallo Stefan,

...aber was wirst Du da (in der Zukunft) für 95% Error-bar bekommen ?
Parent - - By Stefan Pohl Date 2020-01-05 19:18 Edited 2020-01-05 19:44
Ernest Bonnem schrieb:

Hallo Stefan,

...aber was wirst Du da (in der Zukunft) für 95% Error-bar bekommen ?


Ja, wie gesagt, man kann hier nur einen Elo-Performance Wert angeben. Die Errorbar ist natürlich zu groß, um daraus eine Rangliste zu bauen. Aber mehr geht eben bei langer Bedenkzeit nicht. 300 Partien dauern 6 Tage...
Eine Rangliste mit lc0 geht mit einer brauchbar großen Partienzahl nur mit Bullet-Tempo. Und das macht ja Andreas Strangmüller in vorbildlicher Weise. Oder man müßte einen ganzen Rechnerpark benutzen, wie seinerzeit die IPON. Das steht aber - zumindest für mich - nicht zur Debatte.

Ich meine halt,
a) zwei sehr ähnliche NN-Bulletranglisten machen keinen Sinn.
b) das Abschneiden der Netze, insbesondere der großen, könnte bei längeren Bedenkzeiten erheblich von Bullettime-Tests abweichen und insofern ist ein Test mit mehr Bedenkzeit interessant.
c) Ein reiner Einzelvergleich (lc0 vs Stockfish) pegelt sich nach 300 Partien schon recht gut ein. Insbesondere beim Armageddon, wo es nur noch zwei mögliche Partieausgänge gibt (statt 3). Und beide möglichen Ergebnisse (Sieg Weiß und Sieg Schwarz) fast gleichhäufig vorkommen (da der Whitescore bei 51.3% liegt). Während beim klassischen Testen mit soviel Bedenkzeit ca. 85% Remisen herauskommen, also einer der 3 möglichen Partieausgänge extrem gehäuft auftritt und die beiden anderen nur sehr selten. Es ist klar, das Letzteres Gift für die Ergebnisqualität ist. Denn, wenn ein Partieausgang extrem gehäuft auftritt, ist klar, daß das Gift für die Unterschieds-Messung ist (mit (fast) nur einem Ergebnistyp kann man nun mal keine Unterschiede messen. Schon gar nicht, wenn dieser Ergebnistyp eine Punkteteilung ist. Logisch). Was ja beim Testen von Engine A gegen B der Sinn der Sache ist.
d) die meisten interessieren sich primär für das Ergebnis von lc0 gegen Stockfish. Und nicht gegen tote Engines, wie Houdini, oder viel schwächere, wie Ethereal.
Parent - By Tom Paul Date 2020-01-05 20:38
Stefan Pohl schrieb:

Ernest Bonnem schrieb:

Hallo Stefan,

...aber was wirst Du da (in der Zukunft) für 95% Error-bar bekommen ?


Ja, wie gesagt, man kann hier nur einen Elo-Performance Wert angeben. Die Errorbar ist natürlich zu groß, um daraus eine Rangliste zu bauen. Aber mehr geht eben bei langer Bedenkzeit nicht. 300 Partien dauern 6 Tage...
Eine Rangliste mit lc0 geht mit einer brauchbar großen Partienzahl nur mit Bullet-Tempo. Und das macht ja Andreas Strangmüller in vorbildlicher Weise. Oder man müßte einen ganzen Rechnerpark benutzen, wie seinerzeit die IPON. Das steht aber - zumindest für mich - nicht zur Debatte.

Ich meine halt,
a) zwei sehr ähnliche NN-Bulletranglisten machen keinen Sinn.
b) das Abschneiden der Netze, insbesondere der großen, könnte bei längeren Bedenkzeiten erheblich von Bullettime-Tests abweichen und insofern ist ein Test mit mehr Bedenkzeit interessant.
c) Ein reiner Einzelvergleich (lc0 vs Stockfish) pegelt sich nach 300 Partien schon recht gut ein. Insbesondere beim Armageddon, wo es nur noch zwei mögliche Partieausgänge gibt (statt 3). Und beide möglichen Ergebnisse (Sieg Weiß und Sieg Schwarz) fast gleichhäufig vorkommen (da der Whitescore bei 51.3% liegt). Während beim klassischen Testen mit soviel Bedenkzeit ca. 85% Remisen herauskommen, also einer der 3 möglichen Partieausgänge extrem gehäuft auftritt und die beiden anderen nur sehr selten. Es ist klar, das Letzteres Gift für die Ergebnisqualität ist. Denn, wenn ein Partieausgang extrem gehäuft auftritt, ist klar, daß das Gift für die Unterschieds-Messung ist (mit (fast) nur einem Ergebnistyp kann man nun mal keine Unterschiede messen. Schon gar nicht, wenn dieser Ergebnistyp eine Punkteteilung ist. Logisch). Was ja beim Testen von Engine A gegen B der Sinn der Sache ist.
d) die meisten interessieren sich primär für das Ergebnis von lc0 gegen Stockfish. Und nicht gegen tote Engines, wie Houdini, oder viel schwächere, wie Ethereal.


Dann testet man seltener. Es muss nicht alle 6 Tage sein. Ein Test in 12 Tagen oder 2 Wochen reicht.
Oder glaubt hier jemand das die Engines in der Zeit +200 ELO zulegen und man die Entwicklung dazwischen in dieser Zeit verpasst?
Die Bedenkzeit kann dann sogar verdoppelt werden.
Wir interessieren uns nicht nur für LC0 gegen Stockfish, sondern auch für LC0 gegen einen Komodo der deutlich mehr Kerne als Stockfish verwendet und auch ganz besonders gegen einen Houdini im taktischen Modus + Armageddon und mit deutlich mehr Kernen als Stockfish.
Parent - - By Guenter Stertenbrink Date 2020-01-05 23:43
wegen langsamerer Hardware wuerd ich doch eher die Bedenkzeit herabsetzen,
da du ja nicht mit Strangmeller,TCEC,CCCC,... konkurrieren kannst.
Und ich denke ja, man sollte immer auch noch weitere niedrigere Bedenkzeiten testen.
Und auch ein paar Partien mit normalen Buechern, nur zum Vergleich

Einen ordentlichen Mischmasch aus cutechess-cli batch-datei
Parent - By Stefan Pohl Date 2020-01-06 10:57
Guenter Stertenbrink schrieb:

wegen langsamerer Hardware wuerd ich doch eher die Bedenkzeit herabsetzen,


Falsch. Je länger die Bedenkzeit, desto unwesentlicher die eingesetzte Hardwaregeschwindigkeit. Das war nun wirklich schon immer so im Computerschach.
Parent - - By Walter Knobloch Date 2020-01-06 01:13
Ich find das genau richtig, weil Tests mit ~100kn/Zug Mangelware sind. Toll fände ich wenn Du ein aktuelles T60 Netz testest, denn es gibt eine gewisse Unsicherheit darüber, ob T60 im Plan ist.
Es macht gar nix, wenn das Netz zum Zeitpunkt des Ergebnisses eine Woche alt ist.
Parent - By Stefan Pohl Date 2020-01-06 10:54 Edited 2020-01-06 11:00
Walter Knobloch schrieb:

Ich find das genau richtig, weil Tests mit ~100kn/Zug Mangelware sind.


Ja, das sehe ich genauso.

Walter Knobloch schrieb:

Toll fände ich wenn Du ein aktuelles T60 Netz testest, denn es gibt eine gewisse Unsicherheit darüber, ob T60 im Plan ist.
Es macht gar nix, wenn das Netz zum Zeitpunkt des Ergebnisses eine Woche alt ist.


Das wird folgen, sobald ich mit dem aktuellen Testrun durch bin. Also in gut 3 Tagen sollte es losgehen. Dann dauert es natürlich 6 Tage. Immer vorausgesetzt, es geht alles glatt.
- - By Guenter Stertenbrink Date 2020-01-22 05:58 Edited 2020-01-22 06:01
gibt es irgendwelche Indizien, dass die NN-Elo-Abstaende bei long-thinking anders sind als bei bullet ?


2020/01/22
spcc-long,spcc-short,fastgm,name
3562,3556,----,Lc0 0.23.1 LS 12.2 (20x256)
3548,----,----,Lc0 0.23.1 t40-1705 (30x384)
3541,3528,3423,Lc0 0.23.1 42741 (20x256)
3529,----,----,Lc0 0.23.1 61894 (24x320)
3529,3495,3400,Lc0 0.23.1 J13B.2-200 (24x320)
3477,3485,3386,Fat Fritz 1.0 (20x256)
----,3467,3373,Lc0 0.21.4 32930
----,3439,3335,Lc0 0.22.0 11260
----,3450,3323,Houdini 6 pext

Parent - - By Stefan Pohl Date 2020-01-22 11:30 Edited 2020-01-22 11:40
Guenter Stertenbrink schrieb:

gibt es irgendwelche Indizien, dass die NN-Elo-Abstaende bei long-thinking anders sind als bei bullet ?

<code>
2020/01/22
spcc-long,spcc-short,fastgm,name
3562,3556,----,Lc0 0.23.1 LS 12.2 (20x256)
3548,----,----,Lc0 0.23.1 t40-1705 (30x384)
3541,3528,3423,Lc0 0.23.1 42741 (20x256)
3529,----,----,Lc0 0.23.1 61894 (24x320)
3529,3495,3400,Lc0 0.23.1 J13B.2-200 (24x320)
3477,3485,3386,Fat Fritz 1.0 (20x256)
----,3467,3373,Lc0 0.21.4 32930
----,3439,3335,Lc0 0.22.0 11260
----,3450,3323,Houdini 6 pext

</code>


Ja, bei den großen Netzen. Das 384x30-t40-1705 hat im longtime gegen (einen neueren!) Stockfish 49% geholt. Der direkte Vorgänger 384x30-t40-1573 gegen einen älteren Stockfish knapp 42%.
Bei der (noch) Standardnetzgröße 20x256 macht lange Bedenkzeit wahrscheinlich wenig aus, aber je größer die Netze werden, desto stärker der Zuwachs mit mehr Rechenpower. Was auch logisch ist, weil die Knotenzahlen bei gleicher Rechenzeit- und Leistung mit größeren Netzen immer weiter runtergehen. Und das ist ja auch ein universelles Gesetz des Computerschachs, daß mehr Rechenpower umso weniger bringt, je höher das Ausgangsniveau schon war. Deswegen konnte Mephisto 2 damals, als das Brikett mit doppelter MHZ-Zahl gebaut wurde, in der SSDF fast 200 Elo zulegen, während Stockfish auf einem modernen PC bei Bedenkzeit (oder Rechenzeit) Verdoppelung vielleicht noch 20-30 Elo zulegt. Insofern ist es klar, daß ein sowieso ca. 900 mal langsameres Programm (LC0) als Stockfish weit stärker von mehr Bedenkzeit profitiert, als Stockfish selbst. Und es ist klar, daß größere Netze (da langsamer in der Abarbeitung) zusätzlich noch mehr von mehr Rechenpower oder Bedenkzeit profitieren, als kleinere Netze.

http://www.fastgm.de/time-control4.html

Kurz gesagt: Mehr Bedenkzeit oder Rechenpower ist gut für Lc0, noch besser für größere Netze und schlecht für Stockfish. Der Knackpunkt ist dabei weniger die Relation zu Stockfish, die ja sowieso hochproblematisch ist (Stichwort Leela-Ratio und die unseligen und unsinnigen Debatten darüber), sondern vielmehr eben die Elo-Leistungsverschiebungen, die die großen Netze gegenüber den kleinen Netzen erfahren, wenn man mehr oder eben weniger Bedenkzeit gibt.
Daher gilt eben für Lc0 nicht mehr das, was für AB-Engines Ranglisten gilt, nämlich, daß die Reihenfoge in diesen Listen gleich bleibt, egal, wieviel Bedenkzeit man gibt - nur die Abstände zwischen den Engines werden immer geringer, je länger die Bedenkzeit ist. Und das ist natürlich ein großes Problem. Zusätzlich kommt erschwerend hinzu, daß man mit Lc0 nicht mehrere Partien simultan spielen kann, sodaß eine Rangliste mit Lc0 und diversen Netzen überhaupt nur mit kurzen Bedenkzeiten möglich ist, wenn man sich keinen Rechner-Park zuhause hinstellen will. Daher sind meine longtime-Testruns auch nur gegen Stockfish machbar. Und somit auch keine Rangliste, sondern nur ein Performance-Vergleich. Aber mehr geht einfach nicht. Ansonsten geht nur Bullet-Bedenkeit, wie ich es früher gemacht habe, und es jetzt Andreas macht.
Parent - - By Guenter Stertenbrink Date 2020-01-22 12:00
ist mir alles nicht so klar, wahrscheinlich schon, aber ... und wieviel ...

Es sollte m.E. vielmehr abhaengen von der Bedenkzeit der Trainingspartien.

Den Mephisto-Effekt kann ich bei CCRL Elo(4CPU)-Elo(1CPU) nicht sehen,
erst so ab Komodo Niveau vielleicht.

Es wuerde mich jetzt interessieren, wie das 384x30-t40-1705 in Deinem Bullet abschneiden wuerde ...
Es koennte ja auch einfach besser sein als der Vorgaenger ?!
Parent - By Michael Scheidl Date 2020-01-22 15:18
Dieser mephistoeffekt spielte sich sich in den 1980ern auf einstelligen rechentiefen und einer sicherlich, im vergleich zu heute, primitiven suche ab.
Up Topic Hauptforen / CSS-Forum / NN Bullet-time testing eingestellt

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill