Skip to content

Hobbes 2.0

Choose a tag to compare

@github-actions github-actions released this 25 May 16:25
· 83 commits to main since this release

Hobbes 2.0 is here!

The main change since 1.0 is the introduction of a multilayer neural network, along with several net-related features and optimisations. In search, it's a grab-bag of small improvements, the highlights being 'mini-probcut' TT pruning, low-depth singular extensions, and reducing the RFP margin if the opponent is worsening.

Progress tests against 1.0 indicate a strength improvement of around 50 elo:

Elo   | 50.23 +- 6.20 (95%)
Conf  | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 3002 W: 925 L: 494 D: 1583
Penta | [3, 180, 714, 591, 13]

https://openbench.nocturn9x.space/test/6978/

What's Changed

A curated selection of pull requests; for a comprehensive list, consult the changelog: 1.0...2.0

⚖️ Evaluation

  • Multilayer neural network (#316)
  • Increase L1 size to 1536 (#346)
  • Sparse matrix multiplication (#344)
  • Re-permute net for sparsity (#370)
  • Merged king planes (#364)

🔍 Search

  • SF-style probcut TT pruning ('mini-probcut') (#319)
  • Low-depth singular extensions (#330)
  • Low-depth singular double extensions (#359)
  • Adjust RFP margin if opponent is worsening (#366)
  • Only TT cutoff if (tt_score < alpha || cutnode) (#358)
  • Don't instantly prune in LMP (#310)
  • Fractional NMP (#311)
  • Fix insufficient material detection (#313)
  • Use improvement in LMP (#315)
  • Allow LMR extensions (#324)
  • Tweak s_beta formula (#333)
  • Move singular extensions outside move loop (#337)
  • Use singular move score in LMR (#338)
  • Reduce LMR depth in cut nodes (#342)
  • Add a bunch of LMR fail-yellows + SPSA tune (#354)
  • Add more terms to mini probcut + 80k SPSA tune (#363)
  • SPSA 80k LTC (#329)

Acknowledgements

As always, I am extremely grateful to the community of engine developers for sharing their knowledge and expertise, without which Hobbes would still be languishing in the dark ages. For Hobbes 2.0 I especially am thankful to @JonathanHallstrom for guiding me through the multilayer NNUE journey. And finally, a big thanks to engine testers for testing the stuff we write, and keeping the leaderboards up to date.