Releases: op12no2/lozza
Lozza 5
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
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.
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
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:-
Lozza 2.5
Use of the latest Node is recommended when used offline in standard chess user interfaces:-
Play Lozza online here:-