Skip to content

Releases: op12no2/lozza

Lozza 5

25 Feb 20:58
0e20f68
Compare
Choose a tag to compare

Changes

  • Fix beta pruning!
  • Use Math.imul() instead of * in netFastEval() to force integer multiplication.
  • Cumulative SPRT against Lozza 4: +112 +/- 28 at 60+1.
  • Cumulative SPRT against Lozza 4: +118 +/- 29 at 20+0.2.
  • Use a save_rate of 1 and train on superbatch net with minimum mean batch loss.
  • Use RAdam optimiser.
  • Generate more data. 320M FENs total.
  • Tweak datagen.js to save FENs in bullet text format.
  • Simplify PSTs away.
  • Simplify lonePawns away.
  • Micro optimisation to piece Zobrist access.
  • Fix lower/upper bound logic.
  • Add network command showing network info and stats.
  • Add a serialise (weights) command for use when making releases.
  • Fix board.fen() WRT black queen castling rights.
  • Optimise accessing 'them' weights a bit more.
  • Swap to bullet (768 -> 128)x2 -> 1 SqrReLU.
  • Use performance.now() not Date.now().
  • Use 10k soft nodes for datagen.

Lozza 4

06 Jan 18:12
a1c4075
Compare
Choose a tag to compare

This is a Lozza 4 re-release.

The original Lozza 4 release caused problems for some users. For those that ran it successfully, results (e.g. CCRL Blitz) can stand because no peformative changes have been made. However, please replace with this re-release anyway; thanks.

A recent version of Node is recommended if possible as performance is always improving; the latest stable version is 22.

https://nodejs.org

Play Lozza 4 online here:-

https://op12no2.github.io/lozza-ui

Changes

  • Train generation 3 net from ~350M generation 2 positions.
  • Use ADJACENT, not DIST to test king adjacency.
  • Simplify QS and don't go into QS if in check.
  • Scale eval by 1.9.
  • Scale UCI cp by 1.9.
  • Add second accumulator (but currently unused).
  • Use the Mersene Twister from Cwtch for randoms.
  • Move futility alpha test to move loop.
  • Use hash move in QS.
  • Optmise deferral of accumulator update a bit more.
  • Fix some web stuff.
  • Add improving indicator (but failed to get it to gain so far).
  • Prune QS with quickSee().
  • Only count nodes that iterate moves.
  • Put eval in TT before search.
  • Optimise castling a bit.
  • Simplify search recursion.
  • Allow successive NMP and beta pruning.
  • Bigger 768x128x1 white-relative unquantised unclamped squared relu net.
  • Make sure all UE updates (e.g. castling) are a single accumulator loops.
  • Defer UE to after legal move confirmation (doh!) and don't check pre-determined legal moves (using ALIGNED).
  • Minor tweaks for datagen + net command.

Lozza 3

06 Oct 17:45
874772a
Compare
Choose a tag to compare

Lozza3 replaces HCE with NNUE; a small 768x75x1 white-relative unquantised unclamped squared relu net, trained on about 114M positions.

Play Lozza 3 online here:-

https://op12no2.github.io/lozza-ui/

Please use the latest version of Nodejs for best performance:-

https://nodejs.org/en/

Lozza 2.5

10 Feb 23:14
Compare
Choose a tag to compare

Use of the latest Node is recommended when used offline in standard chess user interfaces:-

https://nodejs.org/en/

Play Lozza online here:-

https://op12no2.github.io/lozza-ui/