Skip to content

CrazyAra, ClassicAra, MultiAra 0.9.5

Compare
Choose a tag to compare
@QueensGambit QueensGambit released this 26 Aug 11:41
· 129 commits to master since this release

MultiAra

This is the first release which features MultiAra, a version of Ara which supports all chess variants available on lichess.org.

  • antichess
  • atomic
  • chess960
  • crazyhouse
  • king-of-the-hill
  • horde
  • racing kings
  • three-check

The neural network models have been initialised by lichess.org game data from August 2013 until July 2020.
All variant (except chess960) have been improved using reinforcement learning.
Details can be found in the master thesis by Maximilian Alexander Gehrke which among others covers an ablation study between training from zero knowledge and supervised initialisation, as well as a preliminary strength comparison against Fairy-Stockfish:

  • Assessing Popular Chess Variants Using Deep Reinforcement Learning, pdf

ClassicAra

The model for ClassicAra uses a new input representation (#134) and a new WDLP value output head (#123).
The old model and input representation for chess is still supported as the input representation version is now inferred by the model name.

Installation instructions

The binary packages include the required inference libraries for each platform.
However, the models should be downloaded separately and unzipped.

  • CrazyAra-rl-model-os-96.zip
  • ClassicAra-sl-model-wdlp-rise3.3-input3.0.zip
  • MultiAra-rl-models.zip (improved MultiAra models using reinforcement learning (rl) )
  • MultiAra-sl-models.zip (initial MultiAra models using supervised learning)

Next, move the model files into the model/<engine-name>/<variant> folder.

For the TensorRT releases, it is recommended to generate the trt-files for your GPU once from the command-line:

Bug Fixes

In 0.9.5, a critical time management bug has been fixed (#136) which resulted in occasional time losses in time controls with increments.
Previously it was assumed that the increment were applied to the time buffer before and not after the move.
Great thanks to AdminX and Werner Schüle for reporting it:

Summary

  • FEN, PGN and arena adjustments for Chess960 (#129)
  • RL Logging: Found tablebases and Configs (#130)
  • Revert "RL Logging: Found tablebases and Configs" (#131)
  • RL Logging: Found tablebases and Configs 2.0 (#132)
  • Speed Optimization: get_state_planes() (#133)
  • Chess input representation v3.0 (#134)
  • Time management refactoring & bugfix (#136)
  • Mirror policy (#137)
  • RL: Save intermediate model files and delete them after training (#138)
  • GitHub Actions / CI (#139)
  • Fix channel ordering for flip_board() == False (#140)
  • Version Backward Compability (#141)
  • 3rdParty Blaze Dependency (#142)
  • CI for Variants (#143)
  • Variant input changes (#145)
  • Add a Open_Spiel Stratego implementation as well adapting MCTSAgent by defining different types of it (#146)
  • TensorRT 8.0 Compability (#147)
  • Input Representation Version Parsing (#148)
  • Single Move Evaluation (#149)
  • Include binary name in Model_Directory and miscellaneous (#150)

Inference libraries

The following inference libraries are used in each package:

  • CrazyAra_ClassicAra_MultiAra_0.9.5_Linux_TensorRT.zip
    • CUDA 11.3
    • cuDNN 8.2.1
    • TensorRT-8.0.1
  • CrazyAra_ClassicAra_MultiAra_0.9.5_Linux_MKL.zip
    • MXNet 1.8.0
    • Intel oneAPI MKL 2021.2.0
  • CrazyAra_ClassicAra_MultiAra_0.9.5_Win_TensorRT.zip
    • CUDA 11.3
    • cuDNN 8.2.1
    • TensorRT-8.0.1
  • CrazyAra_ClassicAra_MultiAra_0.9.5_Win_MKL.zip
    • MXNet 1.8.0
    • Intel oneAPI MKL 2021.2.0

Known issues ⚠️

  • The first start-up time of the engine may take 1-15 minutes to generate the trt-engine files.
  • It is recommended to first start the engine from the command line and issue the isready command. More information can be found here. All later loading times should be < 10s.
  • The process of generating trt-files is done twice, i.e. for batch.size 1 and batch-size 16.
  • The available batch sizes are limited to the provided onnx models. Current available batch-sizes are:
    • 1
    • 8
    • 16
    • 64
  • Using INT8 based inference is still not recommend both for GPU and CPU for chess. On CEGT) it was reported, that ClassicAra performed worse on Pascal Nvidia GPUs despite higher nodes per second.

Regression test

ClassicAra

tc=0/1:0+0.25
-openings file="UHO_V3_6mvs_+090_+099.pgn"
ClassicAra-0.9.5-rise_3.3-input_3.0-wldp vs ClassicAra-0.9.4-rise_3.3-input_1.0:
202 - 125 - 273 (WLD)
Elo difference: 44.83 +/-  20.54

CrazyAra

tc=0/1:0+0.25
-openings file="crazyhouse_mix_cp_130.epd"
CrazyAra-0.9.5 vs CrazyAra-0.9.4
119 - 112 - 369 (WLD)
Elo difference: 4.05 +/-  17.24

Updates

  • fixed problem when loading new ClassicAra model with MXNet API (0f3d60f).

  • CrazyAra_ClassicAra_MultiAra_0.9.5.post0_Mac_MKL.zip

  • CrazyAra_ClassicAra_MultiAra_0.9.5.post0_Linux_MKL.zip

  • 2021-11-01: Added bsizes 32, 64, 128 to ClassicAra-sl-model-wdlp-rise3.3-input3.0.zip